数字钟Word文件下载.docx
《数字钟Word文件下载.docx》由会员分享,可在线阅读,更多相关《数字钟Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
![数字钟Word文件下载.docx](https://file1.bdocx.com/fileroot1/2023-1/29/21791d69-e53b-4106-87cf-bee92e70e261/21791d69-e53b-4106-87cf-bee92e70e2611.gif)
在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。
单片机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。
目录
一、设计要求……………………………………………………………^1
二、系统总体方案设计……………………………………………………1
1、单片机选型…………………………………………………………1
2、计时方案…………………………………………………………1
3、显示方案…………………………………………………………2
4、系统方框图………………………………………………………2
三、系统硬件电路设计…………………………………………………3
1、单片机系统最小电路……………………………………………3
2、键盘电路…………………………………………………………4
3、显示电路…………………………………………………………4
4、总体硬件电路……………………………………………………4
四、系统软件电路………………………………………………………5
1、模块划分………………………………………………………5
2、软件流程图设计…………………………………………………6
五、总结…………………………………………………………………7
附录一、系统总体电路图………………………………………………8
附录二、程序清单……………………………………………………9
数字钟的设计与制作报告
一、设计要求
设计并制作出具有如下功能的数字钟:
1)自动计时,由4位LED显示器显示时、分。
第二个数码管的小数点每隔1s闪烁一次,表示秒。
2)具备校准功能,可以设置当前时间。
二、系统总体方案设计
1、单片机选型—-STC89C52
单片机是一种集成电路芯片,采用超大规模集成电路技术把具有数据处理功能的中央处理器CPU,随机存取数据存储器ROM,多种I/0口和中断系统,定时器、计数器等功能(可能还包括显示驱动电路,模拟多种转换器,A/D转换器等电路)集成到一块硅片上构成一个小而完善的计算机系统。
这些电路在软件的控制下准确、迅速、高效的完成程序设计者事先规定的任务。
本设计采用的是单片机AT89C52,AT89C52是一个低电压,高性能CMOS8位单片机,片内含8KB的课反复擦写的Flash只读程序存储器和256B的随机存储数据存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置用8位中央处理器和Flash存储单元,AT89C52单片机单片机在电子行业中有着广泛地应用。
2、计时方案——软件计时
利用STC89C52单片机内部的定时/计数器进行中断时,配合软件延时实现时、分、秒的计时。
该方案节省硬件成本,且能使读者在定时/计数器的使用、中断及程序设计方面得到锻炼与提高,对单片机的指令系统能有更深入的了解,从而对学好单片机技术这门课程起到一定的作用。
利用STC系列单片机的可编程定时/计数器、中断系统来实现时钟计数。
(1)计数初值计算:
把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,而100次计数可用软件方法实现。
假设使用T/C0,方式1,50ms定时,fosc=12MHz。
则初值X满足(216-X)×
1/12MHz×
12μs=50000μs
X=15536→0011110010110000→3CB0H
(2)采用中断方式进行溢出次数累计,计满20次为秒计时(1秒);
(3)从秒到分和从分到时的计时是通过累加和数值比较实现。
3、显示方案——4位一体共阳数码管
电子钟的时钟时间在六位数码管上进行显示,因此,在内部RAM中设置显示缓冲区共8个单元。
LED8
LED7
LED6
LED5
LED4
LED3
LED2
LED1
37H
36H
35H
34H
33H
32H
31H
30H
时十位
时个位
分隔
分十位
分个位
秒十位
秒个位
STC89C52的P0口和P1口外接由八个LED数码管(LED8~LED1)构成的显示器,用P0口作LED的段码输出口,P1口作八个LED数码管的位控输出线,P3口外接四个按键A、B、C构成键盘电路。
STC89C52是一种低功耗,高性能的CMOS8位微型计算机。
它带有8KFlash可编程和擦除的只读存储器(EPROM),该器件采用ATMEL的高密度非易失性存储器技术制造,与工业上标准的80C51和80C52的指令系统及引脚兼容,片内Flash集成在一个芯片上,可用与解决复杂的问题,且成本较低。
简易电子钟的功能不复杂,采用其现有的I/O便可完成,所以本设计中采用此的设计方案。
4、系统方框图
(1)能定义键盘的功能
S4键:
模式选择键;
按一下:
“修改时”
按两下:
“修改分”
S3键:
增一功能键
S2键:
确认键;
确认修改完毕。
三、系统硬件电路设计
1、单片机最小系统电路
51单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。
晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。
起振电容C2、C3一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好。
P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。
设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。
计数值N乘以机器周期Tcy就是定时时间t。
设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。
在每个机器周期的S5P2期间采样T0、T1引脚电平。
当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。
由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。
当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2ms。
。
2、键盘电路
键盘在单片机应用系统当中能实现向单片机输入数据、传送命令等功能,是人工干预单片机的主要手段,键盘实际上是一组按键开关的集合,它利用了机械触点的合、断作用,一个电压信号通过键盘开关机械触点的断开、闭合。
3、显示电路。
在单片机应用系统中,常用来显示各种字符或符号的显示器有发光二极管(LED)显示器、液晶显示器等,由于LED显示器具有显示清晰、亮度高、寿命长、结构简单等优点,故使用非常广泛。
LED数码显示器有8个发光二极管组成,所以又称8段LED显示器。
其中7个长条形的发光管排列成“日”字形,另一个圆点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部分符号。
4、总体硬件电路。
单片机内部的资源与外部的扩展资源应在满足系统设计的基础上留有余地,为进一步的升级和扩展提供方便。
应充分的结合软件方案考虑硬件的结构,通常硬件功能较完善,其相应的软件程序就简单,但硬件的成本较高,而功能较低,其相应的软件就复杂,其实际常用软件代替硬件来降低成本。
整个系统相关的器件尽可能的做到性能相匹配。
四、系统软件设计
1、模块划分
2、软件流程图设计
单片机的定时功能也是通过计数器的计数来实现的,此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲,也就是每经过1个机器周期的时间,计数器加1。
如果MCS-52采用的12MHz晶体,则计数频率为1MHz,即每过1us的时间计数器加1。
这样可以根据计数值计算出定时时间,也可以根据定时时间的要求计算出计数器的初值。
MCS-52单片机的定时器/计数器具有4种工作方式,其控制字均在相应的特殊功能寄存器中,通过对特殊功能寄存器的编程,可以方便的选择定时器/计数器两种工作模式和4种工作方式。
定时器/计数器工作在方式0时,为13位的计数器,由TLX(X=0、1)的低5位和THX的高8位所构成。
TLX低5位溢出则向THX进位,THX计数溢出则置位TCON中的溢出标志位TFX.
五、总结
机多功能定时系统理论上能很好的达到了学校教学要求,发挥了单片机在智能化方面的应用。
该系统的设计很好的满足当前学校教学的需要,是一个理想的智能化的设计。
它具有一个走时精确的实时钟,可以任意设置时间,可以控制时间表的转换,时钟的显示功能等。
可以通过按键操作和数字显示。
该系统规模小,但是功能较多,操作简单,造价低,应用非常广泛。
该系统的设计为向家庭数字化方向发展又前进了一步。
同时又扩大了单片机的应用领
本次实训告一段落,我们收获颇多。
可以说我们在实训中都非常投入,大家都非常认真,尽职尽责,争取时间画图和编写程序。
一个星期下来,成果也不错,我们也非常满意。
但在实训中,也遇到了一些困难,刚开始的时候,不知道从何下手,反正我也遇到这种情况,特别是刚开始画图的时候,自己感觉很复杂,根本不知道怎样开头,于是我就去网上查找,看了网上的资料后,慢慢的摸清了头绪,也就知道了原理和电路图的结构,人顿时豁然开朗,我想这就是本次实训成功的开始。
于是我们借鉴网上的资料画图,只是借鉴一下,并没有把别人画的原封不动的抄来,画好电路图的基本要求是要弄清其原理,只有原理搞清楚了,才能一步一步下手。
画完图后,反复检查,刚开始的时候有很多错误,基本上都是连线错误,照着错误修改,后来再去编写程序。
编写程序可以说大家都非常害怕,因为有点复杂,也很要逻辑,对我们来讲是一种考验。
于是我们就从书中找资料,这个程序其实就是由多个程序结合而成的,它分多个部分,每个部分的内容我们都学过,老师也讲过,所以还是有点印象,我们也就把这个程序分成多个部分来写,这样果然简单很多。
后来程序编写好了,点亮LED显示管的时候却没有亮,这令大家有点失望,可是这是很正常的事情,不可能一次就会成功,接着就去修改程序,后来就去点亮LED显示管,还是没有亮,我们仔仔细细,反反复复修改后,大约修改了七八次左右,终于成功。
享受着成功带来的喜悦,我们继续努力,接着把设计书写好,从排版到写作,花了很多心思,经过几天的努力,终于完成,大家的付出得到了回报。
其实实训非常考验一个人的能力,这次是团队合作,也考验着团队合作能力,它对我们的综合能力要求很高,也能够很好的锻炼我们的动手能力和创作能力,所以本次实训对我们来讲是一次很好的锻炼机会。
附录一:
系统整体电图
附录二:
程序清单
#include<
reg52.h>
INTRINS.H>
voiddelay(unsignedchardly)
{
unsignedchari,j;
for(i=100;
i>
0;
i--)
for(j=dly;
j>
j--)
;
}
unsignedcharnum,time1,time2,time3;
voidtimer0()interrupt1
TH0=(65535-46080)/256;
TL0=(65535-46080)%256;
num++;
if(num==20)
{
num=0;
time1++;
voidintial()
TMOD=0x01;
ET0=1;
EA=1;
TR0=1;
time1=0;
time2=0;
time3=0;
voidmain()
unsignedchartable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
unsignedcharshi,fen;
intial();
while
(1)
if(time1==60)
time2++;
}
if(time2==60)
time3++;
if(time3==24)
shi=time1/10;
fen=time1%10;
P2=0xf7;
P0=table[shi];
delay
(2);
P2=0xfb;
P0=table[fen];
shi=time2/10;
fen=time2%10;
P2=0xdf;
P2=0xef;
shi=time3/10;
fen=time3%10;
P2=0x7f;
P2=0xbf;