《自动化专业单片机课程设计.docx》由会员分享,可在线阅读,更多相关《自动化专业单片机课程设计.docx(10页珍藏版)》请在第壹文秘上搜索。
1、单片机课程设计题目:数字时钟的设计姓名:班级:指导老师:1、主要内容:根据单片机课程所学内容,结合其他相关课程知识,设计电子时钟,以加深对单片机知识的理解,锻炼实践动手能力,为以后的毕业设计和工作打下坚实基础。2、基本要求:本设计以MCS51系列单片机为核心,采用常用电子器件设计。要求能显示出分、时、可调整各个时间,可以采用LED显不,也可以采用液晶显不C)MCS-51的引脚说明:MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P
2、3口线复用。现在我们对这些引脚的功能加以说明:MCS-51的引脚说明:MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:-U.EZ Pi IEZ的.?匚马.匚2少1匚H.匚3PI. 口 匚 4RST/VPI3 匚耍 艮 XD% L 二TKDZTu 匚 S也拼L i专IM JFu E TM, I- 21 吼三竺俾* L_g 而/p冏I .EXTAL?端XTALT匚V缉匚23 5 5SV驯
3、nnnrnnnnnn=l=nn4匚39闵272625242322217 ,543 nilfi ? S 乌马吟图3-2单片机的引脚Pin9:RESET/Vpd复位信号复用脚当8052通电时钟电路开始工作在RESET引脚上浮现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从000OH地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器RO-R7)的状态,8052的初始态。七段数码管的引脚图及使用:数码管使用条件:a、段及小数点上加限流电阻
4、。b、使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定。c、使用电流:静态:总电流80mA(每段IomA);动态:平均电流4-5mA峰值电流100mA上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的。1.ED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。右图是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。以共阴式为例,如把阴极接地,在相应段的阳
5、极接上正电源,该段即会发光。固然,LED的电流通常较小,普通均需在回路中接上限流电阻。假如我们将和段接上正电源,其它端接地或者悬空,那末和段发光,此时,数码管显示将显示数字力”。而将、和段都接上正电源,其它引脚悬空,此时数码管将显示“2。其它字符的显示原理类同。系统软件设计流程图这次的数字电子钟设计用到不少子程序,它们的流程图如下所示。主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就
6、加1;如果没有按下,就把时间显示。定时程序设计单片机的定时功能也是通过计数器的计数来实现的,此时的计数脉冲来自单片机的内部,即每一个机器周期产生一个计数脉冲,也就是每经过1个机器周期的时间,计数器加1。如果MCS-52采用的12MHZ晶体,则计数频率为IMHz,即每过IUS的时间计数器加1。这样可以根据计数值计算出定时时间,也可以根据定时时间的要求计算出计数器的初值。MCS-51单片机的定时器/计数器具有4种工作方式,其控制字均在相应的特殊功能寄存器中,通过对特殊功能寄存器的编程,可以方便的选择定时器/计数器两种工作模式和4种工作方式。定时器/计数器工作在方式O时,为13位的计数器,由TLX(
7、X=0.1)的低5位和THX的高8位所构成。TLX低5位溢出则向THX进位,THX计数溢出则置位TCON中的溢出标志位TFX.当定时器/计数器工作于方式1,为16位的计数器。本设计师单片机多功能定时器,所以MCS-51内部的定时器/计数器被选定为定时器工作模式,计数输入信号是内部时钟脉冲,每一个机器周期产生一个脉冲使计数器增Io4.3.1 实时时钟实现的基本方法:时钟的最小计时单位是秒,但使用定时器的方式I,最大的定时时间也只能达到131mso我们可把定时器的定时时间定为50ms。这样,计数溢出20次即可得到时钟的最小计时单位:秒。而计数20次可以用软件实现。秒计时是采用中断方式进行溢出次数的
8、积累,计满20次,即得到秒计时。从秒到分,从分到时是通过软件累加并进行比较的方法来实现的。要求每满1秒,则“秒”单元中的内容加h秒”单元满60则“分”单元中的内容加1;“分”单元满60,则“时”单元中的内容加1;“时”单元满24,则将时、分、秒的内容全部清零。4.3.2 实时时钟程序设计步骤:(1) 选择工作方式,计算初值;(2) 采用中断方式进行溢出次数累计;(3) 从分一一时的计时是通过累加和数值比较实现的;(4) 时钟显示缓冲区:时钟时间在方位数码管上进行显示,为此在内部RAM中要设置显示缓冲区,共6个地址单元。显示缓冲区从左到右挨次存放时、分、秒数值;(5) 主程序:主要进行定时器/计
9、数器的初始化编程,然后反复调用显示子程序的方法等待中断的到来。(6) 中断服务程序:进行计时操作(7)加1子程序:用于完成对时、分、秒的加操作,中断服务程序在秒、分、时加1时共有三种条调用加1产程序,包括三项内容:合字、加1并进行十进制调整分字1源程序如下:S_SETBITPLO;数字钟秒控制位M.SETBITP1.1;分钟控制位H_SETBITP1.2;小时控制位D_SETBITP1.3;天控制位SECONDEQU30HMINUTEEQU31HHOUREQU32HDAYEQU33HTCNTEQU34HORGOOHSJMPSTARTORGOBHLJMPINT.T0START:MOVDPTR,#
10、TABLEMOVHOUR,#。;初始化MOVMINUTE,#0MOVSECOND,#0MOVDAY,#0MOVTCNT,#0MOVTMOD,#01HMOVTH0,#(6553650000)/256淀时50毫MOVTL0,#(65536-500()0)MOD256MOVIE,#82HSETBTRO判断是否有控制键按下,是哪一个键按下Ai:LcalldisplayJNBS_SET,S1JNBM_SET,S2JNBH_SET,S31.JMPAlSI:LCALLDELAY法颤动JBS_SET,A1INCSECOND渺值加J1MOVA5SECONDCJNEA,#60,JO;判断是否加到60秒MOVSEC
11、OND,#01.JMPKlS2:LCALLDELAYJBM.SET,A1Kl:INCMINUTE;分钟值加1MOVA,MINUTECJNEA,#60,Jl;判断是否加到60分MOVMINUTE,#01.JMPK2S3:LCALLDELAYJBH.SET,A1K2:INCHOUR;小时值加1MOVA,HOURCJNEA,#24,J2;判断是否加到24小时MOVHOUR,#01.JMPK3K3:INCDAY;天值加1MOVMINUTE,#0MOVSECOND*1.JMPAl0r.nrnrrfrri.r.f1-r.rJ.r.rr.r.rj.rO.r.f.r.rrj.tr.r.r1-r.rr.rr.r
12、.rj.r.O.r.r.r.;等待按键抬起JO:JBS_SET,A11.calldisplaysjmpjoJl:JBM.SET,A11.calldisplaySJMPJlJ2:JBH_SET,A11.calldisplaySJMPJ2*r小止+tr小)水rrdr中小t小0Orbr小)rrrj”!;定时器中断服务程序,对,分钟和小时的计数INT_T0:MOVMOVINCMOVCJNEINCMOVMOVTHO,#(65536-50000)/256TL0,#(65536-50000)MGD256TCNTA,TCNTA,#15,RETUNE;计时1秒SECONDTCNT,#0A,SECONDCJNEA
13、,#60,RETUNEINCMINUTEMOVSECOND,#0MOVA,MINUTECJNEA,#60,RETUNEINCHOURMOVMINUTE,#0MOVA,HOURCJNEA,#24,RETUNEMOVHOUR,#0MOVMINUTE,#0MOVSECOND,#0MOVTCNT,#0RETUNE:RETI止,o止小,4eoo,ao+oo,布+;显示控制子程序DISPLAY:MOVMOVDIVCLRA,SECoND;显示秒B,#10ABP3.6MOVCA,A+DPTRMOVP2,ALCALLDELAYSETBMOVCLRMOVCP3.6A,BP3.7A,A+DPTRMOVP2,ALCA
14、LLDELAYSETBP3.7MOVA,MINUTE;显示分钟MOVDIVCLRB,#10ABP3.3MOVCA,A+DPTRMOVP2,A1.CALLDELAYSETBP3.3MOVCLRA,BP3.4MOVCA,A+DPTRMOVP2,ALCALLDELAYSETBP3.4CLRP3.2MOVA,#40HMOVP2,A1.CALLDELAYSETBP3.2CLRP3.5MOVA,#40HMOVP2,A1.CALLDELAYSETBP3.5MOVA,HOUR;显示小时MOVB,#10DIVABCLRP3.0MOVCA,A+DPTRMOVP2,A1.CALLDELAYSETBP3.0MOVA,BCLRP3.1MOVCA,A+DPTRMOVP2,A1.CALLDELAYSETBP3.1RETTABLE:DB3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,