




已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
單片機(jī)AT89C52的FM收音機(jī)設(shè)計(jì)1.引言 雖然電視、手機(jī)、互聯(lián)網(wǎng)等媒體和各種便攜式娛樂設(shè)備已經(jīng)普及到千家萬戶,但傳統(tǒng)的收音機(jī)在豐富的娛樂媒介中任然占有重要地位。隨著信息化的發(fā)展,收音機(jī)逐漸數(shù)字化,集成化,而且成本越來越低,這使得在各種設(shè)備中嵌入收音機(jī)的現(xiàn)象更加普遍。TEA5767系列單片數(shù)字收音機(jī)就被廣泛地應(yīng)用在數(shù)字音響,便攜式CD、VCD、DVD、MP3、MP4、手機(jī)、PDA等數(shù)字消費(fèi)電子系統(tǒng)中。但是該數(shù)字收音機(jī)芯片與傳統(tǒng)的超外差式收音機(jī)的調(diào)諧原理不太相同,傳統(tǒng)的超外差式收音機(jī)的固定頻率為10.7MZ,而TEA5767系列數(shù)字收音機(jī)的固定中頻為225KHz,由于固定中頻不同,鎖相環(huán)系統(tǒng)的軟件控制就有很大的差別,這就給廣大芯片應(yīng)用設(shè)計(jì)者帶來一定的難度。本設(shè)計(jì)采用宏晶科技生產(chǎn)的8位微控制器STC89C52來控制數(shù)字收音機(jī)模塊TEA5767,構(gòu)成一個FM數(shù)字收音機(jī)系統(tǒng)。該收音機(jī)的設(shè)計(jì)具有電路簡單易懂、體積小,易調(diào)諧的特點(diǎn),同時該收音機(jī)系統(tǒng)還具有抗干擾能力強(qiáng),頻帶寬、音質(zhì)好的優(yōu)點(diǎn)。2.方案設(shè)計(jì)與論證 本設(shè)計(jì)是一個數(shù)字調(diào)頻收音機(jī),調(diào)頻就是頻率調(diào)制,所謂頻率調(diào)制就是原來等幅恒頻的高頻信號的頻率,隨著調(diào)制信號(音頻信號)的幅度變化而變化,調(diào)頻收音機(jī)(FM Radio)就是接收這些頻率調(diào)制的無線電信號,經(jīng)過解調(diào)還原成原信號的電子設(shè)備。FM Radio電路一般主要由接收天線、振蕩器、混頻器、AGC(自動增益控制)、中頻放大器、中頻限幅器、中頻濾波器、鑒頻器、低頻靜噪電路、搜索調(diào)諧電路、信號檢測電路及頻率鎖定環(huán)路、音頻輸出電路等組成。本設(shè)計(jì)就是用單片機(jī)控制集成了上述所有FM功能的專用芯片,設(shè)計(jì)一個數(shù)字FM收音機(jī)系統(tǒng)。本設(shè)計(jì)采用模塊化設(shè)計(jì),整個系統(tǒng)由控制模塊、FM音頻模塊、電源模塊和功放模塊組成,系統(tǒng)的整體方案框圖如下圖(1): 控制模塊無線FM模塊電源模塊功放模塊圖(1)系統(tǒng)方案設(shè)計(jì)框圖(1)控制模塊??刂颇K是本設(shè)計(jì)的核心,通過外圍電路和向TEA5767芯片寫入相關(guān)程序,控制部分要實(shí)現(xiàn)能夠改變收音機(jī)的接收頻率、工作模式、音量等各項(xiàng)參數(shù)的功能。因此必須需要一個微控制器才能達(dá)到要求,本設(shè)計(jì)采用STC89C52單片機(jī)作為系統(tǒng)的控制核心。(2)無線FM模塊。無線模塊選擇是本設(shè)計(jì)的關(guān)鍵,有兩種方案可以選擇:方案(1)采用無線芯片TEA5767,自己設(shè)計(jì)外圍電路。方案(2)采用相關(guān)廠家生產(chǎn)的TEA5767模塊來實(shí)現(xiàn)。很顯然,第一種方案需要自己設(shè)計(jì)電路、畫PCB和焊接,而TEA5767采用的是FVQFN40(耐熱的薄型四腳扁平封裝)封裝,在短時間內(nèi)和有限的條件下實(shí)現(xiàn)硬件功能的難度相當(dāng)大。所以本設(shè)計(jì)采用第二種方案使用現(xiàn)成的模塊。(3)電源模塊 單片機(jī)的供電電壓要求是3.8V5.5V,TEA5767的供電電壓要求是2.5V5.0V。由于收音機(jī)模塊的應(yīng)用范圍很廣,比如手機(jī)中就采用3.7V鋰電池供電,DVD、電視等系統(tǒng)中則是對220V市電進(jìn)行變壓后供電。本設(shè)計(jì)中采用7805穩(wěn)壓芯片對系統(tǒng)進(jìn)行供電,由于這個電源可以很容易得到,設(shè)計(jì)中不再單獨(dú)給出。(4)功放模塊 TEA5767音頻輸出具有立體聲方式,也可以采用單聲道輸出,具體方式可以通過編程設(shè)定,為簡化設(shè)計(jì),本設(shè)計(jì)采用單聲道輸出,功放芯片使用TDA2030,供電采用+5V供電,設(shè)計(jì)中不給出電源設(shè)計(jì)。 設(shè)計(jì)既要實(shí)現(xiàn)數(shù)字FM收音機(jī)的基本功能,又要盡量做到簡單廉價,綜合考慮各項(xiàng)因素,以上設(shè)計(jì)方案是可行的。3.單片機(jī)簡介本設(shè)計(jì)采用宏晶科技生產(chǎn)的STC89C52芯片,芯片采用40腳雙列直插式封裝,32個I/O口,芯片工作電壓3.8 5.5V,工作溫度0-70C(商業(yè)級),工作頻率可高達(dá)30MHz,芯片的外形和引腳見下圖(2) 圖(2) STC89C52外形和引腳圖STC89C52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。使用高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(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 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位 定時器/計(jì)數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,STC89C52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個中斷或硬件復(fù)位為止。8 位微控制器 8K字節(jié)在系統(tǒng)可編程 Flash。P0P3口結(jié)構(gòu),第一功能、第二功能請參考數(shù)據(jù)手冊(STC89C52數(shù)據(jù)手冊下載地址)。4.FM芯片簡介4.1 TEA5767芯片簡介FM模塊的控核心芯片采用飛利浦公司的TEA5767數(shù)字立體聲FM芯片,該芯片把所有的FM功能都集成到一個不足6*6平方米的用HVQFN40封裝的小方塊中。芯片工作電壓2.5V5.0V,典型值是3V;RF接收頻率范圍是76108MHz,(最強(qiáng)信號+噪聲)/噪聲的值在60dB左右,失真度在0.4%左右;雙聲道音頻輸出的電壓在6090mV左右,帶寬為22.5KHz。芯片的引腳分布及其引腳定義分別見圖(3)和表(1),圖(4)是芯片的應(yīng)用結(jié)構(gòu)框圖。圖(3)TEA5767芯片引腳分布管腳定義管腳定義1 空腳21空腳2鎖相環(huán)輸出22左聲道輸出3本振23右聲道輸出4本振24軟靜音時間常數(shù)5本振電源25檢波輸出6數(shù)字地26基準(zhǔn)7數(shù)字電源27中頻中心頻率調(diào)整時間常數(shù)8數(shù)據(jù)線28中頻限幅器退藕19時鐘線29中頻限幅退藕210空腳30空腳11三線讀寫控制31空腳12總線模式選擇32增益控制13總線使能端33模擬地14軟口134模擬電源15軟口235射頻輸入116晶振36高頻地17晶振37射頻輸入218相位濾波38高放AGC時間常數(shù)19導(dǎo)頻低通濾波39鎖相環(huán)開關(guān)輸出20空腳40空腳表(1) TEA5767管腳定義圖(4)TEA5767應(yīng)用結(jié)構(gòu)框圖參見內(nèi)部結(jié)構(gòu)框圖,TEA5767主要具有以下特征:(1)集成高靈敏度的低噪聲放大器。(2)FM到中頻的混頻器可以工作在87.5-108MHz的歐美頻段或76-91MHz的日本頻段,并且可預(yù)設(shè)接收日本108MHz的電視音頻信號的能力。(3) 射頻具有自動增益控制功能,并且LC調(diào)諧振蕩器只需固定片裝電感。(4)內(nèi)置的FM解調(diào)器可以省去外部鑒頻器,并且FM的中頻選擇性可以在芯片內(nèi)部完成。(5)可以采用32.768KHz或13MHz的振蕩器產(chǎn)生參考時鐘或可以直接輸入6.5MHz的時鐘信號。(6)集成鎖相環(huán)調(diào)諧系統(tǒng)(7)可以通過I2C或三線串行總線來獲取中頻計(jì)數(shù)器值或接收的高頻信號電平,以便進(jìn)行自動調(diào)諧功能,本設(shè)計(jì)采用第一種方式,詳細(xì)的I2C通信介紹請見第5節(jié)。(8)SNC(立體聲噪音抑制)、HCC(高頻衰減控制)、靜音處理等可以通過串行數(shù)字接口進(jìn)行控制。(9)免費(fèi)調(diào)諧立體聲解碼器。(10)自動調(diào)節(jié)溫度范圍(在VCCA,VCC(VCO)和VCCD=5V)。4.2 TEA5767 寄存器描述吃透芯片的寄存器是編好程序的關(guān)鍵。單片機(jī)和TEA5767進(jìn)行通信有兩種方式,一種是I2C模式,一種是三線模式,本設(shè)計(jì)采用I2C模式,I2C通信協(xié)議操作參見第5章。TEA5767的寄存器一共有五位,數(shù)據(jù)通信的讀寫順序?yàn)椋旱刂窋?shù)據(jù)字節(jié)1數(shù)據(jù)字節(jié)2數(shù)據(jù)字節(jié)3數(shù)據(jù)字節(jié)4數(shù)據(jù)字節(jié)5,下面就對芯片的寄存器進(jìn)行詳細(xì)說明。(1)芯片寄存器地址的格式如下:R/W=0為讀模式;R/W=1為寫模式(2)寫模式下5個數(shù)據(jù)字節(jié)的格式及各位的描述。數(shù)據(jù)字節(jié)1a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)MUTESMPLL13PLL12PLL11PLL10PLL9PLL8表(2)數(shù)據(jù)字節(jié)1字節(jié)格式 b)位描述位號符號描述7MUTE如果 MUTE=1,則左右聲道被靜音;MUTE=0,左右聲道正常工作。6SM如果 SM=1,則處于搜索模式;SM=0,不處于搜索模式。5 到 0PLL13:8設(shè)定用于搜索和預(yù)設(shè)的可編程頻率合成器。表(3)數(shù)據(jù)字節(jié)1位描述數(shù)據(jù)字節(jié)2a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)PLL7PLL6PLL5PLL4PLL3PLL2PLL1PLL0 表(4)數(shù)據(jù)字節(jié)2字節(jié)格式b)位描述位號符號描述7 到 0PLL7:0設(shè)定用于搜索和預(yù)設(shè)的可編程頻率合成器。表(5)數(shù)據(jù)字節(jié)2位描述數(shù)據(jù)字節(jié)3a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)SUDSSL1SSL0HLSIMSMLMRSWP1表(6)數(shù)據(jù)字節(jié)3字節(jié)格式b)位描述位號符號描述7SUDSUD=1,增加頻率搜索;SUD=0,減小頻率搜索。6 和 5SLL1:0搜索停止標(biāo)準(zhǔn):見下表 1。4HLSI高/低充電電流切換:HLSI=1,高充電電流; HLSI=0,低充電電流。3MS立體聲/單聲道:MS=1,單聲道;MS=0,立體聲。2ML左聲道靜音:ML=1,左聲道靜音并置立體聲,ML=0,左聲道正常。1MR右聲道靜音:MR=1,右聲道靜音并置立體聲,MR=0,右聲道正常。0SWP1軟件可編程端口 1:SWP1=1,端口 1 高電平;SWP1=0,端口 1 低電平。表(7)數(shù)據(jù)字節(jié)3位描述注:搜索停止標(biāo)準(zhǔn)設(shè)定SSL1SSL2搜索停止標(biāo)準(zhǔn)00在搜索模式下禁止01低:ADC 輸出大小為 510中:ADC 輸出大小為 711高:ADC 輸出大小為 10 表(8)搜索停止標(biāo)準(zhǔn)數(shù)據(jù)字節(jié)4a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)SWP2STBYBLXTALSMUTEHCCSNCSI表(9)數(shù)據(jù)字節(jié)4字節(jié)格式b)位描述位號符號描述7SWP2軟件可編程端口 2:SWP2=1,端口 2 高電平;SWP2=0,端口 2 低電平。6STBY等待:STBY=1,處于待機(jī)模式,STBY=0,退出待機(jī)模式。5BL波段制式:BL=1,日本調(diào)頻制式;BL=0,美國/歐洲調(diào)頻制式。4XTAL如果 XTAL=1,那么 fxtal=32.768KHz;如果 XTAL=0,那么 fxtal=13MHz。3SMUTE軟件靜音:SMUTE=1,軟靜音打開;SMUTE=0,軟靜音關(guān)閉。2HCC白電平切割:HCC=1,高電平切割打開,HCC=0,高電平切割關(guān)閉。1SNC立體聲噪聲去除:如果 SNC=1,立體聲消噪除打開,如果 SNC=0,立體聲消噪除關(guān)閉。0SI搜索標(biāo)志位:SI=1,SWPORT1 輸出準(zhǔn)備好信號;SI=0,SWPORT1 作為軟件可編程端口 1 用。表(10)數(shù)據(jù)字節(jié)4位描述數(shù)據(jù)字節(jié)5a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)PLLREFDTC-表(11)數(shù)據(jù)字節(jié)5字節(jié)格式b)位描述位號符號描述7PLLREF若 PLLREF=1,6.5MHz 的鎖相環(huán)參考頻率啟用;若 PLLREF=0,6.5MHz 的鎖相環(huán)參考頻率關(guān)閉。6DTC若 DTC=1,去加重時間常數(shù)為 75us;若 DTC=0,去加重時間常數(shù)為 50us。5 到 0-未用,狀態(tài)不必考慮。表(12)數(shù)據(jù)字節(jié)5位描述(3)寫模式下5個數(shù)據(jù)字節(jié)的格式及各位的描述。數(shù)據(jù)字節(jié)1a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)RFBLFPLL13PLL12PLL11PLL10PLL9PLL8表(13)數(shù)據(jù)字節(jié)1字節(jié)格式b)位描述位號符號描述7RF準(zhǔn)備好標(biāo)志:RF=1,有一個頻道被搜到或者一個制式已經(jīng)符合;RF=0,沒有頻道被搜到。6BLF波段制式:BLF=1,一個制式已經(jīng)符合;BLF=0,沒有制式已經(jīng)符合。5 到 0PLL13:8用于搜索和預(yù)設(shè)后的可編程頻率合成器設(shè)定結(jié)果。表(14)數(shù)據(jù)字節(jié)1位描述數(shù)據(jù)字節(jié)2a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)PLL7PLL6PLL5PLL4PLL3PLL2PLL1PLL0表(15)數(shù)據(jù)字節(jié)2字節(jié)格式b)位描述位號符號描述7 到 0PLL7:0設(shè)定用于搜索和預(yù)設(shè)后的可編程頻率合成器設(shè)定結(jié)果。位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)STEREOIF6IF5IF4IF3IF2IF1IF0表(16)數(shù)據(jù)字節(jié)2位描述數(shù)據(jù)字節(jié)3a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)STEREOIF6IF5IF4IF3IF2IF1IF0表(17)數(shù)據(jù)字節(jié)3字節(jié)格式b)位描述位號符號描述7STEREO立體聲標(biāo)志位:STEREO=1,立體聲接收;STEREO=0,單聲道接收。6 到 0IF6:0中頻計(jì)數(shù)器結(jié)果。表(18)數(shù)據(jù)字節(jié)3位描述數(shù)據(jù)字節(jié)4a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)LEV3LEV2LEV1LEV0CI3CI2CI10表(19)數(shù)據(jù)字節(jié)4字節(jié)格式b)位描述位號符號描述7 到 4LEV3:0ADC 的輸出。3 到 1CI3:1芯片驗(yàn)證號。0-該位內(nèi)部置 0。表(20)數(shù)據(jù)字節(jié)4位描述數(shù)據(jù)字節(jié)5a)字節(jié)格式位 7(高位)位 6位 5位 4位 3位 2位 1位 0(低位)00000000表(21)數(shù)據(jù)字節(jié)5字節(jié)格式b)位描述位號符號描述7 到 0-預(yù)留為擴(kuò)展用,由內(nèi)部置 0。表(22)數(shù)據(jù)字節(jié)5位描述在采用I2C協(xié)議進(jìn)行通信時,輸入電壓小于0.2VCCD就被認(rèn)為是高電平,大于0.45VCCD就被認(rèn)為是高電平,高電平和低電平的持續(xù)時間必須要大于1us,在編程模擬I2C協(xié)議時要特別注意到這個時間。4.3 FM模塊介紹在方案設(shè)計(jì)時就已經(jīng)確定FM部分采用按照datasheet推薦的應(yīng)用設(shè)計(jì)電路圖生產(chǎn)的模塊。本設(shè)計(jì)FM模塊采用金秋實(shí)生產(chǎn)的B20C封裝的完整版收音機(jī)模塊,外接引腳只有10個,開發(fā)者只需要關(guān)注引腳而不需要關(guān)注模塊的內(nèi)部結(jié)構(gòu),開發(fā)方便簡單。下圖(5)是模塊的引腳封裝和引腳功能簡介(引出引腳的功能和芯片引腳的定義完全相同)。圖(5)TEA5767模塊引腳圖引腳號符號簡介1ANT天線接口2MPXFM解調(diào)器MPX信號輸出(置空)3R右聲道輸出4L左聲道輸出5GND地6VCC電源正極7WR讀/寫模式(僅三線控制有效)8MODE總線模式選擇(1為三線模式;0為I2C模式)9CLK總線時鐘線輸入10DATA總線數(shù)據(jù)線輸入/輸出表(23)TEA5767引腳定義表5. I2C總線簡介I2C總線是PHLIPS公司推出的一種串行總線,是具備多主機(jī)系統(tǒng)所需的包括總線裁決和高低速器件同步功能的高性能串行總線。它只有兩根雙向信號線,一根是數(shù)據(jù)線SDA,另一根是時鐘線SCL。典型的I2C結(jié)構(gòu)如圖(6)所示圖(6)典型的I2C總線結(jié)構(gòu)I2C總線需通過上拉電阻接正電源,當(dāng)總線空閑時,兩根線均為高電平。連到總線上的任一器件輸出的低電平,都將使總線的信號變低,即各器件的SDA及SCL都是線“與”關(guān)系。每個接到I2C總線上的器件都有唯一的地址。主機(jī)與其它器件間的數(shù)據(jù)傳送可以是由主機(jī)發(fā)送數(shù)據(jù)到其它器件,這時主機(jī)即為發(fā)送器。由總線上接收數(shù)據(jù)的器件則為接收器。在多主機(jī)系統(tǒng)中,可能同時有幾個主機(jī)企圖啟動總線傳送數(shù)據(jù)。為了避免混亂, I2C總線要通過總線仲裁,以決定由哪一臺主機(jī)控制總線。I2C總線的數(shù)據(jù)字節(jié)必需保證是8位長度。數(shù)據(jù)傳送時,先傳送最高位(MSB),每一個被傳送的字節(jié)后面都必須跟隨一位應(yīng)答位(即一幀共有9位)。 圖(7)是I2C總線字節(jié)傳送與應(yīng)答時序 圖(7)I2C總線字節(jié)傳送與應(yīng)答時序由于某種原因從機(jī)不對主機(jī)尋址信號應(yīng)答時(如從機(jī)正在進(jìn)行實(shí)時性的處理工作而無法接收總線上的數(shù)據(jù)),它必須將數(shù)據(jù)線置于高電平,而由主機(jī)產(chǎn)生一個終止信號以結(jié)束總線的數(shù)據(jù)傳送。如果從機(jī)對主機(jī)進(jìn)行了應(yīng)答,但在數(shù)據(jù)傳送一段時間后無法繼續(xù)接收更多的數(shù)據(jù)時,從機(jī)可以通過對無法接收的第一個數(shù)據(jù)字節(jié)的“非應(yīng)答”通知主機(jī),主機(jī)則應(yīng)發(fā)出終止信號以結(jié)束數(shù)據(jù)的繼續(xù)傳送。當(dāng)主機(jī)接收數(shù)據(jù)時,它收到最后一個數(shù)據(jù)字節(jié)后,必須向從機(jī)發(fā)出一個結(jié)束傳送的信號。這個信號是由對從機(jī)的“非應(yīng)答”來實(shí)現(xiàn)的。然后,從機(jī)釋放SDA線,以允許主機(jī)產(chǎn)生終止信號。I2C總線上傳送的數(shù)據(jù)信號是廣義的,既包括地址信號,又包括真正的數(shù)據(jù)信號。在起始信號后必須傳送一個從機(jī)的地址(7位),第8位是數(shù)據(jù)的傳送方向位(R/T),用“0”表示主機(jī)發(fā)送數(shù)據(jù)(T),“1”表示主機(jī)接收數(shù)據(jù)(R)。每次數(shù)據(jù)傳送總是由主機(jī)產(chǎn)生的終止信號結(jié)束。但是,若主機(jī)希望繼續(xù)占用總線進(jìn)行新的數(shù)據(jù)傳送,則可以不產(chǎn)生終止信號,馬上再次發(fā)出起始信號對另一從機(jī)進(jìn)行尋址。 在總線的一次數(shù)據(jù)傳送過程中,可以有以下三種組合方式:(1)主機(jī)向從機(jī)發(fā)送數(shù)據(jù),數(shù)據(jù)傳送方向在整個傳送過程中不變:注:有陰影部分表示數(shù)據(jù)由主機(jī)向從機(jī)傳送,無陰影部分則表示數(shù)據(jù)由從機(jī)向主機(jī)傳送。 A表示應(yīng)答, A非表示非應(yīng)答(高電平)。S表示起始信號,P表示終止信號(下同)。(2)主機(jī)在第一個字節(jié)后,立即從從機(jī)讀數(shù)據(jù)(3)在傳送過程中,當(dāng)需要改變傳送方向時,起始信號和從機(jī)地址都被重復(fù)產(chǎn)生一次,但兩次讀/寫方向位正好反相。I2C總線的尋址在協(xié)議有明確的規(guī)定:采用7位的尋址字節(jié)(尋址字節(jié)是起始信號后的第一個字節(jié)),尋址字節(jié)的位定義如下其中D7D1位組成從機(jī)的地址。D0位是數(shù)據(jù)傳送方向位,為“0”時表示主機(jī)向從機(jī)寫數(shù)據(jù),為“1”時表示主機(jī)由從機(jī)讀數(shù)據(jù)。主機(jī)發(fā)送地址時,總線上的每個從機(jī)都將這7位地址碼與自己的地址進(jìn)行比較,如果相同,則認(rèn)為自己正被主機(jī)尋址,根據(jù)R/T位將自己確定為發(fā)送器或接收器。從機(jī)的地址由固定部分和可編程部分組成。在一個系統(tǒng)中可能希望接入多個相同的從機(jī),從機(jī)地址中可編程部分決定了可接入總線該類器件的最大數(shù)目。由于本設(shè)計(jì)采用的STC89C52單片機(jī)沒有I2C總線接口,所以要通過模擬來實(shí)現(xiàn),利用軟件實(shí)現(xiàn)I2C總線的數(shù)據(jù)傳送,即軟件與硬件結(jié)合的信號模擬。為了保證數(shù)據(jù)傳送的可靠性,標(biāo)準(zhǔn)的I2C總線數(shù)據(jù)傳送有嚴(yán)格的時序要求。I2C總線的起始信號、終止信號、發(fā)送“0”及發(fā)送“1”的模擬時序如下圖(8)所示1。模擬I2C總線數(shù)據(jù)傳輸?shù)某绦蛞?圖(8)I2C總線數(shù)據(jù)傳送模擬時序6.硬件電路設(shè)計(jì) 按照設(shè)計(jì)方案,系統(tǒng)硬件電路由電源部分、微控制器部分和FM模塊部分組成,下面的介紹將分塊對電路進(jìn)行設(shè)計(jì),其中電源部分由于6.1電路原理圖(1)微控制器部分 微控制器部分以STC89C52為核心,包括復(fù)位電路,晶振電路和按鍵控制電路,特別注意的是電源輸入要加上去藕電容,電路原理圖見下圖(9) 圖(9)微控制器模塊原理圖(2)TEA5767模塊部分原理圖 如圖(10)所示,R2、R3是I2C數(shù)據(jù)線和時鐘線的上拉電阻,C5是天線的匹配電容,天線用30cm左右的銅導(dǎo)線代替。E1是外接天線,C6、C7和R4、R5構(gòu)成音頻輸出網(wǎng)絡(luò),8腳接地,選擇為工作模式。模塊10腳接單片機(jī)P2.0,模塊9腳接芯片P2.1圖(10)TEA5767模塊部分原理圖(3)功放模塊原理圖 功放部分采用TDA2030單聲道A類音頻放大芯片,電路原理圖如下所示:圖(11)功放電路原理圖(3)電路總原理圖圖(12)電路總原理圖6.2 電路裝配注意事項(xiàng)設(shè)計(jì)就采用普通的萬用版進(jìn)行裝配,在裝配時要注意以下幾點(diǎn):(1)晶振部分要緊靠著芯片引腳,導(dǎo)線要盡量粗,在焊接時采用用焊錫鋪粗來處理(2)電源輸入一定要添加去耦電容(3)TEA5767模塊和單片機(jī)引腳的距離盡量靠近,SDA線和CLK線業(yè)盡量鋪粗。(4)天線安裝盡量靠近芯片引腳,一定要加上匹配電容。(5)模擬線和數(shù)據(jù)線盡量要分開,設(shè)計(jì)采用元器件面走數(shù)字線,焊接面走模擬線的方法處理。7.軟件設(shè)計(jì)軟件采用可移植性強(qiáng)的C語言程序來設(shè)計(jì),主要由兩大部分組成,一個是模擬I2C總線程序,一個是對芯片寄存器進(jìn)行操作的主程序。對芯片寄存器進(jìn)行操作的關(guān)鍵是設(shè)置接收頻率,接收頻率設(shè)置參數(shù)可以通過以下式子得到:FRF:接收頻率(kHz)FIR:中頻(TEA5767為225kHz)FREFS :參考頻率(由TEA5767外接晶振而定),本設(shè)計(jì)外接32.768kHZ的晶振。7.1軟件設(shè)計(jì)思想軟件設(shè)計(jì)的核心是單片機(jī)與TEA5767進(jìn)行通信,寫入相關(guān)參數(shù)控制無線模塊運(yùn)行。本設(shè)計(jì)只實(shí)現(xiàn)基本功能,即實(shí)現(xiàn)TEA5767的頻率選擇,不實(shí)現(xiàn)音量控制、電臺儲存和頻率顯示。為了便于設(shè)計(jì)觀察,在程序設(shè)計(jì)時編寫了串口通信協(xié)議,頻率可以通過串口調(diào)試軟件顯示出來,但是在設(shè)計(jì)硬件的時候沒有加入串口,所以這個程序只是供設(shè)計(jì)參考。根據(jù)設(shè)計(jì)要求,系統(tǒng)實(shí)現(xiàn)電臺搜索和串口讀出,軟件設(shè)計(jì)的流程圖如下:檢測按鍵是否有按鍵按下讀按鍵開 始按s1鍵按s2鍵按s3鍵按s4鍵當(dāng)前頻率值減單位步長當(dāng)前頻率值減單位步長當(dāng)前頻率值減單位步長當(dāng)前頻率值減單位步長讀ADC的幅度讀ADC的幅度讀ADC的幅度讀ADC的幅度度大于門限?讀ADC的幅度大于門限?讀中頻計(jì)數(shù)器的值是否中頻大于225K?串口讀出讀中頻計(jì)數(shù)器的值NYNNNNYYY圖(13)軟件設(shè)計(jì)流程圖7.2程序設(shè)計(jì)根據(jù)軟件流程圖,寫出相應(yīng)的程序如下:(1)主程序:#include #include #include #include #include uart.h/添加串口頭文件#include I2C.h/添加I2C頭文件sbit s1=P34; /手動減小鍵P3.4口sbit s2=P35; /手動增加鍵P3.5口sbit s3=P36; /自動減小鍵P3.6口sbit s4=P37; /自動增加鍵P3.7口#define max_freq 108000/最大接收頻率108MHz,這里的單位采用的是KHz#define min_freq 87500/最小接收頻率87.5MHzunsigned int max_pll=0x339b; /108MHz時的pll,芯片內(nèi)部寄存器有14位用于設(shè)置頻率unsigned int min_pll=0x299d; /87.5MHz時的pll.unsigned char radio_write_data5=0x2a,0xb6,0x40,0x11,0x40; /要寫入TEA5767的數(shù)據(jù),數(shù)據(jù)字節(jié)1是0x2a,左右聲道正常工作,不采用搜索模式/第一字節(jié)后六位和第二字節(jié)為pll頻率設(shè)定,初始頻率設(shè)定為89.8MHz;第三字節(jié)0x40設(shè)/定搜索停止標(biāo)準(zhǔn),ADC輸出大小為7時停止搜索,第四字節(jié)0x11,晶振設(shè)定為/32.786MHz;SWPORT1輸出準(zhǔn)備好信號;第五字節(jié),6.5MHz鎖相環(huán)參考頻率關(guān)閉。unsigned char radio_read_data5; /TEA5767讀出的狀態(tài)unsigned long frequency;unsigned int pll;void delay_ms(unsigned int i) /us延時函數(shù) unsigned int j,k; for(j=i;j0;j-) for(k=125;k0;k-);/延時片刻后通過i2c寫入數(shù)據(jù)void radio_write(void) unsigned char i; iic_start(); iic_write8bit(0xc0); /TEA5767寫地址 if(!iic_testack() for(i=0;i5;i+) iic_write8bit(radio_write_datai); iic_ack();/每發(fā)送一個字節(jié)都要進(jìn)行總線應(yīng)答測試 iic_stop(); /由頻率計(jì)算PLLvoid get_pll(void) unsigned char hlsi; unsigned int twpll=0; hlsi=radio_write_data2&0x10; if (hlsi) pll=(unsigned int)(float)(frequency+225)*4)/(float)32.768); /頻率單位:khz else pll=(unsigned int)(float)(frequency-225)*4)/(float)32.768); /頻率單位:khz/由PLL計(jì)算頻率void get_frequency(void) unsigned char hlsi; unsigned int npll=0; npll=pll; hlsi=radio_write_data2&0x10; if (hlsi) frequency=(unsigned long)(float)(npll)*(float)8.192-225); /頻率單位:KHz else frequency=(unsigned long)(float)(npll)*(float)8.192+225); /頻率單位:KHz/讀TEA5767狀態(tài),并轉(zhuǎn)換成頻率void radio_read(void) unsigned char i; unsigned char temp_l,temp_h; pll=0; iic_start(); iic_write8bit(0xc1); /TEA5767讀地址 if(!iic_testack() for(i=0;imax_freq) frequency=min_freq;/如果超過最高頻率,那么就回到最低頻率重新搜索 else frequency-=10; if(frequencymax_freq) frequency=min_freq; else radio_write_data2=0x41; frequency-=20; if(frequencymin_freq) frequency=max_freq; get_pll(); radio_write_data0=pll/256+0x40; /加0x40是將SM置為1 為自動搜索模式 radio_write_data1=pll%256; radio_write_data3=0x11; /SSL1和SSL0控制搜索停止條件 radio_write_data4=0x40; radio_write(); radio_read(); while(!(radio_read_data0&0x80) /搜臺成功標(biāo)志 radio_read(); void main() P3=0xff; UART_Init(); radio_write(); while(1) if(s1=0) delay_ms(1);/按鍵去抖動 if(s1=0) while(s1=0); search(0); send_fre(frequency); if(s2=0) delay_ms(1); if(s2=0) while(s2=0); search(1); send_fre(frequency); if(s3=0) delay_ms(1); if(s3=0) auto_search(0); send_fre(frequency); if(s4=0) delay_ms(1); if(s4=0) auto_search(1); send_fre(frequency); (2)模擬I2C總線協(xié)議程序sbit SDA=P20;/數(shù)據(jù)輸出接口定義為2.4口sbit SCL=P21;/時鐘輸出接口定義為2.1口void Delayus(unsigned int number) while(number-);void DelayMs(unsigned int number) unsigned char temp; for(;number!=0;number-) for(temp=112;temp!=0;temp-); void iic_start() SDA=1; Delayus(4); SCL=1; Delayus(4); SDA=0; Delayus(4); SCL=0; Delayus(4);void iic_stop() SCL=0; Delayus(4); SDA=0; Delayus(4); SCL=1; Delayus(4); SDA=1; Delayus(4);void iic_ack() SDA=0; Delayus(4); SCL=1; Delayus(4); SCL=0; Delayus(4); SDA=1; Delayus(4);void iic_NoAck() SDA=1; Delayus(4); SCL=1; Delayus(4); SCL=0; Delayus(4); SDA=0;bit iic_testack() bit ErrorBit; SDA=1; Delayus(4); SCL=1; Delayus(4); ErrorBit=SDA; Delayus(4); SCL=0; return ErrorBit;void iic_write8bit(unsigned char input) unsigned char temp; for(temp=8;temp!=0;temp-) SDA=(bit)(input&0x80); Delayus(4); SCL=1; Delayus(4); SCL=0; Delayus(4); input=input1; unsigned char iic_read8bit() unsigned char temp,rbyte=0; for(temp=8;temp!=0;temp-) SCL=1; Delayus(4); rbyte=rbyte1; rbyte=rbyte|(unsigned char)SDA); SCL=0; return rbyte; (3)串口通信頭文件程序(參考)/UART 相關(guān)函數(shù)-/*-函數(shù)名:UART_Init()功能: 串口初始化 通訊有關(guān)參數(shù)初始化 將串口波特率設(shè)定為9600bps-*/void UART_Init() /* 通訊有關(guān)參數(shù)初始化 */ PCON&=0x7f; TH1=0xfd; /* T1 use sio */ TL1=0xfd; /* 選擇通訊速率*/ TMOD=0x21; /* T1=MODE2, T0=MODE1,16bit,use time */
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒英語教學(xué)26個英文字母課件
- 幼兒園班級管理課件
- 2025年福建省中考道德與法治試卷真題(含標(biāo)準(zhǔn)答案)
- 2024-2025學(xué)年下學(xué)期高一生物人教版期末必刷??碱}之基因表達(dá)與性狀的關(guān)系
- 部編版一年級下冊識字(二)《操場上》教案
- 建筑施工特種作業(yè)-建筑焊工真題庫-4
- 入團(tuán)面試稿子題目及答案
- 9 1 計(jì)數(shù)原理 排列與組合-高考數(shù)學(xué)真題分類 十年高考
- 2025屆安徽省池州市普通高中高三教學(xué)質(zhì)量統(tǒng)一檢測語文試題(解析版)
- 自貢統(tǒng)計(jì)年鑒-2009-價格指數(shù)主要統(tǒng)計(jì)指標(biāo)解釋
- GB/T 44192-2024政務(wù)服務(wù)便民熱線數(shù)據(jù)應(yīng)用指南
- 安徽省池州市貴池區(qū)2023-2024學(xué)年七年級下學(xué)期末歷史試卷
- 酒店運(yùn)營管理 智慧樹知到期末考試答案章節(jié)答案2024年山東青年政治學(xué)院
- (高清版)JTG 3810-2017 公路工程建設(shè)項(xiàng)目造價文件管理導(dǎo)則
- 一人出資一人出力合伙協(xié)議范本完整版
- 國家基層糖尿病神經(jīng)病變診治指南(2024版)
- 長安汽車使用說明書
- 肺栓塞診斷與治療指南
- 幼兒園課程故事開展培訓(xùn)
- JJG 62-2017 塞尺行業(yè)標(biāo)準(zhǔn)
- (高清版)DZT 0017-2023 工程地質(zhì)鉆探規(guī)程
評論
0/150
提交評論