?? 電子琴完成版.asm
字號:
ORG 0000H
LJMP K1
ORG 001BH
LJMP TIME
K1: CLR P2.5
MOV P3,#11101111B
JB P3.3,K2
LCALL DO
K2: MOV P3,#11011111B
JB P3.3,K3
LCALL RE
K3: MOV P3,#10111111B
JB P3.3,K4
LCALL MI
K4: MOV P3,#01111111B
JB P3.3,K5
LCALL FA
K5: MOV P3,#11101111B
JB P3.2,K6
LCALL SO
K6: MOV P3,#11011111B
JB P3.2,K7
LCALL LA
K7: MOV P3,#10111111B
JB P3.2,K8
LCALL SI
K8: MOV P3,#01111111B
JB P3.2,K1
LJMP MUSIC
DO: MOV TMOD,#01H
MOV TL0,#44H
MOV TH0,#0FCH
MOV IE,#00H
SETB TR0
LP1: JBC TF0,LP2
LJMP LP1
LP2: CPL P2.5
MOV TH0,#0FCH
MOV TL0,#44H
CLR TF0
JNB P3.3,LP1
CLR TR0
CLR P2.5
RET
RE: MOV TMOD,#01H
MOV TL0,#0ACH
MOV TH0,#0FCH
MOV IE,#00H
SETB TR0
LP3: JBC TF0,LP4
LJMP LP3
LP4: CPL P2.5
MOV TH0,#0FCH
MOV TL0,#0ACH
CLR TF0
JNB P3.3,LP3
CLR TR0
CLR P2.5
RET
MI: MOV TMOD,#01H
MOV TL0,#09H
MOV TH0,#0FDH
MOV IE,#00H
SETB TR0
LP5: JBC TF0,LP6
LJMP LP5
LP6: CPL P2.5
MOV TH0,#0FDH
MOV TL0,#09H
CLR TF0
JNB P3.3,LP5
CLR TR0
CLR P2.5
RET
FA: MOV TMOD,#01H
MOV TL0,#34H
MOV TH0,#0FDH
MOV IE,#00H
SETB TR0
LP7: JBC TF0,LP8
LJMP LP7
LP8: CPL P2.5
MOV TH0,#0FDH
MOV TL0,#34H
CLR TF0
JNB P3.3,LP7
CLR TR0
CLR P2.5
RET
SO: MOV TMOD,#01H
MOV TL0,#82H
MOV TH0,#0FDH
MOV IE,#00H
SETB TR0
LP9: JBC TF0,LPA
LJMP LP9
LPA: CPL P2.5
MOV TH0,#0FDH
MOV TL0,#82H
CLR TF0
JNB P3.2,LP9
CLR TR0
CLR P2.5
RET
LA: MOV TMOD,#01H
MOV TL0,#0C8H
MOV TH0,#0FDH
MOV IE,#00H
SETB TR0
LPB: JBC TF0,LPC
LJMP LPB
LPC: CPL P2.5
MOV TH0,#0FDH
MOV TL0,#0C8H
CLR TF0
JNB P3.2,LPB
CLR TR0
CLR P2.5
RET
SI: MOV TMOD,#01H
MOV TL0,#06H
MOV TH0,#0FEH
MOV IE,#00H
SETB TR0
LPE: JBC TF0,LPD
LJMP LPE
LPD: CPL P2.5
MOV TH0,#0FEH
MOV TL0,#06H
CLR TF0
JNB P3.2,LPE
CLR TR0
CLR P2.5
RET
MUSIC: CLR P2.5
LJMP BEGIN
BEGIN:MOV TMOD,#10H
MOV IE,#88H
MOV 00H,#00H
NEXT: MOV A,00H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
CJNE A,#00H,PLAY
LJMP STOP
PLAY: MOV R1,A
ANL A,#0FH
MOV R2,A
MOV A,R1
ANL A,#0F0H
SWAP A
MSO: CJNE A,#01H,MLA
MOV TH1,#0FDH
MOV TL1,#82H
MOV R4,#0FDH
MOV R3,#82H
LJMP START
MLA: CJNE A,#02H,MSI
MOV TH1,#0FDH
MOV TL1,#0C8H
MOV R4,#0FDH
MOV R3,#0C8H
LJMP START
MSI: CJNE A,#03H,HDO
MOV TH1,#0FEH
MOV TL1,#06H
MOV R4,#0FEH
MOV R3,#06H
LJMP START
HDO: CJNE A,#04H,HRE
MOV TH1,#0FEH
MOV TL1,#22H
MOV R4,#0FEH
MOV R3,#22H
LJMP START
HRE: CJNE A,#05H,HMI
MOV TH1,#0FEH
MOV TL1,#56H
MOV R4,#0FEH
MOV R3,#56H
LJMP START
HMI: CJNE A,#06H,HFA
MOV TH1,#0FEH
MOV TL1,#85H
MOV R4,#0FEH
MOV R3,#85H
LJMP START
HFA: CJNE A,#07H,HSO
MOV TH1,#0FEH
MOV TL1,#9AH
MOV R4,#0FEH
MOV R3,#9AH
LJMP START
HSO: CJNE A,#08H,HLA
MOV TH1,#0FEH
MOV TL1,#0C1H
MOV R4,#0FEH
MOV R3,#0C1H
LJMP START
HLA: MOV TH1,#0FEH
MOV TL1,#0E4H
MOV R4,#0FEH
MOV R3,#0E4H
LJMP START
START:SETB TR1
DEL: LCALL DELAY
INC 00H
LJMP NEXT
STOP: CLR TR1
LJMP K1
TIME: PUSH Acc
PUSH PSW
CPL P2.5
MOV TH1,R4
MOV TL1,R3
POP PSW
POP Acc
RETI
DELAY:MOV R7,#02H
DELAY1:MOV R6,#125
DELAY2:MOV R5,#252
DJNZ R5,$
DJNZ R6,DELAY2
DJNZ R7,DELAY1
DJNZ R2,DELAY
RET
TABLE:DB 22H,11H,23H,11H,21H,31H,31H,21H,35H,51H,52H,51H,52H,32H,41H,51H,62H,61H,61H
DB 51H,54H,52H,41H,65H,32H,11H,2EH,11H,21H,41H,51H,64H,62H,51H,65H,61H,51H,41H,51H
DB 42H,21H,29H,11H,21H,41H,51H,64H,62H,51H,65H,62H,82H,92H,82H,61H,69H,61H,61H
DB 42H,21H,29H,11H,21H,41H,51H,64H,62H,51H,65H,62H,82H,92H,82H,61H,69H,61H,61H
DB 54H,52H,41H,53H,41H,21H,61H,61H,72H,62H,52H,41H,53H,61H,63H,62H
DB 54H,52H,41H,53H,42H,61H,84H,88H,11H,21H,41H,51H,64H,62H,51H,65H,61H,51H,41H,51H
DB 42H,21H,29H,11H,21H,41H,51H,64H,62H,51H,65H,62H,82H,92H,82H,61H,69H,61H,61H
DB 54H,52H,41H,52H,41H,22H,61H,61H,72H,62H,52H,41H,52H,61H,64H,62H,54H,52H,41H,53H,42H,21H,44H,4CH
DB 00H
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -