在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)音樂盒DIY—生日快樂歌程序

            單片機(jī)音樂盒DIY—生日快樂歌程序

            作者: 時(shí)間:2011-12-01 來源:網(wǎng)絡(luò) 收藏

              基于STC89C52單片機(jī)的七彩迷你音樂盒。在單片機(jī)最小系統(tǒng)的基礎(chǔ)上,對(duì)其他兩個(gè)I/O口連接硬件電路。P1.0接一個(gè)七彩快閃LED燈。P1.5口接一個(gè)NPN型三極管的放大電路,再連接一個(gè)無源蜂鳴器(用來播放樂曲)。

              這樣一個(gè)迷你音樂盒就完成了。硬件電路非常簡(jiǎn)單,其中單片機(jī)任意一個(gè)I/O口都可以作為樂曲的輸出,信號(hào)經(jīng)過NPN三極管放大驅(qū)動(dòng)蜂鳴器發(fā)出電子樂曲。

              緊接著就是為單片機(jī)設(shè)計(jì)運(yùn)行的程序了,這里我用匯編寫了一段《生日快樂》的程序。大家可以仿照,我的思路修改樂曲。

              DIY手記:用C52這么大塊頭的單片機(jī),確實(shí)很浪費(fèi)。因?yàn)橐还灿?2個(gè)I/O引腳,設(shè)計(jì)音樂盒只用了其中的兩個(gè),非常的浪費(fèi)。大家可以用其他的單片機(jī)代替,例如16引腳的單片機(jī)。價(jià)格相對(duì)會(huì)便宜一點(diǎn)。

              單片機(jī)匯編源代碼分享:

              org 0000h

              ajmp main

              org 000bh

              jmp tim0

              org 0030h

              main: ;主程序

              setb p1.1

              clr p1.4

              setb p3.0

              mov tmod,#01h ;設(shè)定時(shí)方式

              mov ie,#82h ;開中斷

              start0:

              mov 30h,#00h ;

              next:mov a,30h

              mov dptr,#table

              movc a,@a+dptr ;查表取音調(diào)和節(jié)拍

              mov r2,a

              jz end0 ;為零,不進(jìn)行處理.

              anl a,#0fh

              mov r5,a ;將節(jié)拍存入R5

              mov a,r2

              swap a

              anl a,#0fh

              jnz sing ;根據(jù)音調(diào)決定是否演奏.

              clr tr0

              jmp d1

              sing:dec a

              mov 22h,a ;將音調(diào)存入22H.

              rl a

              mov dptr,#table1

              movc a,@a+dptr ;根據(jù)音調(diào)決定定時(shí)器初值.

              mov th0,a ;放入TH0

              mov 21h,a

              mov a,22h

              rl a

              inc a

              movc a,@a+dptr

              mov tl0,a ;放入TL0

              mov 20h,a

              setb tr0 ;啟動(dòng)定時(shí)

              d1: call delay

              inc 30h

              jmp next

              end0:clr tr0

              jmp start0

              tim0: ;定時(shí)器中斷服務(wù)程序

              push acc

              push psw

              mov tl0,20h ;重賦初值.

              mov th0,21h

              cpl p1.7

              pop psw

              pop acc

              retidelay:mov r7,#02h ;延時(shí)子程序

              d2: mov r4,#130

              d3: mov r3,#248

              djnz r3,$

              djnz r4,d3

              djnz r7,d2

              djnz r5,delay

              ret

              table1: ;決定音調(diào)的定時(shí)初值.

              dw 64260,64400,64524,64580

              dw 64684,64777,64820,64898

              dw 64968,65030,65058,65110

              dw 65157,65178,65217

              table: ;決定音調(diào)和節(jié)拍的表格,不同的歌曲只是此表不同

              ;1

              db 82h,01h,81h,94h,84h,0b4h,0a4h,04h,82h,01h,81h,94h,84h,0c4h,0b4h,04h

              ;2

              db 82h,01h,81h,0f4h,0d4h,0b4h,0a4h,94h,0e2h,01h,0e1h,0d4h,0b4h,0c4h,0b4h,04h

              ;3

              db 82h,01h,81h,94h,84h,0b4h,0a4h,04h,82h,01h,81h,94h,84h,0c4h,0b4h,04h

              ;4

              db 82h,01h,81h,0f4h,0d4h,0b4h,0a4h,94h,0e2h,01h,0e1h,0d4h,0b4h,0c4h,0b4h,04h,00

              end



            關(guān)鍵詞: 單片機(jī)音樂盒

            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