畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的電子音樂(lè)盒的設(shè)計(jì).doc

上傳人:good****022 文檔編號(hào):116543220 上傳時(shí)間:2022-07-05 格式:DOC 頁(yè)數(shù):41 大?。?.72MB
收藏 版權(quán)申訴 舉報(bào) 下載
畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的電子音樂(lè)盒的設(shè)計(jì).doc_第1頁(yè)
第1頁(yè) / 共41頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的電子音樂(lè)盒的設(shè)計(jì).doc_第2頁(yè)
第2頁(yè) / 共41頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的電子音樂(lè)盒的設(shè)計(jì).doc_第3頁(yè)
第3頁(yè) / 共41頁(yè)

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的電子音樂(lè)盒的設(shè)計(jì).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的電子音樂(lè)盒的設(shè)計(jì).doc(41頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、創(chuàng)新制作設(shè)計(jì)報(bào)告題 目 基于單片機(jī)的電子音樂(lè)盒設(shè)計(jì) 姓 名 學(xué) 號(hào) 專業(yè)班級(jí) 09電子3班 所在學(xué)院 電子與通信工程學(xué)院 指導(dǎo)教師 二一一年 十二 月 三一日目 錄1設(shè)計(jì)目的和要求11.1 設(shè)計(jì)目的11.2 設(shè)計(jì)要求12. 音樂(lè)程序設(shè)計(jì)原理22.1音樂(lè)的基本知識(shí)說(shuō)明22.2 音調(diào)22.3 節(jié)拍32.4 音調(diào)的產(chǎn)生32.5 延時(shí)函數(shù)32.6 定時(shí)中斷42.7 節(jié)拍的產(chǎn)生53硬件電路設(shè)計(jì)63.1總體方案設(shè)計(jì)63.2器件選擇63.2.1 單片機(jī)的選擇63.2.2 LCD1602簡(jiǎn)介73.3 單元電路設(shè)計(jì)93.3.1晶振電路93.3.2復(fù)位電路93.3.3 鍵盤部分103.3.4 顯示電路113.3.

2、5 LM386功放驅(qū)動(dòng)部分123.4整體電路144.軟件設(shè)計(jì)164.1 主程序流程圖164.2主程序174.3音樂(lè)播放程序流程圖204.4音樂(lè)播放程序205、電路仿真調(diào)試235.1 原理圖的繪制235.2仿真結(jié)果24引言21世紀(jì),電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來(lái)越快。目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢(shì)將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展。單片機(jī)應(yīng)用的重要意義還在于它從根本上

3、改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過(guò)軟件方法來(lái)實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒(méi)有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過(guò)程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。隨著科學(xué)技術(shù)的進(jìn)步和社會(huì)的發(fā)展,人類所接觸的信息也在不斷增加并且日益復(fù)雜。面對(duì)浩如煙海的信息,人

4、們已經(jīng)能夠利用計(jì)算機(jī)等工具高效準(zhǔn)確地對(duì)之進(jìn)行處理,但要想將處理完的信息及時(shí),清晰地傳遞給別人,還必須通過(guò)尋求更加卓越的顯示技術(shù)來(lái)實(shí)現(xiàn)。單片機(jī)技術(shù)與液晶顯示技術(shù)的結(jié)合,使信息傳輸交流向著智能可視化方向迅速發(fā)展。隨著人類社會(huì)的發(fā)展,人們對(duì)視覺、聽覺方面的享受提出了越來(lái)越高的要求。小小的音樂(lè)盒可以給人們帶來(lái)美好的回憶,提高人們的精神文化享受。傳統(tǒng)音樂(lè)盒多是機(jī)械型的,體積笨重,發(fā)音單調(diào),不能實(shí)現(xiàn)批量生產(chǎn)。本文設(shè)計(jì)的音樂(lè)盒是以單片機(jī)為核心元件的電子式音樂(lè)盒,體積小,重量輕,能演奏和旋音樂(lè),功能多,外觀效果多彩,使用方便,并具有一定的商業(yè)價(jià)值。1設(shè)計(jì)目的和要求1.1 設(shè)計(jì)目的(1) 通過(guò)設(shè)計(jì),查閱相關(guān)資料

5、,掌握如何利用單片機(jī)設(shè)計(jì)產(chǎn)品,同時(shí)了解與單片機(jī)有關(guān)的軟件模擬器的使用及取字模塊軟件的使用方法。(2) 通過(guò)本課程設(shè)計(jì)鞏固并擴(kuò)展單片機(jī)課程的基本概念、基本理論、分析方法和實(shí)現(xiàn)方法。結(jié)合Proteus和Keil軟件等,學(xué)習(xí)單片機(jī)產(chǎn)品的設(shè)計(jì)方法,有效地將理論和實(shí)際緊密結(jié)合,培養(yǎng)創(chuàng)新思維和設(shè)計(jì)能力,增強(qiáng)軟件編程實(shí)現(xiàn)能力和解決實(shí)際問(wèn)題的能力。(3) 學(xué)習(xí)Proteus軟件,掌握Proteus中各種芯片的功能以及模擬。由于Proteus提供了實(shí)驗(yàn)室無(wú)法相比的大量的元器件庫(kù),提供了修改電路設(shè)計(jì)的靈活性、提供了實(shí)驗(yàn)室在數(shù)量、質(zhì)量上難以相比的虛擬儀器、儀表,因而也提供了培養(yǎng)實(shí)踐精神、創(chuàng)造精神的平臺(tái)。1.2 設(shè)計(jì)

6、要求 具體的設(shè)計(jì)應(yīng)該滿足以下功能:硬件方面:(1) 利用I/O口產(chǎn)生一定頻率的方波,LM386功放驅(qū)動(dòng)喇叭,發(fā)出不同的音調(diào),從而演樂(lè)曲(內(nèi)存四首樂(lè)曲) ,可以通過(guò)按鍵進(jìn)行曲目的選擇;(2) 用LCD顯示歌曲序號(hào)和歌曲名字;(3) 可通過(guò)功能鍵進(jìn)行選擇歌曲和暫停的操作。(4) CPU可以控制聲音的音節(jié)和長(zhǎng)短;(5)音頻數(shù)據(jù)信息記錄需要大量非易失性數(shù)據(jù)存儲(chǔ)器實(shí)時(shí)快速地記錄數(shù)據(jù)。因此需要具有掉電保護(hù)功能的大容量存儲(chǔ)器;軟件方面:系統(tǒng)中外擴(kuò)的各器件的初始化工作均在主程序中完成,其次,要設(shè)計(jì)如何調(diào)用顯示子程序以及樂(lè)曲播放程序。(1) 在實(shí)際的控制過(guò)程,常要求有實(shí)時(shí)時(shí)鐘,以實(shí)現(xiàn)定時(shí)或延時(shí)控制,所以需要此類

7、中斷服務(wù)程序。(2) 由于按鍵為機(jī)械開關(guān)結(jié)構(gòu),機(jī)械觸點(diǎn)的彈性及電壓突跳等原因,往往在觸點(diǎn)閉合或斷開的瞬間會(huì)出現(xiàn)電壓抖動(dòng)。為保證鍵識(shí)別的準(zhǔn)確,在電壓信號(hào)抖動(dòng)的情況下不能進(jìn)行狀態(tài)的輸入。為此需要進(jìn)行去抖動(dòng)處理的中斷服務(wù)程序。(當(dāng)然這種問(wèn)題也可以通過(guò)硬件方案解決。)2 音樂(lè)程序的設(shè)計(jì)原理2.1 音樂(lè)的基本知識(shí)說(shuō)明聲音是由物體振動(dòng)產(chǎn)生,正在發(fā)聲的物體叫聲源。振動(dòng)的頻率高,為高音;振動(dòng)的頻率低,為低音。人耳比較容易辨識(shí)的聲音頻率范圍是20Hz到20,000Hz之間,一般音響電路是用正弦波信號(hào)驅(qū)動(dòng)喇叭,從而產(chǎn)生悅耳的音樂(lè);在數(shù)字電路里,則是用數(shù)字脈沖信號(hào)信號(hào)驅(qū)動(dòng)喇叭,從而產(chǎn)生聲音。如果聲音的頻率相同,人類

8、耳朵很難區(qū)分哪個(gè)是脈沖信號(hào)產(chǎn)生的聲音,哪個(gè)是正弦波信號(hào)產(chǎn)生的聲音。圖2.1.1 聲音的波形2.2 音調(diào)不同音高的樂(lè)音是用C、D、E、F、G、A、B來(lái)表示,這7個(gè)字母就是音樂(lè)的音名,它們一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成簡(jiǎn)譜的1、2、3、4、5、6、7,相當(dāng)于漢字“多來(lái)米發(fā)梭拉西”的讀音,這是唱曲時(shí)樂(lè)音的發(fā)音,所以叫“音調(diào)”,即Tone。把C、D、E、F、G、A、B這一組音的距離分成12個(gè)等份,每一個(gè)等份叫一個(gè)“半音”。兩個(gè)音之間的距離有兩個(gè)“半音”,就叫“全音”。在鋼琴等鍵盤樂(lè)器上,CD、DE、FG、GA、AB兩音之間隔著一個(gè)黑鍵,他們之間的距離就是全音;EF、BC兩

9、音之間沒(méi)有黑鍵相隔,它們之間的距離就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它們的左上角加上號(hào)或者b號(hào)的叫變化音。叫升記號(hào),表示把音在原來(lái)的基礎(chǔ)上升高半音,b叫降記音,表示在原來(lái)的基礎(chǔ)上降低半音。例如高音DO的頻率(1046Hz)剛好是中音DO的頻率(523Hz)的一倍,中音DO的頻率(523Hz)剛好是低音DO頻率(266 Hz)的一倍;同樣的,高音RE的頻率(1175Hz)剛好是中音RE的頻率(587Hz)的一倍,中音RE的頻率(587Hz)剛好是低音RE頻率(294 Hz)的一倍。2.3 節(jié)拍若要構(gòu)成音樂(lè),光有音調(diào)是不夠的,還需要節(jié)拍,讓音樂(lè)具有旋律(固定的律動(dòng)),

10、而且可以調(diào)節(jié)各個(gè)音的快滿度?!肮?jié)拍”,即Beat,簡(jiǎn)單說(shuō)就是打拍子,就像我們聽音樂(lè)不自主的隨之拍手或跺腳。若1拍實(shí)0.5s,則1/4 拍為0.125s。至于1拍多少s,并沒(méi)有嚴(yán)格規(guī)定,就像人的心跳一樣,大部分人的心跳是每分鐘72下,有些人快一點(diǎn),有些人慢一點(diǎn),只要聽的悅耳就好。音持續(xù)時(shí)間的長(zhǎng)短即時(shí)值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。一首音樂(lè)是由許多不同的音符組成的,而每個(gè)音符對(duì)應(yīng)著不同頻率,這樣就可以利用不同的頻率的組合,加以與拍數(shù)對(duì)應(yīng)的延時(shí),構(gòu)成音樂(lè)。了解音樂(lè)的一些基礎(chǔ)知識(shí),我們可知產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂(lè)。對(duì)于單片機(jī)來(lái)說(shuō),產(chǎn)生不同頻率的脈沖是非常方便的,利用單片機(jī)的定時(shí)/計(jì)數(shù)

