女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用單片機(jī)實(shí)現(xiàn)音樂(lè)程序設(shè)計(jì)的詳細(xì)資料說(shuō)明

Wildesbeast ? 來(lái)源:?jiǎn)纹瑱C(jī)教程網(wǎng) ? 作者:?jiǎn)纹瑱C(jī)教程網(wǎng) ? 2020-04-06 12:37 ? 次閱讀

利用單片機(jī)(或單板機(jī))奏樂(lè)大概是無(wú)線電愛(ài)好者感興趣的問(wèn)題之一。本文從單片機(jī)的基本發(fā)間實(shí)驗(yàn)出發(fā),談?wù)勔魳?lè)程序的設(shè)計(jì)原理,并給出具體實(shí)例,以供參考。

單片機(jī)的基本發(fā)音實(shí)驗(yàn)

我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來(lái)控制單處機(jī)某個(gè)口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時(shí)程序控制“高”“低”電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào)。

例如,要產(chǎn)生200HZ的音頻信號(hào),按圖1接入喇叭(若屬臨時(shí)實(shí)驗(yàn),也可將喇叭直接接在P1口線上),實(shí)驗(yàn)程序?yàn)椋?/p>

其中子程序DEL為延時(shí)子程序,當(dāng)R3為1時(shí),延時(shí)時(shí)間約為20us,R3中存放延時(shí)常數(shù),對(duì)200HZ音頻,其周期為1/200秒,即5ms。這樣,當(dāng)P1.4的高電平或低電平的持續(xù)時(shí)間為2.5ms,即R3的時(shí)間常數(shù)取2500/20=125(7DH)時(shí),就能發(fā)出200HZ的音調(diào)。將上述程序鍵入學(xué)習(xí)機(jī),并持續(xù)修改R3的常數(shù)能感到音調(diào)的變化。樂(lè)曲中,每一音符對(duì)應(yīng)著確定的頻率,表1給出C調(diào)時(shí)各音符頻率及其對(duì)應(yīng)的時(shí)間常數(shù)。讀者能根據(jù)表1所供給的常數(shù),將其16進(jìn)制代碼送入R3,反復(fù)練習(xí)體會(huì)。根據(jù)表1能奏出音符。僅這還不夠,要準(zhǔn)確奏出一首曲子,必須準(zhǔn)確地控制樂(lè)曲節(jié)奏,即一音符的持續(xù)時(shí)間。

音符的節(jié)拍我們能用定時(shí)器T0來(lái)控制,送入不一樣的初值,就能產(chǎn)生不一樣的定時(shí)時(shí)間。便如某歌曲的節(jié)奏為每分鐘94拍,即一拍為0.64秒。其它節(jié)拍與時(shí)間的對(duì)應(yīng)關(guān)系見(jiàn)表2。

但時(shí),由于T0的最大定時(shí)時(shí)間只能為131毫秒,因此不可能直接用改變T0的時(shí)間初值來(lái)實(shí)現(xiàn)不一樣節(jié)拍。我們能用T0來(lái)產(chǎn)生10毫秒的時(shí)間基準(zhǔn),然后設(shè)置一個(gè)中斷計(jì)數(shù)器,通過(guò)判別中斷計(jì)數(shù)器的值來(lái)控制節(jié)拍時(shí)間的長(zhǎng)短。表2中也給出了各種節(jié)拍所對(duì)應(yīng)的時(shí)間常數(shù)。例如對(duì)1/4拍音符,定時(shí)時(shí)間為0.16秒,對(duì)應(yīng)的時(shí)間常數(shù)為16(即10H);對(duì)3拍音符,定時(shí)時(shí)間為1.92秒,對(duì)應(yīng)時(shí)間長(zhǎng)數(shù)為192(即C0H)。

我們將每一音符的時(shí)間常數(shù)和其對(duì)應(yīng)的節(jié)拍常數(shù)作為一組,按次序?qū)?lè)曲中的所有常數(shù)排列成一個(gè)表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就能實(shí)現(xiàn)演奏效果。此外,結(jié)束符和體止符能分別用代碼00H和FFH來(lái)表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生對(duì)應(yīng)的停頓效果。為了產(chǎn)生手彈的節(jié)奏感,在某些音符(例如兩個(gè)相同音符)音插入一個(gè)時(shí)間單位的頻率略有不一樣的音符。

下面給出程序序清單,可直接在TD-III型學(xué)習(xí)機(jī)上演奏,對(duì)其它不一樣型號(hào)的學(xué)習(xí)機(jī),只需對(duì)應(yīng)地改變一下地址即可。本程序演奏的是民歌“八月桂花遍地開(kāi)”,C調(diào),節(jié)奏為94拍/分。讀者也能自行找出一首歌,按表1和表2給定的常數(shù),將樂(lè)曲翻譯成碼表輸入機(jī)器,而程序不變。本實(shí)驗(yàn)辦法簡(jiǎn)便,即使不懂音樂(lè)的人,將一首陌生的曲子翻譯成代碼也是易事,和著機(jī)器的演奏學(xué)唱一首歌曲,其趣味無(wú)窮。

程序清單(略,請(qǐng)參看源程序的說(shuō)明)。

程序框圖如圖2所示。

硬件連接說(shuō)明:

隨便找一個(gè)仿真機(jī)或者什么單片機(jī)實(shí)驗(yàn)板,只要能工作的就行,將程序輸入,運(yùn)行,然后找個(gè)音箱(你計(jì)算機(jī)旁邊應(yīng)當(dāng)就有一對(duì)吧)撥出插頭,插頭的前端接在P1。0上,后面部分找根線接單片機(jī)的地,就應(yīng)當(dāng)有聲了,然后怎么改進(jìn)硬件連接就是你的事了。。。。

音樂(lè)程序匯編代碼代碼1 -------------Voice.asm--------------------------

ORG 0000H

LJMP START

ORG 000BH

INC 20H ;中斷服務(wù),中斷計(jì)數(shù)器加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 ;中斷計(jì)數(shù)器清0

MOV B,#00H ;表序號(hào)清0

MUSIC1:

NOP

CLR A

MOVC A,@A+DPTR ;查表取代碼

JZ END0 ;是00H,則結(jié)束

CJNE A,#0FFH,MUSIC5

LJMP MUSIC3

MUSIC5:

NOP

MOV R6,A

INC DPTR

MOV A,B

MOVC A,@A+DPTR ;取節(jié)拍代碼送R7

MOV R7,A

SETB TR0 ;啟動(dòng)計(jì)數(shù)

MUSIC2:

NOP

CPL P1.0

MOV A,R6

MOV R3,A

LCALL DEL

MOV A,R7

CJNE A,20H,MUSIC2 ;中斷計(jì)數(shù)器(20H)=R7否?

;不等,則繼續(xù)循環(huán)

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 ;歌曲結(jié)束,延時(shí)1秒后繼續(xù)

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

音樂(lè)程序匯編代碼代碼2 -------------Voice1.asm--------------------------

;標(biāo)題 ‘八月桂花香’發(fā)聲程序

;摘要 詳見(jiàn)‘無(wú)線電’92年3期

;作者 周振安

ORG 0000H

LJMP START

ORG 000BH

INC 20H ;中斷服務(wù),中斷計(jì)數(shù)器加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 ;中斷計(jì)數(shù)器清0

MOV B,#00H ;表序號(hào)清0

MUSIC1:

NOP

CLR A

MOVC A,@A+DPTR ;查表取代碼

JZ END0 ;是00H,則結(jié)束

CJNE A,#0FFH,MUSIC5

LJMP MUSIC3

MUSIC5:

NOP

MOV R6,A

INC DPTR

MOV A,B

MOVC A,@A+DPTR ;取節(jié)拍代碼送R7

MOV R7,A

SETB TR0 ;啟動(dòng)計(jì)數(shù)

MUSIC2:

NOP

CPL P1.0

MOV A,R6

MOV R3,A

LCALL DEL

MOV A,R7

CJNE A,20H,MUSIC2 ;中斷計(jì)數(shù)器(20H)=R7否?

;不等,則繼續(xù)循環(huán)

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 ;歌曲結(jié)束,延時(shí)1秒后繼續(xù)

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 18H, 30H, 1CH, 10H

DB 20H, 40H, 1CH, 10H

DB 18H, 10H, 20H, 10H

DB 1CH, 10H, 18H, 40H

DB 1CH, 20H, 20H, 20H

DB 1CH, 20H, 18H, 20H

DB 20H, 80H, 0FFH, 20H

DB 30H, 1CH, 10H , 18H

DB 20H, 15H, 20H , 1CH

DB 20H, 20H, 20H , 26H

DB 40H, 20H , 20H , 2BH

DB 20H, 26H, 20H , 20H

DB 20H, 30H , 80H , 0FFH

DB 20H, 20H, 1CH , 10H

DB 18H, 10H, 20H , 20H

DB 26H, 20H , 2BH , 20H

DB 30H, 20H , 2BH , 40H

DB 20H, 20H , 1CH , 10H

DB 18H, 10H, 20H, 20H

DB 26H, 20H , 2BH, 20H

DB 30H, 20H, 2BH , 40H

DB 20H, 30H, 1CH , 10H

DB 18H, 20H , 15H , 20H

DB 1CH, 20H , 20H , 20H

DB 26H, 40H, 20H , 20H

DB 2BH, 20H, 26H , 20H

DB 20H, 20H, 30H , 80H

DB 20H, 30H, 1CH , 10H

DB 20H, 10H, 1CH , 10H

DB 20H, 20H, 26H , 20H

DB 2BH, 20H, 30H , 20H

DB 2BH, 40H, 20H , 15H

DB 1FH, 05H, 20H , 10H

DB 1CH, 10H, 20H , 20H

DB 26H, 20H, 2BH , 20H

DB 30H, 20H, 2BH , 40H

DB 20H, 30H, 1CH , 10H

DB 18H, 20H , 15H , 20H

DB 1CH, 20H , 20H , 20H

DB 26H, 40H, 20H , 20H

DB 2BH, 20H, 26H , 20H

DB 20H, 20H, 30H, 30H

DB 20H, 30H, 1CH, 10H

DB 18H, 40H, 1CH, 20H

DB 20H, 20H, 26H, 40H

DB 13H, 60H, 18H , 20H

DB 15H, 40H, 13H , 40H

DB 18H, 80H, 00H

end

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6063

    文章

    44925

    瀏覽量

    646982
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3824

    瀏覽量

    82419
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STC單片機(jī)范例程序

    電子發(fā)燒友網(wǎng)站提供《STC單片機(jī)范例程序.zip》資料免費(fèi)下載
    發(fā)表于 06-04 16:27 ?0次下載

    C51單片機(jī)及C語(yǔ)言知識(shí)點(diǎn)必備秘籍

    26:單片機(jī)矩陣式鍵盤接口技術(shù)及 27:關(guān)于單片機(jī)的一些基本概念 28:實(shí)際案例實(shí)踐——單片機(jī)音樂(lè)程序設(shè)計(jì) 純分享貼,有需要可以直接下載附件獲取完整
    發(fā)表于 05-15 14:00

    單片機(jī)C語(yǔ)言編程寶典大全,初學(xué)必備【強(qiáng)推下載!】

    (400頁(yè)P(yáng)PT) 6. 單片機(jī)程序設(shè)計(jì)實(shí)例 7. 單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)_周航慈.pdf 8. 8051單片機(jī)C語(yǔ)言徹底應(yīng)用 9. C語(yǔ)言
    發(fā)表于 03-14 11:03

    L298N-驅(qū)動(dòng)直流電機(jī)和步進(jìn)電機(jī)的詳細(xì)資料大總結(jié)

    電機(jī)轉(zhuǎn)速控制電路(PWM信號(hào))主要采用 L298N ,通過(guò)單片機(jī)的 I/O 輸入改變芯片控制端的電平,即可以對(duì)電機(jī) 進(jìn)行正反轉(zhuǎn),停止的操作,輸入引腳與輸出引腳的邏輯關(guān)系圖為驅(qū)動(dòng)直流電機(jī)和步進(jìn)電機(jī)的詳細(xì)資料可下載PDF文檔![hide] [/hide]
    發(fā)表于 02-26 16:02

    基于51單片機(jī)的手動(dòng)數(shù)字時(shí)鐘

    眾多嵌入式控制應(yīng)用系統(tǒng)提供靈活、高效的解決方案。本設(shè)計(jì)所使用的芯片可兼容以下所有的51系列單片機(jī)(包括AT系列和STC系列)。資料內(nèi)容仿真實(shí)現(xiàn)(protues8.7) 本設(shè)計(jì)利
    的頭像 發(fā)表于 10-22 14:12 ?537次閱讀
    基于51<b class='flag-5'>單片機(jī)</b>的手動(dòng)數(shù)字時(shí)鐘

    基于51單片機(jī)的遙控開(kāi)關(guān)仿真(雙機(jī)通信)

    靈活、高效的解決方案。本設(shè)計(jì)所使用的芯片可兼容以下所有的51系列單片機(jī)(包括AT系列和STC系列)。資料內(nèi)容仿真實(shí)現(xiàn)(protues8.7)本設(shè)計(jì)利用protues8.7軟件實(shí)現(xiàn)仿真設(shè)
    的頭像 發(fā)表于 10-22 14:12 ?741次閱讀
    基于51<b class='flag-5'>單片機(jī)</b>的遙控開(kāi)關(guān)仿真(雙機(jī)通信)

    基于51單片機(jī)的遙控音樂(lè)系統(tǒng)仿真

    ”,表示播放,按下接收器的停止按鍵后停止播放音樂(lè);(4)按下復(fù)位按鍵后回到初始狀態(tài)。仿真演示視頻:基于51單片機(jī)的遙控音樂(lè)系統(tǒng)仿真-仿真視頻設(shè)計(jì)介紹51單片機(jī)簡(jiǎn)介51
    的頭像 發(fā)表于 10-22 14:12 ?427次閱讀
    基于51<b class='flag-5'>單片機(jī)</b>的遙控<b class='flag-5'>音樂(lè)</b>系統(tǒng)仿真

    基于51單片機(jī)的遠(yuǎn)程防盜報(bào)警系統(tǒng)

    AT系列和STC系列)。資料內(nèi)容仿真實(shí)現(xiàn)(protues8.7)本設(shè)計(jì)利用protues8.7軟件實(shí)現(xiàn)仿真設(shè)計(jì),具體如圖。程序(Keil5)本設(shè)計(jì)利用KEIL5軟件
    的頭像 發(fā)表于 10-22 14:10 ?468次閱讀
    基于51<b class='flag-5'>單片機(jī)</b>的遠(yuǎn)程防盜報(bào)警系統(tǒng)

    單片機(jī)怎么寫(xiě)入程序

    程序通常涉及以下幾個(gè)步驟: 選擇單片機(jī)和開(kāi)發(fā)環(huán)境 : 確定項(xiàng)目需求,選擇合適的單片機(jī)型號(hào)。 安裝相應(yīng)的開(kāi)發(fā)環(huán)境,如Keil、IAR、MPLAB等。 硬件連接 : 將單片機(jī)連接到開(kāi)發(fā)板或
    的頭像 發(fā)表于 10-21 11:21 ?2138次閱讀

    keil可以讀出單片機(jī)程序

    Keil是一款廣泛應(yīng)用于單片機(jī)程序開(kāi)發(fā)的軟件,它提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案。然而,關(guān)于Keil是否能直接“讀出”單片機(jī)程序
    的頭像 發(fā)表于 09-02 10:32 ?1984次閱讀

    單片機(jī)燒錄程序用什么軟件

    單片機(jī)燒錄程序單片機(jī)開(kāi)發(fā)過(guò)程中的一個(gè)重要環(huán)節(jié),涉及到將編寫(xiě)好的程序代碼通過(guò)燒錄器寫(xiě)入單片機(jī)的ROM中,以
    的頭像 發(fā)表于 09-02 10:05 ?3049次閱讀

    單片機(jī)燒錄程序的線比單片機(jī)上的少還能燒錄嗎

    單片機(jī)燒錄原理 單片機(jī)燒錄是指將編寫(xiě)好的程序代碼通過(guò)一定的方式傳輸?shù)?b class='flag-5'>單片機(jī)的存儲(chǔ)器中,使其能夠按照程序的指令運(yùn)行。這個(gè)過(guò)程通常需要使用燒錄器
    的頭像 發(fā)表于 09-02 09:54 ?964次閱讀

    單片機(jī)燒錄程序的基本步驟是什么

    單片機(jī)燒錄程序單片機(jī)開(kāi)發(fā)過(guò)程中非常重要的一步,它涉及到將編寫(xiě)好的程序代碼通過(guò)一定的方式傳輸?shù)?b class='flag-5'>單片機(jī)內(nèi)部的存儲(chǔ)器中,使
    的頭像 發(fā)表于 09-02 09:47 ?2464次閱讀

    藍(lán)牙模塊如何實(shí)現(xiàn)單片機(jī)和手機(jī)端數(shù)據(jù)互傳

    藍(lán)牙模塊實(shí)現(xiàn)單片機(jī)和手機(jī)端數(shù)據(jù)互傳的過(guò)程可以分為以下幾個(gè)步驟: 硬件準(zhǔn)備 : 確保你有一個(gè)支持藍(lán)牙通信的單片機(jī)開(kāi)發(fā)板,如Arduino、Raspberry Pi等。 準(zhǔn)備一個(gè)兼容的藍(lán)牙模塊,如
    的頭像 發(fā)表于 07-24 17:59 ?5238次閱讀
    藍(lán)牙模塊如何<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>單片機(jī)</b>和手機(jī)端數(shù)據(jù)互傳

    基于51單片機(jī)矩陣鍵盤音樂(lè)電子琴電路圖proteus仿真及程序

    本資源內(nèi)容概要:? ? ? ?這是基于51單片機(jī)矩陣鍵盤音樂(lè)電子琴電路圖proteus仿真及程序設(shè)計(jì)包含了電路圖源文件(Altiumdesigner軟件打開(kāi))、C語(yǔ)言程序源代碼(kei
    發(fā)表于 06-21 14:32 ?4次下載