版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
編號(hào):課程設(shè)計(jì)說(shuō)明書(shū)(信息系統(tǒng)綜合實(shí)訓(xùn))題目:立體聲調(diào)頻收音機(jī)院〔系〕:信息與通信學(xué)院專(zhuān)業(yè):電子信息工程學(xué)生姓名:峰之使者學(xué)號(hào):指導(dǎo)教師:2023年1月8日摘要本系統(tǒng)為立體聲調(diào)頻收音機(jī),設(shè)計(jì)采用RDA5807收音模塊,與單片機(jī)相結(jié)合,使收音解調(diào)電路設(shè)計(jì)變的簡(jiǎn)單,實(shí)現(xiàn)FM收音并顯示頻率。我們通過(guò)矩陣鍵盤(pán)設(shè)定我們需要的頻段,并設(shè)置音量大小,通過(guò)諾基亞5110液晶屏顯示出來(lái),并根據(jù)所顯示接收信號(hào)的強(qiáng)度等級(jí),判斷收音所在地的信號(hào)強(qiáng)度。RDA5807模塊具有65-108MHz全球FM接收頻段相容的效果,具備噪聲消除、軟靜音、低音增強(qiáng)、靈敏度高、噪聲小、抗干擾能力強(qiáng)等功能,所以使用本模塊很容易實(shí)現(xiàn),且系統(tǒng)可靠穩(wěn)定。關(guān)鍵詞:?jiǎn)纹瑱C(jī);RDA5807收音模塊;FM收音;目錄引言11任務(wù)要求與設(shè)計(jì)的背景11.1設(shè)計(jì)任務(wù)要求11.2課題背景12調(diào)頻收音機(jī)的分析和設(shè)計(jì)思路12.1系統(tǒng)設(shè)計(jì)原理12.2系統(tǒng)框圖分析和設(shè)計(jì)23硬件設(shè)計(jì)23.1單片機(jī)最小系統(tǒng)23.1.1時(shí)鐘電路23.1.2復(fù)位電路33.2RDA5807模塊33.2.1RDA5807模塊管腳33.2.2RDA5807模塊特點(diǎn)43.2.3RDA5807模塊與單片機(jī)接口43.3原理圖53.4PCB圖54軟件設(shè)計(jì)54.1IIC通信54.2IIC時(shí)序64.3軟件流程圖75調(diào)試過(guò)程95.1電路板制作95.2硬件調(diào)試95.3軟件調(diào)試105.4實(shí)物圖116總結(jié)11謝辭13參考文獻(xiàn)14附錄15引言隨著科學(xué)技術(shù)的開(kāi)展,調(diào)頻收音機(jī)的應(yīng)用十分廣泛,尤其消費(fèi)類(lèi)占有相當(dāng)?shù)氖袌?chǎng)。從別離元件組成的收音機(jī)到由集成電路組成的收音機(jī),調(diào)頻收音機(jī)技術(shù)已到達(dá)十分成熟的地步。本次設(shè)計(jì)采用RDA5807收音模塊與單片機(jī)相結(jié)合,實(shí)現(xiàn)FM收音并顯示頻率。單片機(jī)自20世紀(jì)70年代問(wèn)世以來(lái),以極其高的性能價(jià)格比受到人們的重視和關(guān)注,所以應(yīng)用很廣,開(kāi)展很快。單片機(jī)的特點(diǎn)是體積小、集成度高、重量輕、抗干擾能力強(qiáng),對(duì)環(huán)境要求不高,價(jià)格低廉,可靠性高,靈活性好,開(kāi)發(fā)較為容易,所以本次采用STC89c52單片機(jī)。此外,RDA5807模塊具有65-108MHz全球FM接收頻段相容的效果,具備噪聲消除、軟靜音、低音增強(qiáng)、靈敏度高、噪聲小、抗干擾能力強(qiáng)等功能,還可以具備頻率顯示功能。1任務(wù)要求與設(shè)計(jì)的背景1.1設(shè)計(jì)任務(wù)要求本論文的任務(wù)是根據(jù)調(diào)頻收音機(jī)的特點(diǎn)和應(yīng)用情況,結(jié)合新一代高性能芯片設(shè)計(jì)一種使用簡(jiǎn)單、性能優(yōu)良的收音機(jī)。整個(gè)系統(tǒng)以單片機(jī)STC89S52控制,RDA5807芯片為核心,配置相應(yīng)的外設(shè)及接口電路。接收頻率可設(shè)置、輸出音量可數(shù)控、顯示信號(hào)強(qiáng)度和設(shè)置靜音,用C語(yǔ)言開(kāi)發(fā),組成一個(gè)多功能的程控?cái)?shù)字收音機(jī)。1.2課題背景隨著科學(xué)技術(shù)的不斷開(kāi)展,新穎的調(diào)頻收音機(jī)的不斷出現(xiàn),技術(shù)不斷的提高,設(shè)計(jì)出來(lái)的收音機(jī)外型精致和小巧。從別離元件到集成電路,這標(biāo)志著收音機(jī)的內(nèi)部電路簡(jiǎn)單。用一個(gè)集成塊就能完成所有的工作。從早期的調(diào)幅收音機(jī)到現(xiàn)在的調(diào)頻收音機(jī),我們可以想象收音機(jī)的不斷的改良和不斷創(chuàng)新,使收音機(jī)的開(kāi)展空間愈來(lái)愈大?,F(xiàn)在,出現(xiàn)了新一代高科技產(chǎn)品——數(shù)字調(diào)頻收音機(jī),功能強(qiáng)大,性能優(yōu)良,設(shè)計(jì)精巧耐用。2調(diào)頻收音機(jī)的分析和設(shè)計(jì)思路2.1系統(tǒng)設(shè)計(jì)原理本文提出的采用RDA5807模塊作為解調(diào)的核心器件的全數(shù)控調(diào)頻收音機(jī)設(shè)計(jì)方案,根據(jù)接收頻率可設(shè)置、輸出音量可數(shù)控、顯示信號(hào)強(qiáng)度和設(shè)置靜音等要求,本設(shè)計(jì)外置一根天線,信號(hào)從天線進(jìn)入RDA5807模塊,因?yàn)閮?nèi)部有一放大器,所以不需要外加放大器,內(nèi)部AD對(duì)信號(hào)進(jìn)行采樣,通過(guò)單片機(jī)的I/O口與RDA5807的IIC總線相連,經(jīng)過(guò)程序控制進(jìn)行對(duì)收音芯片內(nèi)部的存放器讀寫(xiě),改寫(xiě)這些存放器,那么可輸出對(duì)應(yīng)的頻率和音量的信號(hào)。控制電路采用4*4的矩陣鍵盤(pán),輸入的數(shù)字信息經(jīng)STC89C52控制的諾基亞5110液晶屏顯示。2.2系統(tǒng)框圖分析和設(shè)計(jì)系統(tǒng)結(jié)構(gòu)組成如圖2.1所示,主要由單片機(jī)控制模塊、鍵盤(pán)與顯示模塊、收音機(jī)解調(diào)模塊、天線組成。其中,信號(hào)接收由單片機(jī)控制模塊、收音機(jī)解調(diào)模塊和天線實(shí)現(xiàn),鍵盤(pán)與顯示模塊那么用來(lái)實(shí)現(xiàn)人機(jī)交互的功能,通過(guò)外接的喇叭或者耳機(jī)可以接收到對(duì)應(yīng)頻道的信息。天線收音解調(diào)模塊4x4矩陣鍵盤(pán)單片機(jī)天線收音解調(diào)模塊4x4矩陣鍵盤(pán)單片機(jī)5110液晶顯示模塊5110液晶顯示模塊圖2.1收音機(jī)系統(tǒng)框圖3硬件設(shè)計(jì)3.1單片機(jī)最小系統(tǒng)STC89C52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。使用STC公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、有效的解決方案。STC89C52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash、256字節(jié)RAM、32位I/O口線、看門(mén)狗定時(shí)器、2個(gè)數(shù)據(jù)指針、二個(gè)16位定時(shí)器/計(jì)數(shù)器、一個(gè)6向量2級(jí)中斷結(jié)構(gòu)、全雙工串行口、片內(nèi)晶振及時(shí)鐘電路。另外,STC89C52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。一般單片機(jī)需外接一個(gè)時(shí)鐘電路和一個(gè)復(fù)位電路,如圖3.1和圖3.2所示。3.1.1時(shí)鐘電路圖3.1時(shí)鐘電路XTAL1是片內(nèi)振蕩器的反相放大器輸入端,XTAL2那么是輸出端,使用外部振蕩器時(shí),外部振蕩信號(hào)應(yīng)直接加到XTAL1,而XTAL2懸空。內(nèi)部方式時(shí),時(shí)鐘發(fā)生器對(duì)振蕩脈沖二分頻,如晶振為12MHz,時(shí)鐘頻率就為6MHz。晶振的頻率可以在1MHz-24MHz內(nèi)選擇。電容取30PF左右。STC89C52中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反應(yīng)元件的片外石英晶體或者陶瓷諧振器一起構(gòu)成自激振蕩器。片外石英晶體或者陶瓷諧振器及電容C1、C2接在放大器的反應(yīng)回路中構(gòu)成并聯(lián)振蕩電路。對(duì)外接電容C1、C2雖然沒(méi)有十分嚴(yán)格的要求,但電容容量的大小會(huì)輕微影響振蕩頻率的上下、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性,這里采用電容22pF,晶振采用12MHz。3.1.2復(fù)位電路STC89C52的外部復(fù)位電路有上電自動(dòng)復(fù)位和手動(dòng)按鍵復(fù)位。上電復(fù)位電容充電來(lái)實(shí)現(xiàn)。手動(dòng)按鍵復(fù)位又分為按鍵電平復(fù)位和按鍵脈沖復(fù)位。按鍵電平復(fù)位電路是在普通RC復(fù)位電路的根底上接一個(gè)有下拉電阻10K、上拉電容10μf接VCC,電源由開(kāi)關(guān)接至復(fù)位腳〔和上拉電容并聯(lián)〕,上拉電容支路負(fù)責(zé)在“上電〞瞬間實(shí)施復(fù)位;開(kāi)關(guān)通過(guò)10K下拉電阻分壓器,保證對(duì)單片機(jī)實(shí)施按鍵電平復(fù)位。電路圖如下列圖3.2所示:圖3.2復(fù)位電路3.2RDA5807模塊3.2.1RDA5807模塊管腳“RRD-102V2.0〞立體聲收音模塊〔FMStereoradioModule〕高靈敏度、低功耗、超小體積的調(diào)頻立體聲收音模組。采用RDAMicroelectronics的RDA5807M〔或RDA5802NM〕,此電路外圍元件少、噪聲系數(shù)極小。具有體積小、低功耗、低本錢(qián)、應(yīng)用簡(jiǎn)單、使用范圍廣等優(yōu)點(diǎn)。是一款簡(jiǎn)單易用且具極高性?xún)r(jià)比的單芯片F(xiàn)M立體聲收音模組,管腳如圖3.3所示,管腳功能如表3.1。表3.1管腳功能圖3.3RAD5807模塊管腳示意圖3.2.2RDA5807模塊特點(diǎn)〔1〕采用通用的102BC模塊的封裝,用戶(hù)可直接替換使用,無(wú)需更改電路設(shè)計(jì)。〔2〕、靈敏度高、噪聲小、抗干擾能力強(qiáng)、外接元件極少、體積小〔11*11.2MMMax〕、使用極其簡(jiǎn)單?!?〕、76-108MHz全球FM頻段兼容〔包括日本76-91MHz和歐美87.5-108.5MHz〕?!?〕、I2C串行數(shù)據(jù)總線接口通訊,支持外部基準(zhǔn)時(shí)鐘輸入方式?!?〕、完全整合的COMS工藝單晶片集成電路,功耗極小?!?〕、內(nèi)置高精度A/D〔模數(shù)轉(zhuǎn)換器〕及數(shù)字頻率合成器。〔7〕、內(nèi)置LDO調(diào)整、低功耗、超寬電壓使用范圍〔2.7-3.6VDC〕。〔8〕、內(nèi)置噪聲消除、軟靜音、低音增強(qiáng)電路設(shè)計(jì)。〔9〕、高功率32Ω負(fù)載音頻輸出,直接耳機(jī)駁接,無(wú)需外接音頻驅(qū)動(dòng)放大。3.2.3RDA5807模塊與單片機(jī)接口RDA5807是以I2C協(xié)議為通信方式的芯片,通過(guò)CLK時(shí)鐘總線和SDA數(shù)據(jù)總線與單片機(jī)相連,如圖3.3所示。圖3.4RAD5807與單片機(jī)接口3.3原理圖本原理圖是實(shí)現(xiàn)一個(gè)收音功能的電路,通過(guò)天線接收播送,并利用RDA5807收音模塊,解調(diào)出音頻信號(hào),通過(guò)耳機(jī)播放出來(lái),如圖3.5所示。圖3.5系統(tǒng)原理圖3.4PCB圖利用軟件DXP,將原理圖導(dǎo)入進(jìn)行制作PCB圖,通過(guò)白色線的指引,把各個(gè)局部的電路連接起來(lái),如圖3.6所示。圖3.6PCB圖4軟件設(shè)計(jì)4.1IIC通信IIC是由菲利浦半導(dǎo)體公司在八十年代初設(shè)計(jì)出來(lái)的,主要是用來(lái)連接整體電路(ICS),IIC是一種多向控制總線,也就是說(shuō)多個(gè)芯片可以連接到同一總線結(jié)構(gòu)下,同時(shí)每個(gè)芯片都可以作為實(shí)施數(shù)據(jù)傳輸?shù)目刂圃?。這種方式簡(jiǎn)化了信號(hào)輸總線。IIC串行總線一般有兩根信號(hào)線,一根是雙向的數(shù)據(jù)線SDA,另一根是時(shí)鐘線SCL。所有接到IIC總線設(shè)備上的串行數(shù)據(jù)SDA都接到總線的SDA上,各設(shè)備的時(shí)鐘線SCL接到總線的SCL上。4.2IIC時(shí)序在IIC總線傳輸過(guò)程中,將兩種特定的情況定義為開(kāi)始和停止條件:當(dāng)SCL保持“高〞時(shí),SDA由“高〞變?yōu)椤暗通暈殚_(kāi)始條件;當(dāng)SCL保持“高〞且SDA由“低〞變?yōu)椤案擗晻r(shí)為停止條件。開(kāi)始和停止條件均由主控制器產(chǎn)生。使用硬件接口可以很容易地檢測(cè)到開(kāi)始和停止條件,沒(méi)有這種接口的微機(jī)必須以每時(shí)鐘周期至少兩次對(duì)SDA取樣,以檢測(cè)這種變化。SDA線上的數(shù)據(jù)在時(shí)鐘“高〞期間必須是穩(wěn)定的,只有當(dāng)SCL線上的時(shí)鐘信號(hào)為低時(shí),數(shù)據(jù)線上的“高〞或“低〞狀態(tài)才可以改變。輸出到SDA線上的每個(gè)字節(jié)必須是8位,每次傳輸?shù)淖止?jié)不受限制,但每個(gè)字節(jié)必須要有一個(gè)應(yīng)答ACK。如果一接收器件在完成其他功能〔如一內(nèi)部中斷〕前不能接收另一數(shù)據(jù)的完整字節(jié)時(shí),它可以保持時(shí)鐘線SCL為低,以促使發(fā)送器進(jìn)入等待狀態(tài);當(dāng)接收器準(zhǔn)備好接受數(shù)據(jù)的其它字節(jié)并釋放時(shí)鐘SCL后,數(shù)據(jù)傳輸繼續(xù)進(jìn)行。I2C數(shù)據(jù)總線傳送時(shí)序。數(shù)據(jù)傳送具有應(yīng)答是必須的。與應(yīng)答對(duì)應(yīng)的時(shí)鐘脈沖由主控制器產(chǎn)生,發(fā)送器在應(yīng)答期間必須下拉SDA線。當(dāng)尋址的被控器件不能應(yīng)答時(shí),數(shù)據(jù)保持為高并使主控器產(chǎn)生停止條件而終止傳輸。在傳輸?shù)倪^(guò)程中,在用到主控接收器的情況下,主控接收器必須發(fā)出一數(shù)據(jù)結(jié)束信號(hào)給被控發(fā)送器,從而使被控發(fā)送器釋放數(shù)據(jù)線,以允許主控器產(chǎn)生停止條件。圖4.1為RDA5807存放器寫(xiě)時(shí)序,圖4.2為RDA5807存放器讀時(shí)序。圖4.1I2C寫(xiě)時(shí)序圖4.2I2C讀時(shí)序4.3軟件流程圖在應(yīng)用系統(tǒng)中,系統(tǒng)軟件的設(shè)計(jì)是建立在具體硬件電路根底之上,根據(jù)系統(tǒng)功能要求可靠地實(shí)現(xiàn)系統(tǒng)的各種功能。好的軟件設(shè)計(jì)能夠充分發(fā)揮微控制器的運(yùn)算和邏輯控制功能,從而提高儀器的精度和使用的方便性。先初始化接收頻率,并實(shí)現(xiàn)對(duì)頻率和音量步進(jìn)的控制。處理用戶(hù)由鍵盤(pán)鍵入的頻率值和音量值,判斷是否超出范圍,生成頻率和音量控制字,經(jīng)I2C方式送入解調(diào)模塊并改寫(xiě)存放器數(shù)據(jù),設(shè)置用戶(hù)所需的接收頻段和音量,并通過(guò)程序?qū)崿F(xiàn)頻率、音量和信號(hào)強(qiáng)度的顯示,程序流程圖如圖4.3所示。開(kāi)始開(kāi)始RDA5807RDA5807初始化5110液晶5110液晶初始化鍵盤(pán)掃描鍵盤(pán)掃描改寫(xiě)當(dāng)前頻率、音量改寫(xiě)當(dāng)前頻率、音量顯示當(dāng)前頻率、音量顯示當(dāng)前頻率、音量結(jié)束結(jié)束圖4.3總程序流程圖根據(jù)圖4.3的總程序流程圖。程序從main函數(shù)開(kāi)始,先對(duì)LCD5110液晶屏進(jìn)行初始化,主要對(duì)液晶屏進(jìn)行忙或不忙檢測(cè),當(dāng)液晶屏忙時(shí),程序等待中;當(dāng)液晶屏不忙時(shí),程序繼續(xù)。再對(duì)LCD清屏,為顯示作準(zhǔn)備。再顯示我們需要的信息。最后初始設(shè)置頻率和音量,初始化程序如下:LCD_init(); //lcd初始化LCD_clear(); //清屏xianshi(); //顯示初始化RDA_Init(); //RDA5807初始化Freq_Set(8830);//頻率初始設(shè)置為88.30MHZVol_Set(10) ; //音量初始設(shè)置為10矩陣鍵盤(pán)掃描程序,當(dāng)按鍵按下時(shí),程序執(zhí)行對(duì)應(yīng)功能;當(dāng)鍵盤(pán)沒(méi)有按下時(shí),程序結(jié)束且這個(gè)過(guò)程不斷循環(huán)。鍵盤(pán)掃描程序如下:keyscan(); //鍵盤(pán)不斷掃描當(dāng)鍵1被按下時(shí),頻率值加100KHZRXFreq+=10; //頻率加,步進(jìn)100KHZFreq_Set(RXFreq); //頻率設(shè)置當(dāng)鍵2被按下時(shí),頻率值減100KHZRXFreq-=10; //頻率減,步進(jìn)100KHZFreq_Set(RXFreq); //頻率設(shè)置當(dāng)鍵3被按下時(shí),音量值加1 Vol+=1; //音量加 Vol_Set(Vol); //音量設(shè)置 0~15當(dāng)鍵4被按下時(shí),音量值減1 Vol-=1; //音量減 Vol_Set(Vol); //音量設(shè)置 0~15當(dāng)鍵5被按下時(shí),設(shè)置靜音成功;當(dāng)鍵5再次按下時(shí)靜音取消 Mute_Set(mute); //設(shè)置靜音 mute++;鍵盤(pán)不斷掃描時(shí),也不斷的顯示,分別對(duì)頻率、音量、信號(hào)強(qiáng)度和靜音標(biāo)志進(jìn)行顯示,顯示程序如下: display_2(RXFreq); //顯示頻率 display_1(Vol); //顯示音量 display_3(Rssi_Get()); //顯示信號(hào)強(qiáng)度 display_4(mute); //顯示是否靜音,1為否,0為是以上步驟不斷的循環(huán)。5調(diào)試過(guò)程5.1電路板制作畫(huà)圖:根據(jù)原理圖畫(huà)PCB圖,畫(huà)封裝。打印PCB:通過(guò)轉(zhuǎn)印機(jī)把PCB轉(zhuǎn)印到電路板上。腐蝕:把電路板放進(jìn)腐蝕液里腐蝕掉沒(méi)有被保護(hù)的銅。鉆孔:根據(jù)洞口大小選擇適宜的鉆針鉆孔。清洗:把導(dǎo)線外表的油墨打磨清洗干凈。涂松香:把松香和天那水的混合液涂在打磨清洗后的板子上,防止銅線被氧化和有助于焊接。插器件,焊接:等松香干了,插元器件,并且焊接好。5.2硬件調(diào)試剛開(kāi)始調(diào)試的時(shí)候,我是根據(jù)一個(gè)文檔上寫(xiě)的,耳機(jī)接口的公共端可以用作天線,并通過(guò)一個(gè)磁珠與地隔開(kāi),當(dāng)時(shí)一個(gè)勁的疑心軟件問(wèn)題,沒(méi)有認(rèn)真檢查硬件,經(jīng)過(guò)仔細(xì)查閱資料,了解到耳機(jī)接口的公共端為地,所以不能用作天線。解決;天線端與耳機(jī)公共端斷路,耳機(jī)公共端直接接地。如圖5.1所示。圖5.1解決后電路還有一個(gè)問(wèn)題,芯片RDA5807的輸出口有兩個(gè)聲道,之前我是用兩個(gè)磁珠相連,因?yàn)榇胖槭请姼?,具有隔交流信?hào)的作用,音頻信號(hào)為交流信號(hào),磁珠濾除掉了音頻信號(hào),所以耳機(jī)端不可能接收到音頻信號(hào),解決:移除兩個(gè)磁珠,用導(dǎo)線把兩端連接起來(lái)。如圖5.3所示紅色框原為兩個(gè)磁珠,現(xiàn)在為兩導(dǎo)線相連.如圖5.2所示。圖5.2解決后電路5.3軟件調(diào)試軟件遇到的主要問(wèn)題是RDA5807的I2C協(xié)議通信的時(shí)序問(wèn)題,I2C協(xié)議通過(guò)時(shí)鐘總線CLK和數(shù)據(jù)總線SDA與單片機(jī)相連,我們所用的單片機(jī)沒(méi)有I2C接口,給我們?cè)斐闪撕艽蟮牟槐?,我們是根?jù)I2C時(shí)序,通過(guò)拉低或拉高總線和延時(shí)函數(shù)模擬I2C。在寫(xiě)I2C讀一個(gè)字節(jié)的數(shù)據(jù)時(shí),數(shù)據(jù)只能讀出16位數(shù)據(jù)的高8位,而不能讀出數(shù)據(jù)的低8位,。解決:在讀數(shù)據(jù)前,將SDA總線拉高,因?yàn)?1單片機(jī)講引腳置高可設(shè)為輸入引腳,即可讀出數(shù)據(jù)。局部程序如下:ucharIICReadByte(unsignedcharack)//IIC讀一個(gè)字節(jié){unsignedchari,receive=0; SDA=1; //51單片機(jī)講引腳置高可設(shè)為輸入引腳,缺少此語(yǔ)句,不能正常讀出數(shù)據(jù)for(i=0;i<8;i++) { SCL=0;IIC_delayms();SCL=1;receive<<=1; if(SDA==1)receive++; IIC_delayms();} if(!ack)IIC_NAck();elseIIC_Ack();returnreceive;}5.4實(shí)物圖如圖5.3所示,調(diào)試出來(lái)的電路由矩陣鍵盤(pán)、諾基亞5110液晶屏、RDA5807模塊組成。可以顯示接收頻率、音量、信號(hào)強(qiáng)度,如圖5.3所示。圖5.3無(wú)線發(fā)射控制電路6總結(jié)本次信息系統(tǒng)綜合實(shí)訓(xùn),我用了兩個(gè)星期,在第一個(gè)星期我查閱關(guān)于收音機(jī)的資料和學(xué)習(xí)一些單片機(jī)的根底,第二個(gè)星期我做板并調(diào)試程序,這兩星期可以說(shuō)是充實(shí),緊張而又愉快的。在這兩個(gè)星期的實(shí)訓(xùn)中,我學(xué)到了很多東西,不管是在知識(shí)架構(gòu)上,還是在動(dòng)手動(dòng)腦能力上都起著潛移默化的影響。剛開(kāi)始做收音機(jī),腦袋里面沒(méi)有一點(diǎn)頭緒,通過(guò)幾天的查閱資料和班里面的同學(xué)交流,了解到了FM是如今的一種收音機(jī)常用的調(diào)制解調(diào)方式,這也是我本次實(shí)訓(xùn)的芯片RDA5807里面的調(diào)制解調(diào)方式。硬件做出來(lái)后,調(diào)試軟件遇到了不少的問(wèn)題,剛開(kāi)始把5110液晶屏點(diǎn)亮,費(fèi)了一段時(shí)間,通過(guò)查找網(wǎng)上一些關(guān)于5110液晶屏的驅(qū)動(dòng)和參考別人的一些程序,終于可以在屏幕上隨意讀寫(xiě)數(shù)據(jù),并且可以顯示漢字。關(guān)于RDA5807的程序,我也是上網(wǎng)找了一堆資料,其實(shí)它的驅(qū)動(dòng)程序有點(diǎn)難寫(xiě),特別是I2C協(xié)議讀寫(xiě)數(shù)據(jù),但我們參考別人的程序,對(duì)照時(shí)序圖,可以很快寫(xiě)好RDA5807的驅(qū)動(dòng)程序,通過(guò)調(diào)用里面的子函數(shù),設(shè)置所需的接收頻段和音量。關(guān)于矩陣鍵盤(pán)的程序,按鍵掃描是單片機(jī)的一個(gè)根本的知識(shí),不過(guò)矩陣鍵盤(pán)掃描比擬困難,它是8個(gè)IO口控制16個(gè)鍵盤(pán),在觀看郭天祥的十天學(xué)會(huì)單片機(jī)后,對(duì)矩陣有了一定了解,最后能運(yùn)用矩陣鍵盤(pán)實(shí)現(xiàn)對(duì)頻率設(shè)置的功能。這次實(shí)訓(xùn)不僅穩(wěn)固了以前所學(xué)過(guò)的知識(shí),鍛煉自己動(dòng)手制作能力,更是讓我深刻認(rèn)識(shí)到我對(duì)理論知識(shí)所學(xué)欠缺,理論知識(shí)的重要性,這些我會(huì)在以后得學(xué)習(xí)總補(bǔ)習(xí)回來(lái),做到理論與實(shí)踐相結(jié)合,更好的提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。謝辭首先,感謝為我們安排了這次單片機(jī)設(shè)計(jì)實(shí)訓(xùn)。非常感謝學(xué)院領(lǐng)導(dǎo)和老師給我們提供硬件條件和在理論知識(shí)方面的幫助。還要感謝老師的授課和實(shí)訓(xùn)操作指導(dǎo),在任務(wù)開(kāi)始前,老師首先就全面的為我們講考前須知,讓我們?cè)趯?shí)訓(xùn)過(guò)程中少犯了不少錯(cuò),節(jié)約了珍貴的時(shí)間。特別感謝老師,是她在整個(gè)實(shí)訓(xùn)過(guò)程中對(duì)我們嚴(yán)格要求,耐心指導(dǎo),反復(fù)為我們講解要點(diǎn),給與我們極大的幫助以及鼓勵(lì),使得我最終完成實(shí)訓(xùn)。參考文獻(xiàn)[1]郭天祥.51單片機(jī)C語(yǔ)言教程:電子工業(yè)出版社,2023[2]李歐儒主編.短波單邊帶收發(fā)信機(jī)原理與調(diào)制.北京:人民郵電出版社,1985[3]董在望.陳雅琴,雷有華,肖華庭.通信電路原理.第二版.北京:高等教育出版社,2002[4]孫育才.MCS-51系列單片機(jī)及應(yīng)用〔第4版〕:東南大學(xué)出版社,2004[5]閻石.數(shù)字電子技術(shù)根底〔第5版〕:清華大學(xué)出版社,2005[6]譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)〔第3版〕:清華大學(xué)出版社,2005[7]鄭學(xué)堅(jiān)、周斌.微型計(jì)算機(jī)的原理及應(yīng)用:清華大學(xué)出版社,2002[8]胡偉、季曉衡.單片機(jī)c程序設(shè)計(jì)及應(yīng)用實(shí)例:北京人民郵電出版社.2003附錄#include<reg51.h>#include<string.h>#include<intrins.h>#include<lcd5110.h>#defineucharunsignedchar#defineuintunsignedint#defineulintunsignedlongint#definelintlongintunsignedintRXFreq=8980;//RDA的存放器地址#defineRDA_R00 0X00//讀出16個(gè)位的ID=0X5800#defineRDA_R02 0X02//DHIZ[15],DMUTE[14]靜音,MONO[13]聲道,BASS[12]重低音,SEEKUP[9],SEEK[8],SKMODE[7],CLK_MODE[6:4]時(shí)鐘源選擇,SOFTRESET[1]軟復(fù)位,ENABLE[0]電源使能#defineRDA_R03 0X03//CHAN[15:6],TUNE[4],BAND[3:2],SPACE[1:0]設(shè)置頻率帶寬步長(zhǎng)#defineRDA_R04 0X04//STCIEN[14],DE[11],I2Senable[6],#defineRDA_R05 0X05//INT_MODE[15],SEEKTH[14:8](設(shè)定自動(dòng)搜索信號(hào)強(qiáng)度閥值),LNA_PORT_SEL[7:6]=0b10,LNA_ICSEL_BIT[5:4],VOLUME[3:0]音量;#defineRDA_R0A 0X0A//STC[14]seekcompleteSF[13]seekfailreadchan[9:0]當(dāng)前頻道#defineRDA_R0B 0X0B//RSSI[15:9],FMTRUE[8]當(dāng)前頻道是一個(gè)節(jié)目臺(tái)#defineRDA_READ0X23//讀RDA5807#defineRDA_WRITE 0X22//寫(xiě)RDA5807sbitSDA=P0^1; //IIC接口sbitSCL=P0^0;uchar*table[]={"0","1","2","3","4","5","6","7","8","9"};uchartemp,key,Vol=8,mute=1;uintDiantai[20]={8830};voiddelay(ucharz){ uchari,j; for(i=z;i>0;i--) for(j=110;j>0;j--);}/*IIC通信程序*/voidIIC_delayms()//用于IIC延時(shí){ _nop_();_nop_();_nop_();_nop_();}voidOpenIIC() //IIC啟動(dòng)信號(hào){ SDA=1; SCL=1; IIC_delayms(); SDA=0; IIC_delayms(); SCL=0;}voidCloseIIC() //IIC停止信號(hào){ SCL=0; SDA=0; IIC_delayms(); SCL=1; SDA=1; IIC_delayms();}ucharIIC_Wait_Ack(void) //IIC發(fā)送字節(jié)后等待從機(jī)發(fā)送響應(yīng)信{ ucharucErrTime=0; SDA=1; IIC_delayms(); SCL=1; IIC_delayms(); while(SDA==1) { ucErrTime++; if(ucErrTime>250) { CloseIIC(); return1; } } SCL=0; return0;}voidIIC_Ack(void) //發(fā)送應(yīng)答信號(hào){ SCL=0; SDA=0; //0±íê?ó|′e IIC_delayms(); SCL=1; IIC_delayms(); SCL=0;}voidIIC_NAck(void) //IIC非應(yīng)答信號(hào){ SCL=0; SDA=1; IIC_delayms(); SCL=1; IIC_delayms(); SCL=0;} voidIICsendByte(uchartxd) //IIC·寫(xiě)一個(gè)字節(jié){uchart;SCL=0;for(t=0;t<8;t++){ if(((txd&0x80)>>7)==1) SDA=1; else SDA=0;txd<<=1; IIC_delayms(); SCL=1; IIC_delayms(); SCL=0; IIC_delayms();} } ucharIICReadByte(unsignedcharack)//IIC讀一個(gè)字節(jié){ unsignedchari,receive=0; SDA=1; //51單片機(jī)講引腳置高可設(shè)為輸入引腳for(i=0;i<8;i++) { SCL=0; IIC_delayms(); SCL=1; receive<<=1; if(SDA==1)receive++; IIC_delayms();} if(!ack)IIC_NAck();elseIIC_Ack();returnreceive;}uintReadReg(ucharregAddr) //芯片讀存放器{ uintbuf; OpenIIC(); IICsendByte(RDA_WRITE); //發(fā)送芯片地址方向?yàn)閷?xiě) IIC_Wait_Ack(); IICsendByte(regAddr); //發(fā)送存放器地址 IIC_Wait_Ack(); OpenIIC(); IICsendByte(RDA_READ); //發(fā)送芯片地址方向?yàn)樽x IIC_Wait_Ack(); buf=IICReadByte(1); buf=buf<<8; buf=buf|IICReadByte(0); CloseIIC(); returnbuf;}voidWriteReg(ucharregAddr,uintval)//芯片寫(xiě)存放器{ OpenIIC(); IICsendByte(RDA_WRITE); //發(fā)送芯片地址方向?yàn)閷?xiě) IIC_Wait_Ack(); IICsendByte(regAddr); //發(fā)送存放器地址 IIC_Wait_Ack(); IICsendByte(val>>8); IIC_Wait_Ack(); IICsendByte(val&0XFF); IIC_Wait_Ack(); CloseIIC();}voidVol_Set(ucharvol) //音量設(shè)置 0~15{ uinttemp=0; temp=ReadReg(RDA_R05); temp&=0xfff0; WriteReg(0x05,vol|temp); }voidMute_Set(ucharmute) //靜音設(shè)置1為靜音 0為不靜音{ uinttemp=0; temp=ReadReg(0X02); if(!mute)temp|=1<<14; elsetemp&=~(1<<14); WriteReg(0X02,temp); }voidBass_Set(ucharbass) //頻帶設(shè)置{ uinttemp=0; temp=ReadReg(0X02); if(bass)temp|=1<<12; elsetemp&=~(1<<12); WriteReg(0X02,temp); }ucharRssi_Get(void) //信號(hào)強(qiáng)度獲取 0~63{ uinttemp=0; temp=ReadReg(0X0B); temp=(temp>>9)&0x7f; returntemp;}voidSeekth_Set(uintrssi) //自動(dòng)搜臺(tái)信號(hào)閾值強(qiáng)度 0~15默認(rèn)為8數(shù)值越低搜到的臺(tái)越多{ uinttemp; rssi=rssi&0xf; temp=ReadReg(0X05); temp&=~(0xf<<8); temp|=rssi<<8; WriteReg(0X05,temp); }voidSeek_direction(uchardirection)//搜臺(tái)方向1向上搜索0向下搜索{ uinttemp; temp=ReadReg(RDA_R02); temp&=~(1<<9); if(direction==1) temp|=1<<9; elseif(direction==0) temp|=0<<9; WriteReg(0X05,temp); }voidFreq_Set(uintfreq) //頻率設(shè)置單位是:10KHz6500~10800{ uinttemp; ucharspc=0,band=0; uintfbtm,chan; temp=ReadReg(0X03); temp&=0X001F; band=(temp>>2)&0x03; spc=temp&0x03; if(spc==0)spc=10; elseif(spc==1)spc=20; elsespc=5; if(band==0)fbtm=8700; elseif(band==1||band==2)fbtm=7600; else { fbtm=ReadReg(0X53); fbtm*=10; } if(freq<fbtm)return; chan=(freq-fbtm)/spc; chan&=0X3FF; temp|=chan<<6; temp|=1<<4; WriteReg(RDA_R03,temp); delayms(20); // while((ReadReg(0X0B)&(1<<7))==0);}unsignedshortseek_channel(void)//半自動(dòng)搜臺(tái){ uinttemp; temp=ReadReg(RDA_R02); temp|=(1<<8); WriteReg(RDA_R02,temp); //SEEK位置一使能自動(dòng)搜臺(tái) while((ReadReg(RDA_R0A)&(1<<14))==0)//等待STC位置一表示搜索完成 { delayms(10);//延時(shí)10ms } temp=(ReadReg(RDA_R0A)&0x3FF)*100000+87000000;//獲取當(dāng)前頻率 returntemp/10000;//返回搜到電臺(tái)頻率單位是:10Khz }voidFM_enable(ucharflag) //1使能芯片0禁用芯片{ uinttemp; temp=ReadReg(RDA_R02); if(flag==1) temp|=1; if(flag==0) temp&=~0x1; WriteReg(RDA_R02,temp); }voidRDA_Init(void) //RDA3?ê??ˉ{ WriteReg(RDA_R02,0x0002);//軟件復(fù)位 delayms(30); WriteReg(RDA_R02,0xd281);//晶振選擇32.768Khz向上搜索重低音立體聲SKMODE=1搜索到邊頻時(shí)停止 WriteReg(RDA_R03,0x0000);//頻率設(shè)為87MHz,步進(jìn)100Khz頻帶為87M~108M WriteReg(RDA_R04,0x0040);//根本配置 WriteReg(RDA_R05,0X8882);//音量設(shè)置為vol=2搜索閥值為8 FM_enable(1);//給芯片上電}/***********************顯示初始化************************/voidxianshi(){ LCD_write_english_string(0,0,"Freq:000.00MHZ"); LCD_write_english_string(0,1,"Vol:"); LCD_write_english_string(0,2,"Rssi:"); LCD_write_english_string(0,3,"VolMute:");}/*****************************顯示音量**********************/voiddisplay_1(lintvv1){ ucharA1,A2,A3,A4,A5,A6; A1=vv1/100000; A2=vv1%100000/10000; A3=vv1%10000/1000; A4=vv1%1000/100; A5=vv1%100/10; A6=vv1%10;// LCD_write_english_string(30,1,table[A2]);// LCD_write_english_string(36,1,table[A3]);// LCD_write_english_string(42,1,table[A4]); LCD_write_english_string(60,1,table[A5]); LCD_write_english_string(66,1,table[A6]);// LCD_write_english_string(80,1,table[A6]);}/*****************************顯示頻率**********************/voiddisplay_2(lintvv2){ ucharA1,A2,A3,A4,A5,A6; A1=vv2/10000; A2=vv2%10000/1000; A3=vv2%1000/100; A4=vv2%100/10; A5=vv2%10; LCD_write_english_string(30,0,table[A1]); LCD_write_english_string(36,0,table[A2]); LCD_write_english_string(42,0,table[A3]); LCD_write_english_string(54,0,table[A4]); LCD_write_english_string(60,0,table[A5]);}/*****************************顯示信號(hào)強(qiáng)度**********************/voiddisplay_3(lintvv1){ ucharA1,A2,A3,A4,A5,A6; A1=vv1/100000; A2=vv1%100000/10000; A3=vv1%10000/1000; A4=vv1%1000/100; A5=vv1%100/10; A6=vv1%10;// LCD_write_english_string(30,2,table[A2]);// LCD_write_english_string(36,2,table[A3]);// LCD_write_english_string(42,2,table[A4]); LCD_write_english_string(60,2,table[A5]); LCD_write_english_string(66,2,table[A6]);// LCD_write_english_string(80,1,table[A6]);}/*****************************顯示靜音狀態(tài)**********************/voiddisplay_4(lintvv1){ ucharA1,A2,A3,A4,A5,A6; A1=vv1/100000; A2=vv1%100000/10000; A3=vv1%10000/1000; A4=vv1%1000/100; A5=vv1%100/10; A6=vv1%10;// LCD_write_english_string(30,2,table[A2]);// LCD_write_english_string(36,2,table[A3]);// LCD_write_english_string(42,2,table[A4]);// LCD_write_english_string(60,2,table[A5]); LCD_write_english_string(66,3,table[A6]);// LCD_write_english_string(80,1,table[A6]);}voiddisplay_5(lintvv1){ ucharA1,A2,A3,A4,A5,A6; A1=vv1/100000; A2=vv1%100000/10000; A3=vv1%10000/1000; A4=vv1%1000/100; A5=vv1%100/10; A6=vv1%10; LCD_write_english_string(30,2,table[A2]); LCD_write_english_string(36,2,table[A3]); LCD_write_english_string(42,2,table[A4]); LCD_write_english_string(60,2,table[A5]); LCD_write_english_string(66,3,table[A6]); LCD_write_english_string(80,1,table[A6]);}/**********************矩陣鍵盤(pán)掃描****************************/voidkeyscan(){{ P3=0xfe;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);if(temp!=0xf0){ temp=P3;switch(temp){case0xee:key=1; RXFreq+=10; //頻率加,步進(jìn)100KHZ Freq_Set(RXFreq); //頻率設(shè)置 if(RXFreq>10800) RXFreq=10800;break;case0xde:key=2; RXFreq-=10; //頻率減,步進(jìn)100KHZ Freq_Set(RXFreq); //頻率設(shè)置 if(RXFreq<8830) RXFreq=8830;break;case0xbe:key=3; Vol+=1; //音量加 Vol_Set(Vol); //音量設(shè)置 0~15 if(Vol>15) Vol=15;break;case0x7e:key=10; Vol-=1; //音量減 Vol_Set(Vol); //音量設(shè)置 0~15 if(Vol<0) Vol=0;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}P3=0xfd;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);if(temp!=0xf0){temp=P3;switch(temp){case0xed:key=4; Mute_Set(mute); //設(shè)置靜音 mute++; if(mute==2) mute=0;break;case0xdd:key=5;break;case0xbd:key=6;break;case0x7d:key=11;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}P3=0xfb;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);if(temp!=0xf0){temp=P3;switch(temp)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國(guó)微型硬盤(pán)行業(yè)市場(chǎng)發(fā)展分析及前景趨勢(shì)與投資研究報(bào)告
- 2024-2030年中國(guó)開(kāi)槽機(jī)行業(yè)市場(chǎng)運(yùn)營(yíng)模式及未來(lái)發(fā)展動(dòng)向預(yù)測(cè)報(bào)告
- 2024-2030年中國(guó)廢棄資源行業(yè)面臨的困難及對(duì)策及未來(lái)發(fā)展規(guī)劃分析報(bào)告
- 2024專(zhuān)業(yè)項(xiàng)目承包協(xié)議模板集
- 2024至2030年人造毛繩項(xiàng)目投資價(jià)值分析報(bào)告
- 2024至2030年萬(wàn)輝咳必靈項(xiàng)目投資價(jià)值分析報(bào)告
- 2024至2030年中國(guó)EVA橡膠油墨數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024年中國(guó)穿管機(jī)市場(chǎng)調(diào)查研究報(bào)告
- 2024年新款增壓泵安裝施工協(xié)議范本
- 板車(chē)租賃業(yè)務(wù)具體協(xié)議2024
- 廣東省深圳市龍崗區(qū)多校2024-2025學(xué)年一年級(jí)(上)期中語(yǔ)文試卷(含答案部分解析)
- 河南省南陽(yáng)市2023-2024學(xué)年高一上學(xué)期期中數(shù)學(xué)試題含答案
- 統(tǒng)編語(yǔ)文四年級(jí)上冊(cè)第六單元教材解讀及集體備課
- 2024年河南省軍隊(duì)文職(臨床醫(yī)學(xué))高頻備考核心試題庫(kù)(含答案詳解)
- 大學(xué)生職業(yè)規(guī)劃大賽生涯發(fā)展
- 職業(yè)發(fā)展生涯報(bào)告
- 《HSK標(biāo)準(zhǔn)教程3》第10課
- GB/T 10125-2021人造氣氛腐蝕試驗(yàn)鹽霧試驗(yàn)
- 基礎(chǔ)圖案設(shè)計(jì)(課堂PPT)
- 幼兒園參觀學(xué)?;顒?dòng)方案5篇
- 關(guān)于旅游景區(qū)游客滿(mǎn)意度研究的文獻(xiàn)綜述
評(píng)論
0/150
提交評(píng)論