1、郑州科技学院单片机课程设计题目智能定时器学生姓名专业班级通信工程班学号院(系)信息工程学院指导教师完成时间年月日目录1课程设计的目的12课程设计的任务与要求13设计方案与论证131显示方案的论证与选择24设计原理及功能说明241系统电路总体框图25单元电路的设计351复位电路352时钟电路453按键电路设计454显示子系统电路56软件设计661程序功能描述与设计思路662程序流程图67电路的仿真测试88总结8参考文献10附录1总体电路原理图11附录2元器件清单12附录3实物图13附录4源程序1411课程设计的目的(1)掌握PROTEUS和KEILL的使用;(2)掌握电路设计的一般方法;(3)掌
2、握电路仿真的过程;(4)提高查阅资料的能力和撰写论文报告的能力;(5)提高分析问题、解决问题的能力。2课程设计的任务与要求随着时代的进步,电子行业的发展,定时器的应用也越来越广泛,单片机以其强大的功能,成为许多功能电子产品的首选。本次智能定时器的设计任务就是制作一个采用AT89C51单片机实现最大24小时倒计时的定时器。我们的设计要求用黄色的LED代表秒针跳动,用晶体数码管显示分钟和小时。可以设置倒计的时间以及具有复位功能。3设计方案与论证本任务的要求设计制作一个定时控制开关接通或断开的作品,跟据题目要求分析,我们得到基本思路,如图31所示按键定时屏幕显示执行模块中断判断定时时间到没是否图31
3、智能定时器总体电路框图231显示方案的论证与选择方案1利用LCD液晶屏进行显示。液晶屏看着美观,可以显示文字和字符,价格比较贵操作难度比较比较大,编程难度比较大。方案2利用数码管显示。数码管价格比较便宜,操作方便简单,显示数字更直观。综合以上二种方案,考虑到价格问题故选择方案2。4设计原理及功能说明41系统电路总体框图综合以上各模块的电路方案的对比与选择,系统的总方案最终确定如图41所示STC89C52单片机按键定时数码管显示中断减一秒,判断定时时间到没如果时间到调用执行程序图41系统电路总体框图总体方案描述本系统可通过按键输入初始定时时间,当输3入完毕单片机内部的记时中断开始计时,数码管开始
4、显示设定的时间,当达到定时时间时计时中断调用执行程序来执行所要执行的命令,最终达到定时通断。5单元电路的设计51复位电路当在STC89C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作若该引脚持续保持高电平,单片机就处于循环复位状态。复位电路通常采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充放电来实现的。只要VCC的上升时间不超过1MS,就可以实现自动上电复位。除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST9端与电源VCC接通而
5、实现的。按键手动复位电路见图51。时钟频率用110592MHZ时C取10UF,R取10K。XTAL218XTAL119ALE30EA31PSEN29RST9P00/AD039P01/AD138P02/AD237P03/AD336P04/AD435P05/AD534P06/AD633P07/AD732P101P112P123P134P145P156P167P178P30/RXD10P31/TXD11P32/INT012P33/INT113P34/T014P37/RD17P36/WR16P35/T115P27/A1528P20/A821P21/A922P22/A1023P23/A1124P24/A
6、1225P25/A1326P26/A1427U1AT89C51R110KC122UFR2200R图51复位电路图452时钟电路STC89C51单片机的时钟信号通常有两种方式产生一是内部时钟方式,二是外部时钟方式。内部时钟方式如图52所示。在STC89C51单片机内部有一振荡电路,只要在单片机的XTAL118和XTAL219引脚外接石英晶体简称晶振,就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图55中电容C1和C2的作用是稳定频率和快速起振,电容值在530PF,典型值为30PF。晶振CYS的振荡频率范围在1212MHZ间选择,典型值为12MHZ和6MHZ。图52时钟电路图53按键电路设计X
7、TAL218XTAL119ALE30EA31PSEN29RST9P00/AD039P01/AD138P02/AD237P03/AD336P04/AD435P05/AD534P06/AD633P07/AD732P101P112P123P134P145P156P167P178P30/RXD10P31/TXD11P32/INT012P33/INT113P34/T014P37/RD17P36/WR16P35/T115P27/A1528P20/A821P21/A922P22/A1023P23/A1124P24/A1225P25/A1326P26/A1427U1AT89C51图53按键电路图5按键电路原理
8、的描述当按键按下时给单片机一个低电平信号,然后让单片机执行按下时的命令。当按下S1一次时,可以进行小时的调整,S2按下两次可进行分钟的调整,S3按下三次开始倒计时,当定时时间到时P30端口输出低电平。S2加一按键判断S1按下的次数进行加一,S3减一按键判断S1按下次数进行减一。54显示子系统电路数码管显示电路介绍本电路采用数码管,因为对于一般的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性相对较差,对于具有驱动电路和微处理器接口的液晶显示模块,一般多采用并行接口,对微处理器的接口要求较多,占用资源多,另外,89S51本身无专门的液晶驱动接口,因此,本设计采用数码管显示方式
9、,数码管作为一种主动的显示器件,具有亮度高,价格便宜等优点。下图55为数码管显示电路显示器的驱动电路,三极管的集电极接数码管的位选引脚,基极接51单片机的引脚射极接电源,分压电阻接一个47K电阻,如图55所示XTAL218XTAL119ALE30EA31PSEN29RST9P00/AD039P01/AD138P02/AD237P03/AD336P04/AD435P05/AD534P06/AD633P07/AD732P101P112P123P134P145P156P167P178P30/RXD10P31/TXD11P32/INT012P33/INT113P34/T014P37/RD17P36/W
10、R16P35/T115P27/A1528P20/A821P21/A922P22/A1023P23/A1124P24/A1225P25/A1326P26/A1427U1AT89C51R3200R4200R5200R6200R7200R8200R9200Q1PNPQ2PNPQ3PNPQ4PNPR1010RR1110RR1210RR1310R图55数码管显示电路66软件设计61程序功能描述与设计思路1、程序功能描述根据要求软件部分主要实现定时时间的判断、显示、执行到时间的命令。1)按键实现功能设置定时时间。2)显示部分显示剩下的设定时间。3执行部分到达设定时间是执行红灯亮的指示。2、程序设计思路通过
11、程序中定义四个寄存器分别存储时、分、秒、按键按下次数,记录每次的数值,在显示部分利用除法分出十位和个位,让数码管显示小时和分钟,秒钟利用发光二极管的闪亮代表秒表的变化。62程序流程图1、主程序图及按键流程图显示流程图开始显示部分按键检测图61主程序流程图7S1NUMB1加1,关中断NUMB1为3结束NUMB1为0S2S3NUMB1为1NUMB1为1分钟加1小时加1分钟减1小时减1是是是否否是是否否NUMB1清零,开中断是否否否是开始图62按键检测流程图开始小时十位显示小时个位显示分钟十位显示分钟个位显示结束图63显示模块流程图87电路的仿真测试在电路和软件设计成功后我们进行了仿真实验,在电脑仿
12、真器件上我们进行修改和仿真,开始的时候我们的数码管显示没有那么的稳定,经过老师的指导我们知道是因为在程序设计时进行位选的时候时间太长的缘故,我们进行程序的调试和修改,虽然修改是比较麻烦的但是我们最后调试成功了,心里非常的开心。8总结单片机的课程学习已经结束了,三十理论纯属理论,没有与实践的结合总让我们学的不踏实,感觉没有达到学以致用的效果。所庆幸的是在课程介绍考试之后,老师给我们安排了这次单片机课程设计,给了我们学以致用的做好的实践。关于这次课程设计,我们花费了比较多的心思,既是对课程理论内容的一次复习和巩固,还让我们丰富了更多与该专业相关的其他知识,比如软件应用等,在摸索中学习,在摸索中成长
13、,在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获,在真正涉及之前我们做了相当丰富的准备,首先巩固一下课堂理论,再一遍熟悉课程知识的构架,然后结合加以理论分析、总结,有了一个清晰的思路和一个完整的软件流程图之后才着手设计。在设计程序时,我们不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;养成注释的好习惯是非常必要的,一个程序的完美与否不仅仅是实现功能,而是该让人一看就能明白你的思路,这样也能为资料的保存和交流提供了方便;我觉得在设计过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免9下次再碰到同样的问题的课程设计又出错
14、了。除了对此设计的准备工作之外,我们还学到了很多平时难得的东西,首先是团队协作,在这次设计当中,难免和同学产生观点和意见的分歧,以及分工明细、时间安排等不合理,通过这次设计,我们体会到了团结合作的重要性及力量之强大,还有让我们处理事情更加有条理,思路更加清晰明了了,发现、提出、分析、解决问题和实践能力的提高都将受益于我再以后的学习、工作和生活中。此次的设计,其实也是我们所学知识的一次综合运用,让我深深的认识到了学习单片机要有一定的基础,要有电子技术方面的数字电路和模拟电路等方面的理论基础,特别是数字电路;也要有编程语言的汇编或C语言。要想成为单片机高手,我们首先要学好汇编语言,然后转入C语言学
15、习,所以我们不能学到后面就忘了前面的知识,更应该将所学的知识紧紧的结合在一起,综合运用,所谓设计,就是要求创新,只有将知识综合运用起来才能真正的设计好。10参考文献1李华MCS51系列单片机使用接口技术北京北京航空航天大学出版社19942李广弟单片机基础北京北京航空航天大学出版社19943胡学海单片机原理及应用系统设计M北京京电子工业出版社20054何立民MCS51系列单片机应用系统设计系统配置与接口技术M北京北京航空航天大学出版社19995潘新民,王燕芳单片微型计算机实用系统设计北京人民邮电出版社19936张积东单片机51/98开发与应用北京电子工业出版社19947邹逢兴计算机硬件技术基础实
16、验教程高等教育出版社199411附录1总体电路原理图XTAL218XTAL119ALE30EA31PSEN29RST9P00/AD039P01/AD138P02/AD237P03/AD336P04/AD435P05/AD534P06/AD633P07/AD732P101P112P123P134P145P156P167P178P30/RXD10P31/TXD11P32/INT012P33/INT113P34/T014P37/RD17P36/WR16P35/T115P27/A1528P20/A821P21/A922P22/A1023P23/A1124P24/A1225P25/A1326P26/A1
17、427U1AT89C51R110KC122UFR2200RR3200R4200R5200R6200R7200R8200R9200Q1PNPQ2PNPQ3PNPQ4PNPR1010RR1110RR1210RR1310RC230PFC330PFR14120R15120D1LEDBIRYD2LEDBIRY12附录2元器件清单名称器件数AT89S52单片机芯片1个四位共阳LED数码管1个排阻10K1个02K电阻2个2K电阻1个47K电阻4个8055三极管4个30PF电容2个12MHZ晶振电容1个复位开关4个22UF1个40引脚插座1个发光二极管2个排插1组13附录3实物图14附录4源程序ORG0000
18、HLJMPMAINORG000BHLJMPTIMEORG30HHOUR1EQU10HMIN1EQU14HSEC1EQU18HCOUNTEQU20HNUM1EQU22HL4EQU26HS1BITP11S2BITP13S3BITP15TIMEEPR0EQU30HMAINMOVDPTR,TABLEMAIN1MOVSP,50HMOVP2,00HSEARTMOVHOUR1,00HMOVMIN1,00HMOVSEC1,00HMOVCOUNT,00HMOVNUM1,00HMOVTMOD,01HMOVTH0,03CHMOVTL0,0B0HSETBEASETBET0SETBTR0LOOPLCALLDISPLAY
19、1LCALLSETIMELJMPLOOP判断定时开关是否按下SETIME15LL1JBS1,KK1LCALLDELAY10JBS1,KK1JNBS1,CLRTR0INCNUM1MOVA,NUM1CJNEA,3,JSSETBTR0MOVNUM1,0RETKK1MOVA,NUM1CJNEA,0,NEXT2RETNEXT2JBS2,KK3LCALLDELAY10JBS2,KK3JNBS2,MOVA,NUM1CJNEA,1,FENHINCHOUR1MOVA,HOUR1CJNEA,24,JSMOVHOUR1,0LCALLDISPLAY1RETFENHINCMIN1MOVA,MIN1CJNEA,60,JS
20、MOVMIN1,0INCHOUR1MOVA,HOUR1CJNEA,24,JSMOVHOUR1,0LCALLDISPLAY1KK3JBS3,JSLCALLDELAY1016JBS3,JSJNBS3MOVA,NUM1CJNEA,1,MM2DECHOUR1MOVA,HOUR1CJNEA,0,JSMOVHOUR1,0LCALLDISPLAY1MM2DECMIN1MOVA,MIN1CJNEA,1,JSMOVMIN1,0DECHOUR1MOVA,HOUR1CJNEA,1,JSMOVHOUR1,0JSLCALLDISPLAY1RET驱动电路TIMEPROCLRP31CLRP30RETMIAOCPLP33RE
21、T显示程序DISPLAY1PUSHACCPUSHPSWMOVA,HOUR1MOVB,10DIVABMOVP2,0FEHMOVCA,ADPTRMOVP0,ALCALLDELAY5MOVP2,0FDHMOVA,B17MOVCA,ADPTRMOVP0,ALCALLDELAY5MOVA,MIN1MOVB,10DIVABMOVP2,0FBHMOVCA,ADPTRMOVP0,ALCALLDELAY5MOVP2,0F7HMOVA,BMOVCA,ADPTRMOVP0,ALCALLDELAY5POPPSWPOPACCRET延时10毫秒程序DELAY10MOVR6,20D1MOVR7,248DJNZR7,DJNZ
22、R6,D1RET延时程序2DELAY5MOVR5,10DL001MOVR4,248DL111DJNZR4,DL111DJNZR5,DL001RET中断程序TIMEPUSHACCPUSHPSWMOVTH0,03CHMOVTL0,0B0HINCCOUNTMOVA,COUNT18CJNEA,20,RET0MOVCOUNT,0MOVA,SEC1CJNEA,0,HTHTMOVA,MIN1CJNEA,0,HTHT1MOVA,HOUR1CJNEA,0,HTHT2POPPSWPOPACCRETIHTHTDECSEC1LCALLMIAOMOVA,SEC1CJNEA,0,RET0MOVA,MIN1CJNEA,0,RET0MOVA,HOUR1CJNEA,0,RET0LCALLTIMEPROPOPPSWPOPACCRETIHTHT1DECMIN1MOVSEC1,60POPPSWPOPACCRETIHTHT2DECHOUR1MOVSEC1,60MOVMIN1,59RET0POPPSWPOPACCRETITABLEDB0BFH,086H,0DBH,0CFH,0E6HDB0EDH,0FDH,087H,0FFH,0EFHEND