单片机控制的倒计时显示器(一)信息工程毕(4)
2013-06-18 02:00
导读:B ET0 ;定时0允许中断 SETB TR0 ;开定时器0 SETB ET1 ;定时1允许中断 MOV R1,#14H;设置循环20次 MOV 30H,#05H;赋显示值 MOV 31H,#00H MOV P2,#0FEH;设位显初位 MOV DPTR,
B ET0 ;定时0允许中断
SETB TR0 ;开定时器0
SETB ET1 ;定时1允许中断
MOV R1,#14H;设置循环20次
MOV 30H,#05H;赋显示值
MOV 31H,#00H
MOV P2,#0FEH;设位显初位
MOV DPTR,#TAB;查表
CLR F0 ;用户标志位清零
MAIN1:MOV A,30H ;
CJNE A,#00H,Q1 ;判30H=0?
MOV A,31H
CJNE A,#00H,Q1 ;判31H=0?
CLR F0 ;30H、31H=0,F0清零
CPL P1.0 ;继电器得电
AJMP Q2
Q1:MOV P1,#0FFH ;使继电器失电
Q2:JB P3.6,L3 ;判有无启动
ACALL LOOP
JB P3.6,L3 ;
ACALL LOOP
JB P3.6,L3
ACALL LOOP
L0:JNB P3.6,L0
CPL F0 ;用户标志位取反
L3:JB F0,L1 ;判F0=1?
CLR TR1 ;关定时1
JB P3.7,MAIN1;判增量键无按下
ACALL LOOP
JB P3.7,MAIN1
ACALL LOOP
L2:JNB P3. 7,L2
CLR C
MOV A,30H
INC A ;(30H)+1
DA A
MOV 30H,A
MOV A,30H
(转载自中国科教评价网www.nseac.com )
CJNE A,#99H,L3;判(30H)=99?
MOV A,31H
CLR C
INC A ;(31H)+1
DA A
MOV 31H,A
AJMP MAIN1
L1:SETB TR1 ;开定时器1
AJMP MAIN1
LT0:JB P2.0,LT1 ;判是否显示个位
MOV A,30H
ANL A,#0FH ;屏蔽十位
MOVC A,@A+DPTR
MOV P0,A ;段显
AJMP LT6
LT1:JB P2.1,LT2 ;判是否显示十位
MOV A,30H
SWAP A ;高低字节转换
ANL A,#0FH;
MOVC A,@A+DPTR
MOV P0,A ;段显
AJMP LT6
LT2:JB P2.2,LT3 ;判是否显示百位
MOV A,31H
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
AJMP LT6
LT3:JB P2.3,LT6 ;判是否显示千位
MOV A,31H
SWAP A
ANL A,#0FH
MOVC A,@A+DPTR
MOV P0,A
MOV A,31H
LT6:MOV A,P2
RL A
MOV P2,A
JB P2.4,L ;判有无显示超位