ORG 00H
AJMP MAIN
ORG 0BH
AJMP T0INT
ORG 30H
MAIN:
MOV TMOD,#01H ;定时器0工作方式1
MOV TH0,#3CH ;50ms中断
MOV TL0,#0B0H
SETB EA
SETB ET0
MOV R0,#10 ;500ms
KEY:
ACALL DISP ;这里作防抖用,一般取10ms 。实物时,可在DISP子程序中多次调用,得到10ms延时
JB P2.0,$-2
ACALL DISP
JNB P2.0,$-2
SETB TR0
INC R1 ;R1为按键按下次数
CJNE R1,#2,KEY0
AJMP KEY
KEY0:
MOV R1,#1
AJMP KEY
DISP:
CJNE R1,#1,DISP0
AJMP DISP1
DISP0:
CJNE R1,#2,RT
AJMP DISP2
DISP1: ;一起闪
JNB F0,DISP11 ;F0为0.5S到标志,每0.5S求反一次
SETB P1.0
SETB P1.1
RET
DISP11:
CLR P1.0
CLR P1.1
RT:
RET
DISP2: ;交替闪
JNB F0,DISP21 ;F0为0.5S到标志,每0.5S求反一次
SETB P1.0
CLR P1.1
RET
DISP21:
CLR P1.0
SETB P1.1
RET
T0INT:
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ R0,RTI
MOV R0,#10
CPL F0
RTI:
RETI
END
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |