倒计时时钟汇编代码.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
倒计时时钟汇编代码

;使A按秒减1,数码管显示2位十六进制数,T0、T1结合硬件定时1s,delay1ms则属软件定时 ;心得:从简单组合到复杂,通过仿真发现设计问题,进行不断调试,从而达到想要的目的,另外进一步认识、掌握各指令的作用 /*ORG 0000H SJMP MAIN ORG 0003H SJMP INT0INT ORG 000BH SJMP T0INT ORG 0013H SJMP INT1INT ORG 001BH AJMP T1INT ORG 0030H MAIN: MOV TMOD, MOV TH0,#HIGH(-10000) MOV TL0,#LOW(-10000) MOV TH1,#(-50) MOV TL1,#(-50) MOV A,#0 ;秒赋初值 MOV R3,#0;分钟赋初值 MOV R4,#0;时赋初值 SETB EA SETB ET0 SETB TR0 SETB ET1 SETB TR1 SETB EX0 SETB IT0 SETB EX1 SETB IT1 SJMP $ INT0INT: ;手动按一次加1分钟,满60归0 SETB TR1 ;当计时完毕,重定时时,计数器处于启动状态,以便可重计数 //SETB TR0 INC R3 ;按一次按钮,R3加1 CJNE R3,#60,REE ;不满60,,中断返回,可继续按钮 MOV R3,#0 ;满60分,归0 //MOV A,#59 ;这条指令放前后位置不一样,显示效果出现不一样 REE: RETI INT1INT: ;手动按一次加1小时,满24归0 //MOV A,#59 SETB TR1;当计时完毕,重定时时,计数器处于启动状态,以便可重计数 //SETB TR0 INC R4 CJNE R4,#24,REEE MOV R4,#0 ;满24小时,归0 REEE:RETI T0INT: MOV TH0,#HIGH(-10000) MOV TL0,#LOW(-10000) CPL P3.5 ;取反两次,可使T1计数一次 JB TR1,K ;在倒计时完毕时,计数器T1被关闭了,所以在这里当判断T1被关闭了,各个数码管显示0,TR1如果是高电频则执行跳到K处,相反表示计时时间到,各位数码管显示“0” MOV A,#0 MOV R3,#0 MOV R4,#0 K: CALL BtoD ;先二进制转十进制 CALL DISPLAY ;后显示 RETI T1INT: ;每隔一秒打开中断 SETB P1.0 ;定时未到,蜂鸣器不工作 CJNE A,#0,S ;A非0,跳转S执行 SJMP Y ;A为0,跳转Y执行 S: ;A即秒位,A非0减一 DEC A ;A按秒减1 CJNE A,#0,RE Y: ;A为0,再判断R3(分钟位)、R4(小时位)是否为0 CJNE R3,#0,Q ;分钟位为非0,跳转Q执行 CJNE R4,#0,R ;分钟位为0,小时位为非0,跳转R执行 CLR TR1 ;R4小时位为0(判断到此,时分秒都为0),倒计时完毕,关闭T1计数,不关闭T0(计时10ms,扫描数码管一次),是因为要显示“00.00.00” //CLR TR0 ;不能关闭 CPL P1.0 ;蜂鸣器响应,倒计时到,响应 RETI Q: ;前面判断到A(秒)为0,R3(分)为非0,因此,R3减1分钟,增加60秒(59按秒减一直到0共计时60秒) MOV A,#59 ; DEC R3 ; RETI R: ;R4小时位为非0,分钟位由0变为59分,秒位也由0变为59秒,R4减一小时 MOV R3,#59 ; MOV A,#59 DEC R4 RETI RE:RETI BtoD: ;二进制数转十进制数,将每位数按顺序存放显存,便于动态输出 PUSH ACC ;秒 MOV B,#10 DIV AB ;A除以B(10);商存A,余数存B MOV 41H,A ;将商存在地址为41H的寄存器处 MOV 40H,B ;将商存在地址为42H的寄存器处 MOV A,R3 ;分 MOV B,#10 DIV AB MOV 43H,A MOV 42H,B MOV A,R4 ;时 MOV B,#10 DIV AB MOV 45H,A MOV 44H,B POP ACC RET DISPLAY: PUSH ACC MOV DPTR,#TAB ;送段码表地址 MOV R1,#40H ;赋初值,将数字的显存地址赋R1 MOV R2, ;赋初值,将位选数值赋R2 LOOP

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档