基于51單片機的數(shù)字fm收音機設計與實現(xiàn)_第1頁
已閱讀1頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  基于51單片機的數(shù)字FM收音機</p><p><b>  設計與實現(xiàn)</b></p><p><b>  摘 要</b></p><p>  現(xiàn)在人們常使用的收音機為手動調(diào)頻收臺,使用較為麻煩,而且由于接收靈敏度不高,所接收的頻段較窄。TEA5767具有高性能的RF AGC電路,其接收靈敏度高、參

2、考頻率選擇靈活、可實現(xiàn)自動搜臺。本課題采用STC89C52單片機和TEA5767為核心器件,用I2C通信方式聯(lián)接單片機與TEA5767,實現(xiàn)數(shù)字FM收音機系統(tǒng)。通過編寫軟件利用單片機控制TEA5767實現(xiàn)手動活自動調(diào)頻,收到的信號通過TAD2822功放器件放大后,再用揚聲器輸出信號。在調(diào)頻的過程中可以通過LCD1602液晶顯示屏來隨時查看信號的頻率。</p><p>  關鍵詞:數(shù)字調(diào)頻; STC89C52; T

3、EA5767; TDA2030</p><p><b>  ABSTRACT</b></p><p>  Nowadays people usually use the radio for manual FM accept , it is much trouble, and because the rx sensitivity is not high, the fre

4、quency band received is very narrow。TEA5767 has high-performance RF AGC circuit, high sensitivity receiving, reference frequency selection flexible and it can be the realization of automatic search platform。So in this de

5、signing I will use the STC89C52 single-chip microcomputer and TEA5767 as the core components of digital FM radio system and Use the I2C communicatio</p><p>  Key words:Digital FM; STC89C52; TEA5767; TAD2030&

6、lt;/p><p><b>  目 錄</b></p><p><b>  緒論4</b></p><p>  1 基于單片機的FM收音機工作原理5</p><p>  1.1 FM收音機的基本工作原理5</p><p>  1.2 數(shù)字調(diào)節(jié)FM收音機的工作原理5&

7、lt;/p><p>  1.3 用單片機完成數(shù)字調(diào)節(jié)的FM收音機的功能設計6</p><p>  2 硬件電路設計7</p><p>  2.1 硬件組成7</p><p>  2.1.1 數(shù)字FM收音機系統(tǒng)控制中心單片機7</p><p>  2.1.3 PT2257音量模塊9</p><p

8、>  2.1.4 FM收音模塊10</p><p>  2.2 FM電路及其設計13</p><p>  2.3 單片機控制與顯示電路14</p><p>  2.4 供電電路與放大電路15</p><p><b>  3 軟件設計16</b></p><p>  3.1鍵盤與顯示

9、函數(shù)設計17</p><p>  3.1.1 LCD液晶顯示函數(shù)17</p><p>  3.1.2 鍵盤讀鍵子程序:18</p><p>  3.2數(shù)字調(diào)節(jié)與收音控制程序設計19</p><p>  3.2.1 EA5767HN讀寫寄存器19</p><p>  3.2.4 收音模塊的初始化24</

10、p><p><b>  結論27</b></p><p><b>  致謝27</b></p><p><b>  參考文獻28</b></p><p><b>  附錄29</b></p><p>  附錄一 主程序29&l

11、t;/p><p>  附錄二 TEA5767讀寫子程序32</p><p>  附錄三 按鍵子程序37</p><p><b>  緒論</b></p><p>  雖然手機、計算機、電視等各種電子娛樂設施已經(jīng)越來越普遍,但是收音機在豐富的娛樂媒介中仍然占有重要地位。隨著消費類電子的興起和繁榮以及數(shù)字電子技術的發(fā)展,收音

12、機逐漸數(shù)字化,集成化,而且成本越來越低,這使得在各種設備中嵌入收音機的現(xiàn)象更加普遍。廣大從事消費類電子設計的廠商都不忘在諸如MP3、智慧手機、便攜式Video播放器等產(chǎn)品中嵌入FM部分。TEA5767系列單片數(shù)字元收音機就被廣泛地應用在各類電子產(chǎn)品中。利用TEA5767設計數(shù)字FM收音機與傳統(tǒng)的超外差式收音機的調(diào)諧方式不太一樣,傳統(tǒng)的超外差式收音機的固定頻率為10.7MZ,而TEA5767系列數(shù)字元收音機的固定中頻為225KHz,由于固

13、定中頻不同,鎖相環(huán)系統(tǒng)的軟件控制就有很大的差別,這就給廣大芯片應用設計者帶來一定的難度。本設計將采用宏晶STC89C52芯片來控制Philips公司的TEA5767收音模塊,從而做成一個數(shù)位收音機。該收音機,具有抗干擾能力強、體積小、方便攜帶、調(diào)頻范圍寬等優(yōu)點。</p><p>  1 基于單片機的FM收音機工作原理</p><p>  1.1 FM收音機的基本工作原理</p>

14、<p>  FM收音機由輸入回路、高放回路、本振回路、混頻回路、中放回路、鑒頻回路和音頻功率放大器組成。如圖1-1所示。</p><p>  調(diào)頻的接收天線以耳機的地線替代,也可直接插上配給的天線ANT,二者工作原理相同。調(diào)頻廣播的高頻信號輸入回路直接經(jīng)電容C、L組成的LC振蕩回路,實際上構成一帶通濾波器,其通頻帶為88MHz—108MHz。在集成塊內(nèi)部接受的調(diào)頻信號經(jīng)過高頻放大,諧振放大。被放大的

15、信號與本地振蕩器產(chǎn)生的本振信號在內(nèi)部進行FM混頻,混頻后輸出。</p><p>  圖1-1  FM收音機原理框圖</p><p>  FM混頻信號由FM中頻回路進行選擇,提取以中頻10.7MHz為載波的調(diào)頻波。該中頻選擇回路由10.7MHz濾波器構成。中頻調(diào)制波經(jīng)中放電路進行中頻放大,然后進行鑒頻得到音頻信號,經(jīng)功率放大輸出,耦合到揚聲器,還原為聲音。此外,因在調(diào)頻波段未收到電

16、臺信號時,內(nèi)部增益處于失控而產(chǎn)生的噪聲很大。為此,通過檢出無信號時的控制電平,控制靜噪電路工作,使音頻放大器處于微放大狀態(tài),從而達到靜噪功能。</p><p>  1.2 數(shù)字調(diào)節(jié)FM收音機的工作原理</p><p>  此設計的基本原理與上述傳統(tǒng)收音機的原理相似,在此不再累述。主要組成部分有單片機、存儲器、功放、收音芯片。此處介紹不同之處。此方案通過單片機根據(jù)鍵盤輸入,通過I2C對TEA

17、5767模塊的控制寄存器進行讀寫操作,以實現(xiàn)TEA5767模塊的自動手動搜索功能,音頻信號經(jīng)過由TDA2822構成的功放電路放大處理由揚聲器輸出。并將從TEA5767模塊中讀取的頻率字換算后顯示在LCD上。按存儲鍵時,單片機將頻率字寫入24c02實現(xiàn)存臺功能,按讀取鍵即可收聽所存電臺。</p><p>  1.3 用單片機完成數(shù)字調(diào)節(jié)的FM收音機的功能設計</p><p>  該設計分為兩

18、部分:硬件電路和程序。硬件電路包括控制模塊、FM調(diào)頻模塊、電源供電模塊和接收模塊四部分。主控制器采用的是單片機STC89C52,調(diào)頻模塊采用的是TEA5767芯片,電源供電模塊可采用電池直接供電或通過變壓設備得到要求的電源。本設計采用模塊化設計,整個系統(tǒng)由、控制模塊、TEA576模塊、音量控制模塊和功放模塊顯示模塊組成,系統(tǒng)的整體方案框圖如圖1-2</p><p><b>  圖1-2 系統(tǒng)框圖<

19、/b></p><p>  從圖1-2中可以看出,控制模塊僅僅通過I2C總線與收音模塊連接并控制收音機工作。本設計使用單片機P3口的兩個I/O腳來模擬I2C總線的SDA和SCL時序并與TEA5767通信;TEA5767輸出的左右聲道音頻信號可通過音量控制模塊進行前級放大及音量控制,然后輸入到TDA7057進行后級功率放大,最后輸出到揚聲器。單片機可通過I2C總線進行音量調(diào)節(jié);ROM存儲模塊主要用于存儲電臺數(shù)

20、據(jù)、音量數(shù)據(jù)和時鐘數(shù)據(jù),為存儲和讀取數(shù)據(jù)帶來方便。系統(tǒng)可通過按鍵進行操作,通過MCU檢測按鍵信號并經(jīng)單片機實現(xiàn)手動搜臺、自動搜臺、音量控制、時鐘調(diào)整等功能,各項操作提示和操作結果均可通過LCD顯示出來。穩(wěn)壓電源模塊產(chǎn)生的5 V和3.3 V電壓可分別為各個模塊器件供電。</p><p><b>  2 硬件電路設計</b></p><p><b>  2.1

21、硬件組成</b></p><p>  基于單片機的數(shù)字FM收音機需要用到的主要硬件設施有STC89C52單片機、TDA2030功放芯片、PT2257音量模塊、TEA5767FM收音模塊,各個硬件之間互相連接后,組成整個收音機的硬件系統(tǒng)。</p><p>  2.1.1 數(shù)字FM收音機系統(tǒng)控制中心單片機</p><p>  在本設計中,需要選用單片機作為整

22、個系統(tǒng)的控制中心,由于對單片機的要求不高,可以選用普通的51系列單片機??紤]到引腳數(shù)量和經(jīng)濟實惠等諸多因素,此設計將采用STC89C52芯片,STC89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash, 具有以下標準功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時器,內(nèi)置4KB EEPROM,MAX81

23、0復位電路,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口。另外 STC89X52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。外形圖和引腳圖如圖2-1所示</p><p>  圖2-1 STC89C52單片機外形圖及引腳圖</p><p>  STC89C52在本設計中發(fā)揮著至關

24、重要的作用,它是這個系統(tǒng)的控制核心。STC89C52與外圍的硬件相連,向FM收音模塊發(fā)出指令,決定自動搜索或手動搜索模式。再通過讀按鍵的方式判斷外圍電路的指令,該指令經(jīng)過單片機分析后直接向收音模塊發(fā)出信號,收音模塊在收到信號后,響應外圍電路的指令,調(diào)整收音的頻道。收音的頻道經(jīng)過單片機的 處理之后,將所搜索到的頻率顯示在LCD1602液晶顯示屏上。</p><p>  2.1.2 收音功放芯片TDA2030 <

25、;/p><p>  收音機系統(tǒng)直接接收到的信號一般都比較微弱,因此需要用通過功率放大器把信放大之后在用揚聲器輸出。這個環(huán)節(jié)需要選用一個體積小、輸出功率大、失真小的音頻功放芯片。德律風根生產(chǎn)的TDA2030采用V型5 腳單列直插式塑料封裝結構。按引腳的形狀引可分為H型和V型。該集成電路廣泛應用于汽車立體聲收錄音機、中功率音響設備,具有內(nèi)部保護電路。具體外形如圖2-2,引腳功能如表2-1,具體參數(shù)如表2-2</p&

26、gt;<p>  圖2-2 TDA2030外形圖</p><p>  表2-1 TDA2030功能引腳</p><p>  表2-2 TDA2030主要參數(shù)表</p><p>  2.1.3 PT2257音量模塊</p><p>  在收音系統(tǒng)中還需要一個芯片來控制收音機輸出的音量,PT22257是由CMOS技術制造而成的2聲道

27、音量控制IC,只有8個腳位,采用I2C控制界面,具備0~-79dB的衰減范圍,低噪聲,高立體分離度及使用極少的周邊原件。內(nèi)部連接圖2-3和外觀圖分別如圖2-4</p><p>  圖2-3 PT2257內(nèi)部電路圖</p><p>  圖2-4 PT2257外觀圖</p><p>  表2-3 PT2257引腳</p><p>  2.1.4

28、 FM收音模塊</p><p>  FM模塊的控核心芯片采用飛利浦公司的TEA5767數(shù)字立體聲FM芯片,該芯片把所有的FM功能都集成到一個不足6*6平方米的用HVQFN40封裝的小方塊中。芯片工作電壓2.5V~5.0V,典型值是3V;RF接收頻率范圍是76~108MHz,(最強信號+噪聲)/噪聲的值在60dB左右,失真度在0.4%左右;雙聲道音頻輸出的電壓在60~90mV左右,帶寬為22.5KHz。芯片的引腳分

29、布及其引腳定義分別見圖2-3和表2-3。</p><p>  圖2-3 TEA5767芯片引腳分布</p><p><b>  表2-3 引腳定義</b></p><p>  該芯片具有以下優(yōu)點:(1)集成高靈敏度的低噪聲放大器;(2)內(nèi)置的FM解調(diào)器可以省去外部鑒頻器,并且FM的中頻選擇性可在芯片內(nèi)部完成;(3)可以采用32.768KHz或1

30、3MHz的振蕩器產(chǎn)生參考時鐘或可以直接輸入6.5MHz的時鐘信號;(4)可以通過I2C或三線串行總線來獲取中頻計數(shù)器值或接收的高頻信號電平,以便進行自動調(diào)諧功能(5)射頻具有自動增益控制功能,并且LC調(diào)諧振蕩器只需固定片裝電感。</p><p>  其基本工作原理分析: </p><p> ?。?)天線輸入電路: </p><p>  RF ANT 天線經(jīng)過C1耦合

31、送入LI、C2、C4組成的RF帶通濾波器(87.6MHz~108MHz和76MHz~87.5MHz)送入TEA5767的35、37腳,通過TEA5767內(nèi)部高通放大。模擬電源由FM 3V3經(jīng)過R1限流C5濾波后送入TEA5767的34腳。 </p><p>  (2)可調(diào)式LC諧振回路: </p><p>  2、3、4腳接內(nèi)部VCO,外接變?nèi)荻O管D1、D2。2腳為調(diào)諧電壓輸出,自動搜索

32、時電壓在1V內(nèi)變化。VCO供電由FM 3V3經(jīng)過R4限流C13濾波送如TEA5767的第5腳。 </p><p>  (3)I2C控制總線: </p><p>  內(nèi)置I2C接口,通過TEA5767的8、9腳控制,CPU通過I2C對其進行搜臺、選臺操作。數(shù)字電源由FM 3V3經(jīng)過R7限流C19濾波送如TEA5767的第7腳。 </p><p> ?。?)CO震蕩電路

33、: </p><p>  CO震蕩電路主要由XT1(32.768)、C14送入TEA5767的17腳輸入,再從18腳輸出到C15,產(chǎn)生32.768的基本時鐘。 </p><p> ?。?)音頻輸出電路: </p><p>  經(jīng)過TEA5767處理后的模擬音頻信號從23(右聲道)、22(左聲道)輸出到后級功放電路放大。</p><p><

34、;b>  原理框圖如圖2-4</b></p><p><b>  圖2-4 原理框圖</b></p><p>  2.2 FM電路及其設計</p><p>  FM接收電路是系統(tǒng)硬件電路中的核心部分之一,本硬件系統(tǒng)采用單芯片TEA5767HN模塊作為FM接收電路的核心元器件。Philips公司提供的TEA5767HN模塊芯片為

35、低電壓、低功耗和低價位的全集成單芯片立體聲無線電產(chǎn)品,它只需要極少的外圍元件,并且基本上不需要外部對高頻信號的手動調(diào)準。另外,其頻帶范圍較寬,可以完全免費調(diào)到歐洲、美國和日本的調(diào)頻波段。其模塊應用接線圖如圖2-5所示。</p><p>  圖2-5 FM模塊應用接線圖</p><p>  圖2-5中VCC接3.3V的電源,并通過磁珠及電容器件進行干擾抑制,注意磁珠FB應選用特征頻率為100

36、MHz,直流電阻的貼片元件,這樣有利于對高頻噪聲進行抑制但同時又不是系統(tǒng)產(chǎn)生過多的直流損耗22uF的電容最好選用鉭電容,2個0.1uF的電容可選用介電常數(shù)高、高頻性能好的陶瓷電容,這樣就保證了整個FM Module的電源系統(tǒng)的穩(wěn)定。BUS-MODE是用來選擇CPU與FM Module,串口通信的方式,為I2C的通信方式DATA和CLK即為I2C通信的數(shù)據(jù)線和時鐘線,系統(tǒng)的CPU通過I2C接口即可對FM Module進行控制。W/READ