11、器來(lái)產(chǎn)生這樣的方波頻率信號(hào)。因此,需要弄清楚音樂(lè)中的音符和對(duì)應(yīng)的頻率,以及單片機(jī)定時(shí)計(jì)數(shù)的關(guān)系。2.4 音調(diào)的產(chǎn)生前面講到聲音只是某一范圍的頻率,也就所謂的音頻。因?yàn)閾P(yáng)聲器發(fā)生只需要半個(gè)周期即可,所以用單片機(jī)產(chǎn)生聲音只要送電半個(gè)周期的時(shí)間就可以實(shí)現(xiàn),我們用音調(diào)Do來(lái)舉例,音調(diào)Do周期波形如圖9。我們可以用延遲函數(shù)或者Timer定時(shí)中斷可以產(chǎn)生音調(diào)。計(jì)算音調(diào)Do的周期:Do頻率=262 HzT=1/f=1/262=3186s所以實(shí)際送電的時(shí)間只有3826/2=1908sDo f=3186s2.5 延遲函數(shù)對(duì)于12M Hz的8051系統(tǒng)而言,若要延遲1ms,可以用“delay1ms(1);”指令,

12、若需要延遲5ms,則可使用“delay1ms(5);”.很明顯,這個(gè)函數(shù)的刻度為1ms,但是如果要求小于1ms,我們可以改變內(nèi)循環(huán)的數(shù)量決定延遲時(shí)間,因?yàn)閮?nèi)循環(huán)的數(shù)量為120,可延遲1ms,該函數(shù)的最小刻度為1ms;將內(nèi)循環(huán)的數(shù)量改為12,可延遲0.1ms,該函數(shù)的最小刻度為0.1ms,即100s。如表1。表1內(nèi)循環(huán)數(shù)量最小延遲時(shí)間(ms)最小延遲時(shí)間(s)12011000600.550060.055030.0252510.00838.31ms延遲函數(shù)如下:void delay1ms(unsigned char x) unsigned char i,j; /聲明變量 for(i=0;ix;i+

13、)/外循環(huán)for(j=0;j120;j+) /內(nèi)循環(huán)8s延遲函數(shù)如下:void delay8s(unsigned char x) unsigned char i,j; /聲明變量 for(i=0;ix;i+)/外循環(huán)for(j=0;j120;j+) /內(nèi)循環(huán)音樂(lè)的拍子種類,找出其中最短的拍子,例如整首音樂(lè)中,包含1/4拍、1/2拍、3/4拍、1拍、2拍,則以1/4拍為基準(zhǔn),然后寫一段1/4拍長(zhǎng)度的延遲函數(shù),若要產(chǎn)生1/4拍的長(zhǎng)度,則執(zhí)行該函數(shù)時(shí),變量為1;若要產(chǎn)生1/2拍的長(zhǎng)度,則執(zhí)行該函數(shù)時(shí),變量為2;如要產(chǎn)生3/4拍的長(zhǎng)度,則執(zhí)行該函數(shù)時(shí),變量為3;若要產(chǎn)生1拍的長(zhǎng)度,則執(zhí)行該函數(shù)時(shí),變量

