電子琴課程設計
⑴ 求八音電子琴課程設計
;DIAN ZI QIN 電子琴
SPK EQU P1.0
FKEY EQU 20H.0
DI EQU 71H
GAO EQU 72H
KEY_NO EQU 73H
NO EQU 74H
TC EQU 75H
OUTBIT EQU 08002H
OUTSEG EQU 08004H
IN EQU 08001H
ORG 0000H
JMP BEGIN
ORG 0BH
JMP TO_INT
BEGIN:
MOV TMOD,#00000000B
MOV IE ,#10000010B
MOV R4,#1
MOV R3,#1
CALL PLAY
MOV R4,#2
MOV R3,#1
CALL PLAY
JMP RUN
JMP $
PLAY:
CALL LOAD_VALUE
CALL SOUND_ON
PL1:
MOV R5,#30
CALL DELAY
DJNZ R3,PL1
CALL SOUND_OFF
MOV R5,#3
CALL DELAY
RET
PLAY_SONG1:
MOV TC,#0
PA0:
MOV DPTR,#SONG1
MOV A,TC
MOVC A,@+DPTR
MOV R4,A
CJNE A,#0FFH,PA1
RET
PA1:
MOV DPTR,#LEN
MOV A,TC
MOVC A,@A+DPTR
MOV R3,A
CALL PLAY
INC TC
JMP PA0
RET
PLAY_SONG2:
MOV TC,#0
PB0:
MOV DPTR,#SONG2
MOV A,TC
MOVC A,@A+DPTR
MOV R4,A
CJNE A,#0FFH,PB1
RET
PB1:
MOV DPTR,#LEN
MOV A,TC
MOVC A,@A+DPTR
MOV R3,A
CALL PLAY
INC TC
JMP PB0
RET
SOUND_ON:
SETB TR0
RET
SOUND_OFF:
CLR TR0
RET
LOAD_VALUE:
MOV DPTR,#HI_LIST
MOV A,R4
MOVC A,@A+DPTR
MOV GAO,A
MOV DPTR,#LO_LIST
MOV A,R4
MOVC A,@A+DPTR
MOV DI,A
RET
TO_INT:
MOV TL0,DI
MOV TH0,GAO
CPL SPK
RETI
HI_LIST:
DB 0,226,229,232,233,236,238,240
LO_LIST:
DB 0,4,13,10,20,3,8,6
SONG1: DB 1,2,3,4,5,6,7,0FFH
SONG2: DB 7,6,5,4,3,2,1,0FFH
LEN: DB 2,2,2,2,2,2,2,0FFH
DELAY:
MOV R6,#50
D1:MOV R7,#50
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,DELAY
RET
TABLE_DIG:
DB 16H,15H,14H,0FFH
DB 13H,12H,11H,10H
DB 0DH,0CH,09H,0AH
DB 0EH,03H,06H,0FH
DB 08H,02H,05H,0BH
DB 00H,01H,04H,07H
SCAN:
MOV DPTR ,#OUTBIT
MOV A,#0
MOVX @DPTR,A
MOV DPTR,#IN
MOVX A,@DPTR
CPL A
ANL A,#0FH
RET
GET_KEY:
MOV DPTR,#OUTBIT
MOV P2,DPH
MOV R0,#LOW(IN)
MOV R1,#00100000B
MOV R2,#6
KLOOP:
MOV A,R1
CPL A
MOVX @DPTR,A
CPL A
RR A
MOV R1,A
MOVX A,@R0
CPL A
ANL A,#0FH
JNZ GOON1
DJNZ R2,KLOOP
MOV R2,#0FFH
SJMP EXIT
GOON1:
MOV R1,A
MOV A,R2
DEC A
RL A
RL A
MOV R2,A
MOV A,R1
MOV R1,#4
LOOPC:
RRC A
JC EXIT
INC R2
DJNZ R1,LOOPC
EXIT:
MOV A,R2
MOV DPTR,#TABLE_DIG
MOVC A,@A+DPTR
MOV R2,A
MOV KEY_NO,A
RET
SO:
MOV R3,#1
CALL PLAY
RET
SOP:
CJNE A,#1,A1
MOV R4,#1
CALL SO
RET
A1:
CJNE A,#2,A2
MOV R4,#2
CALL SO
RET
A2:
CJNE A,#3,A3
MOV R4,#3
CALL SO
RET
A3:
CJNE A,#4,A4
MOV R4,#4
CALL SO
RET
A4:
CJNE A,#5,A5
MOV R4,#5
CALL SO
RET
A5:
CJNE A,#6,A6
MOV R4,#6
CALL SO
RET
A6:
CJNE A,#7,A7
MOV R4,#7
CALL SO
RET
A7:
CJNE A,#0FH,A8
CALL PLAY_SONG1
RET
A8:
CJNE A,#0BH,A9
CALL PLAY_SONG2
RET
A9:
RET
RUN:
LOOP:
CALL SCAN
JZ LOOP
CALL GET_KEY
MOV A,KEY_NO
CALL SOP
LJMP LOOP
END
⑵ 用c語言編一個簡易電子琴程序,做課設!
這是有位網友寫的彈鋼琴,屬於轉載,不方便粘貼,你可以進去測試。
http://hi..com/%C7%A7%D3%EB%C7%A7%D1%B0%B5%C4%C9%F1%EBL/blog/item/9253248b033e26679f2fb437.html
⑶ 誰幫我寫個微機原理與介面技術的電子琴課程設計
微機原理與介面技術的電子琴課程設計
有更具體的要求把,
你說下吧我看下我幫你。
⑷ 微機原理與介面技術電子琴課程設計 求程序和接線圖
可以給你做一份
⑸ 51單片機設計電子琴課程設計
http://code.21ic.com/code/31218
實現電子琴的功能,基於C51,通過7個按鍵,來發出7種音調,也可以做成水果鍵盤
21ic中國電子網站上有很多電子琴的源碼,你可以去搜索一下。。