📄 text1.asm
字号:
PORT1 EQU P1
PORT2 EQU P2
ORG 0H
SJMP MAIN
ORG 0BH
LJMP TIME0
ORG 1BH
LJMP TIME1
ORG 30H
MAIN:CLR TR0
CLR TR1
MOV SP,#4FH
MOV R0,#100
CLR P3.4
LCALL DELAY5
MOV 9H,#0
MOV 0AH,#0
MOV 0BH,#0
MOV 0CH,#0
MOV TMOD,#11H
MOV IE,#8AH
MOV 0DH,#88H
XIAN:JB P3.2,QT1
SETB P3.4
LCALL DELAY1
LCALL DELAY1
JNB P3.2,$
LCALL DELAY1
LCALL DELAY1
LCALL SAO
JZ MAIN
MOV 0DH,A
LJMP SING0
QT1:JB P3.3,QT3
SETB P3.4
LCALL DELAY1
LCALL DELAY1
JNB P3.3,$
LCALL DELAY1
LCALL DELAY1
LCALL SAO
CJNE A,#OBH,QT11
LJMP MAIN
QT11:JC MAIN
CJNE A,#OCH,M1
LCALL DELAY1
LCALL DELAY1
SJMP BIAN
M1:LCALL DELAY1
LCALL DELAY1
LCALL RWX80
SJMP MAIN
BIAN:MOV 0DH,#ODOH
MOV 0BH,#0
LJMP LOOP
QT3:LJMP XIAN
LOOP:CLR TR0
CLR TR1
AAA:JB P3.3,LOOP4
LCALL DELAY1
LCALL DELAY1
MOV 0CH3,#0
LCALL WBAY
LCALL DELAY1
MOV 0DH,#12
LJMP SING0
LOOP4:MOV RO,#4
MOV R3,#11101111B
MOV R2,#11111111B
NLINE:MOV A,R3
MOV PORT1,A
MOV A,PORT1
ORL A,#0F0H
CJNE A,#0FFH,KEYIN
LCALL DELAY1
LCALL DELAY1
MOV A,R3
RL A
MOV R3,A
DJNZ R0,NLINE
LJMP LOOP
KEYIN:LCALL DELAY1
LCALL DELAY1
MOV R2,A
LCALL DELAY1
LCALL TRANF
ANL A,#0FH
SWAP A
MOV 09H,A
SWAP A
CJNE A,#0,ZZZ
CLR TR1
SETB TR0
LJMP ZZZZ
ZZZ:DEC A
MOV 22H,A
CLR C
RLC A
PUSH DPH
PUSH DPL
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV TH1,A
MOV 21H,A
MOV A,22H
CLR C RLC A
INC A
MOVC A,@A+DPTR
POP DPL
POP DPH
MOV TL1,A
MOV 20H,A
MOV TH0,#0C2H
MOV TL0,#0F6H
SETB TR0
SETB TR1
ZZZZ:LCALL NOPEN
CLR TR0
CLR TR1
MOV A,0AH
CLR C
RRC A
CLR C
RRC A
CLR C
RRC A
CJNE A,#0FH,NODE
SJMP DDD
NODE: JC DDD
MOV A,#0FH
DDD:ORL 09H,A
MOV 0AH,#0
WWW:MOV A,09H
MOV 0CH,A
LCALL DELAY5
INC 0BH
LJMP LOOP
DELAY1:MOV R7,#30
MOV R6,#0
S1:DJNZ R6,$
DJNZ R7,S1
RET
DELAY5:MOV R7,#10
MOV R6,#0
S5:DJNZ R6,$
DJNZ R7,S5
RET
NOPEN:NOV A,PORT1
ORL A,#0F0H
CJNE A,#0FFH,NOPEN
LCALL DELAY1
LCALL DELAY1
RET
TRANF:MOV B,#0
MOV A,R2
C1:RRC A
JNC C2
INC B
INC B
INC B
INC B
LJMP C1
C2:MOV A,R3
RR A
RR A
RR A
RR A
C3:RRC A
JNC C4
INC B
LJMP C3
C4:MOV A,B
RET
TIME0:INC 0AH
MOV TH0,#0C2H
MOV TL0,#0F6H
RET1
SING0:
MOV 30,#00H
NEXT: MOV A,0DH
CJNE A,#01H,NN1
MOV DPTR,#TABLE1
LJMP WW
NN1:CJNE A,#02H,NN2
MOV DPTR,#TABLE2
LJMP WW
NN2:CJNE A,#03H,NN3
MOV DPTR,#TABLE3
LJMP WW
NN3:CJNE A,#04H,NN4
MOV DPTR,#TABLE4
LJMP WW
NN4:CJNE A,#05H,NN5
MOV DPTR,#TABLE5
LJMP WW
NN5:CJNE A,#06H,NN6
MOV DPTR,#TABLE6
LJMP WW
NN6:CJNE A,#07H,NN7
MOV DPTR,#TABLE7
LJMP WW
NN7:CJNE A,#08H,NN8
MOV DPTR,#TABLE8
LJMP WW
NN8:CJNE A,#09H,NN9
MOV DPTR,#TABLE9
LJMP WW
NN9:CJNE A,#010,NN10
MOV DPTR,#TABLE10
LJMP WW
NN10:CJNE A,#011,NN11
MOV DPTR,#TABLE11
LJMP WW
NN11:CJNE A,#012,NN12
MOV 0EH,#0A1H
MOV 0BH,#0H
LJMP WW
NN12:CJNE A,#013,NN13
MOV 0EH,#0A3H
MOV 0BH,#0H
LJMP MAIN
NN13:CJNE A,#014,NN14
MOV 0EH,#0A5H
MOV 0BH,#0H
LJMP MAIN
NN14:CJNE A,#015,NN
MOV 0EH,#0A7H
MOV 0BH,#0H
LJMP MAIN
NN:LCALL RBAY
NNT:MOVA,R6
LJMP IIC
WW:MOV A,30H
JZ WW0
MOVC A,@A+DPTR
SJMP IIC
WW0:MOVC A,@A+DPTR
MOV 30H,#1
MOV 31H,A
SJMP WW
IIC:MOV R2,A
JZ ENDF
ANL A,#OFH
MOV R5,A
MOV A,R2
SWAP A
ANL A,#OFH
JNZ SING
CLR TR1
SJMP DLY1
SING:DEC A
PUSH A
MOV A,0DH
CJNE A,#11,BD
POP A
SJMP DE
BD:POP A
JNC BD0
DE:ADD A,31H
BD0:MOV 22H,A
RL A
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV TH1,A
MOV 21H,A
MOV A,22H
RL A
INC A
MOVC A,@A+DPTR
MOV TL1,A
MOV 20H,A
SETB TR1
DLY1:INC R5
ACALL DELAY
INC 30H
INC 0BH
MOV A,ODH
CJNE A,#0BH,NNBD
NEXT1:LJMP NEXT
NNBD:JC JNEXT1
LJMP NN
ENDF:CLR TR1
LJMP MAIN
TIME1:PUSH ACC
PUSH PSW
MOV TL1,20H
MOV TH1,21H
CPL P3.7
POP PSW
POP ACC
RETI
DELAY:MOV R7,#125
DLY2:MOV R4,#02
DLY3:MOV R3,#248
DJNZ R3,$
DJNZ R4,DLY3
DJNZ R7,DLY2
DJNZ R5,DELAY
RET
TABLE:DW 63628,63835,64021,64103,64260
DW 64400,64524,64580,64684
DW 94777,64820,64898,64968,65030
DW 65058,65110,65157,65178,65217
DW 65252,65283
START:ETB,P3.1
NOP
SETB P3.J0
NOP
NOP
NOP
NOP
CLR P3.1
NOP
NOP
NOP
NOP
CLR P3.0
NOP
RET
WRBYT:NOV R3,#8
WRBYT1:RLC A
JC WRBYT2
CLR P3.1
SETB P3.0
NOP
NOP
NOP
NOP
CLR P3.0
DJNZ R7,WRBYT1
RET
WRBYT2:SETB P3.1
SETB P3.0
NOP
NOP
NOP
NOP
CLR P3.0
CLR P3.1
DJNZ R7,WRBYT1
RET
STOP:CLR P3.1
SETB P3.0
NOP
NOP
NOP
NOP
SETB P3.1
NOP
NOP
NOP
NOP
CLR P3.0
NOP
NOP
RET
TACK:CLR P3.1
NOP
SETB P3.0
NOP
NOP
NOP
NOP
CLR P3.0
NOP
SETB P3.1
NOP
RET
CHACK:SETB P3.1
SETB P3.0
NOP
NOV C,P3.1
CLR P3.0
NOP
RET
RDBYT:MOV R7,#8
RDBYT1:SETB P3.1
SETB P3.0
MOV C,P3.1
MOV A,R6
RLC A
MOV R6,A
CLR P3.0
DJNZ R7,RDBYT1
RET
NOTACK:NOP
SETB P3.1
NOP
NOP
SETB P3.0
NOP
NOP
NOP
CLR P3.0
RET
WBAY:LCALL START
MOV A,#0A0H
LCALL WRBYT
LCALL TACK
MOV A,0BH
LCALL WRBYT
LCALL TACK
MOV A,0CH
LCALL WRBYT
LCALL TACK
LCALL STOP
RET
RBAY:LCALL START
MOV A,#0A0H
LCALL WRBYT
LCALL TACK
MOV A,0BH
LCALL WRBYT
LCALL TACK
LCALL TDBYT
LCALL NOTACK
LCALL STOP
RET
RWX80:CJNE A,#0DH,M2
MOV 0EH,#0A2H
SJMP MM
M2:CJNE A,#0EH,M3
MOV 0EH,#0A4H
SJMP MM
M3:MOV 0EH,#0A6H
MM:MOV 0BH,#0
MOV 0CH,#0H
RWX801:LCALL RKX02
LCALL WKXO2
INC 0BH
INC 0BH
INC 0BH
INC 0BH
INC 0CH
INC 0CH
INC 0CH
INC 0CH
MOV A,0CH
CJNE A,#0H,RWX801
RET
RKX02:LCALL START
MOV A,#0A0H
LCALL WRBYT
LCALL TACK
MOV A,0BH
LCALL WRBYT
LCALL TACK
LCALL START
MOV A,#0A1H
LCALL WRBYT
LCALL TACK
LCALL RDBYT
LCALL TACK
MOV 10H,R6
LCALL RDBYT
LCALL TACK
MOV 11H,R6
LCALL RDBYT
LCALL TACK
MOV 12H,R6
LCALL NOTACK
LCALL STOP
RET
RKX02:MOV R1,#01H
LCALL START
MOV A,0EH
LCALL WRBYT
LCALL TACK
MOV A,0CH
LCALL WRBYT
LCALL TACK
MOV R0,#4
WKX021:MOV A,@R1
LCALL WRBYT
LCALL TACK
INC R1
DJNZ R0,WKX021
LCALL STOP
LCALL DELAY5
LCALL DELAY5
RET
WKX03:MOV R1,#10H
LCALL START
MOV A,#0A2H
LCALL WRBYT
LCALL TACK
MOV A,0CH
LCALL WRBYT
LCALL TACK
MOV R0,#4
WKX031:MOV A,@R1
LCALL WRBYT
LCALL TACK
INC R1
DJNZ R0,WKX031
LCALL STOP
LCALL DELAY1
LCALL DELAY1
RET
SAO:NOP
SAO1:MOV R1,#4
MOV R3,#11101111B
MOV R2,#11111111B
NLINE1:MOV A,R3
MOV PORT1,A
MOV A,PORT1
ORL A,#0F0H
CJNE A,#0FFH,KEYIN1
MOV A,R3
RL A
MOV R3,A
DJNZ R0,NLINE1
LJMP SAO1
KEYIN1:MOV R2,A
LCALL DELAY1
LCALL DELAY1
LCALL DELAY1
LCALL NOPEN
LCALL TRANF
RET
TABLE1:;兰花草
DB 02H,42H,82H,82H,82H,84H,02H,72H,62H,72H,62H
DB 52H,48H,0B2H,0B2H,0B2H,0B2H,0B4H,02H,0A2H
DB 12H,0A2H,0D2H,92H,88H,82H,0B2H,0B2H,0A2H,84H
DB 02H,72H,62H,72H,62H,52H,44H,02H,12H,12H,62H
DB 62H,52H,44H,02H,82H,72H,62H,52H,32H,48H,00H
TABLE2:;哈巴
DB 04H,42H,42H,42H,52H,64H,04H,62H,62H,62H,72H,84H,04H
DB 92H,92H,82H,72H,64H,04H,82H,82H,52H,62H,44H,04H
DB 42H,42H,42H,52H,64H,04H,62H,62H,62H,72H,82H,04H
DB 92H,92H,82H,72H,64H,04H,82H,82H,52H,62H,44H,04H,00H
TABLE3:;生日快乐
DB 04H,82H,01H,81H,94H,84H,0B4H,0A4H,04H
DB 82H,01H,81H,94H,84H,0C4H,0B4H,04H
DB 82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94H
DB 0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04H,00H
TABLE4:;不倒翁
DB 04H,84H,94H,88H,64H,54H,68H,84H,64H
DB 54H,44H,62H,82H,42H,62H,58H
DB 84H,94H,88H,64H,54H,68H,84H,64H
DB 54H,44H,52H,42H,52H,62H,48H,00H
TABLE5:;妹妹背着洋娃娃
DB 04H,84H,02H,82H,64H,54H,64H,54H,48H,64H
DB 02H,52H,44H,24H,14H,18H
DB 24H,02H,22H,42H,24H,44H,54H,68H,54H
DB 02H,52H,84H,84H,54H,64H,48H,00H
TABLE6:;两只老虎
DB 04H,44H,54H,64H,44H,54H,64H,44H,64H,74H,88H,64H,74H,88H
DB 82H,92H,82H,72H,64H,44H,82H,92H,82H
DB 72H,64H,44H,84H,48H,44H,14H,48H,00H
TABLE7:;三只小猫
DB 04H,62H,82H,82H,62H,98H,92H,0B2H,0B2H,82H,98H
DB 02H,82H,82H,52H,68H,92H,0B2H,82H,98H
DB 62H,82H,82H,62H,92H,92H,94H
DB 92H,0B2H,0B2H,92H,84H,94H,0B8H,0B4H,04H,00H
TABLE8:;绿
DB 02H,42H,82H,82H,82H,84H,02H,72H,62H,72H,62H,72H,52H,48H
DB 0B2H,0B2H,0B2H,0B2H,0B4H,02H,0A2H
DB 12H,0A2H,0D2H,92H,88H,82H,0B2H,0B2H,0A2H,84H
DB 02H,72H,62H,72H,62H,52H,44H,02H,12H
DB 12H,62H,62H,52H,44H,02H,82H,72H,62H,52H,32H,48H,00
TABLE9:;绿岛小夜曲
DB 00H,0C2H,0D2H,0F2H,0D2H,0C4H,0D2H,0F2H
DB 0D2H,0C2H,0A2H,92H,0A8H
DB 92H,0A2H,0C2H,0A2H,92H,82H,62H,82H,58H,58H
DB 0C4H,22H,0D2H,0C4H,0A4H,92H,0A2H,92H,82H,92H,0A4H,092H
DB 84H,82H,32H,54H,22H,62H,052H,058H
DB 64H,22H,52H,64H,84H,92H,0A2H,92H,82H,92H,0A4H,0C2H
DB 92H,94H,0A2H,0C4H,22H,0D2H,0C8H,0C8H
DB 0D2H,0D4H,0C2H,0A2H,0A2H,92H,0A2H,0C2H,0A8H
DB 92H,94H,82H,62H,52H,52H,82H,98H,98H
DB 0A2H,0A4H,92H,0A2H,0C2H,0A4H,92H,0A2H,92H,82H,68H
DB 52H,0C2H,0A2H,0F2H,0C2H,0C2H,0D2H,0A2H,92H,88H,88H
DB 0D2H,0D2H,0D2H,0C2H,0A2H,0A2H,22H
DB 92H,94H,82H,62H,52H,62H,82H,98H,98H
DB 0C2H,0D2H,0C2H,92H,0A2H,0A4H,0A2H
DB 92H,94H,82H,64H,84H,0C8H,0D1H,0C1H,0A2H,0C2H,0D4H,0D2H,0E2H
DB 0C2H,0D2H,0C2H,0A2H,98H
DB 0A4H,92H,82H,64H,22H,82H,92H,0A1H,91H,82H,92H,0A4H,22H,0C2H
DB 0D4H,22H,0A2H,94H,0A2H,92H,0A2H,92H,88H,88H,00H
TABLE10:
DB 00H,04H,42H,52H,62H,42H,42H,52H,62H,42H,62H,72H,86H,62H,72H,86H
DB 82H,92H,82H,72H,62H,42H,82H,92H,82H
DB 72H,62H,42H,42H,82H,46H,42H,12H,48H,00H
TABLE11:
DB 00H,23H,01H,63H,01H,51H,61H,41H,51H
DB 64H,22H,92H,51H,61H,72H,64H
DB 04H,63H,01H,93H,01H,81H,91H,0A1H,0A1H
DB 94H,53H,61H,41H,51H,41H,31H,24H,04H
DB 53H,61H,41H,51H,41H,31H,24H,04H,53H,61H,82H
DB 92H,0AAH,02H,93H,0A1H,91H,81H,98H,04H,91H
DB 81H,92H,04H,61H,51H,62H,04H,56H,42H,12H
DB 22H,32H,32H,28H,08H,00H
TABLE12:DB 01H,00H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -