《单片机时钟程序》doc版

《单片机时钟程序》doc版

ID:33162061

大小:77.50 KB

页数:8页

时间:2019-02-21

《单片机时钟程序》doc版_第1页
《单片机时钟程序》doc版_第2页
《单片机时钟程序》doc版_第3页
《单片机时钟程序》doc版_第4页
《单片机时钟程序》doc版_第5页
资源描述:

《《单片机时钟程序》doc版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验五:电子时钟;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AT89C52时钟程序;;;;libinrong2004/05/24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;定时器T0、T1溢出周期为50MS,T0为秒计数用,T1为调整时闪烁用,;P1.0为调整按钮,P1.1为调整时钟,P1.2为调整分钟,P1.3为调整秒钟;P0.0-7口为数码管段选,采用共阳显示管。;P2.1-6为数码管位选。;70-71H秒计时和显示单元;72-73H

2、分显示单元注意:72H放个位数73H放十位数;74-75H小时显示单元;76-77H分计时单元;78-79H小时计时单元;7AH放“熄灭符”数据0aH;位00h放分调整标志;位01h放小时调整标志;位02h放闪烁标志;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;中断入口程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ORG0000H;程序执行开始地址LJMPSTART;跳到标号START执行ORG0003H;外中断0中断程序入口RETI;外中

3、断0中断返回ORG000BH;定时器T0中断程序入口LJMPINTT0;跳至INTTO执行ORG0013H;外中断1中断程序入口RETI;外中断1中断返回ORG001BH;定时器T1中断程序入口LJMPINTT1;跳至INTT1执行ORG0023H;串行中断程序入口地址RETI;串行中断程序返回;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;主程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;START:MOVR0,#70H;清70H-7AH共11

4、个内存单元MOVR7,#0BH;CLEARDISP:MOV@R0,#00H;INCR0;DJNZR7,CLEARDISP;MOV20H,#00H;清20H(标志用)MOV7AH,#0AH;放入"熄灭符"数据MOVTMOD,#11H;设T0、T1为16位定时器;用11.0592M初值是4C00H;用12M初值是3CB0HMOVTL0,#00H;50MS定时初值(T0计时用)MOVTH0,#4cH;50MS定时初值MOVTL1,#00H;50MS定时初值(T1闪烁定时用)MOVTH1,#4cH;50MS定时初值SETBEA;总中

5、断开放SETBET0;允许T0中断SETBTR0;开启T0定时器MOVR4,#14H;1秒定时用初值(50MS×20)START1:LCALLDISPLAY;调用显示子程序jnbP1.1,set_h;此按键是小时加1jnbP1.2,set_M;此按键是分钟加1SJMPSTART1;P1.0口为1时跳回START1set_h:ljmpset_hhset_m:ljmpset_mm;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1秒计时程序;;;;;;;;;;;;;;;;;;;;;;;;;;

6、;;;;;;;;;;;;;;;;;;T0中断服务程序INTT0:PUSHACC;累加器入栈保护PUSHPSW;状态字入栈保护CLRET0;关T0中断允许CLRTR0;关闭定时器T0;用11.0592M初值是4C00H;用12M初值是3CB0HMOVA,#00H;中断响应时间同步修正,要精确调整在这里!!!ADDA,TL0;低8位初值修正MOVTL0,A;重装初值(低8位修正值)MOVA,#4CH;高8位初值修正ADDCA,TH0;MOVTH0,A;重装初值(高8位修正值)SETBTR0;开启定时器T0DJNZR4,OUTT0

7、;20次中断未到中断退出ADDSS:MOVR4,#014H;20次中断到(1秒)重赋初值14hMOVR0,#71H;指向秒计时单元(70H-71H)ACALLADD1;调用加1程序(加1秒操作)MOVA,R3;秒数据放入A(R3为2位十进制数组合)CLRC;清进位标志CJNEA,#60H,ADDMM;ADDMM:JCOUTT0;小于60秒时中断退出ACALLCLR0;大于或等于60秒时对秒计时单元清0MOVR0,#77H;指向分计时单元(76H-77H)ACALLADD1;分计时单元加1分钟MOVA,R3;分数据放入ACLR

8、C;清进位标志CJNEA,#60H,ADDHH;ADDHH:JCOUTT0;小于60分时中断退出ACALLCLR0;大于或等于60分时分计时单元清0MOVR0,#79H;指向小时计时单元(78H-79H)ACALLADD1;小时计时单元加1小时MOVA,R3;时数据放入ACLRC;清进位标

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。