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

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

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

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

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

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

      本文引用地址:http://www.biyoush.com/article/172292.htm

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

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

      手記:用C52這么大塊頭的單片機(jī),確實(shí)很浪費(fèi)。因?yàn)橐还灿?2個I/O引腳,設(shè)計(jì)只用了其中的兩個,非常的浪費(fèi)。大家可以用其他的單片機(jī)代替,例如16引腳的單片機(jī)。價格相對會便宜一點(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è)定時方式

        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)決定定時器初值.

        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 ;啟動定時

        d1: call delay

        inc 30h

        jmp next

        end0:clr tr0

        jmp start0

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

        push acc

        push psw

        mov tl0,20h ;重賦初值.

        mov th0,21h

        cpl p1.7

        pop psw

        pop acc

        retidelay:mov r7,#02h ;延時子程序

        d2: mov r4,#130

        d3: mov r3,#248

        djnz r3,$

        djnz r4,d3

        djnz r7,d2

        djnz r5,delay

        ret

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

        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

      DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY


      蜂鳴器相關(guān)文章:蜂鳴器原理


      評論


      相關(guān)推薦

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

      關(guān)閉