AT89C51单片机LED数字倒计时器—课程设计论文.doc

上传人:仙人指路1688 文档编号:4146279 上传时间:2023-04-07 格式:DOC 页数:18 大小:2.95MB
返回 下载 相关 举报
AT89C51单片机LED数字倒计时器—课程设计论文.doc_第1页
第1页 / 共18页
AT89C51单片机LED数字倒计时器—课程设计论文.doc_第2页
第2页 / 共18页
AT89C51单片机LED数字倒计时器—课程设计论文.doc_第3页
第3页 / 共18页
AT89C51单片机LED数字倒计时器—课程设计论文.doc_第4页
第4页 / 共18页
AT89C51单片机LED数字倒计时器—课程设计论文.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《AT89C51单片机LED数字倒计时器—课程设计论文.doc》由会员分享,可在线阅读,更多相关《AT89C51单片机LED数字倒计时器—课程设计论文.doc(18页珍藏版)》请在三一办公上搜索。

1、课 题: AT89C51单片机LED数字倒计时器专 业: 班 级: 学 号: 姓 名: 指导教师: 设计日期: 成 绩:重庆大学城市科技学院电气学院目录一、设计目的作用1二、设计要求1三、设计的具体实现11、设计原理1(1)系统设计方案1(2)功能模块2(3)工作原理:2 2、系统设计2(1)显示模块2(2)晶振模块 3(3)复位电路:3(4)按键模块:4(5)报警模块:53、系统实现6(1)实物图6(2)分析6四、总结6五、附录8附录1:8附录2:9附录3:9六、参考文献16 LED数字倒计时器设计报告一、设计目的作用1、掌握51单片机最小系统的设计;2、掌握按键电路设计、LED数码管的使用

2、;3、掌握C51的编程方式。二、设计要求 基于AT89C51单片机的LED数字倒计时器主要具有如下功能,具体要求如下: 1、LED数码管显示倒计时时间。 2、倒计时过程中能设置多个闹钟,当倒计时值倒计到设定值时会发出2s的报警声音。(K1设置小时,K2设置分钟,K3设置秒钟,K4完成退出) 3、通过按键可以对倒计时设定处置。倒计时初值范围在24:00:0000:00:60之间,设置成功后复位初始值为成功设定值。三、设计的具体实现1、设计原理(1)系统设计方案:基于AT89C51单片机的数码管显示模块显示的倒计时器。主要是以单片机来控制,用按键来设定倒计时初始时刻的值,数码管作为显示模块来显示剩

3、余的时间。此电路对于倒计时器中的LED数码管示器来说,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。AT89C51单片机晶振模块显示模块复位模块按键模块报警模块 图1 LED数字倒计时器设计框图(2)功能模块:倒计时器的总体包括显示电路,按键电路,复位电路,晶振电路和报警电路等五个模块。显示模块显示计数与灭灯,复位模块控制电路完成计数的直接清零,暂停/连续技术,用按键模块来设定倒计时初始时刻的值,报警模块实现定时时间到报警等功能。(3)工作原理:以AT89C51单片机为核心控制器,P0口接LED数码显示模块,P1口接按键,通过按键输入来控制显示器的显示。在上电时L

4、ED显示器开始显示时间,在按键电路中设置了七个按键,通过检测第5个按键开始倒计时,通过检测第1,2,3个按键按下的次数来实现小时,分和秒的调时的加减,检测第4个按键实现闹钟的定时,检测6,7个按键按下的次数来实现闹钟的小时和分钟的调时的加减,再由LED显示器显示时,分,秒的改变。 2、系统设计(1)显示模块显示电路采用了3个二为一体的LED数码管,单片机I/O的应用最典型的是通过I/O口与7段LED数码管构成显示电路。图2 数码管显示电路(2)晶振模块 单片机的晶振电路,即时钟电路。单片机的工作流程,就是在系统时钟的作用下,一条一条地执行存储器中的程序。单片机的时钟电路由外接的一只晶振和两只起

5、振电容,以及单片机内部的时钟电路组成,晶振的频率越高,单片机处理数据的速度越快,系统功耗也会相应增加,稳定性也会下降。采用110592MHz晶振,电容选22pF或30pF均可。图3 晶振模块原理图 (3)复位电路: 系统上电时提供复位信号,直至系统电源稳定后撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分,合工程中引起的抖动而影响复位。如图所示,复位键接于AT89C51芯片的人RST接口,用于控制倒数计时器的复位操作。计时器运行时按下复位键,计时器停止计数,或计数完成后按复位键进入下一轮计数工作。图4 复位电路图 (4)按键模块:在上电时LED显示器

6、开始显示时间,在按键电路中设置了七个按键,通过检测第5个按键开始倒计时,通过检测第1,2,3个按键按下的次数来实现小时,分和秒的调时的加减,检测第4个按键实现闹钟的定时,检测6,7个按键按下的次数来实现闹钟的小时和分钟的调时的加减,再由LED显示器显示时,分,秒的改变。图5 按键模块原理图(5)报警模块:报警模块实现定时时间到报警等功能。图6 复位及报警模块原理图3、系统实现(1)实物图(2)分析 设计结果为:三个LED显示器以小时、分钟、秒数逐一递减,即呈现倒计时现象,最终设计成功。 在整个实物焊接及接线过程中,必然出现众多问题,如:焊接错误导致元件无法使用、接线错误导致最终结果不出现、排线

