導航:首頁 > 操作系統 > 51單片機做的八音盒

51單片機做的八音盒

發布時間:2024-03-03 08:32:52

Ⅰ 跪求基於51單片機的匯編語言音樂盒程序

OUT BIT P2.3 //該引腳接蜂鳴器
ORG 0000H
LJMP START
ORG 000BH
INC 20H ;中斷服務,中斷計數器加1
MOV TH0,#0D8H
MOV TL0,#0EFH ;12M晶振,形成10毫秒中斷
RETI
START:
MOV SP,#50H
MOV TH0,#0D8H
MOV TL0,#0EFH
MOV TMOD,#01H
MOV IE,#82H
MUSIC0:
NOP
MOV DPTR,#DAT ;表頭地址送DPTR
MOV 20H,#00H ;中斷計數器清0
MOV B,#00H ;表序號清0
MUSIC1:
NOP
CLR A
MOVC A,@A+DPTR ;查表取代碼
JZ END0 ;是00H,則結束
CJNE A,#0FFH,MUSIC5
LJMP MUSIC3
MUSIC5:
NOP
MOV R6,A
INC DPTR
MOV A,B
MOVC A,@A+DPTR ;取節拍代碼送R7
MOV R7,A
SETB TR0 ;啟動計數
MUSIC2:
NOP
CPL OUT
MOV A,R6
MOV R3,A
LCALL DEL
MOV A,R7
CJNE A,20H,MUSIC2 ;中斷計數器(20H)=R7否?
;不等,則繼續循環
MOV 20H,#00H ;等於,則取下一代碼
INC DPTR
; INC B
LJMP MUSIC1
MUSIC3:
NOP
CLR TR0 ;休止100毫秒
MOV R2,#0DH
MUSIC4:
NOP
MOV R3,#0FFH
LCALL DEL
DJNZ R2,MUSIC4
INC DPTR
LJMP MUSIC1
END0:
NOP
MOV R2,#64H ;歌曲結束,延時1秒後繼續
MUSIC6:
MOV R3,#00H
LCALL DEL
DJNZ R2,MUSIC6
LJMP MUSIC0
DEL:
NOP
DEL3:
MOV R4,#02H
DEL4:
NOP
DJNZ R4,DEL4
NOP
DJNZ R3,DEL3
RET
NOP
DAT:
db 26h,20h,20h,20h,20h,20h,26h,10h,20h,10h,20h,80h,26h,20h,30h,20h
db 30h,20h,39h,10h,30h,10h,30h,80h,26h,20h,20h,20h,20h,20h,1ch,20h
db 20h,80h,2bh,20h,26h,20h,20h,20h,2bh,10h,26h,10h,2bh,80h,26h,20h
db 30h,20h,30h,20h,39h,10h,26h,10h,26h,60h,40h,10h,39h,10h,26h,20h
db 30h,20h,30h,20h,39h,10h,26h,10h,26h,80h,26h,20h,2bh,10h,2bh,10h
db 2bh,20h,30h,10h,39h,10h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,20h
db 20h,10h,20h,10h,2bh,10h,26h,30h,30h,80h,18h,20h,18h,20h,26h,20h
db 20h,20h,20h,40h,26h,20h,2bh,20h,30h,20h,30h,20h,1ch,20h,20h,20h
db 20h,80h,1ch,20h,1ch,20h,1ch,20h,30h,20h,30h,60h,39h,10h,30h,10h
db 20h,20h,2bh,10h,26h,10h,2bh,10h,26h,10h,26h,10h,2bh,10h,2bh,80h
db 18h,20h,18h,20h,26h,20h,20h,20h,20h,60h,26h,10h,2bh,20h,30h,20h
db 30h,20h,1ch,20h,20h,20h,20h,80h,26h,20h,30h,10h,30h,10h,30h,20h
db 39h,20h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,10h,40h,10h,20h,10h
db 20h,10h,2bh,10h,26h,30h,30h,80h,00H

END

Ⅱ 求51單片機 數字音樂盒 匯編語言代碼

Z8279
EQU
8701H
D8279
EQU
8700H
LO
EQU
30H
HI
EQU
31H
ORG
0000H
AJMP
START
ORG
000BH
LJMP
T0_INT
START:
MOV
SP,#60H
MOV
P3,#0FFH
MOV
TMOD,#00000000B
MOV
IE,#10000010B
LCALL
F8279
;;8279的初始化
LCALL
LO_KEY
;;判斷是否有下壓鍵
PAN1:
MOV
DPTR,Z8279
MOVX
A,@DPTR
ANL
A,#3FH
MOV
R2,A
;
;保存鍵值
ANL
A,#01H
;;鍵值1
JNZ
S_1
JZ
P_1
S_1:
LCALL
SONG_1
P_1:
MOV
A,R2
ANL
A,#02H
;;鍵值2
JNZ
S_2
JZ
P_2
S_2:
LCALL
SONG_2
P_2
MOV
A,R2
ANL
A,#03H
;;鍵值3
JNZ
S_3
JZ
P_3
S_3:
LCALL
SONG_3
P_3
MOV
A,R2
ANL
A,#04H
;;鍵值4
JNZ
S_4
JZ
P_4
S_4
LCALL
SONG_4
P_4
MOV
A,R2
ANL
A,#05H
;;鍵值5
JNZ
S_5
JZ
PAN1
S_5:
LCALL
SONG_5
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
SONG_1:
;//歌曲1
MOV
R4,#15
LOOP1:
LCALL
VALUE1
SETB
TR0
MOV
R5,#20
LCALL
DELAY
CLR
TR0
MOV
R5,#20
LCALL
DELAY
LCALL
P_KEY
DJNZ
R4,LOOP1
LCALL
SONG_2
RET
SONG_2:
;//歌曲2
MOV
R4,#15
LOOP2:
LCALL
VALUE1
SETB
TR0
MOV
R5,#20
LCALL
DELAY
CLR
TR0
MOV
R5,#20
LCALL
DELAY
LCALL
P_KEY
DJNZ
R4,LOOP2
LCALL
SONG_3
RET
SONG_3:
;//歌曲3
MOV
R4,#15
LOOP3:
LCALL
VALUE1
SETB
TR0
MOV
R5,#20
LCALL
DELAY
CLR
TR0
MOV
R5,#20
LCALL
DELAY
LCALL
P_KEY
DJNZ
R4,LOOP3
LCALL
SONG_4
RET
SONG_4:
;//歌曲4
MOV
R4,#15
LOOP4:
LCALL
VALUE1
SETB
TR0
MOV
R5,#20
LCALL
DELAY
CLR
TR0
MOV
R5,#20
LCALL
DELAY
LCALL
P_KEY
DJNZ
R4,LOOP4
LCALL
SONG_5
RET
SONG_5:
;//歌曲5
MOV
R4,#15
LOOP5:
LCALL
VALUE1
SETB
TR0
MOV
R5,#20
LCALL
DELAY
CLR
TR0
MOV
R5,#20
LCALL
DELAY
LCALL
P_KEY
DJNZ
R4,LOOP5
LCALL
SONG_1
RET
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
VALUE1:
;//歌曲1的頻率設置
MOV
DPTR,#FREH1
MOV
A,R4
MOVC
A,@A+DPTR
MOV
HI,A
MOV
DPTR,#FREL1
MOV
A,R4
MOVC
A,@A+DPTR
MOV
LO,A
MOV
R4,#1*****************************************
RET
VALUE2:
;/;/歌曲2的頻率設置
MOV
DPTR,#FREH2
MOV
A,R4
MOVC
A,@A+DPTR
MOV
HI,A
MOV
DPTR,#FREL2
MOV
A,R4
MOVC
A,@A+DPTR
MOV
LO,A
MOV
R4,#1
RET
VALUE3:
;//歌曲3的頻率設置
MOV
DPTR,#FREH3
MOV
A,R4
MOVC
A,@A+DPTR
MOV
HI,A
MOV
DPTR,#FREL3
MOV
A,R4
MOVC
A,@A+DPTR
MOV
LO,A
MOV
R4,#1
RET
VALUE4:
;//歌曲4的頻率設置
MOV
DPTR,#FREH4
MOV
A,R4
MOVC
A,@A+DPTR
MOV
HI,A
MOV
DPTR,#FREL4
MOV
A,R4
MOVC
A,@A+DPTR
MOV
LO,A
MOV
R4,#1
RET
VALUE5:
;//歌曲5的頻率設置
MOV
DPTR,#FREH5
MOV
A,R4
MOVC
A,@A+DPTR
MOV
HI,A
MOV
DPTR,#FREL5
MOV
A,R4
MOVC
A,@A+DPTR
MOV
LO,A
MOV
R4,#1
RET
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
T0_INT:
MOV
TL0,LO
MOV
TH0,HI
CPL
P3.4
RETI
DELAY:
MOV
R6,#50
D1:
MOV
R7,#100
DJNZ
R7,$
DJNZ
R6,D1
DJNZ
R5,DELAY
RET
F8279:
MOV
DPTR,Z8279
MOV
A,#10H
MOVX
@DPTR,A
MOV
A,#34H
MOVX
@DPTR,A
MOV
A,#0D1H
MOVX
@DPTR,A
LCALL
DELAY
MOV
A,#80H
MOVX
@DPTR,A
MOV
A,#40H
MOVX
@DPTR,A
RET
LO_KEY:
MOV
DPTR,Z8279
MOVX
A,@DPTR
ANL
A,#0FH
JZ
LO_KEY
RET
P_KEY:
MOV
DPTR,Z8279
MOVX
A,@DPTR
ANL
A,#0FH
JNZ
SIGN1
JZ
SIGN2
SIGN1:
LJMP
PAN1
SIGN2:
RET
FREH1
DB
0,226,229,232,233,236,238,240,241,242,244,244,246,247,248
FREL1
DB
0,4,13,10,20,3,8,6,2,23,5,26,1,4,3
FREH2
DB
0,236,229,232,233,226,230,240,231,246,244,234,236,247,248
FREL2
DB
0,4,13,10,20,3,8,6,2,23,5,26,1,4,3
FREH3
DB
0,226,229,232,233,236,238,240,241,242,244,244,246,247,248
FREL3
DB
0,4,13,10,20,3,8,6,2,23,5,26,1,4,3
FREH4
DB
0,226,229,232,233,236,238,240,241,242,244,244,246,247,248
FREL4
DB
0,4,13,10,20,3,8,6,2,23,5,26,1,4,3
FREH5
DB
0,226,229,232,233,236,238,240,241,242,244,244,246,247,248
FREL5
DB
0,4,13,10,20,3,8,6,2,23,5,26,1,4,3
END

Ⅲ 求一份C51單片機數字音樂盒(LCD1602顯示歌詞,歌詞需與音樂同步)的課程設計。程序為C語言程序的。

蜂鳴器不能唱歌,只會有調子,不知道顯示歌詞有什麼用,

此外,你給的分太少了,我只給你蜂鳴器唱歌的程序,

一個是單純的如何讓蜂鳴器播放音樂,

一個是紅外遙控播放音樂,音樂部分就只在MUSIC.C裡面,你看一下就行了,

樂音是由物體振動發出的,如果你的蜂鳴器的發聲頻率大約等於樂音的頻率,那麼就能發出類似的調子,具體的音符頻率表在我給的PDF的第30頁。

再奉送你一個專門單片機編歌譜曲的軟體。

閱讀全文

與51單片機做的八音盒相關的資料

熱點內容
網站小說源碼 瀏覽:299
php用什麼ide 瀏覽:865
網上預約課程app哪個好 瀏覽:150
android兼容測試工具 瀏覽:96
雲伺服器不支持虛擬化怎麼辦 瀏覽:189
加密方式的演變 瀏覽:364
java常用演算法pdf 瀏覽:734
伺服器數據遇到異常什麼原因 瀏覽:450
phpexif信息 瀏覽:542
單片機三位元組浮點數 瀏覽:756
命令與征服泰伯利亞戰爭下載 瀏覽:378
c窗口界面編程 瀏覽:23
hypermill編程能做模板嗎 瀏覽:782
計算機網路最經典的演算法 瀏覽:628
華為思科的配置命令 瀏覽:869
linux設置光碟啟動 瀏覽:361
程序員俱樂部注冊 瀏覽:19
洗潔精雞蛋盤解壓視頻 瀏覽:295
企業內網加密app 瀏覽:51
騰訊雲伺服器怎麼設置本地網路 瀏覽:625