14、為4,如要產(chǎn)生2拍的長(zhǎng)度,則執(zhí)行該函數(shù)時(shí),變量為8依次類推。2.6 定時(shí)中斷在Mode 1模式下,定時(shí)量最多可達(dá)65536,也就是65536s,足以產(chǎn)生低音Do所需的半周期1908。所以,若要產(chǎn)生低音Do的音頻,則只需要執(zhí)行1908定時(shí)量的timer中斷即可。每中斷一次,就改變連接喇叭的輸入/輸出的狀態(tài),就能發(fā)出低音Do的聲音。如要產(chǎn)生其他音階,只需要按表1-1的T字段設(shè)定定時(shí)量即可。如下程序一Mode 1來(lái)產(chǎn)生低音的Do:#includesbit speaker=P10; /聲明輸出端main()speaker=0; /喇叭初始值IE=0 x82; /啟用Timer0 TH0=(65536-

15、1908)/256; /填入定時(shí)量的高八位 TL0=(65536-1908)%256; /填入定時(shí)量的低八位 TR0=1; /啟動(dòng)Timer0 While(1); /停止 /主程序結(jié)束/=Timer0中斷子程序=void tone_int(void)interrupt 1 /Timer 0中斷之程序TH0=Do_H; /填入定時(shí)量的高八位 TH0=Do_L; /填入定時(shí)量的低八位 speaker=speaker; /喇叭反向輸出音樂(lè)中最短的拍子,例如在整首音樂(lè)中,最短的拍子為1/4拍,若1/4拍的時(shí)間為0.125s,則以1/4拍為基準(zhǔn),然后設(shè)定每0.125s產(chǎn)生一次中斷,其定時(shí)量為125000

16、,假設(shè)采用Mode 1,定時(shí)量設(shè)為62500,只要執(zhí)行2次中斷,即可產(chǎn)生1/4拍的時(shí)間長(zhǎng)度。同理,若要產(chǎn)生1/2拍的長(zhǎng)度,則執(zhí)行4次中斷,若要產(chǎn)生3/4拍的長(zhǎng)度,則執(zhí)行6次中斷依次類推。如表2。表2拍數(shù)中斷次數(shù)拍數(shù)中斷次數(shù)拍數(shù)中斷次數(shù)1/811/241又1/4101/423/461又1/2128/33182162.7 節(jié)拍的產(chǎn)生音階的頻率是固定的,而節(jié)拍有快有慢,拍子越短,節(jié)奏越快,拍子越長(zhǎng),節(jié)奏越慢。產(chǎn)生節(jié)拍的方法也是一種處理時(shí)間的方法。我們以生日快樂(lè)歌為例,它的前兩個(gè)音節(jié)1 1 2 14 3 ,第一個(gè)音是Do,發(fā)生這個(gè)音的時(shí)間長(zhǎng)度是250ms;停頓一下,再發(fā)出第二個(gè)音Do,還是持續(xù)250m

17、s;接下來(lái)發(fā)Re的音,時(shí)間長(zhǎng)達(dá)500ms、改發(fā)出Do的音,時(shí)間長(zhǎng)達(dá)500ms,第一小節(jié)結(jié)束。緊接著是第二小節(jié),首先發(fā)Fa的音,時(shí)間長(zhǎng)達(dá)500ms;在發(fā)出Mi的音,時(shí)間長(zhǎng)達(dá)1000ms,以下以此類推。節(jié)拍的產(chǎn)生我們同樣可以采用延遲函數(shù)或者Timer定時(shí)中斷兩種方式。3硬件電路設(shè)計(jì)3.1總體方案設(shè)計(jì)圖1 總體方案圖以AT89C51為核心,通過(guò)單片機(jī)的定時(shí)器產(chǎn)生一定長(zhǎng)度的方波,方波脈沖驅(qū)動(dòng)蜂鳴器發(fā)聲。要產(chǎn)生音頻脈沖,只需算出某一音頻的周期(1/音頻),然后取半周期的時(shí)間定時(shí)。利用定時(shí)器計(jì)時(shí)這個(gè)半周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對(duì)I/O口反相,就可在I/O腳上

18、得到此頻率的脈沖。當(dāng)鍵盤有鍵按下時(shí),判斷鍵值,啟動(dòng)計(jì)數(shù)器T0,產(chǎn)生一定頻率的脈沖,驅(qū)動(dòng)揚(yáng)聲器,放出樂(lè)曲。同時(shí)在LCD顯示歌曲序號(hào)和歌曲名稱。3.2器件選擇3.2.1 單片機(jī)的選擇單片機(jī)型號(hào)的選擇是根據(jù)控制系統(tǒng)的目標(biāo)、功能、可靠性、性價(jià)比、精度和速度等來(lái)決定的。根據(jù)本課題的實(shí)際情況,單片機(jī)型號(hào)的選擇主要從以下兩點(diǎn)考慮;一是要有較強(qiáng)的抗干擾能力。二是要有較高的性價(jià)比。由于51系列在我國(guó)使用最廣,且該系列的資料和能夠兼容的外圍芯片也比較多,特別是ATMEL公司89C系列單片機(jī),其典型產(chǎn)品AT89C51單片機(jī),具有較高的性能價(jià)格比。故本系統(tǒng)采用ATMEL公司生產(chǎn)的AT89C51單片機(jī)作為電子音樂(lè)盒的核

19、心部件,AT89C51是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含4k bytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器(PEROM)和128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元,功能強(qiáng)大AT89C51單片機(jī)可提供許多高性價(jià)比的應(yīng)用場(chǎng)合,可靈活應(yīng)用于各種控制領(lǐng)域。3.2.2 LCD1602簡(jiǎn)介L(zhǎng)CD液晶顯示的原理是利用液晶的物理特性,通過(guò)電壓對(duì)其顯示區(qū)域進(jìn)行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電

20、路直接驅(qū)動(dòng)、易于實(shí)現(xiàn)全彩色顯示的特點(diǎn),目前已經(jīng)被廣泛應(yīng)用在便攜式電腦、數(shù)字?jǐn)z像機(jī)、PDA移動(dòng)通信工具等眾多領(lǐng)域。字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式LCD,目前常用161,162,202和402行等的模塊。LCD1602分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無(wú)差別,兩者尺寸差別如下圖2所示:圖2 LCD尺寸圖1602LCD主要技術(shù)參數(shù):顯示容量:162個(gè)字符;芯片工作電壓:4.55.5V;工作電流:2.0mA(5.0V);模塊最佳工作電壓:5.0V;字符尺寸:2.954.35(WH)mm。引腳功能說(shuō)明LCD

21、1602采用標(biāo)準(zhǔn)的14腳(無(wú)背光)或16腳(帶背光)接口,各引腳接口說(shuō)明如表1所示。表1 引腳接口說(shuō)明表編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。第4腳:RS為寄存器選擇,高電平時(shí)

22、選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極。1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表2所示:表2 控制命令表序號(hào)指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式0

23、0000001I/DS4顯示開/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向

24、,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效。指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。指令6:功能設(shè)置命令 DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線 N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符。指令7:字符發(fā)生器RAM地址設(shè)置。指令8:DDRAM地址設(shè)置。指

25、令9:讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。與HD44780相兼容的芯片時(shí)序表如下:表 3 芯片時(shí)序圖讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0D7=狀態(tài)字寫指令輸入RS=L,R/W=L,D0D7=指令碼,E=高脈沖輸出無(wú)讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0D7=數(shù)據(jù)寫數(shù)據(jù)輸入RS=H,R/W=L,D0D7=數(shù)據(jù),E=高脈沖輸出無(wú)3.3 單元電路設(shè)計(jì)3.3.1晶振電路單片機(jī)需要一個(gè)時(shí)間基準(zhǔn)來(lái)為各種操作提供秩序,此電路叫時(shí)鐘電路,采用不同的接線方式可以獲得不同時(shí)鐘電路,有內(nèi)部時(shí)鐘電

26、路和外部時(shí)鐘電路,如圖4.3所示,外部時(shí)鐘電路會(huì)使電路復(fù)雜,故采用的是內(nèi)部時(shí)鐘電路。時(shí)鐘電路在單片機(jī)的外部通過(guò)XTAL1,XTAL2這兩個(gè)引腳跨接晶體振蕩器和微調(diào)電容,構(gòu)成穩(wěn)定的自激振蕩器.本系統(tǒng)采用的為12MHz的晶振,一個(gè)機(jī)器周期為1us,C1,C2為30uF。3.3.2復(fù)位電路復(fù)位電路的基本功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號(hào)。為可靠起見,電源穩(wěn)定后還要經(jīng)一定的延時(shí)才撤銷復(fù)位信號(hào),以防電源開關(guān)或電源插頭分-合過(guò)程中引起的抖動(dòng)而影響復(fù)位。復(fù)位電路分為上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位,如圖3所示。RST引腳是復(fù)位信號(hào)的輸入端,復(fù)位信號(hào)是高電平有效.這次采用的是手動(dòng)復(fù)位,

27、復(fù)位通過(guò)電容C3,C4和電阻R1,R2來(lái)實(shí)現(xiàn),按鍵手動(dòng)復(fù)位是圖中復(fù)位鍵來(lái)實(shí)現(xiàn)的。圖 3 晶振與復(fù)位電路3.3.3 鍵盤部分鍵盤是由一組按壓式或觸摸式開關(guān)構(gòu)成的陣列,是一種常用的輸入設(shè)備。鍵盤可分為編碼式鍵盤和非編碼式鍵盤兩種。1.編碼鍵盤通過(guò)硬件電路產(chǎn)生被按按鍵的鍵碼,這種鍵盤所需程序簡(jiǎn)單,但硬件電路復(fù)雜、價(jià)格昂貴通常不被單片機(jī)系統(tǒng)采用。2.非編碼鍵盤常用一些按鍵排列成行列矩陣,其硬件邏輯與按鍵編碼不存在嚴(yán)格的對(duì)應(yīng)關(guān)系,而要由所用的程序來(lái)決定。非編碼鍵盤的硬件接口簡(jiǎn)單,但是要占用較多的CPU時(shí)間,通常采用可編程鍵盤管理芯片來(lái)克服這個(gè)缺點(diǎn)。本設(shè)計(jì)使用兩種按鍵,一種是按鍵式非編碼鍵盤和輕觸式非編碼

28、開關(guān)。圖 4 鍵盤電路3.3.4 顯示電路LCD的8根數(shù)據(jù)線與P1口相連,RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。R/W為讀寫信號(hào)線,RS與P2.0相連,由P2.0控制LCD的寫指令或?qū)憯?shù)據(jù)操作。R/W與P2.1相連,由P2.1決定是讀操作還是寫操作。E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。E端與P2.2相連。圖5 LCD顯示電路3.3.5 LM386功放電路LM386是一種音頻集成功放,具有自身功耗低、電壓增益可調(diào)整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點(diǎn),廣泛應(yīng)用于錄音機(jī)和收音機(jī)之中。一、 LM386內(nèi)部電路LM386內(nèi)部電路原理圖如

29、圖所示。與通用型集成運(yùn)放相類似,它是一個(gè)三級(jí)放大電路。第一級(jí)為差分放大電路,T1和T3、T2和T4分別構(gòu)成復(fù)合管,作為差分放大電路的放大管;T5和T6組成鏡像電流源作為T1和T2的有源負(fù)載;T3和T4信號(hào)從管的基極輸入,從T2管的集電極輸出,為雙端輸入單端輸出差分電路。使用鏡像電流源作為差分放大電路有源負(fù)載,可使單端輸出電路的增益近似等于雙端輸出電容的增益。第二級(jí)為共射放大電路,T7為放大管,恒流源作有源負(fù)載,以增大放大倍數(shù)。第三級(jí)中的T8和T9管復(fù)合成PNP型管,與NPN型管T10構(gòu)成準(zhǔn)互補(bǔ)輸出級(jí)。二極管D1和D2為輸出級(jí)提供合適的偏置電壓,可以消除交越失真。引腳2為反相輸入端,引腳3為同相

