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