使用匯編語言的簡易電子琴仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機源程序如下:
- LINE EQU 30H
- ROW EQU 31H
- VAL EQU 32H
- ORG 00H
- SJMP START
- ORG 0BH
- LJMP INT_T0
- START: MOV P0,#00H
- MOV TMOD,#01H
- ;******************************************
- ;按鍵掃描程序
- ;******************************************
- LSCAN: MOV P3,#0F0H
- L1: JNB P3.0,L2
- LCALL DELAY
- JNB P3.0,L2
- MOV LINE,#00H
- LJMP RSCAN
- L2: JNB P3.1,L3
- LCALL DELAY
- JNB P3.1,L3
- MOV LINE,#01H
- LJMP RSCAN
- L3: JNB P3.2,L4
- LCALL DELAY
- JNB P3.2,L4
- MOV LINE,#02H
- LJMP RSCAN
- L4: JNB P3.3,L1
- LCALL DELAY
- JNB P3.3,L1
- MOV LINE,#03H
- RSCAN: MOV P3,#0FH
- C1: JNB P3.4,C2
- MOV ROW,#00H
- LJMP CALCU
- C2: JNB P3.5,C3
- MOV ROW,#01H
- LJMP CALCU
- C3: JNB P3.6,C4
- MOV ROW,#02H
- LJMP CALCU
- C4: JNB P3.7,C1
- MOV ROW,#03H
- CALCU: MOV A,LINE ;計算鍵號
- MOV B,#04H
- MUL AB
- ADD A,ROW
- MOV VAL,A
- ;*******************************************
- ;根據鍵號查表得到定時器的定時常數,
- ;從而發出不同頻率的聲音
- ;*******************************************
- MOV DPTR,#TABLE2
- MOV B,#2
- MUL AB
- MOV R1,A
- MOVC A,@A+DPTR
- MOV TH0,A
- INC R1
- MOV A,R1
- MOVC A,@A+DPTR
- MOV TL0,A
- MOV IE,#82H
- SETB TR0
- MOV A,VAL ;顯示鍵號
- MOV DPTR,#TABLE1
- MOVC A,@A+DPTR
- MOV P0,A
- ;*******************************************
- ;等待按鍵釋放
- ;*******************************************
- W0: MOV A,P3
- CJNE A,#0FH,W1
- MOV P0,#00H
- CLR TR0
- LJMP LSCAN
- W1: MOV A,P3
- CJNE A,#0F0H,W2
- MOV P0,#00H
- CLR TR0
- LJMP LSCAN
- W2: SJMP W0
- ;****************************************
- ;定時器0中斷服務程序,輸出特定頻率的方波,
- ;驅動揚聲器發聲
- ;****************************************
- INT_T0: MOV DPTR,#TABLE2
- MOV A,VAL
- MOV B,#2
- MUL AB
- MOV R1,A
- MOVC A,@A+DPTR
- MOV TH0,A
- INC R1
- MOV A,R1
- MOVC A,@A+DPTR
- MOV TL0,A
- CPL P1.0
- RETI
- DELAY: MOV R6,#10
- D1: MOV R7,#250
- DJNZ R7,$
- DJNZ R6,D1
- RET
- TABLE1: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
- DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
- TABLE2: DW 64021,64103,64260,64400
- DW 64524,64580,64684,64777
- DW 64820,64898,64968,65030
- DW 65058,65110,65157,65178
- END
復制代碼
所有資料51hei提供下載:
簡易電子琴設計.zip
(50.22 KB, 下載次數: 43)
2018-5-9 14:23 上傳
點擊文件名下載附件
|