30、輸入端。電路由單電源供電,故為OTL電路。輸出端(引腳5)應(yīng)外接輸出電容后再接負(fù)載。電阻R7從輸出端連接到T2的發(fā)射極,形成反饋通路,并與R5和R6構(gòu)成反饋網(wǎng)絡(luò),從而引入了深度電壓串聯(lián)負(fù)反饋,使整個(gè)電路具有穩(wěn)定的電壓增益。二、 LM386的引腳圖LM386的外形和引腳的排列如右圖所示。引腳2為反相輸入端,3為同相輸入端;引腳5為輸出端;引腳6和4分別為電源和地;引腳1和8為電壓增益設(shè)定端;使用時(shí)在引腳7和地之間接旁路電容,通常取10F。 查L(zhǎng)M386的datasheet,電源電壓4-12V或5-18V(LM386N-4);靜態(tài)消耗電流為4mA;電壓增益為20-200dB;在1、8腳開路時(shí),帶寬

31、為300KHz;輸入阻抗為50K;音頻功率0.5W。 盡管LM386的應(yīng)用非常簡(jiǎn)單,但稍不注意,特別是器件上電、斷電瞬間,甚至工作穩(wěn)定后,一些操作(如插拔音頻插頭、旋音量調(diào)節(jié)鈕)都會(huì)帶來(lái)的瞬態(tài)沖擊,在輸出喇叭上會(huì)產(chǎn)生非常討厭的噪聲查L(zhǎng)M386的datasheet,電源電壓4-12V或5-18V(LM386N-4);靜態(tài)消耗電流為4mA;電壓增益為20-200dB;在1、8腳開路時(shí),帶寬為300KHz;輸入阻抗為50K;音頻功率0.5W。 盡管LM386的應(yīng)用非常簡(jiǎn)單,但稍不注意,特別是器件上電、斷電瞬間,甚至工作穩(wěn)定后,一些操作(如插拔音頻插頭、旋音量調(diào)節(jié)鈕)都會(huì)帶來(lái)的瞬態(tài)沖擊,在輸出喇叭上會(huì)

32、產(chǎn)生非常討厭的噪聲。1、通過(guò)接在1腳、8腳間的電容(1腳接電容+極)來(lái)改變?cè)鲆?,斷開時(shí)增益為20dB。因此用不到大的增益,電容就不要接了,不光省了成本,還會(huì)帶來(lái)好處-噪音減少,何樂(lè)而不為?2、PCB設(shè)計(jì)時(shí),所有外圍元件盡可能靠近LM386;地線盡可能粗一些;輸入音頻信號(hào)通路盡可能平行走線,輸出亦如此。這是死理,不用多說(shuō)了吧。3、選好調(diào)節(jié)音量的電位器。質(zhì)量太差的不要,否則受害的是耳朵;阻值不要太大,10K最合適,太大也會(huì)影響音質(zhì),轉(zhuǎn)那么多圈圈,不煩那!4、盡可能采用雙音頻輸入/輸出。好處是:“”、“”輸出端可以很好地抵消共模信號(hào),故能有效抑制共模噪聲。5、第7腳(BYPASS)的旁路電容不可少!

33、實(shí)際應(yīng)用時(shí),BYPASS端必須外接一個(gè)電解電容到地,起濾除噪聲的作用。工作穩(wěn)定后,該管腳電壓值約等于電源電壓的一半。增大這個(gè)電容的容值,減緩直流基準(zhǔn)電壓的上升、下降速度,有效抑制噪聲。在器件上電、掉電時(shí)的噪聲就是由該偏置電壓的瞬間跳變所致,這個(gè)電容可千萬(wàn)別省??!6、減少輸出耦合電容。此電容的作用有二:隔直 + 耦合。隔斷直流電壓,直流電壓過(guò)大有可能會(huì)損壞喇叭線圈;耦合音頻的交流信號(hào)。它與揚(yáng)聲器負(fù)載構(gòu)成了一階高通濾波器。減小該電容值,可使噪聲能量沖擊的幅度變小、寬度變窄;太低還會(huì)使截止頻率(fc1/(2*RL*Cout))提高。分別測(cè)試,發(fā)現(xiàn)10uF/4.7uF最為合適,這是我的經(jīng)驗(yàn)值。7、電源

34、的處理,也很關(guān)鍵。如果系統(tǒng)中有多組電源,太好了!由于電壓不同、負(fù)載不同以及并聯(lián)的去耦電容不同,每組電源的上升、下降時(shí)間必有差異。非??尚械姆椒ǎ簩⑸想?、掉電時(shí)間短的電源放到+12V處,選擇上升相對(duì)較慢的電源作為L(zhǎng)M386的Vs,但不要低于4V,效果確實(shí)不錯(cuò)!由于揚(yáng)聲器的工作電流一般比較大,以致于單片機(jī)的I/O 口是無(wú)法直接驅(qū)動(dòng)的,所以要利用LM386功率放大電路來(lái)驅(qū)動(dòng)。圖6 蜂鳴器電路3.4整體電路154.軟件設(shè)計(jì)4.3 主程序流程圖圖 8 主程序流程圖4.4主程序main()uint i;k=8;init(); for(i=0;i15;i+) WriteData(tabi);/LCD寫數(shù)據(jù)函

