久久久久无码精品,四川省少妇一级毛片,老老熟妇xxxxhd,人妻无码少妇一区二区

基于單片機的自動音樂播放器的設(shè)計(一)

時間:2023-03-07 11:01:55 電子信息工程畢業(yè)論文 我要投稿
  • 相關(guān)推薦

基于單片機的自動音樂播放器的設(shè)計(一)

摘    要
 為方便人們的日常生活,優(yōu)化學(xué)校、機關(guān)等單位的計時系統(tǒng),采用以單片機為基礎(chǔ)設(shè)計了一種的自動音樂播放器。本設(shè)計利用單片機89C58RD+的定時和計數(shù)功能,來完成時間的顯示和定時功能。并且,通過對定時器初值的設(shè)定來產(chǎn)生不同頻率的聲音,利用定時器中斷來完成對音樂節(jié)拍長度的控制。通過LM386N1音頻功率放大器,將單片機輸出的信號放大,再通過喇叭播放樂曲。通過MAX232型芯片,可以轉(zhuǎn)換PC機上的電壓和單片機的電源電壓,再通過串口接入PC機,這樣就能從PC機上將用C語言編寫的程序下載到單片機上。最后可在數(shù)碼管上顯示時間,當(dāng)定時時間到后,喇叭自動播放一段連續(xù)的音樂。此設(shè)計擺脫了傳統(tǒng)鬧鐘的刺耳聲音,取而代之的是美妙的音樂,能為人們的日常生活提供準確的計時,且成本低廉,值得推廣。
 關(guān)鍵詞:單片機;自動音樂播放;音頻轉(zhuǎn)換;時間顯示;LM386N1音頻功率放大器

基于單片機的自動音樂播放器的設(shè)計(一)


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

 

 


目  錄
論文總頁數(shù):頁
引   言.......................................................................1
1 設(shè)計任務(wù)................................................................2
2 軟件設(shè)計
 2.1 音樂編程原理及流程圖 ...............................................
 2.1.1 聲音的產(chǎn)生 ......................................................
 2.1.2 音頻轉(zhuǎn)換原理 ....................................................
 2.1.3 音頻轉(zhuǎn)換流程圖 ..............................................
2.2 時間顯示程序設(shè)計..............................................
  2.2.1 時間顯示模塊..............................................
2.2.2 時鐘流程圖 ..............................................
3 硬件電路的設(shè)計..............................................................2
 3.1 硬件流程模塊(此節(jié)作為第1節(jié)---后面幾節(jié)就圍繞它來寫,并且要寫“連貫”)
 3.2 主要模塊電路的設(shè)計..........................
 3.2.1 89C58RD+型單片機介紹.........................................
 3.2.2 LM386N及外圍電路的設(shè)計.............            ...............
 3.2.3 串行通信和MAX232芯片...........................................
 3.2 4 AT89C52的定時/計數(shù)器概述.........................................
 3.2 5 LED顯示原理......................................................
4 KEIL仿真軟件及Protel 99 SE的應(yīng)用......................................
 4.1 KEIL51的應(yīng)用..........................................................
 4.2 Protel 99 SE的應(yīng)用.....................................................
 4.3 PCB板制作.............................................................
5 仿真及調(diào)試過程..........................................................
 5.1 硬件調(diào)試過程
 5.2 軟件仿真及調(diào)試過程
6 結(jié)果分析................................................................    結(jié) 論..................................................................... 
參考文獻.......................................................................
致  謝.....................................................................29
聲  明.....................................................................30
附  錄.....................................................................16


基于單片機的自動音樂播放器的設(shè)計
引  言
 單片機,更確切地說應(yīng)稱為作微控制器,是20世紀70年代中期發(fā)展起來的一種面向控制的大規(guī)模集成電路模塊,其特點是功能強、體積小、可靠性高、價格低廉。它一面世便在工業(yè)控制、數(shù)據(jù)采集、智能儀表化、機電一體化、家用電器等領(lǐng)域得到了廣泛應(yīng)用,極大地提高了這些領(lǐng)域的技術(shù)水平和自動化程度。因此,單片機的開發(fā)應(yīng)用已成為高科技和工程領(lǐng)域的一項重大課題。
 本文將介紹一種以89C58RD+型單片機為基礎(chǔ)元件設(shè)計的自動音樂播放器。在當(dāng)今這個科技高速發(fā)展的時代,時間對于每一個人都十分重要,時間就代表了金錢,代表了先機。所以,準確的計時和及時的時間提示就顯得相當(dāng)重要,各個公司、機關(guān)、院校日常作息都需要計時和號音提示,我們的日常生活也離不開時間。目前,此類音樂計時播放器在國內(nèi)已經(jīng)開始普及。校園里的上下課的鈴聲,宿舍內(nèi)早晨的起床號聲音,都由以前枯燥刺耳的鈴音轉(zhuǎn)變成了好聽的音樂,公路、廣場中的計時裝置也逐漸開始采用音樂來充當(dāng)鈴聲。此裝置不僅為人們?nèi)粘I畹挠嫊r提供了方便,同時也為目前快節(jié)奏的生活帶來了樂趣。
 本次設(shè)計以89C58RD+型單片機為基礎(chǔ),利用單片機編成技術(shù)對芯片進行功能設(shè)定,實現(xiàn)對時間的計時,并在四位共陰LED數(shù)碼管上顯示出來。同時,利用單片機的定時器中斷,在單片機內(nèi)部產(chǎn)生所需要的音樂頻率,并通過LM386N1型音頻功率放大器將音頻信號放大。當(dāng)定時時間到后,通過喇叭連續(xù)播放一段音樂。此設(shè)計通過多次測試,計時準確,音樂聲音宏亮清晰,節(jié)拍正常,達到預(yù)期效果。
 本文將圍繞基于單片機的自動音樂播放器,介紹一些關(guān)于單片機的基礎(chǔ)知識、音樂播放器的制作原理及方法(其中包括了音樂編程原理)、定時器的設(shè)定、四位共陰LED數(shù)碼管的顯示、LM386N1型音頻功率放大器外圍電路的介紹,以及仿真軟件(Keil、Protel99 SE)的使用方法和相關(guān)PCB板的制作。

 

 


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

【基于單片機的自動音樂播放器的設(shè)計(一)】相關(guān)文章:

探討基于多種通信方式并存的配網(wǎng)自動化通信系統(tǒng)06-01

基于CS管理的房地產(chǎn)企業(yè)開發(fā)設(shè)計06-04

基于web的異地并行設(shè)計與制造系統(tǒng)研究06-02

基于勝任力的企業(yè)個體績效管理流程設(shè)計06-03

基于PLC的斷路器型式試驗系統(tǒng)設(shè)計03-10

基于工業(yè)機器人的自動化生產(chǎn)技術(shù)研究論文04-14

基于電話網(wǎng)絡(luò)的熱網(wǎng)遠程控制系統(tǒng)設(shè)計05-11

淺談基于工作流程的高職《國際貿(mào)易實務(wù)》課程教學(xué)模式設(shè)計06-13

分析基于三維掃描的特種設(shè)備管理系統(tǒng)設(shè)計論文05-26

基于分組技術(shù)的下一代光傳送網(wǎng)05-29