7、错误导致LED显示不完全等等,这需要我们不断的检测和实验,需要我们耐心的寻找问题所在,从而解决问题,整个过程中,忙碌但快乐,繁琐却充实。四、总结 在做本次课程设计的过程中,我们充分掌握了各模块电路的工作原理。从课题入手到中间过程的修改设置、到使用Proteus 8 Professional电路仿真测试,再到最后的实物电路焊接。每个过程都是小组的三个成员共同完成的,并使用Keil uVision4编写了全部的驱动程序,在编写程序的过程中我们遇到很多的问题,翻阅了很多资料,也向老师请教了很多,最终写出了程序,画出了电路图,完成了本次课程设计。 在整个仿真过程中,免不了各种问题的频频出现,比如:程序

8、编写出现错误导致电路仿真错误、保存程序的路径方式错误导致电路无法导入程序、导入程序之后却又无法进行加载仿真等等。在实物电路焊接时,由于操作不熟悉,导致焊锡融化与电路板相连。这次课程设计让我受益匪浅,无论从知识上还是其他的各个方面。上理论课时从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味的书面知识,但在实践过程中真真切切的尝试了单片机及其系统的仿真和应用,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。除此之外,我还体会团结的重要性及力量之强大,设计过程让我们处理事情更加有条理,思路更清晰明了,发现、提出、分析、解决问题和实践能力的提高都将受益于我以后的工作、学习和生

9、活中。五、附录 附录1:元件清单元件名称型号数量单片机最小开发板STC89C521电阻10K1按键5数码管2位一体共阳3集成块74LS245三极管90151蜂鸣器1电阻1K2电阻1001电阻2.7K4电阻3308集成块74LS071AC/DC(5V/1A)电源1单排插针 402双排插针 4029X15cm万用板(3连孔)1杜邦线30附录2:完整的连接图附录3:程序编程#include#include#define uchar unsigned char #define uint unsigned int /*七段共阴和显示定义*/此表为LDE的字模,共阳数码管0-9uchar code dis

10、pcode=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /段码控制/*定义并初始化变量*/uchar seconde=15; /秒uchar minite=0; /分uchar hour=0; /时uchar mstcnt=0; /定时器计数,定时50ms,mstcnt满20,秒加1uchar shi=0; /闹铃功能uchar fen=0;uchar bjcs ; / 报警次数uchar c;sbit P10=P10; /second调整定义sbit P11=P11; /minite调整定义sbit P12=P12;/hour调整定义

11、sbit P15=P15;/整点报时sbit P13=P13;/闹铃功能,调整时间sbit P16=P16;/调整时sbit P17=P17;/调整分sbit P14=P14;/关闭闹铃/*延时子程序 */void delay (uint k)uchar j;while(k-)!=0)for(j=0;j59) seconde=59; minite-; if(minite59) minite=59; hour- ; if(hour23) hour=0;minite=0;seconde=0; /*定时闹钟*/void dingshi(void) if(P13=0) /按信P13不松,显示闹铃设置界

12、面,分别按住P16、P17设置闹铃时间 P2=0Xfb;P0=dispcodeseconde%10; /秒个位delay(1);P2=0Xf7;P0=dispcodeseconde/10; /秒十位delay(1);P2=0Xef;P0=dispcodefen%10; /分个位delay(1);P2=0Xdf;P0=dispcodefen/10; /分个位delay(1);P2=0Xbf;P0=dispcodeshi%10; /时个位delay(1);P2=0Xd7f;P0=dispcodeshi/10; /时十位delay(1); if(P16=0) /设定时 delay(30);if(P1

13、6=0) shi+; if(shi=24)shi=0; delay(250); if(P17=0) /设定分 delay(30);if(P17=0) fen+; if(fen=60) fen=0; delay(250); if(hour=shi)&(minite=fen)&(seconde=0) /闹铃时间到,报警十次 for(bjcs=0;bjcs2;bjcs+) P15=0;delay(10);jian();P15=1;/delay(500); /*整点报警*/void zhengdian (void) if(seconde=0)&(minite=0) /整点报时 P15=0;delay(

14、10);jian();P15=1; /*主函数*/void main(void) P0=0xff; TMOD=0X11; /time0为定时器,方式1 TH0=0X3C; /预置计数初值,50msTL0=0XB0; EA=1; /总中断开 ET0=1; /允许定时器0中断 TR0=1; /开启定时器0while(1) keyscan(); /按键扫描dingshi(); /定时闹钟zhengdian(); /整点报时jian();display(); /显示时间 void timer0(void) interrupt 1 /定时器0方式1,50ms中断一次 TH0=0X3C; /手动加载计数脉冲次数TL0=0XB0;c+;/mstcnt+; /用于计算时间,每隔50ms加1/if(mstcnt=20) /mstcnt满20即为一秒/ / seconde+; /秒加1/ time(); /时间处理/ mstcnt=0; /对计数单元的清零,重新开始计数/ 六、参考文献1李群芳,肖看,张士军单片微型计算机与接口技术电子工业出版社第四版2钟富昭等8051单片机典型模块设计与应用M人民邮电出版社20073陈海宴51单片机原理及应用M北京航空航天大学出版社2010

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号