at89c2051定时电路的改进
(1)设置键:在倒计时模式下,按此键停止倒计时,进入设置状态;如果该键已经处于设置状态,则该键无效。
(2)增量键:设置状态时,每按一次增量键,初始值的数字增加1。
(3)减量键:设置状态时,每按一次减量键,初始值的数字减少1。
(4)确认键:设置状态时,按下该键后,单片机将倒计时,并根据新的初始值显示倒计时数。如果已经处于计时状态,此键无效。
时间?EQU?60H
旗帜?EQU?61H
KEY_R_1?EQU?P3.0
KEY_R_2?EQU?P3.1
KEY_R_3?EQU?P3.2
KEY_R_4?EQU?P3.3
D_FLAG?EQU?62H
ORG?0000小时
SJMP?开始
ORG?000BH
LJMP?定时器0中断
ORG?0030小时
开始:
MOV?TMOD,#01H
MOV?TH0,#3CH
MOV?TL0,#0B0H
SETB?电子艺界游戏公司
SETB?ET0
CLR?TR0
MOV?一,#00
MOV?D_FLAG,A
主要:
LCALL?按键扫描
MOV?a,D_FLAG
CJNE?a,#01H,DIS
LCALL?显示1
LJMP?主要的
DIS:
LCALL?展示
LJMP?主要的
按键扫描:
MOV?一、旗帜
CJNE?a,#1,KEY_2
CLR?C
MOV?c,KEY_R_1
JC?关键_2
LCALL?延迟20毫秒
MOV?c,KEY_R_1
JC?关键_2
JNB?KEY_R_1,$
CLR?TR0
MOV?一,#00
MOV?D_FLAG,A
MOV?时间,A
KEY_2:
CLR?C
MOV?c,KEY_R_2
JC?关键_3
LCALL?延迟20毫秒
MOV?c,KEY_R_2
JC?关键_3
MOV?一、时间
十二月?A
CJNE?a,#255,KEY_2_E
MOV?一、99号
MOV?时间,A
JNB?KEY_R_2,$
钥匙_2_E:
MOV?时间,A
JNB?KEY_R_2,$
关键3:
CLR?C
MOV?c,KEY_R_3
JC?关键_4
LCALL?延迟20毫秒
MOV?c,KEY_R_3
JC?关键_4
MOV?一、时间
INC?A
CJNE?a,#100,KEY_3_E
MOV?答,#0
MOV?时间,A
JNB?KEY_R_3,$
钥匙_3_E:
MOV?时间,A
JNB?KEY_R_3,$
关键4:
CLR?C
MOV?c,KEY_R_4
JC?钥匙_退出
LCALL?延迟20毫秒
MOV?c,KEY_R_4
JC?钥匙_退出
JNB?KEY_R_4,$
SETB?TR0
MOV?a,#0FH
MOV?旗帜,A
关键退出:
浸水使柔软
显示:
MOV?一、时间
MOV?b,#10
DIV?AB型血
MOV?甲,乙
MOV?DPTR,#标签
MOVC?一、@一+DPTR
MOV?P0,A
SETB?P2.1
CLR?P2.0
LCALL?延迟1毫秒
CLR?P2.0
CLR?P2.1
MOV?一、时间
MOV?b,#10
DIV?AB型血
MOV?DPTR,#标签
MOVC?一、@一+DPTR
MOV?P0,A
SETB?P2.0
CLR?P2.1
LCALL?延迟1毫秒
CLR?P2.0
CLR?P2.1
浸水使柔软
显示1:
MOV?R2,第40名
显示1_LOOP1:
MOV?答,#0
MOV?DPTR,#标签
MOVC?一、@一+DPTR
MOV?P0,A
SETB?P2.1
CLR?P2.0
LCALL?延迟1毫秒
CLR?P2.0
CLR?P2.1
MOV?答,0
MOV?DPTR,#标签
MOVC?一、@一+DPTR
MOV?P0,A
SETB?P2.0
CLR?P2.1
LCALL?延迟1毫秒
CLR?P2.0
CLR?P2.1
LCALL?按键扫描
DJNZ?R2,显示1_LOOP1
MOV?R2,第20位
显示1_LOOP:
LCALL?延迟50毫秒
LCALL?按键扫描
SETB?P2.0
SETB?P2.1
DJNZ?R2,显示1_LOOP
浸水使柔软
延迟20毫秒:;错误?0我们
MOV?R6,#0D7H
DL0:
MOV?R5,#2DH
DJNZ?R5,美元
DJNZ?R6,DL0
nototherwiseprovided(for)除非另有规定
nototherwiseprovided(for)除非另有规定
浸水使柔软
延迟1毫秒:;错误?0我们
MOV?R4,#01H
DD1:
MOV?R6,#8EH
DD0:
MOV?R5,#02H
DJNZ?R5,美元
DJNZ?R6,DD0
DJNZ?R4,DD1
浸水使柔软
延迟50毫秒:;错误?0我们
MOV?R6 # 0ADH
DG0:
MOV?R5,#8FH
DJNZ?R5,美元
DJNZ?R6,DG0
浸水使柔软
结束