淮北师范大学硬件课程设计报告.docx
- 文档编号:28198165
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:18
- 大小:290.32KB
淮北师范大学硬件课程设计报告.docx
《淮北师范大学硬件课程设计报告.docx》由会员分享,可在线阅读,更多相关《淮北师范大学硬件课程设计报告.docx(18页珍藏版)》请在冰豆网上搜索。
淮北师范大学硬件课程设计报告
淮北师范大学硬件课程设计
硬件课程设计报告
学
专
院
业
计算机科学与技术
计算机科学与技术
学
号**********************
学生姓名******
指导教师姓名******
2011年10月20日
淮北师范大学硬件课程设计
一、设计目的与内容:
1、熟悉整个电路图,练习一下焊接操作;
2、能够根据原理图焊接电路板,经过调试,保证整个电路板没有虚焊点;
3、熟练掌握C51的编程方法与技巧;
4、能够有效地控制LED、蜂鸣器和键盘的操作(可采用多种形式);
5、编写出一个电子钟,六个数码管每两个一组,分别显示小时、分钟和秒;硬件设计要求:
1.根据项目要求,去选择相应的电路,比如MCU系统,输入输出驱动电路,电源供电电路。
2.整体布局合理,标注规范、明确、美观、不产生歧义。
3.列出完整的元件清单(标号、型号及大小、封装形式、数量)。
4.估算电路板的功耗,并对供电形式提出要求。
5.根据设计好的原理图,焊接实物。
软件设计要求:
1.简单的用户使用说明书。
2.根据项目要求,设计软件整体规划,人机对话,各模块的关联,底层驱动模块。
3.程序在必要的地方进行注释。
每个函数的出入口要有输入输出参数的说明。
程序必须具有良好的可读性,可重用,容易调试和维护。
4.使用c语言进行编程
二、实验原理:
1、LED灯的控制
由电路图可知,LED灯左侧阳极与电阻相连接高电平,右侧阴极与P1相连。
因此:
当P1为低电平(即P1=0)时,电路连通,LED灯亮,当P1为高电平时(即P1=1)时,电路不通,LED灯不亮。
所以,可以通过控制P1的值控制LED灯的亮与不亮。
而因为八个LED灯与P1口上八个引脚相连,因此可以控制每个接口的值控制每个LED灯的亮灭。
比如当P1=0x04时,第五个灯不亮。
2、蜂鸣器的控制
由电路图可知,蜂鸣器一侧与三极管相连,另一侧与高电平相连,而三极管与电阻相连后接P2_1口。
因此当P2_1=1时,蜂鸣器响;当P2_1=0时,蜂鸣器不响。
3、键盘的控制
(1)由电路图可知,P3_2到P3_5这四个引脚分别与四个开关相连,开关与地相连,所以当开关闭合时,P3_2=0,当开关断开时,P3_2=1,所以可以根据查看P3_2等值的0或1来判断开关是否闭合。
(2)要达到通过键盘控制数码管显示数字的目的,可以将P3_5为0时,表示要修改数字,用P3_2为0时表示要修改的数码管上的数字,而用P3_3到
1
淮北师范大学硬件课程设计
P3_5为0时分别对应时分等进行数值的加和减1。
(3)由电路图可知,开关S1闭合时,电路断开。
4、电子钟的显示
(1)电子钟上数字的显示原理
由电路图可知,P2_7到P2_2这六个引脚分别与六个数码管相连,中间有一10k的电阻,还有一三极管,通过三极管的特性可知,当P2_7等接高电平时,电路连通,数码管亮,既可以显示数字。
同样可以看到,P0口的八个引脚都与六个数码管相连,控制数码管中八个的亮灭,以达到显示0—9这10个数字的目的。
(2)电子钟的上显示的数字之间的联系
1、六个数码管每两个一组,分别显示时,分,秒。
判断当显示秒的数字,达到59时,将显示数字变为00,显示分钟的数字加1;当显示分钟的数字,达到59时,将显示的数字变为00,显示小时的数字加1;当显示小时的数字,达到23时,将显示的数字变为00。
5、中断函数模块
这个程序运用了一个中断函数,分别为定时器0的中断,定时器0是用来计时,到整点就报时,这样使得电子钟的性能更稳定。
6、实验电路图
总电路图:
数码管:
2
淮北师范大学硬件课程设计
二极管:
蜂鸣器:
按键:
单片机:
3
淮北师范大学硬件课程设计
7.系统的元器件清单
表2.1系统元器件表
器件
型号
数量
器件
型号
数量
单片机
12C5A60S2
1个
按键
普通
5个
三极管
普通
8个
开关
6脚双路
1个
排阻
A103J,A427J
,A102J
1个,1个,
1个
二极管灯
普通
8个
电容
10μF
2个
数码管
CPS056AR
6个
电阻
普通
若干
下载接口
4针接口
1个
蜂鸣器
压电式
1个
单排针
普通
若干
三、主要功能模块流程图:
功能模块流程图
4
淮北师范大学硬件课程设计
Key_5
Y
Y
Y
Key_2
Key_3
Y
Key_4
更改显示数码管,数码管闪烁
数字增一
设置时间
数字减一
设置时间
Key_5
设置成功
5
淮北师范大学硬件课程设计
四、拓展功能:
(1)LED灯的花样设计:
可根据自己的喜好设计出各种各样的LED灯;
(2)能够实现整点报时;
五、参考文献:
《新编单片机原理及应用》、《c语言程序设计》、《51单片机C语言教程》、《51实验指导》、《数据结构》、《算法设计与分析》
六、源程序及系统文件使用说明:
#include
#defineuintunsignedint
#defineINTH((65536-50000)/256)
#defineINTL((65536-50000)%256)
uintcodeszxs[]={0xbd,0x90,0xa7,0xb6,0x9a,0x3e,0x3f,0xb0,0xbf,0xba};
uintcodew[]={0x80,0x40,0x20,0x10,0x08,0x04};
uintN[6]={0,0,0,0,0,0};
uintcodeled[16]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xff,0x00};
uintcount=0;
//uintd1=0;
uintd2=0;
uintd3=0;
inti=0,t=0,flag=0,j=0,q=0,z=0;
voidszxsgo();
voidoutput();
voidcontrol();
voidzheng();
voidlm();
voiddelay(uintm)
{
uinta,b;
for(a=m;a>0;a--)
for(b=100;b>0;b--);
}
voidsound()
{
P2_1=1;
delay
(1);
P2_1=0;
delay
(1);
}
6
淮北师范大学硬件课程设计
voidzheng()
{
if(N[2]==0&&N[3]==0&&N[4]==0&&N[5]==0)
{sound();
P1=0x00;}
}
voidszxsgo()
{
N[5]++;
if(N[5]==10)
{
N[4]++;
N[5]=0;
}
if(N[4]==6)
{
N[3]++;
N[4]=0;
}
if(N[3]==10)
{
N[2]++;
N[3]=0;
}
if(N[2]==6)
{
N[1]++;
N[2]=0;
}
if(N[1]==4&&N[0]==2)
{
N[0]=0;
N[1]=0;
}
elseif(N[1]==10)
{
N[0]++;
N[1]=0;
}
}
voidoutput()
{
q++;
if(q>5)q=0;
7
淮北师范大学硬件课程设计
P2=w[q];
if(q==1||q==3)
P0=szxs[N[q]]+0x40;
else
P0=szxs[N[q]];
zheng();
delay
(1);
}
voidcontrol()
{if(P3_5==0)
{
delay(10);
if(P3_5==0)
{
flag=1-flag;
}while(P3_5==0);
}
if(P3_2==0)
{
delay(10);
if(P3_2==0&&flag==1)
{
i=t%4;
t++;
}while(P3_2==0);}
if(P3_3==0)
{delay(10);
if(P3_3==0&&flag==1)
{
N[i]++;
if(N[1]==10||N[3]==10||N[0]==3||N[2]==6)
N[i]=0;
else
if(N[0]==2&&N[1]==4)
N[1]=0;
else
if(N[1]>=4&&N[0]==2)
N[0]=0;
}while(P3_3==0);}
if(P3_4==0&&flag==1)
{
delay(10);
if(P3_4==0)
8
淮北师范大学硬件课程设计
{
N[i]--;
if(N[i]==-1)
switch(i){
case1:
if(N[0]==2)N[1]=3;elseN[1]=9;break;case3:
N[3]=9;break;
case0:
if(N[1]>=4)N[0]=1;elseN[0]=2;break;case2:
N[2]=5;break;
}}}while(P3_4==0);}
voidlm()
{z++;
if(z>5)z=0;
if(z==i)
P2=0;
else
P2=w[z];
if(z==1||z==3)
P0=szxs[N[z]]+0x40;
else
P0=szxs[N[z]];
}
voidpz()interrupt1
{
TH0=INTH;
TL0=INTL;
count++;
if(count==20)
{
count=0;
if(d3==16)
d3=0;
P1=led[d3];
d3++;
//for(d1=0;d1<100;d1++)
//sound();
szxsgo();
}}
voidDisplay()interrupt3
{intg;
TH1=(65536-10000)/256;
TL1=(65536-10000)%256;
if(flag==0)
output();
else
9
淮北师范大学硬件课程设计
if(flag==1)
{g=j++%200;
if(i==0)
{if(g>100)
{P2_7=0;
lm();}
else
{q++;
if(q>5)q=0;
P2=w[q];
if(q==1||q==3)
P0=szxs[N[q]]+0x40;
else
P0=szxs[N[q]];}}
if(i==1)
{if(g>100)
{P2_6=0;
lm();
}
else
{q++;
if(q>5)q=0;
P2=w[q];
if(q==1||q==3)
P0=szxs[N[q]]+0x40;
else
P0=szxs[N[q]];}
}
if(i==2)
{if(g>50)
{P2_5=0;
lm();
}
else
{q++;
if(q>5)q=0;
P2=w[q];
if(q==1||q==3)
P0=szxs[N[q]]+0x40;
else
P0=szxs[N[q]];}
}
if(i==3)
{if(g>100)
10
淮北师范大学硬件课程设计
{P2_4=0;
lm();}
else
{q++;
if(q>5)q=0;
P2=w[q];
if(q==1||q==3)
P0=szxs[N[q]]+0x40;
else
P0=szxs[N[q]];}
}}}
voidmain()
{
TMOD=0x01;
TH0=INTH;
TL0=INTL;
TH1=(65536-10000)/256;
TL1=(65536-10000)%256;
EA=1;
ET0=1;
TR0=1;
ET1=1;
TR1=1;
//P1=0x00;
while
(1)
{//output();
control();
}
}
七.调试
通过键盘,按P3^5表示进入修改时间数字功能,0时确定要调节时间,1时为退出调节时间,按P3^2能实现选择功能,P3^4调节时和分钟增加,P3^5可以调节时和分钟减少。
以及到整点报时。
八、总结
在组装单片机硬件设备时要细心,要有耐心,在实验时要注意安全。
在编译软件时,程序刚开始没有什么头绪,通过各种资料的搜集后发现调
用各种函数来实现比较容易,整个过程中出现了很多小问题,各个函数的调用比较混乱。
通过一系列的梳理后慢慢清晰,发现比较的容易。
11
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 淮北 师范大学 硬件 课程设计 报告