KEY0 EQU P2.0
KEY1 EQU P2.1
KEY2 EQU P2.2
KEY3 EQU P2.3
KEY4 EQU P2.4
KEY5 EQU P2.5
KEY6 EQU P2.6
KEY7 EQU P2.7
LED0 EQU P1.0
LED1 EQU P1.1
LED2 EQU P1.2
LED3 EQU P1.3
LED4 EQU P1.4
LED5 EQU P1.5
LED6 EQU P1.6
LED7 EQU P1.7
K0:JNB KEY0,L7;为零(按)则跳转,
K1:JNB KEY1,L6;
K2:JNB KEY2,L5;
K3:JNB KEY3,L4;
K4:JNB KEY4,L3;
K5:JNB KEY5,L2;
K6:JNB KEY6,L1;
K7:JNB KEY7,L0;
SJMP K0
L7:CLR LED7;亮
SJMP K1
L6:CLR LED6;亮
SJMP K2
L5:CLR LED5;亮
SJMP K3
L4:CLR LED4;亮
SJMP K4
L3:CLR LED3;亮
SJMP K5
L2:CLR LED2;亮
SJMP K6
L1:CLR LED1;亮
SJMP K7
L0:CLR LED0;亮
SJMP K0
END
2 键盘keypad读取,用二进制方法显示在led7-0。
ORG 0000H
AJMP MAIN
ORG 0050H
MAIN:
MOV P0,#0F0H
LOOP:
MOV P0,#0F0H
MOV A,P0
CJNE A,#10110000B,AA1
AJMP A0
AA1:
CJNE A,#11010000B,AA2
AJMP A1
AA2:
CJNE A,#11100000B,AA3
AJMP A2
AA3:
MOV P1,#0FFH
AJMP LOOP
A0: ; LED 1 4 7
MOV P0,#0FH
MOV A,P0
CJNE A,#00000111B,LED4
MOV P1,#11111110B ; 1
LED4:
CJNE A,#00001011B,LED7
MOV P1,#11111011B ;4
LED7:
CJNE A,#00001101B,LOOP
MOV P1,#11111000B ;7
AJMP LOOP
A1:
; LED 2 5 8 0
MOV P0,#0FH
MOV A,P0
CJNE A,#00000111B,LED5
MOV P1,#11111101B ; LED2
LED5:
CJNE A,#00001011B,LED8
MOV P1,#11111010B ;LED5
LED8:
CJNE A,#00001101B,LED0
MOV P1,#11111000B ;LED8
LED0:CJNE A,#00001110B,LOOP
MOV P1,#11111111B ;LED0
AJMP LOOP
A2: ; LED 3 6 9
MOV P0,#0FH
MOV A,P0
CJNE A,#00000111B,LED6
MOV P1,#11111100B ; LED3
LED6:
CJNE A,#00001011B,LED9
MOV P1,#11111001B ; LED6
LED9:
CJNE A,#00001101B,LOOP
MOV P1,#11110111B ; LED9
AJMP LOOP
END
3 键盘keypad读取,显示在7段数码管,所以数码管显示同样的数字。
ORG 0000H
AJMP MAIN
ORG 0050H
MAIN:
MOV P0,#0F0H
MOV P1,#0FFH
LOOP:
MOV P0,#0F0H
MOV A,P0
CJNE A,#10110000B,AA1
AJMP A0
AA1:
CJNE A,#11010000B,AA2
AJMP A1
AA2:
CJNE A,#11100000B,AA3
AJMP A2
AA3:
MOV P1,#0FFH
AJMP LOOP
A0: ; LED 1 4 7
MOV P0,#0FH
MOV A,P0
CJNE A,#00000111B,LED4
MOV R1,#1
MOV DPTR,#TABLE
MOV A,R1
MOVC A,@A+DPTR
MOV P1,A ;LED1
AJMP LOOP
LED4:
CJNE A,#00001011B,LED7
MOV R1,#4
MOV DPTR,#TABLE
MOV A,R1
MOVC A,@A+DPTR
MOV P1,A ;LED4
AJMP LOOP
LED7:
CJNE A,#00001101B,LOOP
MOV R1,#7
MOV DPTR,#TABLE
MOV A,R1
MOVC A,@A+DPTR
MOV P1,A ;LED7
AJMP LOOP
A1:
; LED 2 5 8 0
MOV P0,#0FH
MOV A,P0
CJNE A,#00000111B,LED5
MOV R1,#2
MOV DPTR,#TABLE
MOV A,R1
MOVC A,@A+DPTR
MOV P1,A ; LED2
AJMP LOOP
LED5:
CJNE A,#00001011B,LED8
MOV R1,#5
MOV DPTR,#TABLE
MOV A,R1
MOVC A,@A+DPTR
MOV P1,A ;LED5
AJMP LOOP
LED8:
CJNE A,#00001101B,LED0
MOV R1,#8
MOV DPTR,#TABLE
MOV A,R1
MOVC A,@A+DPTR ;LED8
MOV P1,A
AJMP LOOP
LED0:
CJNE A,#00001110B,LOOP
MOV R1,#0
MOV DPTR,#TABLE
MOV A,R1
MOVC A,@A+DPTR ;LED0
MOV P1,A
AJMP LOOP
A2: ; LED 3 6 9
MOV P0,#0FH
MOV A,P0
CJNE A,#00000111B,LED6
MOV R1,#3
MOV DPTR,#TABLE
MOV A,R1
MOVC A,@A+DPTR ; LED3
MOV P1,A
AJMP LOOP
LED6:
CJNE A,#00001011B,LED9
MOV R1,#6
MOV DPTR,#TABLE
MOV A,R1
MOVC A,@A+DPTR ; LED6
MOV P1,A
AJMP LOOP
LED9:
CJNE A,#00001101B,A7
MOV R1,#9
MOV DPTR,#TABLE
MOV A,R1
MOVC A,@A+DPTR ; LED9
MOV P1,A
A7:
AJMP LOOP
TABLE:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
4动态在7段数码管上显示自己的学号最后4位。
ORG 0100
TABLE: DB 0C0h,0F9H,0A4H,0b0H,99H,92H,82H,0F8H,80H,90H
ORG 0000H
LJMP MAIN
ORG 0200H
MAIN: MOV DPTR,#TABLE
M1: SETB P3.3
SETB P3.4
MOV A,#0
MOVC A,@A+DPTR ;
MOV P1,A
LCALL DELAY
MOV P1,#0FFH
CLR P3.3
MOV A,#0
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
MOV P1,#0FFH
CLR P3.4
SETB P3.3
MOV A,#0
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
MOV P1,#0FFH
CLR P3.3
MOV A,#5
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY
MOV P1,#0FFH
LJMP M1
DELAY: MOV R5,#10
DJNZ R5,$
RET
END