37、在該系統(tǒng)沒有使用,此時FM Module通過W/READ,CLK,DATA與系統(tǒng)的CPU實現(xiàn)三線方式串行通信。BUS-ENABLE為總線使能信號,當BUS-ENABLE為邏輯低時使FM Module進入省電模式,該系統(tǒng)中把其直接拉高,是因為FM Module可以通過I2C接口控制其進入省電模式。FM_ANT為FM Module的天線接口即射頻信號輸入腳,目前在此類消費電子產(chǎn)品中,天線大多采用耳機線代替,該產(chǎn)品也不例外,上圖中的J3即為立

38、體聲耳機接口。耳機</p><p>  2.3 單片機控制與顯示電路</p><p>  微控制器部分以STC89C52為核心,包括復位電路,晶振電路和按鍵控制電路,特別注意的是電源輸入要加上去藕電容,電路原理圖見圖2-6</p><p>  圖2-6 單片機控制電路</p><p>  顯示電路采用LCD1602為主器件,具體電路如圖2-7

39、</p><p>  圖2-7 LCD1602顯示電路</p><p>  2.4 供電電路與放大電路</p><p>  供電電路直接輸入DC9V,經(jīng)過ASM1117-5V進行5V穩(wěn)壓輸出。模塊3.3V電源由ASM1117-3.3直接提供。如圖2-8</p><p><b>  圖2-8 供電電路</b></p&

40、gt;<p>  放大電路如圖2-9該電路工功能是放大收音機收到的信號</p><p><b>  圖2-9 放大電路</b></p><p><b>  3 軟件設計</b></p><p>  基于STC89C52的單片機控制平臺的TEA5767數(shù)字收音機的軟件設計主要包括六個部分:I2C總線通信協(xié)議、T

41、EA5767HN收音模塊控制、PT2257音量控制、AT24C02存儲模塊控制、鍵盤掃描及狀態(tài)顯示。本文的軟件系統(tǒng)設計應當著重分析TEA5767HN收音模塊控制、PT2257音量模塊這兩部分的工作原理以及編程思路。   本系統(tǒng)程序使用C語言編寫,主程序由啟動、初始化、鍵盤掃描、按鍵處理、液晶顯示等5大模塊組成。其中系統(tǒng)初始化包括STC89C52的初始化、TEA5767HN的初始化和LCD的初始化;按鍵處理通過調(diào)用函數(shù)的方法實現(xiàn)按鍵復用

42、功能,可實現(xiàn)手動搜臺、自動搜臺、音量控制、時間調(diào)整、鬧鐘調(diào)整等操作;顯示模塊可顯示系統(tǒng)的各個工作狀態(tài)。</p><p>  3.1鍵盤與顯示函數(shù)設計</p><p>  3.1.1 LCD液晶顯示函數(shù)</p><p>  液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標志位低電平,表示不忙,否則指令失效。要顯示字符時要先輸入顯示字符地址,也就

43、是告訴模塊哪里顯示字符,圖3-1是1602的內(nèi)部顯示地址</p><p>  圖3-1 LCD1602內(nèi)部地址</p><p>  LCD1602初始化指令:</p><p><b>  延時15mS</b></p><p>  寫指令38H(不檢測忙信號)延時5mS</p><p>  寫指令3

44、8H(不檢測忙信號)</p><p><b>  延時5mS</b></p><p>  寫指令38H(不檢測忙信號)</p><p>  以后每次寫指令和讀/ 寫數(shù)據(jù)操作均需要檢測忙信號</p><p>  寫指令38H:顯示模式設置</p><p>  寫指令08H:顯示關閉</p>

45、;<p>  寫指令01H:顯示清零</p><p>  寫指令06H:顯示光標移動設置</p><p>  寫指令0CH:顯示開及光標設置</p><p>  3.1.2 鍵盤讀鍵子程序:</p><p><b>  圖3-2 流程圖</b></p><p>  char read

46、key(void)</p><p><b>  {</b></p><p>  char temp,temp1,char key;</p><p><b>  temp=p3;</b></p><p>  delay(100);</p><p>  if((temp1=p3

47、)==temp)</p><p><b>  {</b></p><p>  temp=temp&0x0f;</p><p>  switch(temp)</p><p><b>  {</b></p><p>  case 0x0e: key=1;break;<

48、;/p><p>  case0x0d: key=2;break;</p><p>  case 0x0b: key=3;break;</p><p>  case 0x07: key=4;break;</p><p>  default;key=0;</p><p><b>  }</b><

49、/p><p><b>  }</b></p><p>  return key;</p><p><b>  }</b></p><p>  3.2數(shù)字調(diào)節(jié)與收音控制程序設計</p><p>  3.2.1 EA5767HN讀寫寄存器</p><p>

50、  吃透芯片的寄存器是編好程序的關鍵TEA5767HN有5個寫寄存器和5個讀寄存器,每個寄存器可存儲8位數(shù)據(jù)。寫寄存器可以存儲控制信息,包括軟件靜音、模式選擇、PLL可編程計數(shù)器的設置、向上向下搜索模式選擇、靜左/右音頻、可編程端口的設置、待機節(jié)能模式、歐洲/日本頻段選擇、晶振頻率選擇、ADC門限設置、去加重設置等。讀寄存器可檢測接收電路狀態(tài),反饋控制信息,包括搜索到有效電臺標志位、搜索到有效電臺后PLL可編程計數(shù)器的狀態(tài)、4 b A

