该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
ORG 0000H
SJMP M1
ORG 000BH
MOV TH0,R1 ;设置定时器初值
MOV TL0,R0
CPL P3.4 ;输出方波
RETI
************起始程序************************************
M0:MOV R5,#00H
M1:CLR A
MOV C,P1.0;判断是否为按键1
MOV ACC.0,C
JZ DO
MOV C,P1.1;判断是否为按键2
MOV ACC.0,C
JZ RAI
MOV C,P1.2 ;判断是否为按键3
MOV ACC.0,C
JZ MI
MOV C,P1.3
MOV ACC.0,C
JZ FA
MOV C,P1.4
MOV ACC.0,C
JZ SO
MOV C,P1.5
MOV ACC.0,C
JZ LA
MOV C,P1.6
MOV ACC.0,C
JZ XI
MOV C,P1.7
MOV ACC.0,C
JZ M7
LJMP M1
M7:LJMP M2
DO: MOV R1,#0FCH
MOV R0,#44H
MOV R2,#08H
CLR P2.0
LJMP NEXT
RAI:MOV R1,#0FCH
MOV R0,#0ACH
MOV R2,#08H
CLR P2.1
LJMP NEXT
MI:MOV R1,#0FDH
MOV R0,#09H
MOV R2,#08H
CLR P2.2
LJMP NEXT
FA:MOV R1,#0FDH
MOV R0,#34H
MOV R2,#08H
CLR P2.3
LJMP NEXT
SO:MOV R1,#0FDH
MOV R0,#82H
MOV R2,#08H
CLR P2.4
LJMP NEXT
LA:MOV R1,#0FDH
MOV R0,#0C8H
MOV R2,#08H
CLR P2.5
LJMP NEXT
XI:MOV R1,#0FEH
MOV R0,#06H
MOV R2,#08H
CLR P2.6
LJMP NEXT
NEXT:CLR A
MOV TMOD,#01H
MOV IE,#82H
MOV TH0,R1
MOV TL0,R0
SETB TR0
LOOP1:LCALL D200C
DJNZ R2,LOOP1
CLR TR0
MOV A,#0FFH
MOV P2,A
LJMP M1
M5:CJNE R5,#04H,M9
MOV DPTR,#QU
LJMP LOOP
M9:CJNE R5,#05H,M8
MOV DPTR,#LS
LJMP LOOP
M8:CJNE R5,#06H,M10
M10:LJMP M0
M4:CJNE R5,#03H,M5
MOV DPTR,#PL
LJMP LOOP
M3:CJNE R5,#02H,M4
MOV DPTR,#LING
LJMP LOOP
M2:INC R5
CJNE R5,#01H,M3
MOV DPTR,#TAB
LOOP:CPL P2.7
CLR A
MOVC A,@A+DPTR
MOV R1,A
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV R0,A
ORL A,R1
JZ NEXT0
MOV A,R0
ANL A,R1
CJNE A,#0FFH,NEXT3
CLR TR0
MOV R2,04H
LCALL D200C
INC DPTR
LJMP LOOP
NEXT3:MOV TMOD,#01H
MOV IE,#82H
MOV TH0,R1
MOV TL0,R0
SETB TR0
SJMP NEXT2
NEXT0:CLR TR0
MOV A,#0FFH
MOV P2,A
LJMP M1
NEXT2:CLR A
INC DPTR
MOVC A,@A+DPTR
MOV R2,A
LOOP3:LCALL D200C
DJNZ R2,LOOP3
INC DPTR
LJMP LOOP
D200C:MOV R3,#65H
D200B:MOV A,#0FFH
D200A:DEC A
JNZ D200A
DEC R3
CJNE R3,#00H,D200B
RET