- 相關(guān)推薦
基于單片機的自動(dòng)音樂(lè )播放器的設計(一)
摘 要
為方便人們的日常生活,優(yōu)化學(xué)校、機關(guān)等單位的計時(shí)系統,采用以單片機為基礎設計了一種的自動(dòng)音樂(lè )播放器。本設計利用單片機89C58RD+的定時(shí)和計數功能,來(lái)完成時(shí)間的顯示和定時(shí)功能。并且,通過(guò)對定時(shí)器初值的設定來(lái)產(chǎn)生不同頻率的聲音,利用定時(shí)器中斷來(lái)完成對音樂(lè )節拍長(cháng)度的控制。通過(guò)LM386N1音頻功率放大器,將單片機輸出的信號放大,再通過(guò)喇叭播放樂(lè )曲。通過(guò)MAX232型芯片,可以轉換PC機上的電壓和單片機的電源電壓,再通過(guò)串口接入PC機,這樣就能從PC機上將用C語(yǔ)言編寫(xiě)的程序下載到單片機上。最后可在數碼管上顯示時(shí)間,當定時(shí)時(shí)間到后,喇叭自動(dòng)播放一段連續的音樂(lè )。此設計擺脫了傳統鬧鐘的刺耳聲音,取而代之的是美妙的音樂(lè ),能為人們的日常生活提供準確的計時(shí),且成本低廉,值得推廣。
關(guān)鍵詞:單片機;自動(dòng)音樂(lè )播放;音頻轉換;時(shí)間顯示;LM386N1音頻功率放大器
The design of automatic music player based on monolithic integrated circuit
Abstract
In order to facilitate people's daily life, optimizes schools’, institutions’ timing system, used has designed one kind of automatic music player which based on monolithic integrated circuit. This design fixed time and counts the function using monolithic integrated circuit 89C58RD+, completes the time the demonstration and fixed time the function. And, Through hypothesis starting value of timer, product the different frequency sound. Severs using the timer completesthe control of music metre length.Through LM386N1 audio power amplifier, enlarges signal which the monolithic integrated circuit outputs,then broadcast music from loudspeaker. Through MAX232 chip,can transform PC machine on the voltage and the monolithic integrated circuit supply voltage.And then,turns on the computer though String mouth,then it can download procedure which compiles with the C language to monolithic integrated circuit from computer.At last,it can demonstrates the time on the digital tube.When time to after fixed time, the loudspeaker automatically broadcasts section of continual musics. This design get rid of the traditional alarm clock’s grating sound, displaces is the wonderful music,can provides the accurate time for people's daily life.The design cost very inexpensive,it is worth promoting.
Key word:Monolithic integrated circuit; Automatic music broadcast; Audio frequency transformation; Time demonstration; LM386N1 audio power amplifier
目 錄
論文總頁(yè)數:頁(yè)
引 言.......................................................................1
1 設計任務(wù)................................................................2
2 軟件設計
2.1 音樂(lè )編程原理及流程圖 ...............................................
2.1.1 聲音的產(chǎn)生 ......................................................
2.1.2 音頻轉換原理 ....................................................
2.1.3 音頻轉換流程圖 ..............................................
2.2 時(shí)間顯示程序設計..............................................
2.2.1 時(shí)間顯示模塊..............................................
2.2.2 時(shí)鐘流程圖 ..............................................
3 硬件電路的設計..............................................................2
3.1 硬件流程模塊(此節作為第1節---后面幾節就圍繞它來(lái)寫(xiě),并且要寫(xiě)“連貫”)
3.2 主要模塊電路的設計..........................
3.2.1 89C58RD+型單片機介紹.........................................
3.2.2 LM386N及外圍電路的設計............. ...............
3.2.3 串行通信和MAX232芯片...........................................
3.2 4 AT89C52的定時(shí)/計數器概述.........................................
3.2 5 LED顯示原理......................................................
4 KEIL仿真軟件及Protel 99 SE的應用......................................
4.1 KEIL51的應用..........................................................
4.2 Protel 99 SE的應用.....................................................
4.3 PCB板制作.............................................................
5 仿真及調試過(guò)程..........................................................
5.1 硬件調試過(guò)程
5.2 軟件仿真及調試過(guò)程
6 結果分析................................................................ 結 論.....................................................................
參考文獻.......................................................................
致 謝.....................................................................29
聲 明.....................................................................30
附 錄.....................................................................16
基于單片機的自動(dòng)音樂(lè )播放器的設計
引 言
單片機,更確切地說(shuō)應稱(chēng)為作微控制器,是20世紀70年代中期發(fā)展起來(lái)的一種面向控制的大規模集成電路模塊,其特點(diǎn)是功能強、體積小、可靠性高、價(jià)格低廉。它一面世便在工業(yè)控制、數據采集、智能儀表化、機電一體化、家用電器等領(lǐng)域得到了廣泛應用,極大地提高了這些領(lǐng)域的技術(shù)水平和自動(dòng)化程度。因此,單片機的開(kāi)發(fā)應用已成為高科技和工程領(lǐng)域的一項重大課題。
本文將介紹一種以89C58RD+型單片機為基礎元件設計的自動(dòng)音樂(lè )播放器。在當今這個(gè)科技高速發(fā)展的時(shí)代,時(shí)間對于每一個(gè)人都十分重要,時(shí)間就代表了金錢(qián),代表了先機。所以,準確的計時(shí)和及時(shí)的時(shí)間提示就顯得相當重要,各個(gè)公司、機關(guān)、院校日常作息都需要計時(shí)和號音提示,我們的日常生活也離不開(kāi)時(shí)間。目前,此類(lèi)音樂(lè )計時(shí)播放器在國內已經(jīng)開(kāi)始普及。校園里的上下課的鈴聲,宿舍內早晨的起床號聲音,都由以前枯燥刺耳的鈴音轉變成了好聽(tīng)的音樂(lè ),公路、廣場(chǎng)中的計時(shí)裝置也逐漸開(kāi)始采用音樂(lè )來(lái)充當鈴聲。此裝置不僅為人們日常生活的計時(shí)提供了方便,同時(shí)也為目前快節奏的生活帶來(lái)了樂(lè )趣。
本次設計以89C58RD+型單片機為基礎,利用單片機編成技術(shù)對芯片進(jìn)行功能設定,實(shí)現對時(shí)間的計時(shí),并在四位共陰LED數碼管上顯示出來(lái)。同時(shí),利用單片機的定時(shí)器中斷,在單片機內部產(chǎn)生所需要的音樂(lè )頻率,并通過(guò)LM386N1型音頻功率放大器將音頻信號放大。當定時(shí)時(shí)間到后,通過(guò)喇叭連續播放一段音樂(lè )。此設計通過(guò)多次測試,計時(shí)準確,音樂(lè )聲音宏亮清晰,節拍正常,達到預期效果。
本文將圍繞基于單片機的自動(dòng)音樂(lè )播放器,介紹一些關(guān)于單片機的基礎知識、音樂(lè )播放器的制作原理及方法(其中包括了音樂(lè )編程原理)、定時(shí)器的設定、四位共陰LED數碼管的顯示、LM386N1型音頻功率放大器外圍電路的介紹,以及仿真軟件(Keil、Protel99 SE)的使用方法和相關(guān)PCB板的制作。
1 設計任務(wù)
在基于單片機的自動(dòng)音樂(lè )播放器中,采用89C58RD+型單片機為硬件基礎,通過(guò)C語(yǔ)言對芯片進(jìn)行編程。單片機需外接+5V穩壓電源,并通過(guò)MAX232電平轉換芯片和串口接入PC機。單片機工作時(shí),用軟件對定時(shí)器初值進(jìn)行設定,從而得到所需要的聲音頻率;通過(guò)四位共陰LED數碼管,可顯示時(shí)間,并可進(jìn)行定時(shí)設置;通過(guò)LM386N1芯片,將單片機輸出的信號放大,接入喇叭即可發(fā)聲。具體要求如下:
(1)對時(shí)間進(jìn)行定時(shí),當定時(shí)時(shí)間到后,通過(guò)喇叭能連續播放一段音樂(lè )。要求播放出的音樂(lè )的音階準確,不能有太大偏差,否則會(huì )造成音樂(lè )聲音刺耳難聽(tīng);音樂(lè )播放必須連貫,即音樂(lè )必須有節奏感;喇叭放出的音樂(lè )聲音響亮,不能太小,否則不能達到樂(lè )曲的提示作用。
(2)在四位共陰LED數碼管上顯示出時(shí)間(24小時(shí)制),包括小時(shí)、分鐘,當定時(shí)1秒后,秒數加1;當定時(shí)滿(mǎn)60秒后,秒數歸零,分鐘數加1;當定時(shí)滿(mǎn)60分鐘后,分鐘數歸零,小時(shí)數加1;當定時(shí)滿(mǎn)24小時(shí)后,小時(shí)數歸零。
軟件設計
本設計的軟件部分包含了兩個(gè)重要組成部分:音樂(lè )編程和時(shí)間程序(注:也可以用下框圖來(lái)反映----具體自己畫(huà)和填寫(xiě)!!!---便全面反映2.1和2.2等要寫(xiě)的東西)
2.1音樂(lè )編程原理及其流程圖
2.1.1 聲音的產(chǎn)生
聲音是音頻振動(dòng)的結果,振動(dòng)的頻率高則為高音,頻率低則為低音。音頻范圍為20HZ-200KHZ之間,而人類(lèi)耳朵比較容易辨識的聲音大概是200HZ-20KHZ。一般音響電路是以正弦波信號驅動(dòng)喇叭,產(chǎn)生悅耳的音樂(lè )的;在數字電路里,則是以脈沖信號驅動(dòng)喇叭以產(chǎn)生聲音。同樣的頻率,脈沖信號或正弦信號產(chǎn)生的音效,對于人類(lèi)的耳朵來(lái)說(shuō)很難有所區別。
若用單片機產(chǎn)生聲音,可利用程序產(chǎn)生頻率,送到輸入/輸出端口,例如P1.0,再從該點(diǎn)連接到喇叭的驅動(dòng)電路,即可驅動(dòng)喇叭。
2.1.2 音頻轉換原理
若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期,再將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計時(shí)半周期時(shí)間,每當計時(shí)終止后就將P1.0反相,然后重復計時(shí)再反相。就可在P1.0引腳上得到此頻率的脈沖。
利用單片機的內部定時(shí)器使其工作計數器模式(MODEL1)下,改變其計數值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階。例如,頻率為523HZ,其周期T=1/523=1912us,因此只要令計時(shí)器計時(shí)956 us/1 us=956,每計數956次時(shí)將I/O反相,就可得到中音DO(523HZ)。計數脈沖值與頻率的關(guān)系式是:
N = F1/2/F2 (式3-2-1)
式3-2-1中,N是計數值;F1是機器頻率(晶體振蕩器為12MHZ時(shí),其頻率為1MHZ);F2為想要產(chǎn)生的聲音頻率。
其計數初值T的求法如下:
T = 65536 –N = 65536 - F1/2/F2 (式3-2-2)
本次設計采用16位定時(shí)方式,晶體振蕩器頻率為6MHZ,根據式3-2-1和式3-2-2可以計算出各音樂(lè )頻率的計數器初值,再將十進(jìn)制的計數器初值轉換為四位16進(jìn)制,將其制表寫(xiě)入程序中,通過(guò)查表裝入要求的初值即可。音階與頻率的對應關(guān)系如表3-1所示。
表2-1
音符 DO RE ME FA SO LA SI
低音簡(jiǎn)譜碼 1 2 3 4 5 6 7
頻率/Hz 523 587 659 698 784 880 987
高音簡(jiǎn)譜碼 1 2 3 4 5 6 7
頻率/Hz 1046 1174 1318 1396 1567 1760 1975
2.1.3 節拍的產(chǎn)生
音階的頻率是固定的,而節拍有快有慢,拍子越短節奏越快,拍子越長(cháng)節奏越慢?刂瓢l(fā)音的時(shí)間有兩種方法:調用延時(shí)子程序或采用定時(shí)器中斷。本次設計采用的是定時(shí)器終端方式。
首先在整首樂(lè )曲中找出最短的拍子,一般為1/4拍,拍子的時(shí)間約為0.125s。然后以1/4拍為基準,然后設定每0.125s產(chǎn)生一次中斷,其定時(shí)器值為125000,定時(shí)常數為08F3H。若采用模式2,定時(shí)器值太小,不是很好用。所以采用模式1,將定時(shí)器值設為62500,即0CDCH,則只需要執行2次定時(shí)器中斷就可以產(chǎn)生1/4拍的時(shí)間長(cháng)度。同樣,若要產(chǎn)生其它的拍子(如1/2拍,3/4拍……),只需要定時(shí)器中斷N次,產(chǎn)生N*0.125s定時(shí),使其滿(mǎn)足各個(gè)節拍的時(shí)間長(cháng)度即可。
設計的程序按如下方法編寫(xiě):
(1)將音符代碼裝入8位字節高4位,節拍代碼裝入低4位,組成一個(gè)字節,以此類(lèi)推。將整段樂(lè )曲轉換成一定長(cháng)度的編碼表。具體編程方法如下:
1.首先,定義toneh[]和tonel[]兩個(gè)數組,將各個(gè)音樂(lè )頻率的定時(shí)器初值的16進(jìn)制數的高8位裝入toneh[],低8位裝入tonel[]。
2.利用單片機的定時(shí)器中斷,將toneh[]和tonel[]的數據分別裝入TH0和TL0,并且,收到信號P1.0就反相。
void timer0(void) interrupt 1 using 1
{
P1_0=!P1_0;
TH0=toneh[rti];
TL0=tonel[rti];
}
3.利用定時(shí)器1控制音樂(lè )節拍的時(shí)間長(cháng)度,將上文所述的定時(shí)器初值裝入定時(shí)器1。
void timer1(void) interrupt 3 using 2
{
TH1=0x0c;
TL1=0xdc;
m++;
}
(2)在程序執行時(shí)順序查此表,取出音符代碼,查頻率表,置入T/C口,取出節拍代碼,供定時(shí)器使用,啟動(dòng)后即可發(fā)出聲音。
2.1.4 音頻轉換流程圖
設計的軟件流程如圖2-2所示。程序開(kāi)始運行時(shí)先對單片機進(jìn)行初始化,其中包括定時(shí)器及其工作方式的選擇、外部中斷設定、定時(shí)器初值的設定。利用單片機,通過(guò)軟件的方式產(chǎn)生所需要的音樂(lè )頻率,并將收到的信號與音頻編碼表進(jìn)行對比。若信號在編碼表中,則將該頻率的定時(shí)器初值寫(xiě)入定時(shí)器中,并讀取頻率的音階,再從單片機的P1.0口輸出,經(jīng)過(guò)音頻放大器驅動(dòng)喇叭發(fā)出聲音,利用驅動(dòng)喇叭演示程序即可控制音樂(lè )的節拍。若信號不在編碼表中,則返到初始化。
2.2 時(shí)間顯示程序設計
2.2.1設計思路
對于時(shí)間程序的設計,主要依靠單片機內部定時(shí)器的計數功能實(shí)現。時(shí)鐘由秒針、分針和時(shí)針組成,在程序中分別由sdata,mdata,hdata表示各單位的數據。首先對sdata,mdata,hdata分別設定一個(gè)初值,其中sdata設為0,表示秒針初始為0。然后利用定時(shí)器對秒針計數,當計數值達到1秒的時(shí)間后產(chǎn)生定時(shí)器中斷,sdata的數據就加1。由于本次設計采用的晶振頻率為6MHz,所以定時(shí)器取值為2500。將hdata的數據裝入第一和第二個(gè)數碼管,將mdata的數據裝入第三和第四個(gè)數碼管。當sdata的數據為59時(shí),若此時(shí)再來(lái)一個(gè)定時(shí)器中斷,則秒針重新歸零,而分針就加1。同樣,分針和時(shí)針的進(jìn)位也是同一道理。
當設定的鬧鐘時(shí)間一到,程序即轉入音頻程序,驅動(dòng)喇叭放出音樂(lè )。
2.2.2 時(shí)鐘程序流程圖
時(shí)鐘程序流程圖如圖2-3所示。(應有簡(jiǎn)單的文字敘述或解釋?zhuān)?br />
3 硬件電路的設計
3.1硬件流程模塊
設計的硬件流程模塊如圖3-1所示。首先,PC機通過(guò)串口及MAX232芯片將程序下載到單片機中,其中包括把一個(gè)個(gè)的單音寫(xiě)入單片機的ROM存儲器中,程序運行時(shí)再將音樂(lè )數據按順序讀出,利用單片機的定時(shí)器中斷控制音樂(lè )節拍的長(cháng)度,這樣就能形成一段樂(lè )曲。在單片機P1.0口接入音頻放大電路,將單片機輸出的信號放大,再通過(guò)喇叭播放音樂(lè )。單片機P2口接4位共陰LED數碼管,并外接1K歐的排阻,利用單片機內部的定時(shí)器中斷控制時(shí)間程序,然后在數碼管上顯示出時(shí)間。
3.2 模塊電路的設計
3.2.1 89C58RD+型單片機介紹
89C58RD+是一種帶32KB閃爍可編程/可擦除制度存儲器(EPEROM-Flash Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS的8位微處理器。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51的指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個(gè)芯片中,因而ATMEL的89C58RD+是一種高效微控制器,為很多嵌入式控制系統提供了一種靈活性高且價(jià)廉的方案。并且,比起跟它同種類(lèi)型的89C51,它具有更大的Flash存儲器,可下載很大容量的程序代碼,因此功能更加強大,應用范圍更廣泛。
89C58RD+有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,9個(gè)中斷源,內含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計數器,可編程UART串行通信口,SPI串行口,89C58RD+可以按照常規方法進(jìn)行編程,也可以在線(xiàn)編程。其將通用的微處理器和Flash存儲器結合在一起,特別是可反復擦寫(xiě)的Flash存儲器可有效地降低開(kāi)發(fā)成本。89C58RD+有PDIP、TQFP及PLCC等三種封裝形式,以適應不同應用系統的需求。
89C58RD+管腳如圖3-2所示,其中
時(shí)鐘引腳
XTAL1:接外部晶體的一個(gè)引腳。在單片機內部,它是構成片內振蕩器的反相放大器的輸入端。當采用外部振蕩器時(shí),該引腳接收振蕩器的信號,即把此信號直接接到內部時(shí)鐘發(fā)聲器的輸入端。
XTAL2:接外部晶體的另一個(gè)引腳。在單片機內部,它是構成內部振蕩器的反相放大器的輸出端。當采用外部振蕩器時(shí),此引腳應懸浮不連接。
注意:如果采用片內的振蕩電路,要在單片機的引腳XTAL1和XTAL2之間連接一個(gè)石英晶體或陶瓷諧振器,并接兩個(gè)電容到地。
控制線(xiàn)或其他電源的復位引腳
RST:復位輸入端。
ALE/:當訪(fǎng)問(wèn)外部寄存器時(shí),地址鎖存允許的輸出電平用于鎖存地址的低位字節。在Flash編程期間,此管腳用于輸入編程脈沖。在平時(shí),ALE以不變的頻率周期輸出正脈沖信號,次頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當用作外部數據存儲器時(shí),將跳過(guò)一個(gè)ALE脈沖。如果禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執行外部執行狀態(tài)ALE禁止,置位無(wú)效。
:外部程序存儲器的選通信號。在有外部程序存儲器取指令期間,每個(gè)機器周期兩次有效。但在訪(fǎng)問(wèn)外部數據存儲器時(shí),這兩次有效的信號將不出現。
/Vpp:當保持低電平時(shí),則在此期間訪(fǎng)問(wèn)外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意要加密方式1時(shí),將內部鎖定為RESET;當斷保持高電平時(shí),此間訪(fǎng)問(wèn)內部程序存儲器。在Flash編程期間,此管腳也用于施加12V編程電源(Vpp)。
輸入/輸出引腳
P0口:P0口為一個(gè)8位漏極開(kāi)路雙向I/O口,每腳可吸收8個(gè)TTL門(mén)電流。當P1口的管腳第一次寫(xiě)“1”時(shí),被定義為高阻輸入。P0口能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在Flash編程時(shí),P0口作為原碼輸入口,當Flash進(jìn)行校驗時(shí),P0口輸出原碼,此時(shí),P0口外部必須被拉高。
P1口:P1口為一個(gè)內部提供上拉電阻的8位雙向I/O,P1口緩沖器能接收輸出4個(gè)TTL門(mén)電流。P1口管腳寫(xiě)入“1”后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內部上拉的緣故。在Flash編程和校驗時(shí),P1口為第八位地址接收。
P2口:P2口為一個(gè)內部提供上拉電阻的8位雙向I/O,P2口緩沖器可接收,輸出4個(gè)TTL門(mén)電流,當P2口被寫(xiě)“1”時(shí),其管腳被內部上拉電阻拉高。且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉底,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內部上拉優(yōu)勢,當對外部8位地址數據校驗時(shí),P2口輸出其特殊功能起存器的內容。P2口在Flash編程和校驗時(shí),接收高8位地址信號和控制信號。
P3口:P3口為一個(gè)內部提供上拉電阻的8位雙向I/O,可接收輸出4個(gè)TTL門(mén)電流。當P3口寫(xiě)入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。
P3口也可作為一些特殊功能口,如表2-1所示。
表2-1
口 管腳 備選功能
P3.0 RXD 串行輸入口
P3.1 TXD 串行輸出口
P3.2 外部中斷0
P3.3 外部中斷1
P3.4 T0 計時(shí)器0外部輸入
P3.5 T1 計數器1外部輸入
P3.6 外部數據存儲器寫(xiě)選通
P3.7 外部數據存儲器讀選通
3.2.2 LM386N1及外圍電路的設計
LM386N1乃音頻功率放大器,主要應用于低壓消費類(lèi)產(chǎn)品。為使外圍元件最少,電壓增益內置為20。但在1腳和8腳之間增加一只外接電阻和電容,便可將電壓增益調為任意值,直至200。輸入端以地為參考,同時(shí)輸出端被自動(dòng)偏置到電源電壓的一半,在6V電源電壓下,它的靜態(tài)功耗僅為24mW,加之封裝形式有塑封8引線(xiàn)雙列直插式和貼片式,使LM386N1具有靜態(tài)功耗低(約為4mA),可用電池供電;工作電壓范圍寬(4-12V or 5-18V);外圍元件少等特點(diǎn)。
LM386N1管腳示意圖如圖3-3。
LM386N 外圍電路如圖3-4所示意。其中R3為正相輸入電阻,取值為10K;R4、R5是分壓電阻,取值分別為0.5K和0.01K;C9、C10是旁路電容,取值分別為0.1uf、10uf;C11是一個(gè)耦合電容,取值為47uf;C12是旁路電容,取值為0.047uf。
3.2.3 串行通信和MAX232芯片
在單片機和PC機之間,要通過(guò)MAX232芯片進(jìn)行電平轉換,MAX232芯片主要是完成TTL←→EIA雙向電平轉換。??EIA-RS-232C與TTL轉換:EIA-RS-232C是用正負電壓來(lái)表示邏輯狀態(tài),與TTL以高低電平表示邏輯狀態(tài)的規定不同。因此,為了能夠同計算機接口或終端的TTL器件連接,必須在EIA-RS-232C與TTL電路之間進(jìn)行電平和邏輯關(guān)系的變換。實(shí)現這種變換的方法可用分立元件,也可用集成電路芯片。目前較為廣泛地使用集成電路轉換器件,如MC1488、SN75150芯片可完成TTL電平到EIA電平的轉換,而MC1489、SN75154可實(shí)現EIA電平到TTL電平的轉換。MAX232芯片可完成TTL←→EIA雙向電平轉換。??MAX232電路具有的特點(diǎn)是:?jiǎn)?V電源工作;兩個(gè)驅動(dòng)器及兩個(gè)接收器;±30V輸入電平;低電源電流(典型值是8mA);符合甚至優(yōu)于A(yíng)NSII標準EIA/TIA-232-E及ITU推薦標準V.28。
MAX232的外圍電路如圖2-4所示。MAX232的13、14腳(Rli、Tlo)分別接串口的數據發(fā)送端、數據輸出端,11、12腳(Rlo、Tli)分別接單片機的11、10腳(TXD、RXD)。在1腳和3腳、4腳和6腳、2和16腳、6和15腳以及15和16腳之間分別接1個(gè)1uf的電容,即可使芯片正常工作,完成電平轉換功能。
3.2.4 AT89C52的定時(shí)/計數器概述
AT89C52單片機有3個(gè)獨立的16位定時(shí)/計數器,即定時(shí)/計數器0(T0),定時(shí)/計數器1(T1)和定時(shí)/計數器2(T2)。它們都有定時(shí)或事件計數功能,可用于定時(shí)控制、延時(shí)、對外事件計數和檢測等場(chǎng)合。
3個(gè)16位定時(shí)/計數器,其中T0,T1可作16位加1計數器,T2既可作16位加1計數器,也可作減1計數器,每個(gè)定時(shí)/計數器都可由軟件設置為定時(shí)工作方式或計數工作方式。
當設置為計數工作方式時(shí),通過(guò)引腳T0(P3.4),T1(P3.5),T2(P1.0)對外部脈沖信號計數,當輸入脈沖信號從1到0負跳變時(shí),計數器就自動(dòng)就1。為了確保某個(gè)電平在變化之前至少被采樣一次,要求電平保持時(shí)間至少是一個(gè)完整的機器周期。
當設置為定時(shí)方式時(shí),AT89C52片內振蕩器輸出的時(shí)鐘經(jīng)12分頻或6分頻后,作為定時(shí)器的計數脈沖。每當來(lái)一個(gè)時(shí)鐘下降沿時(shí),定時(shí)器T0,T1或T2的數值加1,直至計滿(mǎn)溢出為止。
3.2.5 LED顯示
LED數碼管根據LED的接法不同分為共陰和共陽(yáng)兩類(lèi),了解LED的這些特性,對編程是很重要的,因為不同類(lèi)型的數碼管,除了它們的硬件電路有差異外,編程方法也是不同的。共陰和共陽(yáng)極數碼管的發(fā)光原理是一樣的,只是它們的電源極性不同而已。 將多只LED的陰極連在一起即為共陰式,而將多只LED的陽(yáng)極連在一起即為共陽(yáng)式。以共陰式為例,如把陰極接地,在相應段的陽(yáng)極接上正電源,該段即會(huì )發(fā)光。當然,LED的電流通常較小,一般均需在回路中接上限流電阻。假如我們將"b"和"c"段接上正電源,其它端接地或懸空,那么"b"和"c"段發(fā)光,此時(shí),數碼管顯示將顯示數字“1”。而將"a"、"b"、"d"、"e"和"g"段都接上正電源,其它引腳懸空,此時(shí)數碼管將顯示“2”。四位共陽(yáng)數碼管管腳圖如圖3-6。
4 KEIL仿真軟件及Protel 99 SE的應用
4.1 KEIL51的應用
硬件與軟件的設計一般都要分別借助一些軟件,如我們通常用作電路設計與制版的Protel,MCS-51程序開(kāi)發(fā)工具KEIL等。
Keil C51 uVision2集成開(kāi)發(fā)環(huán)境是基于80C51內核的軟件開(kāi)發(fā)平臺,支持工程建立、程序的編譯與鏈接、軟件仿真、硬件仿真、目標代碼的生成等功能。Keil C51編譯器在產(chǎn)生代碼的準確性和效率方面達到了較高的水平。
與大多數集成開(kāi)發(fā)環(huán)境類(lèi)似,Keil C51集成開(kāi)發(fā)環(huán)境也是用工程的方法來(lái)管理文件,在一個(gè)工程文件中源程序(C51程序、匯編程序)、頭文件等都可以進(jìn)行統一管理。
安裝運行KEIL51,使用KEIL的開(kāi)發(fā)工具進(jìn)行項目開(kāi)發(fā)過(guò)程,與其他軟件開(kāi)發(fā)項目的過(guò)程基本上相同:
創(chuàng )建C 語(yǔ)言或匯編語(yǔ)言的源程序。
編譯或匯編源文件。
糾正源文件中的錯誤。
從編譯器和匯編器連接目標文件。
測試連接的應用程序。
4.2 Protel 99 SE的應用
Protel軟件是由澳大利亞的Protel Technolgy公司推出的,一直是從事印刷電路板設計的首選軟件。在1990年,Protel軟件由DOS平臺發(fā)展到Windos平臺,是世界上第一家運行在Windos平臺的EDA(電子設計自動(dòng)化)軟件。Protel 99 SE是由Protel 99版本發(fā)展而來(lái)的,是基于Windos環(huán)境下的EDA軟件。
Protel 99 SE主要的功能模塊
電路原理圖(Schematic)設計模塊。該模塊主要包括設計原理圖的原理圖編輯器,用于修改、生成原件符號的元件庫編輯器以及各種報表的生成器。
印刷電路板(PCB)設計模塊。該模塊主要包括用于設計電路板的PCB編輯器,用于PCB自動(dòng)布線(xiàn)的Route模塊。用于修改、生成元件封裝的元件封裝庫編輯器以及各種報表的生成器。
可編程邏輯器件(PLD)設計模塊。該模塊主要包括具有語(yǔ)法意識的文本編輯器、用于編譯和仿真設計結果的PLD模塊。
電路仿真(Simulate)模塊。該模塊主要包括一個(gè)功能強大的數/;旌闲盘栯娐贩抡嫫,能提供連續的模擬信號和離散的數字信號仿真。
4.3 PCB板的設計制作
印制電路板(PCB)是電子產(chǎn)品中電路元件和器件的支撐件.它提供電路元件和器件之間的電氣連接,是從原理圖到實(shí)際產(chǎn)品必經(jīng)的一道設計工序。PCB設計的好壞對抗干擾能力影響很大。要使電子電路獲得最佳性能,元器件的布局及導線(xiàn)的布設是很重要的。為了設計質(zhì)量好、造價(jià)低的PCB.應遵循以下一般原則:
布局(1)首先,要考慮PCB尺寸大小。PCB尺寸過(guò)大時(shí),印制線(xiàn)條長(cháng),成本也增加;過(guò)小,元器件排列太密集,則會(huì )增加布線(xiàn)難度,還會(huì )引起相鄰線(xiàn)的干擾。在確定PCB尺寸后,再確定特殊元件的位置。最后,根據電路的功能單元,對電路的全部元器件進(jìn)行布局。
(2)某些元器件或導線(xiàn)之間可能有較高的電位差,應加大它們之間的距離,以免放電引出意外短路。帶高電壓的元器件應盡量布置在調試時(shí)手不易觸及的地方。
(3)重量超過(guò)15g的元器件、應當用支架加以固定,然后焊接。
(4) 以每個(gè)功能電路的核心元件為中心,圍繞它來(lái)進(jìn)行布局。元器件應均勻、整齊、緊湊地排列在PCB上.盡量減少和縮短各元器件之間的引線(xiàn)和連接。
(5)應留出印制扳定位孔及固定支架所占用的位置。
2)布線(xiàn)(1)輸入輸出端用的導線(xiàn)應盡量避免相鄰平行。最好加線(xiàn)間地線(xiàn),以免發(fā)生反饋藕合。
(2)電源線(xiàn)和地線(xiàn)的寬度應盡量的大,一般在2-3mm以上。
(3) PCB布線(xiàn)不可以走成直角,以免產(chǎn)生阻抗突變。
(4)盡量避免使用大面積銅箔,否則,長(cháng)時(shí)間受熱時(shí),易發(fā)生銅箔膨脹和脫落現象。
3)焊盤(pán)焊盤(pán)中心孔要比器件引線(xiàn)直徑稍大一些。焊盤(pán)太大易形成虛焊。焊盤(pán)外徑D一般不小于(d+1.2)mm,其中d為引線(xiàn)孔徑。對高密度的數字電路,焊盤(pán)最小直徑可取(d+1.0)mm。
5 仿真及調試過(guò)程
5.1 硬件調試過(guò)程
本次設計的硬件電路主要由單片機89C58RD+、MAX232和LM386N1的外圍電路組成,在調試電路的過(guò)程中也碰到了一些問(wèn)題。
問(wèn)題一:?jiǎn)纹瑱C無(wú)法正常下載程序。
調試步驟:
(1)檢查單片機和串口電路是否連接錯。發(fā)現單片機的18、19腳的印制線(xiàn)接在了17、18腳上,導致晶振無(wú)法正常工作。出現錯誤原因則是制作PCB板時(shí),制作板子的人將印制線(xiàn)連錯。解決方法:把17腳的印制線(xiàn)用小刀切斷,再將19腳與晶振用導線(xiàn)連接起來(lái)。
(2)檢查串口的接口是否連接正確。發(fā)現串口連接線(xiàn)的數據接收和發(fā)送兩端接反了,導致單片機無(wú)法接受到數據。解決方法:將串口DB9端拆開(kāi),把連接2和3腳的數據線(xiàn)交換。
(3)檢查焊接電路是否有虛焊和漏焊。
(4)檢查串口助手的芯片選擇是否正確。
MAX232工作電壓如表6-1所示。
表6-1
管腳 電壓值(V) 管腳 電壓值(V)
1 6.67 9 4.70
2 8.78 10 0
3 2.52 11 4.77
4 4.13 12 0.44
5 -4.25 13 -9.85
6 -8.16 14 -7.60
7 8.26 15 0
8 0 16 4.79
問(wèn)題二:下載音頻程序后無(wú)法播放音樂(lè )。
調試步驟:
檢查電源是否正常接入電路中。
利用示波器測試單片機輸出端是否有信號輸出,發(fā)現信號輸出正常,說(shuō)明單片機正常工作。
利用示波器測試音頻放大電路輸出端是否有信號輸出,發(fā)現信號輸出正常,說(shuō)明音頻放大電路工作正常,同時(shí)說(shuō)明是喇叭部分出現了問(wèn)題。
故障原因:焊接時(shí)將發(fā)聲器件燒壞了,導致發(fā)不出聲音。
解決方案:重新?lián)Q一個(gè)8歐姆喇叭,即可正常播放音樂(lè )。
5.2 軟件仿真及調試過(guò)程
本次設計的軟件部分由時(shí)間顯示程序和音樂(lè )播放程序組成。
時(shí)間顯示程序仿真
對于時(shí)間顯示程序,我采用了Preteus軟件來(lái)仿真。首先進(jìn)入Preteu界面,設計一個(gè)簡(jiǎn)單的仿真電路,及一個(gè)單片機的基本外圍電路,在P0.0-P0.7接一個(gè)4位共陰數碼管和排阻,如圖6-1。最后,把程序調入單片機中,開(kāi)始運行。
1)調試過(guò)程中所遇到的問(wèn)題:運行程序時(shí)LED4位共陰數碼管顯示程亂碼。
原因分析:數碼管初始設置有錯。
解決方案:重新設置數碼管顯示參數,正確的設置為{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}。
2)數碼管顯示的時(shí)間與真正的時(shí)間進(jìn)度不一致。
原因分析:定時(shí)器初值設置有誤。本次設計的晶振為6MHZ,而程序中的初值卻設置成了12MHZ晶振所采用的值5000,導致顯示的時(shí)間比真正的時(shí)間要慢。
解決方案:將定時(shí)器初值改為12MHZ晶振初值的一半,及2500即可。
2、音樂(lè )播放程序調試過(guò)程
關(guān)于音樂(lè )播放程序的調試,我首先采用Preteus軟件來(lái)仿真,但是該仿真軟件中沒(méi)有喇叭或蜂鳴器等聲音播放工具。于是本人將圖6-1中的單片機的P1.0處接了一個(gè)示波器,想通過(guò)這樣來(lái)仿真并調試音樂(lè )播放程序,但是效果不是很理想。程序運行的時(shí)候,能看見(jiàn)示波器有不同頻率的波形交替出現,但是頻率變換得很快,無(wú)法確認是否顯示的是所需要的頻率,并且無(wú)法辨別音頻變換的節奏是否正確。此方法并不適用。
接著(zhù),我制作了一個(gè)簡(jiǎn)單的單片機播放器電路。即在實(shí)驗板上焊接實(shí)驗電路,電路由單片機89C58RD+、MAX232的外圍電路組成,并在單片機的P1.0處用三極管連接一個(gè)簡(jiǎn)單的音頻放大器,再外接一個(gè)喇叭。將程序寫(xiě)入單片機中,這樣就能聽(tīng)出聲音和音樂(lè )節奏是否正確。
6 結果分析
結 論
經(jīng)過(guò)這次畢業(yè)設計,我覺(jué)得自己學(xué)到了不少東西。歸納起來(lái),主要有以下幾點(diǎn):
1、通過(guò)這次畢業(yè)設計,我能將以前四年所學(xué)到的專(zhuān)業(yè)知識與實(shí)踐相聯(lián)系,將所學(xué)到的知識充分運用到本次設計中。同時(shí),我也認識到自己知識上不足的地方,體會(huì )到了所學(xué)理論知識的重要性,知識掌握得越多,設計得就更全面、更順利、更好。
2、進(jìn)一步熟悉了單片機的知識。通過(guò)本次設計,我對單片機的基本原理、內部結構、各引腳功能、定時(shí)器和中斷的應用都有了更深刻的理解。并且,能夠以單片機為基礎元件設計一個(gè)簡(jiǎn)單的系統。
4、通過(guò)本次設計,熟悉了設計一個(gè)項目所必經(jīng)的幾個(gè)階段。本次設計從理論研究到硬件原理圖設計,從元器件的選擇到PCB板的制作,從軟件編程到最后的調試過(guò)程都由我獨立完成。這不僅鍛煉了我獨立完成設計工作的能力,更重要的是了解了一個(gè)電子產(chǎn)品的設計流程,為將來(lái)投入工作增加了寶貴的經(jīng)驗,奠定了堅實(shí)的基礎。
5、提高了自己查找資料的能力。在設計過(guò)程中,我碰到了一些暫時(shí)無(wú)法解決的問(wèn)題,于是我通過(guò)上網(wǎng)查閱和圖書(shū)館借閱資料,或是通過(guò)與老師同學(xué)交流一步步地解決了。從中我懂得了我們這個(gè)專(zhuān)業(yè)的知識面相當廣泛,我們需要不斷通過(guò)各種途徑更新自己的知識,不斷充實(shí)自己,同時(shí)要懂得與他人交流意見(jiàn),積極聽(tīng)取別人的建議,懂得團隊合作的重要性。
參考文獻
[1] 鄭郁正.單片機原理及應用.四川大學(xué)出版社,2003。
[2] 譚浩強.C程序設計(第二版).清華大學(xué)出版社,1999。
[3] 王曉君.安國臣等. MCS—51及兼容單片機原理與選型. 北京-電子工業(yè)出版社, 2003。
[4] 李啟炎. Protel 99SE應用教程. 上海-同濟大學(xué)出版社 2005.2
[5] 胡燁, 姚鵬翼, 江思敏. Protel 99 SE電路設計與仿真教程. 北京-機械工業(yè)出版社, 2006。
[6] 張義和,陳敵北。例說(shuō)8051。北京:人民郵電出版社,2006。
[7] 張洪潤,張亞凡。單片機原理及應用。清華大學(xué)出版社,2004。
致 謝
畢業(yè)設計是大學(xué)中學(xué)習和實(shí)踐的一個(gè)重要環(huán)節。它綜合的考察了一個(gè)學(xué)生對過(guò)去所學(xué)的知識的運用能力和對新知識吸收、消化能力,通過(guò)設計,可以培養我們獨立思考、開(kāi)拓創(chuàng )新、勇于探索的能力。在指導老師的精心指導下,我查閱了大量的文獻資料,經(jīng)過(guò)三個(gè)月的學(xué)習、討論、設計、調試,最終完成了設計方案。通過(guò)設計,我們不僅掌握了設計的基本步驟,還學(xué)會(huì )了科學(xué)系統的設計方法,拓寬了知識面。在本課題設計中,為了熟悉課題,我通過(guò)圖書(shū)館、互聯(lián)網(wǎng)學(xué)習查閱了許多相關(guān)的資料,加強了自學(xué)能力并且有意識地將掌握知識歸納總結運用到實(shí)踐中來(lái)。
在這次畢業(yè)設計過(guò)程當中,離不開(kāi)學(xué)校指導老師對我們的全力支持。他們盡最大努力為我們的畢業(yè)設計提供好的條件,以使我們的畢業(yè)設計能夠順利完成。
在此,我特別感謝王春圃老師。王老師在本次設計中給與了我很大的幫助,在理論上使我有了良好的基礎,對整個(gè)設計有了清楚的思路。在設計過(guò)程中給我提出了許多寶貴的意見(jiàn),并且幫助我一起解決設計中遇到的問(wèn)題,為本次畢業(yè)設計耗費了許多的心血。同時(shí),我也要感謝在設計中給予我支持的其他老師和同學(xué)!
【基于單片機的自動(dòng)音樂(lè )播放器的設計(一)】相關(guān)文章:
基于單片機的選頻表自動(dòng)變步長(cháng)的設計實(shí)現03-19
基于單片機的MicroDrive接口設計03-20
基于DSP技術(shù)的MP3播放器的研究與設計03-18
基于單片機技術(shù)的波形發(fā)生器采用單片機設計(一)03-07
基于單片機的CAN智能總線(xiàn)節點(diǎn)的設計03-07
基于51單片機復位電路設計03-07
基于單片機的液位測量系統設計03-07
基于RTX51的單片機軟件設計03-18
基于FPGA的RISC8位單片機設計03-30