[Asm] 纯文本查看 复制代码
ORG 00H
AJMP ZHU
ORG 0BH
AJMP JISUAN
ORG 50H
;---------------------------
ZHU:MOV P0,0FFH;数码管显示
MOV P2,00H;数码管扫描
MOV R4,#05H
MOV R5,#03H
MOV R6,#02H
SETB P3.0
SETB P3.1
MOV SP,#100D
MOV TMOD,#00000001B
MOV TL0,#LOW(65536-20000)
MOV TH0,#HIGH(65536-20000)
SETB EA
SETB ET0
MOV R2,#20D
MOV R1,#20D;频率调节变量
SETB TR0
;-------按键扫描--------------------
ZHUAN:LCALL XIANSHI
JNB P3.0,JIA
JNB P3.1,JIAN
AJMP ZHUAN
;-------按键防抖---------------------
JIA:LCALL XIANSHI;延时
JNB P3.0,JIAZ
AJMP ZHUAN
JIAN:LCALL XIANSHI;延时
JNB P3.1,JIANZ
AJMP ZHUAN
;-----按键加----------------------
JIAZ:CJNE R1,#01D,JJ
AJMP DD
JJ:DEC R1
INC R4
CJNE R4,#10D,DD
MOV R4,#0D
J5:INC R5
CJNE R5,#10D,DD
MOV R5,#0D
J6:INC R6
;-----
DD:JNB P3.0,DD
LCALL XIANSHI;延时
JNB P3.0,DD
AJMP ZHUAN
;------按键减-------------------
JIANZ:CJNE R1,#255D,SS
AJMP DD1
SS:INC R1
DEC R4
CJNE R4,#255D,DD1
MOV R4,#10D
DEC R5
CJNE R5,#255D,DD1
MOV R5,#10D
DEC R6
;-----
DD1:JNB P3.1,DD1
LCALL XIANSHI;延时
JNB P3.1,DD1
AJMP ZHUAN
;------显示-------------------------
XIANSHI:MOV R0,#00H
MOV P2,R0
INC R0
MOV DPTR,#SHUJUBIAO
MOV A,R6
MOVC A,@A+DPTR
MOV P0,A
LCALL YAN
MOV P2,R0
INC R0
MOV DPTR,#SHUJUBIAO
MOV A,R5
MOVC A,@A+DPTR
MOV P0,A
LCALL YAN
MOV P2,R0
MOV DPTR,#SHUJUBIAO
MOV A,R4
MOVC A,@A+DPTR
MOV P0,A
LCALL YAN
RET
;-----中断程序--------------------
JISUAN:PUSH ACC
MOV TL0,#LOW(65536-20000)
MOV TH0,#HIGH(65536-20000)
DJNZ R2,FAN
MOV A,R1
MOV R2,A
CPL P1.0
FAN:POP ACC
RETI
;------延时-------------------
YAN:MOV R3,#255D
DJNZ R3,$
RET
SHUJUBIAO:DB 3FH,6H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
END