- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)