35、數(shù)寫第一行 mydelay(50); mydelay(1000); WriteCMD(0 x80+0 x40+2);/將指針設(shè)到第二行空兩字符 for(i=0;i6;i+) WriteData(tab1i); mydelay(50); InitialSound();/發(fā)音初始化程序while(1) Getch();/掃描鍵盤,獲得鍵值 if(k=0)/若鍵值為0 uint i; init(); for(i=0;i10;i+) WriteData(tab2i);/寫第一首歌序號(hào) mydelay(50); mydelay(1000); WriteCMD(0 x80+0 x40);/轉(zhuǎn)到第二行 fo

36、r(i=0;i9;i+) WriteData(tab3i);/寫歌名 mydelay(50); Play(Music_Girl,0,3,360);/播放第一首歌 Delay1ms(500);break; else if (k=1) /若鍵值為1uint i; init(); for(i=0;i11;i+) WriteData(tab4i); /寫第二首歌序號(hào) mydelay(50); mydelay(1000); WriteCMD(0 x80+0 x40); /轉(zhuǎn)到第二行 for(i=0;i11;i+) WriteData(tab5i); /寫歌名 mydelay(50); Play(Musi

37、c_Jingle,0,3,360); /播放第二首歌Delay1ms(500);break; else if (k=2) /若鍵值為2uint i; init(); for(i=0;i10;i+) WriteData(tab6i); /寫第三首歌序號(hào) mydelay(50); mydelay(1000); /WriteCMD(0 x01); WriteCMD(0 x80+0 x40); /轉(zhuǎn)到第二行 for(i=0;i6;i+) WriteData(tab7i); /寫歌名 mydelay(50); Play(Music_Two,0,3,360); /播放第三首歌Delay1ms(500);b

38、reak; else if (k=3) /若鍵值為3uint i; init(); for(i=0;i10;i+) WriteData(tab8i); /寫第四首歌序號(hào) mydelay(50); mydelay(1000);WriteCMD(0 x80+0 x40); /轉(zhuǎn)到第二行 for(i=0;i6;i+) WriteData(tab9i); /寫歌名 mydelay(50); Play(Music_Four,0,3,360); /播放第三首歌Delay1ms(500);break;4.5音樂(lè)播放程序流程圖圖9 音樂(lè)播放程序流程圖4.6音樂(lè)播放程序void Play(unsigned ch

39、ar *Sound,unsigned char Signature,unsigned Octachord,unsigned int Speed)unsigned int NewFreTab12;/新的頻率表unsigned char i,j;unsigned int Point,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength;unsigned char Tone,Length,SL,SH,SM,SLen,XG,FD;for(i=0;i 11)j = j-12;NewFreTabi = FreTabj*2;elseNewFre

40、Tabi = FreTabj;if(Octachord = 1)NewFreTabi=2;else if(Octachord = 3)NewFreTabi=2;SoundLength = 0;while(SoundSoundLength != 0 x00)/計(jì)算歌曲長(zhǎng)度SoundLength+=2;Point = 0;Tone = SoundPoint;Length = SoundPoint+1; / 讀出第一個(gè)音符和它時(shí)時(shí)值LDiv0 = 12000/Speed;/ 算出1分音符的長(zhǎng)度(幾個(gè)10ms) LDiv4 = LDiv0/4; / 算出4分音符的長(zhǎng)度 LDiv4 = LDiv4-LD

41、iv4*SOUND_SPACE; / 普通音最長(zhǎng)間隔標(biāo)準(zhǔn) TR0 = 0;TR1 = 1;while(Point = 2; /低音 if (SM=3) CurrentFre = 2; /高音Temp_T = 65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC);/計(jì)算計(jì)數(shù)器初值Sound_Temp_TH0 = Temp_T/256; Sound_Temp_TL0 = Temp_T%256; TH0 = Sound_Temp_TH0; TL0 = Sound_Temp_TL0 + 12; /加12是對(duì)中斷延時(shí)的補(bǔ)償 SLen=LengthTabLen

42、gth%10; /算出是幾分音符XG=Length/10%10; /算出音符類型(0普通1連音2頓音) FD=Length/100;LDiv=LDiv0/SLen; /算出連音音符演奏的長(zhǎng)度(多少個(gè)10ms)if (FD=1) LDiv=LDiv+LDiv/2;if(XG!=1)if(XG=0) /算出普通音符的演奏長(zhǎng)度 if (SLen0;i-) /發(fā)規(guī)定長(zhǎng)度的音 while(TF1=0);TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0;if(LDiv2!=0)TR0=0; BeepIO=0;for(i=LDiv2;i0;i-) /音符間的間隔

43、while(TF1=0);TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0;Point+=2; Tone=SoundPoint;Length=SoundPoint+1;BeepIO = 0;5、電路仿真調(diào)試5.1 原理圖的繪制仿真平臺(tái)為Proteus軟件,Proteus軟件是世界上著名的EDA工具(仿真軟件),能完成原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì)它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件,是目前最好的仿真單片機(jī)及外圍器件的工具。PROTEUS電路設(shè)計(jì)是在PROTEUS ISIS環(huán)境中繪制的

44、,該編輯環(huán)境具有良好的人機(jī)交互界面,功能強(qiáng)大極易上手。首先通過(guò)桌面進(jìn)入主程序,繪制原來(lái)圖的主要任務(wù)是從元件庫(kù)中選取繪制電路所需要的元件??梢酝ㄟ^(guò)點(diǎn)擊選擇器頂端左側(cè)的“P”或者通過(guò)命令打開,我們常用的是按鈕;在查找到并放置完所有需要的器件后,我們需要接著連接元件,即在PROTEUS ISIS的編輯窗口布線。PROTEUS ISIS中沒(méi)有布線模式,但用戶可以在任意時(shí)刻放置連線和編輯連線。在完成繪制所需的電路圖前,用戶需要放置并連接斷軸。在電路原理圖中放置兩種通用的端子,一種是接地端子一種是電源端子。當(dāng)在PROTEUS ISIS編輯窗口放置元件時(shí),每一元件都有唯一的元件標(biāo)號(hào)及元件值與之對(duì)應(yīng)。原件號(hào)是

45、PROTEUS ISIS的實(shí)時(shí)注釋功能自動(dòng)標(biāo)注的,這一功能可在菜單中設(shè)置選擇是否開啟。PROTEUS ISIS中也支持塊操作,當(dāng)用戶需要對(duì)電路中的某一部分進(jìn)行操作時(shí),可以使用該功能。系統(tǒng)共支持塊移動(dòng)、塊復(fù)制、塊旋轉(zhuǎn)、塊刪除等實(shí)用功能,充分利用這些功能可以極大的提高我們繪圖的效率。我們繪制完所有的元件后,最后進(jìn)行統(tǒng)一標(biāo)注,PROTEUS ISIS支持注釋功能,可以把我們所繪制的原理圖中的器件根據(jù)我們的需要添加上特殊的注釋,以表示特定的含義。根據(jù)設(shè)計(jì)電路繪制完后的電路圖如圖6.1所示。5.2仿真結(jié)果圖 10 仿真圖通過(guò)Protues仿真結(jié)果,這次課程設(shè)計(jì)的要求已全部滿足。參考文獻(xiàn)1閻石.數(shù)字電子技

46、術(shù)基礎(chǔ)(第四版)M.高等教育出版社.1998.112張毅剛等.MCS-51單片機(jī)應(yīng)用設(shè)計(jì).哈爾濱工業(yè)電子出版社,19963何立民.單片機(jī)應(yīng)用技術(shù)選編.北京航空航天大學(xué)出版社,20004張友德等.單片微型機(jī)原理應(yīng)用與實(shí)驗(yàn),復(fù)旦大學(xué)出版社,19965鄔寬明.單片機(jī)外圍器件實(shí)用手冊(cè).北京航空航天大學(xué)出版社,1998附錄鍵盤掃描頭文件:#ifndef _key_H_#define _key_H_#define uchar unsigned charuchar k;void delay1(void) /延時(shí)程序 uchar i,j; for(i=20;i0;i-) for(j=248;j0;j-); v

47、oid Getch ( ) uchar X,Y,Z;P1=0 xff;P1=0 xf3; /先對(duì)P0置數(shù) 行掃描if(P1!=0 xf3) /判斷是否有鍵按下delay1(); /延時(shí),軟件去干擾 if(P1!=0 xf3) /確認(rèn)按鍵按下X = P3; X=P1; /保存行掃描時(shí)有鍵按下時(shí)狀態(tài)P1=0 xfc; /列掃描Y=P1; /保存列掃描時(shí)有鍵按下時(shí)狀態(tài) Z=X|Y; /取出鍵值switch ( Z ) /判斷鍵值(那一個(gè)鍵按下)case 0 xf9: k=0; break; /對(duì)鍵值賦值case 0 xf5: k=1; break; case 0 xfa: k=2; break; c

48、ase 0 xf6: k=3; break; LCD顯示頭文件#ifndef _lcdshow_H_#define _lcdshow_H_#define uchar unsigned char#define uint unsigned int#define LCDPORT P0uchar code tab=Press key;uchar code tab1=Select song;uchar code tab2=First Song ;uchar code tab3=butterfly;uchar code tab4=Second Song;uchar code tab5=Jingle bel

49、l ;uchar code tab6=Third Song ;uchar code tab7=Yesterday;uchar code tab8=Forth Song ;uchar code tab9=Youth League;sbit LCDE=P22;sbit LCDRW=P21;sbit LCDRS=P20;void Delay() uint uiCount; for(uiCount=0;uiCount0;i-) for(j=255;j0;j-);發(fā)聲頭文件:#ifndef _SOUNDPLAY_H_#define _SOUNDPLAY_H_#define SYSTEM_OSC 1200

50、0000/定義晶振頻率12000000HZ#define SOUND_SPACE 4/5 /定義普通音符演奏的長(zhǎng)度分率,/每4分音符間隔sbit BeepIO = P37;/定義輸出管腳sbitK1=P17;unsigned int code FreTab12 = 262,277,294,311,330,349,369,392,415,440,466,494 ; /原始頻率表unsigned char code SignTab7 = 0,2,4,5,7,9,11 ; /17在頻率表中的位置unsigned char code LengthTab7= 1,2,4,8,16,32,64 ;unsi

51、gned char Sound_Temp_TH0,Sound_Temp_TL0;/音符定時(shí)器初值暫存 unsigned char Sound_Temp_TH1,Sound_Temp_TL1;/音長(zhǎng)定時(shí)器初值暫存void InitialSound(void)BeepIO = 0;Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256;/ 計(jì)算TL1應(yīng)裝入的初值 (10ms的初裝值)Sound_Temp_TL1 = (65535-(1/1200)*SYSTEM_OSC)%256;/ 計(jì)算TH1應(yīng)裝入的初值 TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TMOD |=

展開閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