基于RDA5807的數(shù)控FM收音機實訓論文_第1頁
基于RDA5807的數(shù)控FM收音機實訓論文_第2頁
基于RDA5807的數(shù)控FM收音機實訓論文_第3頁
基于RDA5807的數(shù)控FM收音機實訓論文_第4頁
基于RDA5807的數(shù)控FM收音機實訓論文_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

電子線路綜合實訓論文題目:基于RDA5820的數(shù)控FM收音機院(系):信息與通信學院專業(yè):電子信息工程摘要現(xiàn)在人們常使用的收音機為手動調(diào)頻收臺,使用較為麻煩,而且由于接收靈敏度不高,所接收的頻段較窄。為了解決這些問題,本次采用RDA5807收音模塊與單片機相結(jié)合,實現(xiàn)FM收音并顯示頻率。單片機自20世紀70年代問世以來,以極其高的性能價格比受到人們的重視和關(guān)注,所以應(yīng)用很廣,發(fā)展很快。單片機的特點是體積小、集成度高、重量輕、抗干擾能力強,對環(huán)境要求不高,價格低廉,可靠性高,靈活性好,開發(fā)較為容易,所以本次采用stc89c52單片機。此外,RDA5807模塊具有65-108MHz全球FM接收頻段相容的效果,具備噪聲消除、軟靜音、低音增強,靈敏度高、噪聲小、抗干擾能力強等功能,還可以具備頻率顯示功能,所以使用本模塊很容易實現(xiàn)。關(guān)鍵詞:單片機;RDA5807;FM收音機AbstractNowpeopleoftenuseradioFMradiostationmanually,usingthemorecumbersome,andbecausethereceiversensitivityisnothigh,narrowbandreceived.Tosolvetheseproblems,thistimeusingRDA5807radiomoduleandmicrocontrollercombinedtoachieveFMradioanddisplayfrequency.SCMsincethe1970scametoanextremelyhighcostpeople'sattentionandconcern,itisverywideapplication,developedrapidly.SCMischaracterizedbysmall,highlyintegrated,lightweight,stronganti-interferenceability,lessdemandingontheenvironment,lowcost,highreliability,flexibility,anddevelopmenteasier,sothisusesstc89c52microcontroller.Inaddition,RDA5807modulehas65-108MHzbandFMreceivercompatibleglobaleffect,withnoisereduction,softmute,bassboost,highsensitivity,lownoise,stronganti-interferenceabilityandotherfunctions,canalsohaveafrequencydisplay,sotheuseofthemodulescanbeeasilyachieved.Keywords:SCM;RDA5807;FMRadio目錄引言……………………11.方案選擇………….21.1方案一…………..1.2方案二………….1.3方案確定………2.系統(tǒng)方案設(shè)計及各模塊原理……2.1STC89C52核心模塊………………2.1.1STC89C52單片機簡介…………2.1.2STC89C52主要性能………….2.2RDA5807模塊…………………….2.2.1RDA5807模塊特點……………2.2.2RDA5807模塊使用…………2.3顯示模塊……………2.3.11602液晶簡介…………………2.3.21602引腳說明…………………2.4IIC通信…………2.4.1IIC簡介……….2.4.2IIC時序………3系統(tǒng)程序設(shè)計……………………4印刷電路板的設(shè)計與制作………4.1印刷電路板的布線設(shè)計…………4.2印刷電路板的制作………………5電路板的調(diào)試……………………6結(jié)論………………謝辭……………….參考文獻………………附錄…………………引言本設(shè)計研究FM收音機分為硬件電路和程序設(shè)計兩個方面。從硬件電路來說,主要是實現(xiàn)所需電壓值、穩(wěn)壓、搜臺、控制和頻率顯示等方面;從系統(tǒng)程序來說,主要是通過軟件來實現(xiàn)RDA5807模塊的功能,使用IIC總線方式調(diào)臺,并且得到當前的頻率,處理并實現(xiàn)頻率轉(zhuǎn)換、顯示。1.方案選擇1.1方案一使用分立元件來搭接電路,實現(xiàn)模塊的功能,收發(fā)信號,對信號調(diào)頻或者調(diào)幅,從而得到可以處理的信號,實現(xiàn)收聽功能。由于本方案,調(diào)試極為復雜,很難成功,而且接收頻率范圍小,工作也很不穩(wěn)定,很容易受外界影響。1.2方案二采用RDA5807模塊,實現(xiàn)接收信號,并處理功能,并于單片機相結(jié)合,實現(xiàn)數(shù)控,操作簡單。由于RDA5807模塊高度的集成,很多功能都集成在內(nèi)部,所以工作穩(wěn)定,不容易受外界影響,而且需要的外部東西少,使用IIC總線與單片機相連接,使用的線少,模塊簡單,操作方便,并且接收頻率范圍很廣。1.3方案三總上比較,選用方案二,模塊體積小,占用空間小,調(diào)試方便,可以很好的實現(xiàn)收音機的功能,而且模塊功耗低,很符合現(xiàn)在的要求。2系統(tǒng)方案設(shè)計及各模塊原理本方案采用STC89C52單片機與RDA模塊連接,從而實現(xiàn)數(shù)控收音機,STC89C52單片機在這方面的設(shè)計為我們提供了極大的方便,用它實現(xiàn)的好處在于,外圍電路極其簡單,另外在STC89C52單片機的編程方面又提供及其便利的編程環(huán)境。外圍電路的設(shè)計包括兩大部分,分別是液晶的顯示和鍵盤控制電路的設(shè)計。這里采用一個復位按鍵,來實現(xiàn)對RDA5807模塊的初始化。設(shè)計的特點是全面采用數(shù)字電路方案,因而工作穩(wěn)定可靠。利用單片機控制管理,使設(shè)置及調(diào)整操作準確。STC89C52最小系統(tǒng)原理圖RDA5807收音模塊2.1STC89C52核心模塊STC89C52是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。STC89C52使用經(jīng)典的MCS-51內(nèi)核,但做了很多的改進使得芯片具有傳統(tǒng)51單片機不具備的功能。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。具有以下標準功能:8k字節(jié)Flash,512字節(jié)RAM,32位I/O口線,看門狗定時器,內(nèi)置4KBEEPROM,MAX810復位電路,3個16位定時器/計數(shù)器,4個外部中斷,一個7向量4級中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級中斷結(jié)構(gòu)),全雙工串行口。另外STC89C52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。2.1.1STC89C52單片機簡介其引腳結(jié)構(gòu)及說明如下:VCC:電源GND:地P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。P1口:P1口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,p1輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P1端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2的觸發(fā)輸入P1.1/T2EX)。在flash編程和校驗時,P1口接收低8位地址字節(jié)。P2口:P2口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P2端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX@DPTR)時,P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX@RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。P3口:P3口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,p2輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P3端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如下所示。P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2P3.3(外部中斷0)(外部中斷1)P3.4T0(記時器0外部輸入)P3.5T1(記時器1外部輸入)P3.6P3.7(外部數(shù)據(jù)存儲器寫選通)(外部數(shù)據(jù)存儲器讀選通)在flash編程和校驗時,P3口也接收一些控制信號。RST:復位輸入。晶振工作時,RST腳持續(xù)2個機器周期高電平將使單片機復位??撮T狗計時完成后,RST腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態(tài)下,復位高電平有效。ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。在flash編程時,此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位置“1”,ALE操作將無效。這一位置“1”,ALE僅在執(zhí)行MOVX或MOVC指令時有效。否則,ALE將被微弱拉高。這個ALE使能標志位(地址為8EH的SFR的第0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當AT89S52從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器時,PSEN將不被激活。EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在flash編程期間,EA也接收12伏VPP電壓。XTAL1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。2.1.2STC89C52主要性能--與MCS-51單片機產(chǎn)品兼容--8K字節(jié)在系統(tǒng)可編程Flash存儲器--1000次擦寫周期--全靜態(tài)操作:0Hz~33Hz--三級加密程序存儲器--32個可編程I/O口線--三個16位定時器/計數(shù)器--八個中斷源--全雙工UART串行通道--低功耗空閑和掉電模式--掉電后中斷可喚醒--看門狗定時器--雙數(shù)據(jù)指針--掉電標志位--內(nèi)帶2K字節(jié)EEPROM存儲空間--可直接使用串口下載--512字節(jié)數(shù)據(jù)存儲空間2.2RDA5807模塊“RRD-102V2.0”立體聲收音模塊(FMStereoradioModule)高靈敏度、低功耗、超小體積的調(diào)頻立體聲收音模組。采用RDAMicroelectronics的RDA5807M(或RDA5802NM),此電路外圍元件少、噪聲系數(shù)極小。具有體積小、低功耗、低成本、應(yīng)用簡單、使用范圍廣等優(yōu)點。是一款簡單易用且具極高性價比的單芯片F(xiàn)M立體聲收音模組。模塊的引腳及外圍電路圖2.2.1RDA5807模塊特點A、采用通用的102BC模塊的封裝,用戶可直接替換使用,無需更改電路設(shè)計。B、靈敏度高、噪聲小、抗干擾能力強、外接元件極少、體積小(11*11.2MMMax)、使用極其簡單。C、76-108MHz全球FM頻段兼容(包括日本76-91MHz和歐美87.5-108.5MHz)。D、I2C串行數(shù)據(jù)總線接口通訊,支持外部基準時鐘輸入方式。E、完全整合的COMS工藝單晶片集成電路,功耗極小。F、內(nèi)置高精度A/D(模數(shù)轉(zhuǎn)換器)及數(shù)字頻率合成器。G、內(nèi)置LDO調(diào)整、低功耗、超寬電壓使用范圍(2.7-3.6VDC)。H、內(nèi)置噪聲消除、軟靜音、低音增強電路設(shè)計。I、高功率32Ω負載音頻輸出,直接耳機駁接,無需外接音頻驅(qū)動放大。J、應(yīng)用簡便、成本低,性價比高。2.2.2RDA5807模塊使用說明A、模塊供電濾波電容設(shè)計是應(yīng)盡量靠近模塊電源輸入腳。B、I2CDAT,CLK芯片內(nèi)部已經(jīng)包含47k的上拉電阻;C、如用耳機的地線做天線,則參照上圖應(yīng)用大原理圖D、為了模塊能良好的可靠的工作,F(xiàn)M模塊供電電壓一般應(yīng)大于2.7V以上。E、此模塊內(nèi)部已集成LDO,電源輸入端可使用簡單的LC電源濾波網(wǎng)絡(luò)即可。F、使用時應(yīng)做好ESD靜電防護工作。G、模塊可串電容后直接驅(qū)動32ohm耳機,如需推動更大功率喇叭請外加功放;2.3顯示模塊顯示模塊由1602液晶電路構(gòu)成。2.3.11602液晶簡介1602液晶是工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。(16列2行)。2.3.21602引腳說明1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線。VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣,其中:1602液晶引腳說明2.4IIC通信根據(jù)RDA5807模塊的要求,使用IIC通信,與單片機相連接,實現(xiàn)數(shù)控。2.4.1IIC簡介IIC是由菲利浦半導體公司在八十年代初設(shè)計出來的,主要是用來連接整體電路(ICS),IIC是一種多向控制總線,也就是說多個芯片可以連接到同一總線結(jié)構(gòu)下,同時每個芯片都可以作為實施數(shù)據(jù)傳輸?shù)目刂圃础_@種方式簡化了信號輸總線。IIC串行總線一般有兩根信號線,一根是雙向的數(shù)據(jù)線SDA,另一根是時鐘線SCL。所有接到IIC總線設(shè)備上的串行數(shù)據(jù)SDA都接到總線的SDA上,各設(shè)備的時鐘線SCL接到總線的SCL上。2.4.3IIC時序在IIC總線傳輸過程中,將兩種特定的情況定義為開始和停止條件:當SCL保持“高”時,SDA由“高”變?yōu)椤暗汀睘殚_始條件;當SCL保持“高”且SDA由“低”變?yōu)椤案摺睍r為停止條件。開始和停止條件均由主控制器產(chǎn)生。使用硬件接口可以很容易地檢測到開始和停止條件,沒有這種接口的微機必須以每時鐘周期至少兩次對SDA取樣,以檢測這種變化。SDA線上的數(shù)據(jù)在時鐘“高”期間必須是穩(wěn)定的,只有當SCL線上的時鐘信號為低時,數(shù)據(jù)線上的“高”或“低”狀態(tài)才可以改變。輸出到SDA線上的每個字節(jié)必須是8位,每次傳輸?shù)淖止?jié)不受限制,但每個字節(jié)必須要有一個應(yīng)答ACK。如果一接收器件在完成其他功能(如一內(nèi)部中斷)前不能接收另一數(shù)據(jù)的完整字節(jié)時,它可以保持時鐘線SCL為低,以促使發(fā)送器進入等待狀態(tài);當接收器準備好接受數(shù)據(jù)的其它字節(jié)并釋放時鐘SCL后,數(shù)據(jù)傳輸繼續(xù)進行。I2C數(shù)據(jù)總線傳送時序。數(shù)據(jù)傳送具有應(yīng)答是必須的。與應(yīng)答對應(yīng)的時鐘脈沖由主控制器產(chǎn)生,發(fā)送器在應(yīng)答期間必須下拉SDA線。當尋址的被控器件不能應(yīng)答時,數(shù)據(jù)保持為高并使主控器產(chǎn)生停止條件而終止傳輸。在傳輸?shù)倪^程中,在用到主控接收器的情況下,主控接收器必須發(fā)出一數(shù)據(jù)結(jié)束信號給被控發(fā)送器,從而使被控發(fā)送器釋放數(shù)據(jù)線,以允許主控器產(chǎn)生停止條件。3系統(tǒng)程序設(shè)計程序框圖具體程序詳見附錄4.1印刷電路板的布線設(shè)計此過程是用AltiumDesigner來完成。布線設(shè)計按以下流程實現(xiàn)。布線時的注意事項:(1)在擺放元件時先按原理圖擺放,再細調(diào)位置。(2)所用的為單面板,故布線時應(yīng)在底層ButtonLayer上。(3)布線區(qū)域應(yīng)在禁止布線層KeepOutLayer上圈定。(4)兩根線之間的距離不能太小,在線拐彎處不能用成直角,一般用45度角為宜。(5)線寬設(shè)置在0.8—1.0毫米,在一些拐角的地方還可以適當?shù)匮a線,以防止腐蝕的時候?qū)⒕€腐蝕掉或是因為線太細而對電路造成不良的影響。4.2印刷電路板的制作首先,把PCB給打印出來,用砂紙把銅板除去外層的氧化銅,在預(yù)熱熨斗后,把PCB放到板上,把線熨至銅板上。待銅板冷卻后再將紙從銅板撕下,檢查銅板上有沒有斷線的地方,若有少量,則用油性筆把線給補上!太多的話就用砂紙把線去除之后再重新燙過。然后,盡快把熨好的銅板放到氯化鐵溶液中。第三,腐蝕完后先進行打孔,再把銅線上的墨去掉。這樣打孔比較方便。第四,就是裝元件,在此過程中一定要注意有正負極性的元件,比如LED燈、電解電容等。最后進行焊接。5電路板的調(diào)試調(diào)試過程是一個非常重要的環(huán)節(jié),這是整個電路板成功與否的關(guān)鍵。首先應(yīng)斷開電源,用數(shù)字萬用表認真檢查電路連線是否有誤,是否有短路或者斷路和虛焊等的現(xiàn)象。經(jīng)過初步檢查以后,方可接通電源。此時還不應(yīng)該把芯片裝上。接上電源時應(yīng)該明確電源的正負極性,切不可接反,一接反則馬上可能會出現(xiàn)燒毀重要元件的情況!時刻用手觸摸各元件有沒有發(fā)熱現(xiàn)象,并注意其是否冒煙等。待過一段時間穩(wěn)定后,如沒有出現(xiàn)不良的現(xiàn)象,則電路基本上正常,可依次用數(shù)字萬用表檢查各點的工作電壓情況,各點工作穩(wěn)定,并且確認芯片插座兩端的電壓符合芯片的工作電壓時,則可以關(guān)閉電源,把芯片裝上。最后將程序經(jīng)過編譯后所生成的后綴為.HEX文件燒錄到單片機芯片中,查看效果,調(diào)試程序。謝詞本次課程設(shè)計經(jīng)過幾天時間的磕磕碰碰之后終于圓滿完成了。經(jīng)過本次課設(shè),我將模擬電子電路、單片機、C語言程序設(shè)計的知識重新學習了一遍,并運用到實際中??梢哉f,這一次的課程設(shè)計讓我對整個的電子電路設(shè)計過程有了一個重新的認識,并且,我學會了怎么去查閱資料,也認識到了之前所學的電路知識只有在運用實際電路中才能對它們有著更深刻的認識。本次設(shè)計的重點是最小系統(tǒng)的制作和對模塊程序的消化,在我的原理設(shè)計中,各個集成塊的外圍電路都不是特別復雜,于是整個設(shè)計的重點就落在了程序的設(shè)計上,所以單片機知識是一定要加強的,尤其是編程能力。可以說通過本次設(shè)計又把電路方面的知識以及匯編語言重復加強了一遍,同時也接觸了幾種新的器件,了解了它們的用法。在畫原理圖、PCB布線、安裝和調(diào)試過程中不可避免地遇到各種問題,這要求保持沉著冷靜,聯(lián)系書本理論知識積極地思考,實在解決不了可以請教同學或指導老師。雖然在制作過程中不可避免地遇到很多問題,而且基于個人水平,器件質(zhì)量,制作工藝和條件等,有些指標不是很完美,但是最后還是在老師以及同學的幫助下還是解決了這些問題,實現(xiàn)了系統(tǒng)總調(diào)試,基本達到相關(guān)指標要求,很好地完成了本次設(shè)計任務(wù)。參考文獻[1]康華光.電子技術(shù)基礎(chǔ)[M].北京:高等教育出版,2006,68(3):40~57.[2]李強.51系列單片機應(yīng)用軟件編程技術(shù)[M].北京:北京航空航天大學,2009:77~90.[3]譚浩強.C語言程序設(shè)計教程[M].北京:高等教育出版社,1991:30~32.[4]樊昌信通信原理(第6版)[M].北京:國防工業(yè)出版社,2006:20~65[5]百度百科/附錄主程序#include"reg52.h"#include"intrins.h"#include"lcd.h"#include"IIC.h"#include"delay.h"sbitK1=P2^0;sbitK2=P2^1;sbitK3=P2^2;sbitK4=P2^3;unsignedlongfrequency;//RDA5807寄存器unsignedcharRDA_reg_data[8]={0xd0,0x00,//02H0x00,0x00,//03H0x00,0x40,//04H0x90,0x88,//05H};unsignedcharcodecdis1[]={"FMcui'sRADIO"};unsignedcharcodecdis2[]={"FMVOL"};charcodereserve[3]_at_0x3b;//保留0x3b開始的3個字節(jié)/**********************************************************連續(xù)寫寄存器子函數(shù)**********************************************************/voidRDA5807_write_reg(void){uchari;I2C_start();//收音模塊寫入操作I2C_write_byte(0x20);//寄存器連續(xù)寫操作for(i=0;i<8;i++){I2C_write_byte(RDA_reg_data[i]);}I2C_stop();}/**********************************************************連續(xù)讀寄存器子函數(shù)**********************************************************/voidRDA5807_read_reg(uchar*reg_buf){I2C_start();//收音模塊讀取操作I2C_write_byte(0x21);//寄存器連續(xù)讀操作reg_buf[0]=I2C_read_byte(I2C_ACK);reg_buf[1]=I2C_read_byte(I2C_ACK);reg_buf[2]=I2C_read_byte(I2C_ACK);reg_buf[3]=I2C_read_byte(I2C_NACK);I2C_stop();}/**********************************************************模塊上電初始化子函數(shù)**********************************************************/voidRDA5807_power(void){delayms(50);//發(fā)送軟件復位指令RDA_reg_data[0]=0x00;RDA_reg_data[1]=0x02;RDA5807_write_reg();delayms(10);//收音模塊默認參數(shù)RDA_reg_data[0]=0xd0;RDA_reg_data[1]=0x01;RDA5807_write_reg();}/**********************************************************功能描述:收音模塊自動尋臺模式**********************************************************/voidRDA5807_FM_seek(void){uintchan;ucharreg_data[4]={0x00,0x00,0x00,0x00};RDA_reg_data[3]&=~(1<<4);//內(nèi)部自動尋臺使能RDA_reg_data[0]|=(1<<0);RDA5807_write_reg();//等待STC標志置位while(0==(reg_data[0]&0x40)){//調(diào)諧禁用//SEEK位置1delayms(20);//讀取內(nèi)部狀態(tài)RDA5807_read_reg(reg_data);}//獲取當前工作頻點chan=reg_data[0]&0x03;chan=reg_data[1]|(chan<<8);chan=chan<<6;//保存當前工作頻點RDA_reg_data[2]=(chan>>8)&0xff;RDA_reg_data[3]=(chan&0xff);}/**********************************************************頻率顯示子函數(shù)**********************************************************/voidshow_frequency(void){unsignedchari,display[5];unsignedinttemp;temp=(RDA_reg_data[2]*256)+(RDA_reg_data[3]&0xc0);//計算temp=temp>>6;frequency=(unsignedlong)(100*temp+87000)/100;for(i=0;i<5;i++)//清顯存單元display[i]=0x00;display[0]=(frequency)/1000;//數(shù)據(jù)轉(zhuǎn)換display[1]=(frequency%1000)/100;display[2]=(frequency%100)/10;display[3]=0x2e;display[4]=(frequency%10);if(display[0]==0){//小數(shù)點display[0]=display[1]+0x30;display[1]=display[2]+0x30;display[2]=display[3];display[3]=display[4]+0x30;display[4]=0x20;}else{display[0]+=0x30;display[1]+=0x30;display[2]+=0x30;display[4]+=0x30;}lcd_pos_xy(3,2);lcd_wdat(display[0]);lcd_wdat(display[1]);lcd_wdat(display[2]);lcd_wdat(display[3]);lcd_wdat(display[4]);}//頻率顯示/**********************************************************音量顯示子函數(shù)**********************************************************/voidshow_volume(){unsignedchartemp,display[2];temp=RDA_reg_data[7]&0x0f;//取音量值display[0]=temp/10;display[1]=temp%10;if(display[0]==0){//如果高位為0display[0]=display[1];//低位顯存內(nèi)容進入高位顯存display[1]=0x20;}//低位不顯示else{display[1]+=0x30;}display[0]+=0x30;lcd_pos_xy(13,2);lcd_wdat(display[0]);lcd_wdat(display[1]);}//音量值顯示/**********************************************************主函數(shù)**********************************************************/voidmain(void){P0=0xff;P1=0xff;P2=0xff;lcd_init();lcd_w_string(0,1,cdis1,0);lcd_w_string(0,2,cdis2,0);RDA5807_power();while(1){if(K1==0){delayms(20);if(K1==0){RDA_reg_data[0]|=(1<<1);//SEEKUPRDA5807_FM_seek();while(K1==0);}}if(K2==0){delayms(20);if(K2==0){RDA_reg_data[0]&=~(1<<1);//SEEKDOWNRDA5807_FM_seek();while(K2==0);}}if(K3==0){delayms(20);if(K3==0){if((RDA_reg_data[7]&0x0f)<0x0f){RDA_reg_data[0]=0xd0;RDA_reg_data[1]=0x01;RDA_reg_data[3]&=~(1<<4);RDA_reg_data[7]++;//音量遞增RDA5807_write_reg();while(K3==0);}}}if(K4==0){delayms(20);if(K4==0){if((RDA_reg_data[7]&0x0f)>0x00){RDA_reg_data[0]=0xd0;RDA_reg_data[1]=0x01;RDA_reg_data[3]&=~(1<<4);RDA_reg_data[7]--;//音量遞減RDA5807_write_reg();while(K4==0);}}}show_volume();show_frequency();}}Lcd程序#include"reg52.h"#include"intrins.h"#include"lcd.h"#include"delay.h"#defineucharunsignedchar#defineuintunsignedint#defineDATA_PORTP1sbitLCD_RS=P2^6;sbitLCD_RW=P2^5;sbitLCD_EN=P2^4;/*******************************************************************檢查LCD忙狀態(tài)lcd_busy為1時,忙,等待。lcd-busy為0時,閑,可寫指令與數(shù)據(jù)。*******************************************************************/bitlcd_busy(){bitresult;LCD_RS=0;LCD_RW=1;LCD_EN=1;delayNOP();result=(bit)(DATA_PORT&0x80);LCD_EN=0;return(result);}/*******************************************************************寫指令數(shù)據(jù)到LCDRS=L,RW=L,E=高脈沖,D0-D7=指令碼。Check=1,進行忙檢測。*******************************************************************/voidlcd_wcmd(ucharcmd,bitCheck){if(Check)while(lcd_busy());LCD_RS=0;LCD_RW=0;LCD_EN=0;delayNOP();DATA_PORT=cmd;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;}/*******************************************************************寫顯示數(shù)據(jù)到LCDRS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)。*******************************************************************/voidlcd_wdat(uchardat){while(lcd_busy());LCD_RS=1;LCD_RW=0;LCD_EN=0;DATA_PORT=dat;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;}//進行忙檢測/*******************************************************************LCD初始化設(shè)定*******************************************************************/voidlcd_init(){delayms(50);lcd_wcmd(0x38,0);delayms(5);//16*2顯示,5*7點陣,8位數(shù)據(jù)//不進行忙檢測,強制執(zhí)行。lcd_wcmd(0x38,0);delayms(5);lcd_wcmd(0x38,0);delayms(5);lcd_wcmd(0x38,1);delayms(5);//進行忙檢測lcd_wcmd(0x0c,1);delayms(5);//顯示開,關(guān)光標//移動光標lcd_wcmd(0x06,1);delayms(5);lcd_wcmd(0x01,1);delayms(5);//清除LCD的顯示內(nèi)容}/*******************************************************************設(shè)定顯示位置*******************************************************************/voidlcd_pos_xy(ucharpos_x,ucharpos_y){ucharpos_temp;pos_temp=pos_x&0x0f;pos_y&=0x0f;if(pos_y==0x01)pos_temp|=0x80;elseif(pos_y==0x02)pos_temp|=0xc0;lcd_wcmd(pos_temp,1);}/*******************************************************************寫字符串子函數(shù)*******************************************************************/voidlcd_w_string(ucharpos_x,ucharpos_y,ucharcode*str,uinttimes){ucharm;lcd_pos_xy(pos_x,pos_y);for(m=0;m<16;m++){//設(shè)定起始位置lcd_wdat(str[m]);delayms(times);}}IIC程序#include"reg52.h"#include"delay.h"#include"IIC.h"sbitSDA=P3^0;sbitSCL=P3^1;/**********************************************************啟動子程序在SCL高電平期間SDA發(fā)生負跳變**********************************************************/voidI2C_start(){SDA=1;SCL=1;delayNOP();SDA=0;delayNOP();SCL=0;}/**********************************************************停止子函數(shù)在SCL高電平期間SDA發(fā)生正跳變**********************************************************/voidI2C_stop(){SDA=0;SCL=1;delayNOP();SDA=1;delayNOP();}/**********************************************************發(fā)送一個字節(jié)子程序**********************************************************/unsignedcharI2C_write_byte(unsignedcharindata){unsignedchari,ack;//I2C發(fā)送8位數(shù)據(jù)for(i=0;i<8;i++){//高在前低在后if(indata&0x80)SDA=1;elseSDA=0;//發(fā)送左移一位indata<<=1;delayNOP();SCL=1;delayNOP();SCL=0;}//設(shè)置SDA為輸入SDA=1;;delayNOP();//讀取從機應(yīng)答狀態(tài)SCL=1;delayNOP();if(SDA){ack=I2C_NACK;}else{ack=I2C_ACK;}SCL=0;returnack;}/**********************************************************讀一個字節(jié)子程序**********************************************************/unsignedcharI2C_read_byte(unsignedcharack){unsignedchari,data1=0;//SDA設(shè)置輸入方向SDA=1;//I2C接收8位數(shù)據(jù)for(i=8;i>0;i--){data1<<=1;SCL=1;delayNOP();//高在前低在后if(SDA){data1++;}SCL=0;delayNOP();}//主機發(fā)送應(yīng)答狀態(tài)if(ack==I2C_ACK)SDA=0;elseSDA=1;delayNOP();SCL=1;delayNOP();SCL=0;returndata1;}Delay延遲程序#include"delay.h"/**********************************************************us延時子程序**********************************************************/voiddelayNOP(){_nop_();_nop_();_nop_();_nop_();}/**********************************************************ms延時子程序**********************************************************/voiddelayms(unsignedintms){unsignedchark;while(ms--){for(k=0;k<120;k++);}}畢業(yè)設(shè)計(論文)原創(chuàng)性聲明和使用授權(quán)說明原創(chuàng)性聲明本人鄭重承諾:所呈交的畢業(yè)設(shè)計(論文),是我個人在指導教師的指導下進行的研究工作及取得的成果。盡我所知,除文中特別加以標注和致謝的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過的研究成果,也不包含我為獲得及其它教育機構(gòu)的學位或?qū)W歷而使用過的材料。對本研究提供過幫助和做出過貢獻的個人或集體,均已在文中作了明確的說明并表示了謝意。作者簽名:日期:指導教師簽名:日期:使用授權(quán)說明本人完全了解大學關(guān)于收集、保存、使用畢業(yè)設(shè)計(論文)的規(guī)定,即:按照學校要求提交畢業(yè)設(shè)計(論文)的印刷本和電子版本;學校有權(quán)保存畢業(yè)設(shè)計(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務(wù);學??梢圆捎糜坝 ⒖s印、數(shù)字化或其它復制手段保存論文;在不以贏利為目的前提下,學校可以公布論文的部分或全部內(nèi)容。作者簽名:日期:學位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的論文是本人在導師的指導下獨立進行研究所取得的研究成果。除了文中特別加以標注引用的內(nèi)容外,本論文不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫的成果作品。對本文的研究做出重要貢獻的個人和集體,均已在文中以明確方式標明。本人完全意識到本聲明的法律后果由本人承擔。作者簽名:日期:年月日學位論文版權(quán)使用授權(quán)書本學位論文作者完全了解學校有關(guān)保留、使用學位論文的規(guī)定,同意學校保留并向國家有關(guān)部門或機構(gòu)送交論文的復印件和電子版,允許論文被查閱和借閱。本人授權(quán)大學可以將本學位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進行檢索,可以采用影印、縮印或掃描等復制手段保存和匯編本學位論文。涉密論文按學校規(guī)定處理。作者簽名:導師簽名:日期:年月日日期:年月日指導教師評閱書指導教師評價:一、撰寫(設(shè)計)過程1、學生在論文(設(shè)計)過程中的治學態(tài)度、工作精神□優(yōu)□良□中□及格□不及格2、學生掌握專業(yè)知識、技能的扎實程度□優(yōu)□良□中□及格□不及格3、學生綜合運用所學知識和專業(yè)技能分析和解決問題的能力□優(yōu)□良□中□及格□不及格4、研究方法的科學性;技術(shù)線路的可行性;設(shè)計方案的合理性□優(yōu)□良□中□及格□不及格5、完成畢業(yè)論文(設(shè)計)期間的出勤情況□優(yōu)□良□中□及格□不及格二、論文(設(shè)計)質(zhì)量1、論文(設(shè)計)的整體結(jié)構(gòu)是否符合撰寫規(guī)范?□優(yōu)□良□中□及格□不及格2、是否完成指定的論文(設(shè)計)任務(wù)(包括裝訂及附件)?□優(yōu)□良□中□及格□不及格三、論文(設(shè)計)水平1、論文(設(shè)計)的理論意義或?qū)鉀Q實際問題的指導意義□優(yōu)□良□中□及格□不及格2、論文的觀念是否有新意?設(shè)計是否有創(chuàng)意?□優(yōu)□良□中□及格□不及格3、論文(設(shè)計說明書)所體現(xiàn)的整體水平□優(yōu)□良□中□及格□不及格建議成績:□優(yōu)□良□中□及格□不及格(在所選等級前的□內(nèi)畫“√”)指導教師:(簽名)單位:(蓋章)年月日評閱教師評閱書評閱教師評價:一、論文(設(shè)計)質(zhì)量1、論文(設(shè)計)的整體結(jié)構(gòu)是否符合撰寫規(guī)范?□優(yōu)□良□中□及格□不及格2、是否完成指定的論文(設(shè)計)任務(wù)(包括裝訂及附件)?□優(yōu)□良□中□及格□不及格二、論文(設(shè)計)水平1、論文(設(shè)計)的理論意義或?qū)鉀Q實際問題的指導意義□優(yōu)□良□中□及格□不及格2、論文的觀念是否有新意?設(shè)計是否有創(chuàng)意?□優(yōu)□良□中□及格□不及格3、論文(設(shè)計說明書)所體現(xiàn)的整體水平□優(yōu)□良□中□及格□不及格建議成績:□優(yōu)□良□中□及格□不及格(在所選等級前的□內(nèi)畫“√”)評閱教師:(簽名)單位:(蓋章)年月日教研室(或答辯小組)及教學系意見教研室(或答辯小組)評價:一、答辯過程1、畢業(yè)論文(設(shè)計)的基本要點和見解的敘述情況□優(yōu)□良□中□及格□不及格2、對答辯問題的反應(yīng)、理解、表達情況□優(yōu)□良□中□及格□不及格3、學生答辯過程中的精神狀態(tài)□優(yōu)□良□中□及格□不及格二、論文(設(shè)計)質(zhì)量1、論文(設(shè)計)的整體結(jié)構(gòu)是否符合撰寫規(guī)范?□優(yōu)□良□中□及格□不及格2、是否完成指定的論文(設(shè)計)任務(wù)(包括裝訂及附件)?□優(yōu)□良□中□及格□不及格三、論文(設(shè)計)水平1、論文(設(shè)計)的理論意義或?qū)鉀Q實際問題的指導意義□優(yōu)□良□中□及格□不及格2、論文的觀念是否有新意?設(shè)計是否有創(chuàng)意?□優(yōu)□良□中□及格□不及格3、論文(設(shè)計說明書)所體現(xiàn)的整體水平□優(yōu)□良□中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論