51、DC的輸出、以及7 b IF中頻輸出。下面就對芯片的寄存器進行詳細說明。</p><p> ?。?)芯片寄存器地址的格式如下:</p><p>  表3-1 芯片寄存器地址格式</p><p>  R/W=0為讀模式;R/W=1為寫模式</p><p> ?。?)寫模式下5個數(shù)據(jù)字節(jié)的格式及各位的描述。</p><p>

52、;<b>  ①數(shù)據(jù)字節(jié)1</b></p><p><b>  a)字節(jié)格式</b></p><p>  表3-2 數(shù)據(jù)字節(jié)1字節(jié)格式</p><p><b>  b)位描述</b></p><p>  表3-3 數(shù)據(jù)字節(jié)1位描述</p><p><

53、;b>  ②數(shù)據(jù)字節(jié)2</b></p><p><b>  a)字節(jié)格式</b></p><p>  表3-4 數(shù)據(jù)字節(jié)2字節(jié)格式</p><p><b>  b)位描述</b></p><p>  表3-5 數(shù)據(jù)字節(jié)2位描述</p><p><b&g

54、t; ?、蹟?shù)據(jù)字節(jié)3</b></p><p><b>  a)字節(jié)格式</b></p><p>  表3-6 數(shù)據(jù)字節(jié)3字節(jié)格式</p><p><b>  b)位描述</b></p><p>  表3-7 數(shù)據(jù)字節(jié)3位描述</p><p>  注:搜索停止標準設

55、定</p><p>  表3-8 搜索停止標準</p><p><b> ?、軘?shù)據(jù)字節(jié)4</b></p><p><b>  a)字節(jié)格式</b></p><p>  表3-9 數(shù)據(jù)字節(jié)4字節(jié)格式</p><p><b>  ⑤數(shù)據(jù)字節(jié)5</b><

56、/p><p><b>  a)字節(jié)格式</b></p><p>  表3-10 數(shù)據(jù)字節(jié)5字節(jié)格式</p><p><b>  b)位描述</b></p><p>  表3-11 數(shù)據(jù)字節(jié)5位描述</p><p>  (3)寫模式下5個數(shù)據(jù)字節(jié)的格式及各位的描述。</p&g

57、t;<p><b> ?、贁?shù)據(jù)字節(jié)1</b></p><p><b>  a)字節(jié)格式</b></p><p>  表3-12 數(shù)據(jù)字節(jié)1字節(jié)格式</p><p><b>  b)位描述</b></p><p><b>  表3-14 位描述</b

58、></p><p><b> ?、跀?shù)據(jù)字節(jié)2</b></p><p><b>  a)字節(jié)格式</b></p><p>  表3-15數(shù)據(jù)字節(jié)1位描述</p><p><b>  b)位描述</b></p><p>  表3-16 數(shù)據(jù)字節(jié)2位描述

59、</p><p><b> ?、蹟?shù)據(jù)字節(jié)3</b></p><p><b>  a)字節(jié)格式</b></p><p>  表3-17 數(shù)據(jù)字節(jié)3字節(jié)格式</p><p><b>  b)位描述</b></p><p>  表3-18 數(shù)據(jù)字節(jié)3位描述&l

60、t;/p><p><b>  ④數(shù)據(jù)字節(jié)4</b></p><p><b>  a)字節(jié)格式</b></p><p>  表3-19 數(shù)據(jù)字節(jié)4字節(jié)格式</p><p><b>  b)位描述</b></p><p>  表3-20 數(shù)據(jù)字節(jié)4位描述<

61、/p><p><b>  ⑤數(shù)據(jù)字節(jié)5</b></p><p><b>  字節(jié)格式</b></p><p>  表3-21 數(shù)據(jù)字節(jié)5字節(jié)格式</p><p>  在采用I2C協(xié)議進行通信時,輸入電壓小于0.2VCCD就被認為是高電平,大于0.45VCCD就被認為是高電平,高電平和低電平的持續(xù)時間必須

62、要大于1us,在編程模擬I2C協(xié)議時要特別注意到這個時間。</p><p>  3.2.2 TEA5767HN的數(shù)據(jù)傳輸  TEA5767HN的數(shù)據(jù)順序是:地址、字節(jié)1、字節(jié)2、字節(jié)3、字節(jié)4、字節(jié)5,數(shù)據(jù)傳送必須按照這個順序。每個字節(jié)將控制不同的功能?! ∶總€字節(jié)的第七位為最高位,并作為字節(jié)的第一位傳送。在時鐘的下降沿,數(shù)據(jù)變?yōu)橛行盘?。在每一字?jié)后面加停止信號可以縮短傳送時間。在整個傳輸完成之前,發(fā)送一個

63、停止條件,其保留的字節(jié)將包含以前的信息。如果一個字節(jié)沒有傳送完,新的字節(jié)將被使用,但新的調(diào)諧周期不會開始。</p><p>  3.2.3 TEA5767HN的讀寫流程  根據(jù)TEA5767HN的讀寫協(xié)議,調(diào)用公用I2C驅(qū)動即可編寫出TEA5767HN的讀寫函數(shù):radio_write(),radio_read()。它們可為手動搜臺、自動搜臺等FM功能調(diào)用,以實現(xiàn)程序的模塊化,優(yōu)化程序結構。TEA5767HN的

64、讀寫流程如圖3-3所示。其中I2C_Start(FM)和I2C_Stop(FM)分別表示啟動和停止I2C總線,Check_(FM)為應答信號。</p><p>  圖3-3 TEA5767HN 讀寫流程圖</p><p>  3.2.4 收音模塊的初始化  TEA5767HN在上電復位時,靜音位設置為“1”,其他所有位設置為“0”。為了初始化集成塊,所有位都必須重新設定。所以,上電后必須

