两位倒计时器程序(单片机―汇编语言)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档