ORG 0000H
KEY1 BIT P1.0
KEY2 BIT P1.2
KEY3 BIT P1.4
MAIN:SETB P1.0
SETB P1.2
SETB P1.4
LCALL DISPLAY
KEYSCAN:
JNB P1.0,KEY1
JNB P1.2,KEY2
JNB P1.4,KEY3
RET
KEY1: LCALL DELAY20MS ;调用延时程序,防止键盘的机械抖动
JB P1.0,OUT
CJNE A,#09H,INC1 ;如果当前显示的值未达到9(最大值)则调用inc1指令
MOV A,#0FFH
INC1:INC A
LCALL DISPLAY ;显示当前的值
JNB P1.0, M2 ;判断按键1松开后,再扫描按键否则等待
RET
KEY2:LCALL DELAY20MS
JB P1.2,OUT
CJNE A,#00H,DEC1
MOV A,#0AH
DEC1:DEC A
LCALL DISPLAY
若图片无法显示请联系QQ752018766,四功能键七段显示程序与原理图系统免费,转发请注明源于www.751com.cn
MOV B,#O3H
MUL AB
JMP @A+DPTR
JNB P1.4, M2
RET
M2: SJMP $
OUT: RET
DELAY20MS: ;20毫秒延时程序
MOV R0,#14H
DL1:MOV R1,#0FAH
DL2:NOP
NOP
DJNZ R1,DL1
DJNZ R0,DL2
DISPLAY: ;通过查表显示程序
MOV DPTR,#TAB1
MOVC A,@A+DPTR ;查表
MOV P0,A
ORG 2000H
TAB1:DB C0H F9H A4H B0H 99H
92H 82H F8H 80H 90H ;共阳极
TAB2:LJMP PRG0 ;子程序表
LJMP PRG1
LJMP PRG2
LJMP PRG3
LJMP PRG4
LJMP PRG5
LJMP PRG6
LJMP PRG7
LJMP PRG8
LJMP PRG9
END四功能键七段显示程序与原理图121