65、重新給TEA5767HN寫入數(shù)據(jù),以初始化收音模塊。</p><p>  圖3-4 TEA5767HN初始化流程圖</p><p>  TEA5767HN的初始化流程圖如圖3-4所示。圖中的radio_write_data[]分別為要寫入TEA5767HN的5個字節(jié)數(shù)據(jù)。本系統(tǒng)寫入數(shù)據(jù)讓TEA5767HN接收的頻率為88100 kHz,選擇歐洲制式和32.768 MHz晶振,同時采用立體聲

66、輸出。函數(shù)get_pll()是根據(jù)當前頻率計算出PLL值的函數(shù)。調(diào)用get_pll()函數(shù)計算出PLL值后,應再把PLL高6位送給字節(jié)1的低6位,接著把PLL的低8位送給字節(jié)2。頻率顯示則可直接調(diào)用fm_disp()函數(shù)來完成。</p><p>  3.3 PT2257的音量控制設計  本系統(tǒng)使用PT2257來控制收音機輸出的音量,以實現(xiàn)數(shù)字化音量控制。PT2257的地址為88H。單片機可與PT2257通過I

67、2C進行通信。PT2 257的寫操作先由單片機發(fā)出啟動信號寫入PT2257的片地址0x88,然后,由PT2257送回應答信號,單片機收到應答信號后,即向PT2257發(fā)送音量衰減量數(shù)據(jù),單片機再次收到應答信號后,即發(fā)出停止信號,如此即可完成一次控制過程。PT2257衰減量數(shù)據(jù)Vol由十位和個位兩部分組成。數(shù)據(jù)的傳輸順序是先發(fā)送十位數(shù)據(jù),再發(fā)送個位數(shù)據(jù)。寫入的十位數(shù)據(jù)為(Vol/10)|TenDB,個位數(shù)據(jù)為(Vol%10)|OneDB。其

68、中TenDB=0xe0,OneDB=0xd0。衰減量的大小為十位和個位值的合并,圖3-5和圖3-6給出了PT2257的寫流程和音量控制流程。 </p><p>  圖3-5 PT2257寫流程圖</p><p>  圖3-6 PT2257音量控制流程圖</p><p><b>  結論</b></p><p>  軟硬

69、件都設計好之后,要把編號的程序下載到單片機內(nèi)。下載工具可以用此前實習時焊接的簡易單片機開發(fā)板,下載軟件可以用STC_ISP_V480。在調(diào)試軟件時,由于開始時沒有定義好參數(shù),導致程序雖沒錯誤卻難以實現(xiàn)預想的功能,后經(jīng)反復仔細檢查終于發(fā)現(xiàn),并解決了問題。在調(diào)試整機系統(tǒng)時能夠搜索的頻率范圍為87.5~108MHz,能夠接收到6~8個電臺,由于沒有專用天線,電路板質(zhì)量也不高,再加上電臺本身信號強度的問題,有3~4個電臺的音質(zhì)效果不是很好,干擾

70、很大。總體來說本次課題還是比較成功的。</p><p><b>  致 謝</b></p><p>  從整體上來講,基于單片機的FM收音機設計是一個成功的設計。反觀整個過程,掌握好寄存器的功能是整個設計的關鍵。從這個設計中,我學會(1)通過軟件模擬I2C總線通信協(xié)議(2)編程操作串口(3)熟悉芯片的工作原理</p><p>  同時也發(fā)現(xiàn)了

71、自己有很多不足的地方:焊接技術不夠好,同時編程能力也很薄弱。在以后的工作學習中一定要多加強練習。</p><p>  本論文是在李老師的悉心教導下完成的,是他在我最困難的時候給了我及時的提醒與幫助。字里行間都流露著導師的諄諄教誨。本人在與導師的多次交流過程中被導師誨人不倦的態(tài)度和淵博的知識深深地所折服。正是因為有了導師如此敬業(yè)的指導,本人才能順利完成本篇論文。</p><p><b&

72、gt;  參考文獻</b></p><p>  【1】C語言程序設計/譚浩強著.-2版.-北京:清華大學出版社,2008.11</p><p>  【2】模擬電子技術基礎/童詩白,華成英主編;清華大學教研組編.-4版.-北京:高等教育出版社,2006.5</p><p>  【3】單片機原理與應用/朱兆優(yōu)等編著.-北京:電子工業(yè)出版社,2010

73、.9</p><p>  【4】王輝平.基于IIC 總線數(shù)字收音機的控制實現(xiàn)[J].儀表技術,2008(11):56-58.</p><p>  【5】余修武.USB 接口技術在嵌入式系統(tǒng)中的應用研究[J].電子技術應用,2008(10):151-153</p><p>  【6】林峰.采用TEA5767 的調(diào)頻收音電路設計[J].電聲技術,2005(4):3

74、5-36.</p><p>  【7】PhilipsSemiconductors .TEA5767HN Datasheet.2002</p><p>  【8】辛友順. 單片機應用系統(tǒng)設計與實現(xiàn)[ M] . 福州: 福建科學技術出版社, 2005.</p><p>  【9】馮建華. 單片機應用系統(tǒng)設計與產(chǎn)品開發(fā)[ M] . 北京: 人民郵電出版社, 2004

75、.</p><p>  【10】沈紅衛(wèi). 單片機應用系統(tǒng)設計實例與分析[ M] . 北京: 北京航空航天大學出版社, 2003.</p><p>  【11】徐明雪. 用單片機控制T EA5768H L 設計數(shù)字調(diào)諧FM 收音機[ J] . 無線電, 2005( 7) : 9293.</p><p>  【12】張俊謨.單片機中級教程——原理與應用.北京

