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

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

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

10 積分

下載資源

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

資源描述:

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

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

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

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

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

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

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

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

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

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

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

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

12、若需要延遲5ms,則可使用“delay1ms(5);”.很明顯,這個函數(shù)的刻度為1ms,但是如果要求小于1ms,我們可以改變內(nèi)循環(huán)的數(shù)量決定延遲時間,因為內(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ù)量最小延遲時間(ms)最小延遲時間(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)音樂的拍子種類,找出其中最短的拍子,例如整首音樂中,包含1/4拍、1/2拍、3/4拍、1拍、2拍,則以1/4拍為基準,然后寫一段1/4拍長度的延遲函數(shù),若要產(chǎn)生1/4拍的長度,則執(zhí)行該函數(shù)時,變量為1;若要產(chǎn)生1/2拍的長度,則執(zhí)行該函數(shù)時,變量為2;如要產(chǎn)生3/4拍的長度,則執(zhí)行該函數(shù)時,變量為3;若要產(chǎn)生1拍的長度,則執(zhí)行該函數(shù)時,變量

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

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

16、,假設(shè)采用Mode 1,定時量設(shè)為62500,只要執(zhí)行2次中斷,即可產(chǎn)生1/4拍的時間長度。同理,若要產(chǎn)生1/2拍的長度,則執(zhí)行4次中斷,若要產(chǎn)生3/4拍的長度,則執(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é)奏越快,拍子越長,節(jié)奏越慢。產(chǎn)生節(jié)拍的方法也是一種處理時間的方法。我們以生日快樂歌為例,它的前兩個音節(jié)1 1 2 14 3 ,第一個音是Do,發(fā)生這個音的時間長度是250ms;停頓一下,再發(fā)出第二個音Do,還是持續(xù)250m

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

34、的處理,也很關(guān)鍵。如果系統(tǒng)中有多組電源,太好了!由于電壓不同、負載不同以及并聯(lián)的去耦電容不同,每組電源的上升、下降時間必有差異。非??尚械姆椒ǎ簩⑸想?、掉電時間短的電源放到+12V處,選擇上升相對較慢的電源作為LM386的Vs,但不要低于4V,效果確實不錯!由于揚聲器的工作電流一般比較大,以致于單片機的I/O 口是無法直接驅(qū)動的,所以要利用LM386功率放大電路來驅(qū)動。圖6 蜂鳴器電路3.4整體電路154.軟件設(shè)計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);/寫第一首歌序號 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); /寫第二首歌序號 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); /寫第三首歌序號 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); /寫第四首歌序號 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音樂播放程序流程圖圖9 音樂播放程序流程圖4.6音樂播放程序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)/計算歌曲長度SoundLength+=2;Point = 0;Tone = SoundPoint;Length = SoundPoint+1; / 讀出第一個音符和它時時值LDiv0 = 12000/Speed;/ 算出1分音符的長度(幾個10ms) LDiv4 = LDiv0/4; / 算出4分音符的長度 LDiv4 = LDiv4-LD

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

42、gth%10; /算出是幾分音符XG=Length/10%10; /算出音符類型(0普通1連音2頓音) FD=Length/100;LDiv=LDiv0/SLen; /算出連音音符演奏的長度(多少個10ms)if (FD=1) LDiv=LDiv+LDiv/2;if(XG!=1)if(XG=0) /算出普通音符的演奏長度 if (SLen0;i-) /發(fā)規(guī)定長度的音 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 原理圖的繪制仿真平臺為Proteus軟件,Proteus軟件是世界上著名的EDA工具(仿真軟件),能完成原理圖布圖、代碼調(diào)試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件,是目前最好的仿真單片機及外圍器件的工具。PROTEUS電路設(shè)計是在PROTEUS ISIS環(huán)境中繪制的

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

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

46、術(shù)基礎(chǔ)(第四版)M.高等教育出版社.1998.112張毅剛等.MCS-51單片機應用設(shè)計.哈爾濱工業(yè)電子出版社,19963何立民.單片機應用技術(shù)選編.北京航空航天大學出版社,20004張友德等.單片微型機原理應用與實驗,復旦大學出版社,19965鄔寬明.單片機外圍器件實用手冊.北京航空航天大學出版社,1998附錄鍵盤掃描頭文件:#ifndef _key_H_#define _key_H_#define uchar unsigned charuchar k;void delay1(void) /延時程序 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; /先對P0置數(shù) 行掃描if(P1!=0 xf3) /判斷是否有鍵按下delay1(); /延時,軟件去干擾 if(P1!=0 xf3) /確認按鍵按下X = P3; X=P1; /保存行掃描時有鍵按下時狀態(tài)P1=0 xfc; /列掃描Y=P1; /保存列掃描時有鍵按下時狀態(tài) Z=X|Y; /取出鍵值switch ( Z ) /判斷鍵值(那一個鍵按下)case 0 xf9: k=0; break; /對鍵值賦值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 /定義普通音符演奏的長度分率,/每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;/音符定時器初值暫存 unsigned char Sound_Temp_TH1,Sound_Temp_TL1;/音長定時器初值暫存void InitialSound(void)BeepIO = 0;Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256;/ 計算TL1應裝入的初值 (10ms的初裝值)Sound_Temp_TL1 = (65535-(1/1200)*SYSTEM_OSC)%256;/ 計算TH1應裝入的初值 TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TMOD |=

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

相關(guān)資源

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

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

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


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