两位倒计时器程序(单片机―汇编语言)
- 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
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
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;置显示中循环次数
M0VR1,#5;置显示外循环次数
IN0: CJNER4,#0,SUBB1判断当前值是否为0否就转减1子程序(减1子程序设置)CJNER3,#4,SUBB0如果当前值为0判断S3是否按下否就S2按下转减
1AJMPSTART 转复位
SUBB0:MOVR4,#10;0 100-1=99(0-1=99)
SUBB1:DJNZR4,DISP当前值减在转显示(减1子程序)
CJNER3,#4,;判断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,DEL;A 5msX200=1000ns=1s AJMPSTAR;T 复位
EXIT:
RET
TABLE:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
END