76、:北京航空航天大學出版社,2006年10月.</p><p>  【13】郭天祥.新概念51單片機C語言教程:入門、提高、開發(fā)、拓展全攻略.北京:電子工業(yè)出版社.2009(01)</p><p>  【14】張有德等.單片微型機原理、應用與實驗.上海:復旦大學出版社.2006</p><p>  【15】康華光.《電子技術基礎》(模擬部分 第五版) 高等教

77、育出版社,2006</p><p><b>  附錄</b></p><p><b>  附錄一 主程序</b></p><p>  #include"reg52.h"</p><p>  #define uchar unsigned char</p><p&

78、gt;  #define uint unsigned int</p><p>  #include"mylib.h"</p><p>  uchar input_frq_lab=0;</p><p>  uchar input_sti_lab=0;</p><p>  uchar frq_wei=0;</p>

79、<p>  uchar tai_wei=0;</p><p>  uchar frq[10]={0};</p><p>  uchar tai[4]={0};</p><p>  uchar temp_wei=0;</p><p>  uchar st_num=0;</p><p>  code ucha

80、r dis_fr[]="_";</p><p>  code uchar dis_fb[]=" ";</p><p>  extern uchar flash;</p><p>  extern uchar sti_flash;</p><p>  extern uchar flash_temp=0;&

81、lt;/p><p>  uchar stion_h[2];</p><p>  extern unsigned char radio_write_data1[5]; </p><p>  void set_stions(uchar a)</p><p><b>  {</b></p><p><

82、;b>  EA=0;</b></p><p>  rdnbyt(0xa0,a*2,2,stion_h);</p><p>  radio_write_data1[0]=stion_h[0];</p><p>  radio_write_data1[1]=stion_h[1];</p><p>  radio_write_da

83、ta1[2]=0x20;</p><p>  radio_write_data1[3]=0x11;</p><p>  radio_write_data1[4]=0x00;</p><p>  radio_write();</p><p>  radio_read();</p><p>  frequency=freq

84、uency+20;</p><p><b>  EA=1;</b></p><p><b>  }</b></p><p>  void main(void)//主程序</p><p><b>  {</b></p><p>  uchar a,b,ke

85、y; //按鍵所要的變量</p><p>  ini_int(); //中斷和系統(tǒng)設置</p><p>  init(); //屏幕初始化</p><p>  set_stions(1); //設置第一個電臺</p><p>  radio_write(); //寫電臺頻率</p>&l

86、t;p>  disp_chin_st("調(diào)頻收音機",24,0);</p><p>  disp_chin_st("電臺頻率:",0,2);</p><p>  disp_chin_st("電臺編號:",0,4);</p><p>  disp_uchar(st_num,55,4);</p>

87、;<p>  disp_chin_st("調(diào)頻收音機",0,6);</p><p>  //-------------------------------------------</p><p><b>  frq[0]=1;</b></p><p><b>  frq[1]=0;</b>

88、</p><p><b>  frq[2]=7;</b></p><p><b>  frq[3]=5;</b></p><p>  set_frq(frq);//設置電臺頻率并送數(shù)據(jù)到收音頭</p><p>  //-----------------------------------------

89、--</p><p>  //while(1)</p><p>  //auto_search(0);</p><p>  //---------------鍵盤掃描開始--------------------</p><p><b>  while(1)</b></p><p><b>

90、;  {</b></p><p>  for(a=0;a<4;a++) //讓行線依次出現(xiàn)底電平(四次同樣的循環(huán))</p><p><b>  {</b></p><p>  P2=~(0X80>>a); //讓行線依次出現(xiàn)底電平,列線為輸入狀態(tài)(這里把高4位做行線,低四位做列線)</p><p

91、>  if((P2&0x0f)==0x0f)//假如沒按鍵按下,這時候,列線不會檢測到低電平</p><p><b>  {</b></p><p><b>  key=0;</b></p><p><b>  }</b></p><p><b>  e

92、lse</b></p><p><b>  {</b></p><p>  for(b=0;b<4;b++)//假如按鍵按下,這時候,列線會檢測到低電平</p><p><b>  {</b></p><p>  P2=~(0X08>>b);</p>&l

93、t;p>  if((P2>>4)!=0X0F)</p><p>  break; //讓列線依次出現(xiàn)低電平行線檢測,看哪列有按鍵按下</p><p><b>  }</b></p><p><b>  P2=0X0F;</b></p><p>  while((P2&am

94、p;0X0F)!=0X0F);</p><p>  key=a*4+b+1; //每行有四個按鍵,所以所得到的行數(shù)*4加按鍵的列數(shù),就是被按下的位置,這里加1是想跳過0。</p><p><b>  break;</b></p><p><b>  }</b></p><p><b> 

95、 }</b></p><p>  //------------鍵盤掃描結束----------------------</p><p>  switch(key)</p><p><b>  {</b></p><p><b>  case 0:</b></p><p

96、><b>  break;</b></p><p><b>  case 16:</b></p><p>  auto_search(0);</p><p>  disp_int(frequency/10,55,2);</p><p><b>  break;</b>&l

97、t;/p><p><b>  case 12:</b></p><p>  auto_search(1);</p><p>  disp_int(frequency/10,55,2);</p><p><b>  break;</b></p><p><b>  key

98、=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  附錄二 TEA5767讀寫子程序</p><p>  #include"re

99、g52.h"</p><p>  #include"24c02.h"</p><p>  #include"lcm.h"</p><p>  #define max_freq 108000</p><p>  #define min_freq 87500</p><p>

100、;  unsigned char radio_write_data[5]={0xb1,0xa0,0x20,0x11,0x00}; //要寫入TEA5767的數(shù)據(jù)</p><p>  unsigned char radio_write_data1[5]={0x31,0xa0,0x20,0x11,0x00}; //要寫入TEA5767的數(shù)據(jù)</p><p>  un

101、signed char radio_read_data[5]; //TEA5767讀出的狀態(tài)</p><p>  unsigned int default_pll=0x29c2;//0x29f9; //默認存臺的pll,87.8MHz</p><p>  unsigned int pll=0;</p><p>  float freque

102、ncy=0;</p><p>  void get_frequency(void);</p><p>  extern void sta();</p><p>  extern void wrbyt(unsigned char byt);</p><p>  extern bit iic_testack() ;</p><

103、p>  extern void mack();</p><p>  extern void stop();</p><p>  extern unsigned char rdbyt();</p><p>  extern uchar frq[10];</p><p>  sbit ds_1302=P1^5; </p>&l

104、t;p>  void radio_write(void)</p><p><b>  {</b></p><p>  unsigned char i;</p><p><b>  stop();</b></p><p><b>  sta();</b></p>

105、<p>  wrbyt(0xc0); //TEA5767寫地址</p><p>  if(!iic_testack())</p><p><b>  {</b></p><p>  for(i=0;i<5;i++)</p><p><b>  {</b></p

106、><p>  wrbyt(radio_write_data1[i]);</p><p><b>  mack();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  stop(); </p

107、><p><b>  }</b></p><p>  //讀TEA5767狀態(tài),并轉換成頻率</p><p>  void radio_read(void)</p><p><b>  {</b></p><p>  unsigned char i;</p><

108、;p>  unsigned char temp_l,temp_h;</p><p><b>  pll=0;</b></p><p><b>  stop();</b></p><p><b>  sta();</b></p><p>  wrbyt(0xc1);

109、 //TEA5767讀地址</p><p>  if(!iic_testack())</p><p><b>  {</b></p><p>  for(i=0;i<5;i++)</p><p><b>  {</b></p><p>  radio_read_d

110、ata[i]=rdbyt();</p><p><b>  mack();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  stop();</b></p><p>

111、  temp_l=radio_read_data[1];</p><p>  temp_h=radio_read_data[0];</p><p>  temp_h&=0x3f;</p><p>  pll=temp_h*256+temp_l;</p><p>  get_frequency();</p><p&g

112、t;<b>  }</b></p><p>  //由頻率計算PLL</p><p>  void get_pll(void)</p><p><b>  {</b></p><p>  unsigned char hlsi;</p><p>  unsigned int t

113、wpll=0;</p><p>  hlsi=radio_write_data[2]&0x10;</p><p><b>  if (hlsi)</b></p><p>  pll=(unsigned int)((float)((frequency+225)*4)/(float)32.768); //頻率單位:k</p>

114、;<p><b>  else</b></p><p>  pll=(unsigned int)((float)((frequency-225)*4)/(float)32.768); //頻率單位:k</p><p><b>  }</b></p><p>  //由PLL計算頻率</p>

115、<p>  void get_frequency(void)</p><p><b>  {</b></p><p>  unsigned char hlsi;</p><p>  unsigned int npll=0;</p><p><b>  npll=pll;</b></

116、p><p>  hlsi=radio_write_data[2]&0x10;</p><p><b>  if (hlsi)</b></p><p>  frequency=(unsigned long)((float)(npll)*(float)8.192-225); //頻率單位:KHz</p><p>&

117、lt;b>  else</b></p><p>  frequency=(unsigned long)((float)(npll)*(float)8.192+225); //頻率單位:KHz</p><p><b>  }</b></p><p>  //手動設置頻率,mode=1,+0.1MHz; mode=0:-0.

118、1MHz ,不用考慮TEA5767用于搜臺的相關位:SM,SUD</p><p>  void search(bit mode)</p><p><b>  {</b></p><p>  radio_read(); </p><p><b>  if(mode)</b></p&

119、gt;<p><b>  {</b></p><p>  frequency+=50;</p><p>  if(frequency>max_freq)</p><p>  frequency=min_freq;</p><p><b>  }</b></p>&l

120、t;p><b>  else</b></p><p><b>  {</b></p><p>  frequency-=50;</p><p>  if(frequency<min_freq)</p><p>  frequency=max_freq;</p><p&

121、gt;  } </p><p>  EA=0; </p><p>  get_pll();</p><p>  radio_write_data1[0]=pll/256;</p><p>  radio_write_data1[1]=pll%256;</p><p>  rad

122、io_write_data1[2]=0x20;</p><p>  radio_write_data1[3]=0x11;</p><p>  radio_write_data1[4]=0x00;</p><p>  radio_write();</p><p><b>  EA=1;</b></p><

123、;p><b>  }</b></p><p>  void set_frq(uchar *frq_m)</p><p><b>  {</b></p><p>  EA=0; </p><p>  frequency=(float)((*frq_m)*1000+(*(frq_m+1))

124、*100+(*(frq_m+2))*10+(*(frq_m+3)))*100; </p><p>  if((frequency<87500)||(frequency>108500))</p><p><b>  {</b></p><p><b>  EA=1;</b></p><p

125、><b>  *frq_m=0;</b></p><p>  *(frq_m+1)=0;</p><p>  *(frq_m+2)=0;</p><p>  *(frq_m+3)=0;</p><p><b>  return;</b></p><p><b>

126、;  }</b></p><p>  get_pll();</p><p>  radio_write_data1[0]=pll/256;</p><p>  radio_write_data1[1]=pll%256;</p><p>  radio_write_data1[2]=0x20;</p><p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論