倒计时时钟汇编代码.doc

倒计时时钟汇编代码.doc

ID:51699084

大小:41.95 KB

页数:5页

时间:2020-03-15

倒计时时钟汇编代码.doc_第1页
倒计时时钟汇编代码.doc_第2页
倒计时时钟汇编代码.doc_第3页
倒计时时钟汇编代码.doc_第4页
倒计时时钟汇编代码.doc_第5页
资源描述:

《倒计时时钟汇编代码.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、;使A按秒减1,数码管显示2位十六进制数,T0、T1结合硬件定时1s,delay1ms则属软件定时;心得:从简单组合到复杂,通过仿真发现设计问题,进行不断调试,从而达到想要的目的,另外进一步认识、掌握各指令的作用/*ORG0000HSJMPMAINORG0003HSJMPINT0INTORG000BHSJMPT0INTORG0013HSJMPINT1INTORG001BHAJMPT1INTORG0030HMAIN:MOVTMOD,#01100001BMOVTH0,#HIGH(-10000)MOVTL0,#LOW(-10000)MOVTH1,#(-50

2、)MOVTL1,#(-50)MOVA,#0;秒赋初值MOVR3,#0;分钟赋初值MOVR4,#0;时赋初值SETBEASETBET0SETBTR0SETBET1SETBTR1SETBEX0SETBIT0SETBEX1SETBIT1SJMP$INT0INT:;手动按一次加1分钟,满60归0SETBTR1;当计时完毕,重定时时,计数器处于启动状态,以便可重计数//SETBTR0INCR3;按一次按钮,R3加1CJNER3,#60,REE;不满60,,中断返回,可继续按钮MOVR3,#0;满60分,归0//MOVA,#59;这条指令放前后位置不一样,显示效

3、果出现不一样REE:RETIINT1INT:;手动按一次加1小时,满24归0//MOVA,#59SETBTR1;当计时完毕,重定时时,计数器处于启动状态,以便可重计数//SETBTR0INCR4CJNER4,#24,REEEMOVR4,#0;满24小时,归0REEE:RETIT0INT:MOVTH0,#HIGH(-10000)MOVTL0,#LOW(-10000)CPLP3.5;取反两次,可使T1计数一次JBTR1,K;在倒计时完毕时,计数器T1被关闭了,所以在这里当判断T1被关闭了,各个数码管显示0,TR1如果是高电频则执行跳到K处,相反表示计时时

4、间到,各位数码管显示“0”MOVA,#0MOVR3,#0MOVR4,#0K:CALLBtoD;先二进制转十进制CALLDISPLAY;后显示RETIT1INT:;每隔一秒打开中断SETBP1.0;定时未到,蜂鸣器不工作CJNEA,#0,S;A非0,跳转S执行SJMPY;A为0,跳转Y执行S:;A即秒位,A非0减一DECA;A按秒减1CJNEA,#0,REY:;A为0,再判断R3(分钟位)、R4(小时位)是否为0CJNER3,#0,Q;分钟位为非0,跳转Q执行CJNER4,#0,R;分钟位为0,小时位为非0,跳转R执行CLRTR1;R4小时位为0(判断

5、到此,时分秒都为0),倒计时完毕,关闭T1计数,不关闭T0(计时10ms,扫描数码管一次),是因为要显示“00.00.00”//CLRTR0;不能关闭CPLP1.0;蜂鸣器响应,倒计时到,响应RETIQ:;前面判断到A(秒)为0,R3(分)为非0,因此,R3减1分钟,增加60秒(59按秒减一直到0共计时60秒)MOVA,#59;DECR3;RETIR:;R4小时位为非0,分钟位由0变为59分,秒位也由0变为59秒,R4减一小时MOVR3,#59;MOVA,#59DECR4RETIRE:RETIBtoD:;二进制数转十进制数,将每位数按顺序存放显存,便

6、于动态输出PUSHACC;秒MOVB,#10DIVAB;A除以B(10);商存A,余数存BMOV41H,A;将商存在地址为41H的寄存器处MOV40H,B;将商存在地址为42H的寄存器处MOVA,R3;分MOVB,#10DIVABMOV43H,AMOV42H,BMOVA,R4;时MOVB,#10DIVABMOV45H,AMOV44H,BPOPACCRETDISPLAY:PUSHACCMOVDPTR,#TAB;送段码表地址MOVR1,#40H;赋初值,将数字的显存地址赋R1MOVR2,#01111111B;赋初值,将位选数值赋R2LOOP:;循环MOV

7、P2,R2;R2数值在P2口输出,以便选通数码管的位MOVA,@R1;将以R1的内容作为地址的数赋给A,“取字”MOVCA,@A+DPTR;以A的内容的地址+段码表地址作位总地址,查找字形“查表”,并将字形对应的数值赋给AMOVP0,A;通过P0口输出CALLDELAY1MS;延时,有一定的占空比,才能显示INCR1;显存地址加1,取下一个数MOVA,R2;位选数值通过A实现,右移一位,(也可左移,看情况)RRAMOVR2,ACJNEA,#11101111B,GOMOVP0,#7FH;动态显示小数点CALLDELAY1MSGO:CJNEA,#1111

8、1011B,GOOMOVP0,#7FHCALLDELAY1MSGOO:CJNEA,#11111011B,GO

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

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

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