两位倒计时器程序(单片机―汇编语言)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
两位倒计时器程序ORG00H
JMPSTART
ORG30H
START:
MOVP2,#00H;位选置低电平显示00
MOVP3,#0FH;键盘置P
3.4低电平
MOVR4,#0;显示标志显示00
MOVDPTR,#TABLE;
SETBP
0.7
K:
MOVR3,#00H
JNBP
3.0,W1
JNBP
3.1,W2
JNBP
3.2,INT
JMPDISP
W1:JBP
3.0,IN1
MOVR3,#1 JMPDISP
W2:JBP
3.1,IN0
MOVR3,#2 DISP:
JNBP
3.3,START MOVA,R4 MOVB,#10 DIVAB
MOV21H,B DISP1:SETBP
2.1
CLRP
2.0
LCALL DEL
DISP2:MOVA,21H SETBP
2.0
CLRP
2.1
LCALL DEL
CJNER3,#4,K1
DJNZR2,DISP
DJNZR1,DISP
AJMPINT
K1:INCR3
CJNER3,#3,K2
AJMPW2
K2:CJNER3,#2,K
AJMPW1
IN1: CJNER4,#99,ADD1
AJMPSTART
ADD1:INCR4;按键按下或未弹起标志
;判断按键S1是否按下转判断S1按键是否弹起;判断按键S2是否按下转判断S2按键是否弹起;判断按键S3是否按下转倒计时设置子程序;转显示和判断按键S4是否按下
;判断按键S1是否弹起转加1子程序设置;设置按键S1未弹起标志
;转显示和判断按键S4是否按下
;判断按键S2是否弹起转减1子程序设置;设置按键S2未弹起标志
;判断按键S3是否按下转复位;;显示十位
;调用显示和延时子程序
;显示个位
;调用显示和延时子程序
;判断按键S3是否按下否就转判断其他按键按下情况;倒计时显示延时:
0.5msX200=200ms=
0.2s
;倒计时显示延时:
0.5msX2X5+200ms=205ms=
0.205s转倒计时设置子程序
;判断按键按下或未弹起标志加1
;判断按键S2是否按下未弹起否就转判断其他按键按下情况;转继续转判断S2按键是否弹起
;判断按键S1是否按下未弹起否就转判断其他按键按下情况;转继续转判断S1按键是否弹起
;判断当前值是否为99否就转加1子程序(加1子程序设置);复位
;当前值加1(加1子程序);AJMPK;转继续判断是否有按键按下
INT:
MOVR3,#4;设置倒计时标志(倒计时子程序设置)
MOVR2,#200;置显示中循环次数
MOVR1,#5;置显示外循环次数
IN0: CJNER4,#0,SUBB1;判断当前值是否为0否就转减1子程序(减1子程序设置)CJNER3,#4,SUBB0;如果当前值为0判断S3是否按下否就S2按下转减
1AJMPSTART;转复位
SUBB0:MOVR4,#100;100-1=99(0-1=99)
SUBB1:DJNZR4,DISP;当前值减在转显示(减1子程序)
CJNER3,#4,K;判断S3是否按下否就转继续判断是否有按键按下CLRP
0.7;蜂鸣
MOVP2,#00H;位选置0开
MOVP1,#3FH;当前值显示00
MOVR3,#5;置蜂鸣延时次数标志
DELAY:
MOVR7,#250
DELA:
MOVR6,#20
DEL:
MOVCA,@A+DPTR
MOVP1,A
MOVR5,#200
DJNZR5,$;2机周X250X1us/机周=500us=
0.5ms
CJNER3,#5,EXIT;判断是否是蜂鸣的延时不是转中断返回
DJNZR6,DEL;
0.5msX10=5ms
DJNZR7,DELA;5msX200=1000ns=1s AJMPSTART;复位
EXIT:
RET
TABLE:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
END