📄 电子琴.asm
字号:
J0 EQU 50H ;定义内存块作计数之用
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV J0,#0FH; ;给计数器赋初值
DIAN:JNB P2.7,K6_0 ;1 按键1发出哆
JNB P2.6,K6_1 ;2
JNB P2.5,K6_2 ;3
JNB P2.4,K6_3 ;4
JNB P2.3,K6_4 ;5
JNB P2.2,K6_5 ;6
JNB P1.0,K5 ;7
JNB P1.1,K4 ;1
JNB P1.2,K4_2 ;2
AJMP DIAN
;-------------------------------------
;用占空比来输出不同的频率
K6_0: CLR P0.0 ;1
ACALL YSH0FS
SETB P0.0
ACALL YSH02S
AJMP DIAN
RET
K6_1: CLR P0.0 ;2
ACALL YSH0ES
SETB P0.0
ACALL YSH02S
AJMP DIAN
RET
K6_2: CLR P0.0
ACALL YSH0DS
SETB P0.0
ACALL YSH02S
AJMP DIAN
RET
K6_3: CLR P0.0
ACALL YSH0CS
SETB P0.0
ACALL YSH02S
AJMP DIAN
RET
K6_4: CLR P0.0
ACALL YSH0BS
SETB P0.0
ACALL YSH02S
AJMP DIAN
RET
K6_5: CLR P0.0
ACALL YSH0AS
SETB P0.0
ACALL YSH01S
AJMP DIAN
RET
K5: CLR P0.0 ;7
ACALL YSH09S
SETB P0.0
ACALL YSH03S
AJMP DIAN
RET
K4: CLR P0.0
ACALL YSH09S
SETB P0.0
ACALL YSH01S
AJMP DIAN
RET
K4_2:CLR P0.0
ACALL YSH08S
SETB P0.0
ACALL YSH01S
AJMP DIAN
RET
K4_3:CLR P0.0
ACALL YSH07S
SETB P0.0
ACALL YSH01S
AJMP DIAN
RET
K7: CLR P0.0
ACALL YSH0AS
SETB P0.0
ACALL YSH02S
AJMP DIAN
DJNZ J0,K7
RET
K7_: CLR P0.0
ACALL YSH03S
SETB P0.0
ACALL YSH03S
AJMP DIAN
RET
K8: CLR P0.0
ACALL YSH04S
SETB P0.0
ACALL YSH02S
AJMP DIAN
RET
K9: CLR P0.0
ACALL YSH01S
SETB P0.0
ACALL YSH01S
AJMP DIAN
RET
K1: CLR P0.0
ACALL YSH04S
SETB P0.0
ACALL YSH06S
AJMP DIAN
RET
K2: CLR P0.0
ACALL YSH03S
SETB P0.0
ACALL YSH06S
AJMP DIAN
RET
K0_:SETB P0.0
ACALL YSH05S
SETB P0.0
ACALL YSH05S
AJMP DIAN
RET
K4_: CLR P0.0
ACALL YSH06S
SETB P0.0
ACALL YSH07S
AJMP DIAN
RET
K3: CLR P0.0
ACALL YSH06S
SETB P0.0
ACALL YSH08S
AJMP DIAN
RET
YSH01S: MOV R3,#01H
LOOP01: MOV R4,#01H
LOOP011: MOV R5,#03AH
XHD01: DJNZ R5,XHD01
DJNZ R4,LOOP011
DJNZ R3,LOOP01
RET
YSH02S: MOV R3,#01H
LOOP02: MOV R4,#01H
LOOP021: MOV R5,#04AH
XHD02: DJNZ R5,XHD02
DJNZ R4,LOOP021
DJNZ R3,LOOP02
RET
YSH03S: MOV R3,#01H
LOOP03: MOV R4,#01H
LOOP031: MOV R5,#05AH
XHD03: DJNZ R5,XHD03
DJNZ R4,LOOP031
DJNZ R3,LOOP03
RET
YSH04S: MOV R3,#01H
LOOP04: MOV R4,#01H
LOOP041: MOV R5,#06AH
XHD04: DJNZ R5,XHD04
DJNZ R4,LOOP041
DJNZ R3,LOOP04
RET
YSH05S: MOV R3,#01H
LOOP05: MOV R4,#01H
LOOP051: MOV R5,#07AH
XHD05: DJNZ R5,XHD05
DJNZ R4,LOOP051
DJNZ R3,LOOP05
RET
YSH06S: MOV R3,#01H
LOOP06: MOV R4,#01H
LOOP061: MOV R5,#08AH
XHD06: DJNZ R5,XHD06
DJNZ R4,LOOP061
DJNZ R3,LOOP06
RET
YSH07S: MOV R3,#01H
LOOP07: MOV R4,#03H
LOOP071: MOV R5,#03AH
XHD07: DJNZ R5,XHD07
DJNZ R4,LOOP071
DJNZ R3,LOOP07
RET
YSH08S: MOV R3,#01H
LOOP08: MOV R4,#05H
LOOP081: MOV R5,#03AH
XHD08: DJNZ R5,XHD08
DJNZ R4,LOOP081
DJNZ R3,LOOP08
RET
YSH09S: MOV R3,#01H
LOOP09: MOV R4,#07H
LOOP091: MOV R5,#04AH
XHD09: DJNZ R5,XHD09
DJNZ R4,LOOP091
DJNZ R3,LOOP09
RET
YSH0AS: MOV R3,#01H
LOOP0A: MOV R4,#07H
LOOP0A1: MOV R5,#05AH
XHD0A: DJNZ R5,XHD0A
DJNZ R4,LOOP0A1
DJNZ R3,LOOP0A
RET
YSH0BS: MOV R3,#01H
LOOP0B: MOV R4,#08H
LOOP0B1: MOV R5,#05AH
XHD0B: DJNZ R5,XHD0B
DJNZ R4,LOOP0B1
DJNZ R3,LOOP0B
RET
YSH0CS: MOV R3,#01H
LOOP0C: MOV R4,#09H
LOOP0C1: MOV R5,#05AH
XHD0C: DJNZ R5,XHD0C
DJNZ R4,LOOP0C1
DJNZ R3,LOOP0C
RET
YSH0DS: MOV R3,#01H
LOOP0D: MOV R4,#0AH
LOOP0D1: MOV R5,#05AH
XHD0D: DJNZ R5,XHD0D
DJNZ R4,LOOP0D1
DJNZ R3,LOOP0D
RET
YSH0ES: MOV R3,#01H
LOOP0E: MOV R4,#0BH
LOOP0E1: MOV R5,#05AH
XHD0E: DJNZ R5,XHD0E
DJNZ R4,LOOP0E1
DJNZ R3,LOOP0E
RET
YSH0FS: MOV R3,#01H
LOOP0F: MOV R4,#0CH
LOOP0F1: MOV R5,#05AH
XHD0F: DJNZ R5,XHD0F
DJNZ R4,LOOP0F1
DJNZ R3,LOOP0F
RET
YSH0GS: MOV R3,#01H
LOOP0G: MOV R4,#0DH
LOOP0G1: MOV R5,#05AH
XHD0G: DJNZ R5,XHD0G
DJNZ R4,LOOP0G1
DJNZ R3,LOOP0G
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -