RDA5807的數(shù)控收音機解析_第1頁
RDA5807的數(shù)控收音機解析_第2頁
RDA5807的數(shù)控收音機解析_第3頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘要現(xiàn)在人們常使用的收音機為手動調(diào)頻收臺,使用較為麻煩,而且由于接收靈敏度不高,所接收的頻段較窄。為了解決這些問題,本次采用RDA5807攵音模塊與單片機相結(jié)合,實現(xiàn)FM收音并顯示頻率。單片機自20世紀70年代問世以來,以極其高的性能價格比受到人們的重視和關(guān)注,所以應(yīng)用很廣,發(fā)展很快。單片機的特點是體積小、集成度高、重量輕、抗十?dāng)_能力強,對環(huán)境要求不高,價格低廉,可靠性高,靈活性好,開發(fā)較為容易,所以本次采用stc89c52單片機。此外,RDA5807莫塊具有65-108MHZ全球FM接收頻段相容的效果,具備噪聲消除、軟靜音、低音增強,靈敏度高、噪聲小、抗十?dāng)_能力強等功能,還可以具備頻率顯示功

2、能,所以使用本模塊很容易實現(xiàn)。目錄1.1 引言1方案選擇.2方案一.1.2 方案二.1.3 方案確定系統(tǒng)方案設(shè)計及各模塊原理STC89C5鍛心模塊1.3.1 STC89C52I片機簡介1.3.2 STC89C5注要性能.1.4 RDA580模塊.1.4.1 RDA5807I塊特點1.5 RDA5807I塊使用顯示模塊1.5.1 1602液晶簡介1.6 1602引腳說明IIC通信1.6.1 IIC簡介.IIC時序3系統(tǒng)程序設(shè)計4印刷電路板的設(shè)計與制作4.1印刷電路板的布線設(shè)計4.2印刷電路板的制作電路板的調(diào)試結(jié)論謝辭.參考文獻附錄引言本設(shè)計研究FM收音機分為硬件電路和程序設(shè)計兩個方面。從硬件電路

3、來說,主要是實現(xiàn)所需電壓值、穩(wěn)壓、搜臺、控制和頻率顯示等方面;從系統(tǒng)程序來說,主要是通過軟件來實現(xiàn)RDA580才莫塊的功能,使用IIC總線方式調(diào)臺,并且得到當(dāng)前的頻率,處理并實現(xiàn)頻率轉(zhuǎn)換、顯示。1.方案選擇1.1方案一使用分立元件來搭接電路,實現(xiàn)模塊的功能,收發(fā)信號,對信號調(diào)頻或者調(diào)幅,從而得到可以處理的信號,實現(xiàn)收聽功能。噸1BG30G4BGtJS9C1B901B90149013*30X201由丁本方案,調(diào)試極為復(fù)雜,彳艮難成功,而且接收頻率范圍小,工作也很不穩(wěn)定,很容易受外界影響。1 .2方案二采用RDA5807莫塊,實現(xiàn)接收信號,并處理功能,并丁單片機相結(jié)合,實現(xiàn)數(shù)控,操作簡單。由丁RD

4、A5807莫塊高度的集成,很多功能都集成在內(nèi)部,所以工作穩(wěn)定,不容易受外界影響,而且需要的外部東西少,使用IIC總線與單片機相連接,使用的線少,模塊簡單,操作方便,并且接收頻率范圍很廣。2 系統(tǒng)方案設(shè)計及各模塊原理本方案采用STC89C5穿片機與RDA莫塊連接,從而實現(xiàn)數(shù)控收音機,STC89C52I片機在這方面的設(shè)計為我們提供了極大的方便,用它實現(xiàn)的好處在丁,外圍電路極其簡單,另外在STC89C5奪片機的編程方面乂提供及其便利的編程環(huán)境。外圍電路的設(shè)計包括兩大部分,分別是液晶的顯示和鍵盤控制電路的設(shè)計。這里采用一個復(fù)位按鍵,來實現(xiàn)對RDA5807莫塊的初始化。設(shè)計的特點是全面采用數(shù)字電路方案,

5、因而工作穩(wěn)定可靠。利用單片機控制管理,使設(shè)置及調(diào)整操作準(zhǔn)確。STC89C5笊小系統(tǒng)原理圖RDA5807攵音模塊2.1 STC89C52核心模塊STC89C5迎STS司生產(chǎn)的一種低功耗、高性能CMOS8微控制器,具有8K在系統(tǒng)可編程Flash存儲器。STC89C5獨用經(jīng)典的MCS-51內(nèi)核,但做了很多的改進使得芯片具有傳統(tǒng)51單片機不具備的功能。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得STC89C52J眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,512字節(jié)RAM32位I/O口線,看門狗定時器,內(nèi)置4KBEEPRO,MMAX81(

6、g位電路,3個16位定時器/計數(shù)器,4個外部中斷,一個7向量4級中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級中斷結(jié)構(gòu)),全雙工申行口。另外STC89C52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。STC89C52單片機簡介其引腳結(jié)構(gòu)及說明如下:VCC:電源GND:地P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,弓I腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上

7、拉電阻。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)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入

8、使用時,被外部拉低的引腳由丁內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVXDPTR時,P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVRJ訪問外部數(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)

9、。P3口亦作為AT89S52特殊功能(第二功能)使用,如下所示。P3.0RXD(申行輸入口)P3.1TXD(申行輸出口)P3.2INT0(外部中斷0)P3.3INT1(外部中斷1)P3.4T0(記時器0外部輸入)P3.5T1(記時器1外部輸入)P3.6WR(外部數(shù)據(jù)存儲器寫選通)P3.7RD(外部數(shù)據(jù)存儲器讀選通)在flash編程和校驗時,P3口也接收一些控制信號。RST:復(fù)位輸入。晶振工作時,RST腳持續(xù)2個機器周期高電平將使單片機復(fù)位??撮T狗計時完成后,RST腳輸出96個晶振周期的高電平。特殊寄存器AUXR地址8EH止的DISRTCa可以使此功能無效。DISRTOR認狀態(tài)下,復(fù)位高電平有效

10、。ALE/PROG地址鎖存控制信號(ALB是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。在flash編程時,此引腳(PROG也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR勺第0位置“1”,ALE操作將無效。這一位置“1”,ALE僅在執(zhí)行MOVXEMOV(J旨令時有效。否則,ALE將被微弱拉高。這個ALE使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對微控制器處丁外部執(zhí)行模式下無效。PSEN外部程序存儲器選通信號(PSEN是外部程序

11、存儲器選通信號。當(dāng)AT89S5紈外部程序存儲器執(zhí)行外部代碼時,PSENft每個機器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器時,PSEN務(wù)不被激活。EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H到FFFFH勺外部程序存儲器讀取指令,EA必須接GND為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC在flash編程期間,EA也接收12伏VPP電壓。XTAL1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。2.1.1 STC89C52主要性能-與MCS-51單片機產(chǎn)品兼容-8K字節(jié)在系統(tǒng)可編程Flash存儲器-1000次擦寫周期-全靜態(tài)操作:0Hz33Hz-二級加

12、形'程序存儲器-32個可編程I/O口線-三個16位定時器/計數(shù)器-八個中斷源-全雙工UAR砰行通道-低功耗空閑和掉電模式-掉電后中斷可喚醒-看門狗定時器-雙數(shù)據(jù)指針-掉電標(biāo)志位-內(nèi)帶2K字節(jié)EEPROM儲空間-可直接使用申口下載2.2 -512字節(jié)數(shù)據(jù)存儲空間RDA5807模塊“RRD-102V2.O立體聲收音模塊(FMStereoradioModule)高靈敏度、低功耗、超小體積的調(diào)頻立體聲收音模組。采用RDAMicroelectronics的RDA5807M或RDA5802NM,此電路外圍元件少、噪聲系數(shù)極小。具有體積小、低功耗、低成本、應(yīng)用簡單、使用范圍廣等優(yōu)點。是一款簡單易用且

13、具極高性價比的單芯片F(xiàn)M立體聲收音模組。56nFon¥-fi一9)-00Nn吼nw41房冉船棒建WR功吒推雄1g.*!<-jtJHk*-l;tS'1ARwiR-出,CLOCK短明9此(時時L'E斷I"1GTNCJCXrJi1NC回NT'5FMWD耍PCA>模塊的引腳及外圍電路圖B、的用電林:RDA5807模塊特點A、采用通用的102BC模塊的封裝,用戶可直接替換使用,無需更改電路設(shè)計。B、靈敏度高、噪聲小、抗干擾能力強、外接元件極少、體積?。?1*11.2MMMa、使用極其簡單。C、76-108MHZ全球FM段兼容(包括日本76-91MH

14、妹日歐美87.5-108.5MHz)。DKI2C申行數(shù)據(jù)總線接口通訊,支持外部基準(zhǔn)時鐘輸入方式。E、完全整合的COMS:藝單晶片集成電路,功耗極小。F、內(nèi)置高精度A/D(模數(shù)轉(zhuǎn)換器)及數(shù)字頻率合成器。G內(nèi)置LDO®整、低功耗、超寬電壓使用范圍(2.7-3.6VDC)。H、內(nèi)置噪聲消除、軟靜音、低音增強電路設(shè)計。I、高功率32Q負載音頻輸出,直接耳機駁接,無需外接音頻驅(qū)動放大。J、應(yīng)用簡便、成本低,性價比高。RDA5807模塊使用說明A、模塊供電濾波電容設(shè)計是應(yīng)盡量靠近模塊電源輸入腳。B、I2CDAT,CLK芯片內(nèi)部已經(jīng)包含47k的上拉電阻;C、如用耳機的地線做天線,則參照上圖應(yīng)用大原

15、理圖口為了模塊能良好的可靠的工作,F(xiàn)硬塊供電電壓一般應(yīng)大丁2.7V以上E、此模塊內(nèi)部已集成LDO電源輸入端可使用簡單的LC電源濾波網(wǎng)絡(luò)即可F、使用時應(yīng)做好ES®電防護工作。G模塊可申電容后直接驅(qū)動32ohm耳機,如需推動更大功率喇叭請外加功放;2.3顯示模塊顯示模塊由1602液晶電路構(gòu)成。2.3.1 1602液晶簡介1602液晶是工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。(16列2行)。2.3.2 1602引腳說明1602字符型LCD®常有14條引腳線或16條引腳線的LCD多出來的2條線是背光電源線。VCC(15腳)和地線GND(16腳),其控制原理與14腳的LC

16、DI全一樣,其中:引腳砂功能說明1VSS2VDD接醐源(+5V)3V0示器對比度調(diào)整聒接正電源時對比度最弱,接地電源時的比度最蒿(對比度過高時會產(chǎn)生°鬼費產(chǎn),使用時可以通過一個"K的電位器調(diào)整對比度)。4RSRS為存器選格高電平1時選擇數(shù)據(jù)寄存雷,低電平U時選擇指令寄存器5R/WRM為讀與信號簇,高也平(1加進行讀操作,低電平3網(wǎng)進行寫操作。&.EE(或EN謊為便能.團邪間端,下降沿使能.DB0底4位三態(tài)、雙向鼓據(jù)總線。位(最低位)3DB1底4位三態(tài)、雙向敵據(jù)總線十位9DB2底4位三態(tài)、戲向敬據(jù)總線2位10DB3底4位三態(tài)、11DB4高耳位三態(tài)、雙向數(shù)據(jù)總線4位12

17、DB5部位三態(tài)、雙向數(shù)據(jù)總線5位13DB6高0位三態(tài)、雙向數(shù)據(jù)總線6位14DB7高4位三態(tài)、雙向教據(jù)總線7位(最高位)也是bgyflag)15BLA背光電源正極16BLK背光電源負租2.4 1602液晶引腳說明IIC通信根據(jù)RDA580才莫塊的要求,使用IIC通信,與單片機相連接,實現(xiàn)數(shù)控。2.4.1 IIC簡介IIC是由菲利浦半導(dǎo)體公司在八十年代初設(shè)計出來的,主要是用來連接整體電路(ICS),IIC是一種多向控制總線,也就是說多個芯片可以連接到同一總線結(jié)構(gòu)下,同時每個芯片都可以作為實施數(shù)據(jù)傳輸?shù)目刂圃础_@種方式簡化了信號輸總線。IIC申行總線一般有兩根信號線,一根是雙向的數(shù)據(jù)線SDA另一根是

18、時鐘線SCL所有接到IIC總線設(shè)備上的申行數(shù)據(jù)SDMK接到總線的SDA±,各設(shè)備的時鐘線SCL接到總線的SCL上。1.6.2 IIC時序在IIC總線傳輸過程中,將兩種特定的情況定義為開始和停止條件:當(dāng)SCL保持“高”時,SDA由“高”變?yōu)椤暗汀睘殚_始條件;當(dāng)SCL保持“高”且SDA由“低”變?yōu)椤案摺睍r為停止條件。開始和停止條件均由主控制器產(chǎn)生。使用硬件接口可以很容易地檢測到開始和停止條件,沒有這種接口的微機必須以每時鐘周期至少兩次對SDAt樣,以檢測這種變化。SDA線上的數(shù)據(jù)在時鐘“高”期間必須是穩(wěn)定的,只有當(dāng)SCL線上的時鐘信號為低時,數(shù)據(jù)線上的“高”或“低”狀態(tài)才可以改變。輸出到

19、SDAa上的每個字節(jié)必須是8位,每次傳輸?shù)淖止?jié)不受限制,但每個字節(jié)必須要有一個應(yīng)答ACK如果一接收器件在完成其他功能(如一內(nèi)部中斷)前不能接收另一數(shù)據(jù)的完整字節(jié)時,它可以保持時鐘線SCL為低,以促使發(fā)送器進入等待狀態(tài);當(dāng)接收器準(zhǔn)備好接受數(shù)據(jù)的其它字節(jié)并釋放時鐘SCL后,數(shù)據(jù)傳輸繼續(xù)進行。I2C數(shù)據(jù)總線傳送時序。數(shù)據(jù)傳送具有應(yīng)答是必須的。與應(yīng)答對應(yīng)的時鐘脈沖由主控制器產(chǎn)生,發(fā)送器在應(yīng)答期間必須下拉SD故。當(dāng)尋址的被控器件不能應(yīng)答時,數(shù)據(jù)保持為高并使主控器產(chǎn)生停止條件而終止傳輸。在傳輸?shù)倪^程中,在用到主控接收器的情況下,主控接收器必須發(fā)出一數(shù)據(jù)結(jié)束信號給被控發(fā)送器,從而使被控發(fā)送器釋放數(shù)據(jù)線,以允

20、許主控器產(chǎn)生停止條件。3系統(tǒng)程序設(shè)計程序框圖初始化液晶顯示初始值檢測是否有按具體程序詳見附錄4.1印刷電路板的布線設(shè)計此過程是用AltiumDesigner來完成。布線設(shè)計按以下流程實現(xiàn)。圖4.1布線流程布線時的注意事項:(1) 在擺放元件時先按原理圖擺放,再細調(diào)位置。(2) 所用的為單面板,故布線時應(yīng)在底層ButtonLayer上。布線區(qū)域應(yīng)在禁止布線層KeepOutLayer上圈定。(4) 兩根線之間的距離不能太小,在線拐彎處不能用成直角,一般用45度角為宜。(5) 線寬設(shè)置在0.81.0毫米,在一些拐角的地方還可以適當(dāng)?shù)匮a線,以防止腐蝕的時候?qū)⒕€腐蝕掉或是因為線太細而對電路造成不良的影響

21、。4.2印刷電路板的制作首先,把PCB合打印出來,用砂紙把銅板除去外層的氧化銅,在預(yù)熱熨斗后,把PC到板上,把線熨至銅板上。待銅板冷卻后再將紙從銅板撕下,檢查銅板上有沒有斷線的地方,若有少量,則用油性筆把線給補上!太多的話就用砂紙把線去除之后再重新燙過。然后,盡快把熨好的銅板放到氯化鐵溶液中。第三,腐蝕完后先進行打孔,再把銅線上的墨去掉。這樣打孔比較方便。第四,就是裝元件,在此過程中一定要注意有正負極性的元件,比如LED燈、電解電容等。最后進行焊接。5電路板的調(diào)試調(diào)試過程是一個非常重要的環(huán)節(jié),這是整個電路板成功與否的關(guān)鍵。首先應(yīng)斷開電源,用數(shù)字萬用表認真檢查電路連線是否有誤,是否有短路或者斷路

22、和虛焊等的現(xiàn)象。經(jīng)過初步檢查以后,方可接通電源。此時還不應(yīng)該把芯片裝上。接上電源時應(yīng)該明確電源的正負極性,切不可接反,一接反則馬上可能會出現(xiàn)燒毀重要元件的情況!時刻用手觸摸各元件有沒有發(fā)熱現(xiàn)象,并注意其是否冒煙等。待過一段時間穩(wěn)定后,如沒有出現(xiàn)不良的現(xiàn)象,則電路基本上正常,可依次用數(shù)字萬用表檢查各點的工作電壓情況,各點工作穩(wěn)定,并且確認芯片插座兩端的電壓符合芯片的工作電壓時,則可以關(guān)閉電源,把芯片裝上。附錄主程序#include"reg52.h"#include"intrins.h"#include"lcd.h"#include&qu

23、ot;IIC.h"#include"delay.h"sbitK1=P2A0;sbitK2=P2A1;sbitK3=P2A2;sbitK4=P2A3;unsignedlongfrequency;/RDA5807寄存器unsignedcharRDA_reg_data8=(0xd0,0x00,/02H0x00,0x00,/03H0x00,0x40,/04H0x90,0x88,/05H;unsignedcharcodecdis1=("FMcui'sRADIO"unsignedcharcodecdis2=("FMVOL"cha

24、rcodereserve3_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_datai);I2C_stop();連續(xù)讀寄存器子函數(shù)voidRDA5807_read_reg(uchar*reg_buf)(I2C_start();/收音模塊讀取操作I2C_write_byte(0x21);/寄存器連續(xù)讀操作reg_buf0=I2C_

25、read_byte(I2C_ACK);reg_buf1=I2C_read_byte(I2C_ACK);reg_buf2=I2C_read_byte(I2C_ACK);reg_buf3=I2C_read_byte(I2C_NACK);I2C_stop();模塊上電初始化子函數(shù)voidRDA5807_power(void)(delayms(50);/發(fā)送軟件復(fù)位指令RDA_reg_data0=0x00;RDA_reg_data1=0x02;RDA5807_write_reg();delayms(10);/收音模塊默認參數(shù)RDA_reg_data0=0xd0;RDA_reg_data1=0x01;R

26、DA5807_write_reg();功能描述:收音模塊自動尋臺模式voidRDA5807_FM_seek(void)(uintchan;ucharreg_data4=0x00,0x00,0x00,0x00;RDA_reg_data3&=(1<<4);/調(diào)諧禁用/內(nèi)部自動尋臺使能RDA_reg_data0|=(1<<0);/SEEK位置1RDA5807_write_reg();/等待STC標(biāo)志置位while(0=(reg_data0&0x40)delayms(20);/讀取內(nèi)部狀態(tài)RDA5807_read_reg(reg_data);/獲取當(dāng)前工作頻點c

27、han=reg_data0&0x03;chan=reg_data1|(chan<<8);chan=chan<<6;/保存當(dāng)前工作頻點RDA_reg_data2=(chan>>8)&0xff;RDA_reg_data3=(chan&0xff);頻率顯示子函數(shù)voidshow_frequency(void)unsignedchari,display5;unsignedinttemp;temp=(RDA_reg_data2*256)+(RDA_reg_data3&0xc0);/temp=temp>>6;frequency

28、=(unsignedlong)(100*temp+87000)/100;計算for(i=0;i<5;i+)/活顯存單元displayi=0x00;display0=(frequency)/1000;/display1=(frequency%1000)/100;display2=(frequency%100)/10;display3=0x2e;/display4=(frequency%10);if(display0=0)display0=display1+0x30;display1=display2+0x30;display2=display3;display3=display4+0x30

29、;display4=0x20;elsedisplay0+=0x30;display1+=0x30;display2+=0x30;display4+=0x30;lcd_pos_xy(3,2);/lcd_wdat(display0);lcd_wdat(display1);lcd_wdat(display2);數(shù)據(jù)轉(zhuǎn)換小數(shù)點頻率顯示取音量值如果高位為0低位顯存內(nèi)容進入高位顯存低位不顯示音量值顯示lcd_wdat(display3);lcd_wdat(display4);音量顯示子函數(shù)voidshow_volume()(unsignedchartemp,display2;temp=RDA_reg_da

30、ta7&0x0f;/display0=temp/10;display1=temp%10;if(display0=0)/(display0=display1;/display1=0x20;/else(display1+=0x30;display0+=0x30;lcd_pos_xy(13,2);/lcd_wdat(display0);lcd_wdat(display1);主函數(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);RDA580

31、7_power();while(1)if(K1=0)delayms(20);if(K1=0)RDA_reg_data0|=(1<<1);/SEEKUPRDA5807_FM_seek();while(K1=0);if(K2=0)delayms(20);if(K2=0)RDA_reg_data0&=(1<<1);/SEEKDOWNRDA5807_FM_seek();while(K2=0);if(K3=0)delayms(20);if(K3=0)if(RDA_reg_data7&0x0f)<0x0f)(RDA_reg_data0=0xd0;RDA_reg

32、_data1=0x01;RDA_reg_data3&=(1<<4);RDA_reg_data7+;/音量遞增RDA5807_write_reg();while(K3=0);if(K4=0)(delayms(20);if(K4=0)(if(RDA_reg_data7&0x0f)>0x00)(RDA_reg_data0=0xd0;RDA_reg_data1=0x01;RDA_reg_data3&=(1<<4);RDA_reg_data7-;/音量遞減RDA5807_write_reg();while(K4=0);show_volume();sh

33、ow_frequency();Lcd程序#include"reg52.h"#include"intrins.h"#include"led.h"#include"delay.h"#defineucharunsignedchar#defineuintunsignedint#defineDATA_PORTP1sbitLCD_RS=P2A6;sbitLCD_RW=P2A5;sbitLCD_EN=P2A4;檢查LCDlt狀態(tài)lcd_busy為1時,忙,等待。lcd-busy為0時,閑,可寫指令與數(shù)據(jù)bitlcd_busy()

34、(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=LE=»中,D0-D7=t令碼。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();L

35、CD_EN=0;寫顯示數(shù)據(jù)到LCDRS=H,RW=LE=®脈7中,D0-D7啜據(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);/16*2顯示,5*7點陣,8位數(shù)據(jù)delayms(5);lcd_wcmd(0x38,0);/不進行忙檢測,強制執(zhí)行。delayms(5);lcd_wcm

36、d(0x38,0);delayms(5);lcd_wcmd(0x38,1);/進行忙檢測delayms(5);lcd_wcmd(0x0c,1);/顯示開,關(guān)光標(biāo)delayms(5);lcd_wcmd(0x06,1);/移動光標(biāo)delayms(5);lcd_wcmd(0x01,1);/活除LCD的顯示內(nèi)容delayms(5);設(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

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論