绝对真实电子时钟的程序

绝对真实电子时钟的程序

ID:38498790

大小:47.00 KB

页数:4页

时间:2019-06-13

绝对真实电子时钟的程序_第1页
绝对真实电子时钟的程序_第2页
绝对真实电子时钟的程序_第3页
绝对真实电子时钟的程序_第4页
资源描述:

《绝对真实电子时钟的程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、程序12-8:电子时钟的程序(对应图12-33)   S_SETBITP1.0;SECOND按钮位M_SETBITP1.1;MINUTE按钮位H_SETBITP1.2;HOUR按钮位SECONDEQU30H;秒计数值变量 MINUTEEQU31H;分计数值变量 HOUREQU32H;小时计数值变量 TCNTEQU34H;1秒定时计数器ORG00H;起始地址JMPSTARTORG0BH;Timer0中断向量地址JMPINT_T0START:MOVDPTR,#TABLE;装七段数码管段码数据表TABLEMOVHOUR,#0;计数值全部清0M

2、OVMINUTE,#0MOVSECOND,#0MOVTCNT,#0MOVTMOD,#01H;Timer0作定时器,模式1MOVTH0,#(65536-50000)/256;定时50毫秒MOVTL0,#(65536-50000)MOD256MOVIE,#82H;中断使能SETBTR0;启动Timer0;以下是判断SECOND、MINUTE、HOUR按钮是否被按下A1:CALLDISPLAYJNBS_SET,S1;判断SECOND按钮JNBM_SET,S2;判断MINUTE按钮JNBH_SET,S3;判断HOUR按钮JMPA1;循环检测S1

3、:CALLDELAY;去抖动JBS_SET,A1INCSECOND;秒位计数值加1MOVA,SECOND;A=SECONDCJNEA,#60,J0;判断是否到60秒MOVSECOND,#0;如果到了就清0秒位计数值JMPK1;跳到K1段S2:CALLDELAYJBM_SET,A1K1:INCMINUTE;分位计数值加1MOVA,MINUTE;A=MINUTECJNEA,#60,J1;判断是否到60分MOVMINUTE,#0;如果到了就清0分位计数值JMPK2S3:CALLDELAYJBH_SET,A1K2:INCHOUR;小时计数值加1

4、MOVA,HOUR;A=HOURCJNEA,#24,J2;判断是否到24小时MOVHOUR,#0;如果到了就清0秒、分、小时位计数值MOVMINUTE,#0MOVSECOND,#0JMPA1;以下程序等待SECOND、MINUTE、HOUR按钮放开J0:JBS_SET,A1CALLDISPLAYJMPJ0J1:JBM_SET,A1CALLDISPLAYJMPJ1J2:JBH_SET,A1CALLDISPLAYJMPJ2;Timer0中断服务子程序,进行秒、分、小时的计时INT_T0:MOVTH0,#(65536-50000)/256;装

5、计数初始值MOVTL0,#(65536-50000)MOD256INCTCNT;1秒计数器增加1MOVA,TCNT;A=TCNTCJNEA,#20,RETUNE;计时1秒INCSECOND;秒计数器增加1MOVTCNT,#0;清零TCNTMOVA,SECOND;A=SECONDCJNEA,#60,RETUNE;计时60秒INCMINUTE;分计数器增加1MOVSECOND,#0;清零SECONDMOVA,MINUTE;A=MINUTECJNEA,#60,RETUNE;计时60分INCHOUR;小时计数器增加1MOVMINUTE,#0;清

6、零MINUTEMOVA,HOUR;A=HOURCJNEA,#24,RETUNE;计时24小时 MOVHOUR,#0;秒、分、小时计数值清0MOVMINUTE,#0MOVSECOND,#0MOVTCNT,#0RETUNE:RETI;中断服务子程序结束;以下为七段数码管显示的子程序DISPLAY:MOVA,SECOND;A=SECOND,显示秒MOVB,#10;B=10DIVAB;A除以BCLRP3.6;清零P3.6MOVCA,@A+DPTR;七段数码管段码数据装入AMOVP0,A;从P0口输出CALLDELAYSETBP3.6;P3.6置

7、1MOVA,B;A=BCLRP3.7;P3.7清0MOVCA,@A+DPTR;七段数码管段码数据装入AMOVP0,A;从P0口输出CALLDELAYSETBP3.7;P3.7置1CLRP3.5;P3.5清0MOVP0,#40H;显示短线分隔符CALLDELAYSETBP3.5;P3.5置1MOVA,MINUTE;A=MINUTE,显示分MOVB,#10;B=10DIVAB;A除以BCLRP3.3;P3.3清0MOVCA,@A+DPTR;七段数码管段码数据装入AMOVP0,A;从P0口输出CALLDELAYSETBP3.3;P3.3置1M

8、OVA,B;A=BCLRP3.4;P3.4清0MOVCA,@A+DPTR;七段数码管段码数据装入AMOVP0,A;从P0口输出CALLDELAYSETBP3.4;P3.4置1CLRP3.2;P3.2清0MO

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

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

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