资源描述:
《19.课件十九 数码管时钟电路的设计》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、数码管时钟电路的设计——魏焕东LED数码管时钟电路采用24小时计方式,时、分、秒用六位数码管显示。电路采用AT89C2051单片机,使用5v电源供电,只使用一个按键即可进入调时、省电(不显示LED数码管)和正常显示三种状态。1.时钟电路硬件的设计数码管时钟电路如图图17-10-1所示,其采用动态扫描方式实现,P1口输出段码数据,p3.0~p3.5口作扫描输出,p3。7接按钮开关。为了提供LED数码管的驱动电流,用三极管9012作电源驱动输出。为了提高秒计时器的精度,采用12Mhz晶振。图17-10-1数码管时钟电路2.主程序的设计(1
2、)主程序设计中的计时采用定时器T0中断完成,其余状态循环调用显示子程序,当P3.7口开关按下时,转入调时子程序。系统主程序流程图如图17-10-2示。(2)显示子程序数码管显示的数据存放在内存单元70H~75H中,其中70H~71H存放秒数据,72H~73H存放分数据,74H~75H存放时数据,每一地址单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。显示时,先取出70H~75H某一地址中的数据,然后查得对应的显示用段码从P1口输出。P3口将对应的数码管选中就能显示该地
3、址单元的数据值。(3)定时器T0中断服务程序定时器T0用于时间计时。定时溢出中断周期设为50ms,中断累计20次(即1s)是对秒单元进行加1操作。时间计数单元分别在70H~71H(s)、72H~73H(min)、70H~71H(h),7AH单元内存放“熄灭符”数据(#0AH)。在计数单元采用十进制BCD码计数,满60进位。T0中断服务程序流程图如图17-10-3示。(4)T1中断服务程序T1中断服务程序用于指示调整单元数字的亮闪。在时间调整状态下,没过0。3秒,将对应单元的显示数据换成“熄灭符”数据(#0AH)。这样,在调整时间时,对
4、应调整单元的显示数据就会间隔闪亮。(5)调时功能程序调试功能程序的设计方法是:按下按键,若按下时间小于1秒,进入省电状态(数码管不亮,时钟不停),否则进入调分状态,等待操作,此时计时器停止走动。当再次按下按钮时,若按下时间小于0.5秒则,则时间加1分钟;若按下时间大于0.5秒则进入小时调整状态。在小时调整状态下,当按键按下的时间大于0.5秒退出调整状态,时钟继续走动。开始hi显示单元清零T1.T0设为16位计数器模式允许T0中断调用显示子程序P3.7=0?进入调时程序Yn图二T0中断保护现场1m到秒单元加一=60s?秒单元清零,分加一
5、=60分分单元清零,时加一24h?时单元清零恢复现场,中断返回NNNN图17-10-2图17-10-31.LED数码管时钟显示电路的完整源程序;AT89C2051时钟程序;定时器T0、T1溢出周期为50MS,T0为秒计数用,T1为调整时闪烁用,;P3.7为调整按钮,P1口为字符输出口,采用共阳显示管。;中断入口程序ORG0000H;程序执行开始地址LJMPSTART;跳到标号START执行ORG0003H;外中断0中断程序入口RETI;外中断0中断返回ORG000BH;定时器T0中断程序入口LJMPINTT0;跳至INTTO执行ORG
6、0013H;外中断1中断程序入口RETI;外中断1中断返回ORG001BH;定时器T1中断程序入口LJMPINTT1;跳至INTT1执行ORG0023H;串行中断程序入口地址RETI;串行中断程序返回;;主程序START:MOVR0,#70H;清70H-7AH共11个内存单元MOVR7,#0BH;CLEARDISP:MOV@R0,#00H;INCR0;DJNZR7,CLEARDISP;MOV20H,#00H;清20H(标志用)MOV7AH,#0AH;放入"熄灭符"数据MOVTMOD,#11H;设T0、T1为16位定时器MOVTL0,#
7、0B0H;50MS定时初值(T0计时用)MOVTH0,#3CH;50MS定时初值MOVTL1,#0B0H;50MS定时初值(T1闪烁定时用)MOVTH1,#3CH;50MS定时初值SETBEA;总中断开放SETBET0;允许T0中断SETBTR0;开启T0定时器MOVR4,#14H;1秒定时用初值(50MS×20)START1:LCALLDISPLAY;调用显示子程序JNBP3.7,SETMM1;P3.7口为0时转时间调整程序SJMPSTART1;P3.7口为1时跳回START1SETMM1:LJMPSETMM;转到时间调整程序SET
8、MM;1秒计时程序;T0中断服务程序INTT0:PUSHACC;累加器入栈保护PUSHPSW;状态字入栈保护CLRET0;关T0中断允许CLRTR0;关闭定时器T0MOVA,#0B7H;中断响应时间同步修正ADDA,TL