• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      AVR單片機(jī)的調(diào)頻立體聲收音機(jī)設(shè)計*

      2014-09-06 10:49:58何乃味
      關(guān)鍵詞:收音收音機(jī)字節(jié)

      何乃味

      (柳州職業(yè)技術(shù)學(xué)院, 柳州 545006)

      ?

      何乃味

      (柳州職業(yè)技術(shù)學(xué)院, 柳州 545006)

      介紹一種以低功耗單片機(jī)ATmega8L為控制核心,以RDA5807P芯片作為FM接收器的調(diào)頻收音機(jī)。該收音機(jī)通過單片機(jī)ATmega8L的I2C總線接口讀寫RDA5807P收音模塊的數(shù)據(jù),用按鍵及紅外遙控器進(jìn)行搜臺、音量調(diào)節(jié)等操作。用LCD顯示接收頻道的頻率,當(dāng)前音量大小等信息。設(shè)計中給出了實現(xiàn)FM調(diào)頻收音機(jī)的硬件電路、讀/寫RDA5807P收音模塊及紅外遙控解碼程序的思路。經(jīng)多次比對測試,該收音機(jī)可以清晰、穩(wěn)定地收聽省府及本地發(fā)射的所有調(diào)頻電臺。

      AVR單片機(jī);調(diào)頻立體聲收音機(jī);I2C總線;紅外遙控

      引 言

      早期的數(shù)字FM處理芯片TEA5767[3-4]由Philips公司開發(fā)并被廣泛地使用,但該芯片需要外加音頻放大電路才能驅(qū)動耳機(jī)。鑒于此,國內(nèi)銳迪科微電子公司獨立開發(fā)了一顆具備高接收靈敏度的FM立體聲數(shù)字芯片RDA5807P,具有自動搜臺、重低音、靜音、休眠、直接驅(qū)動耳機(jī)等優(yōu)異的性能。本文介紹用RDA5807P芯片設(shè)計和制作了一款帶遙控功能的收音機(jī)。

      1 收音機(jī)總體設(shè)計方案

      收音機(jī)的總體設(shè)計框圖如圖1所示。本收音機(jī)采用單節(jié)3.7 V、容量1500 mAh的鋰電池作為電源,在使用壽命期內(nèi)可以用手機(jī)充電器反復(fù)對它進(jìn)行充電,使用非常方便。采用低功耗的AVR單片機(jī)ATmega8L作為微控制器,負(fù)責(zé)處理和協(xié)調(diào)各模塊電路的工作,ATmega8L的工作電壓為2.7 ~5.5 V,片內(nèi)有512字節(jié)的EEPROM,不用專門外接EEPROM芯片就可以將掉電前接收電臺的頻道和音量信息保存起來,重新開機(jī)后又可以恢復(fù)原來的信息。調(diào)頻收音機(jī)模塊采用國產(chǎn)芯片RDA5807P加上少量的外圍元件組成,由微控制器通過I2C總線接口對芯片內(nèi)部寄存器進(jìn)行寫/讀操作。通過鍵盤或紅外遙控發(fā)射器可以進(jìn)行自動搜臺、手動選臺、音量調(diào)節(jié)、靜音操作。LCD用于顯示當(dāng)前收聽電臺的頻率、音量等級等信息。音頻功率放大器放大當(dāng)前收聽電臺的音頻信號,驅(qū)動揚(yáng)聲器發(fā)出聲音。

      圖1 收音機(jī)總體設(shè)計框圖

      2 系統(tǒng)硬件電路設(shè)計

      2.1 電源管理模塊電路設(shè)計

      電源管理模塊電路如圖2所示。LM2054是一款單節(jié)鋰電池恒流、恒壓線性充電芯片,最大充電電流可達(dá)到800 mA。它只需外接極少的外部元件,預(yù)設(shè)4.2 V充電電壓,精度達(dá)到±1%。充電時,若鋰電池電壓低于4.2 V,充電指示燈D101亮,充電達(dá)到預(yù)設(shè)值4.2 V后指示燈D101熄滅。

      圖2 電源管理模塊電路

      2.2 微控制器及鍵盤、顯示、紅外遙控接收電路設(shè)計

      微控制器及鍵盤、顯示、紅外遙控接收電路如圖3所示。

      圖3 微控制器及鍵盤、顯示、紅外遙控接收模塊電路

      鍵盤K1~K6用于選頻、音量調(diào)節(jié)等。紅外遙控接收頭連接到單片機(jī)ATmega8L的PB0,用單片機(jī)的輸入捕獲功能進(jìn)行解碼。為了減少液晶顯示器LCD1602A占用單片機(jī)過多的I/O口,數(shù)據(jù)接口只使用高4位,在寫入命令或數(shù)據(jù)時,分兩次寫入,先寫高4位,再寫低4位。為了降低LCD的用電量,LCD的背光燈用單片機(jī)的PD3和PC1進(jìn)行控制,當(dāng)用戶設(shè)置好想收聽的電臺,5 s后LCD背光燈自動熄滅。

      2.3 調(diào)頻收音模塊電路設(shè)計

      調(diào)頻收音模塊電路如圖4 所示。RDA5807P是國產(chǎn)的FM立體聲收音機(jī)接收芯片,加上極少的外圍元件且基本不需要校準(zhǔn),通過程序設(shè)定即可接收歐洲、美國和日本的調(diào)頻波段[2-3]。單片機(jī)通過I2C總線SCL和SDA將訪問RDA5807P芯片所需的地址、命令、數(shù)據(jù)寫入內(nèi)部的寄存器中,也可以通過該總線讀出芯片內(nèi)部寄存器中的數(shù)據(jù),取得接收頻道的數(shù)據(jù)和音量值,供顯示使用。RDA5807P的輸出經(jīng)磁珠F301、F302及電容器C303、C304抑制高頻干擾后,可以直接驅(qū)動32 Ω的耳機(jī)發(fā)出聲音,也可以接到下級音頻功放進(jìn)行放大,推動揚(yáng)聲器發(fā)出聲音。

      圖4 調(diào)頻收音模塊電路

      2.4 音頻功率放大電路設(shè)計

      圖5 音頻功率放大器模塊電路

      2.5 紅外發(fā)射模塊電路設(shè)計

      紅外遙控發(fā)射器電路[5]如圖6所示。BA5104是一塊紅外遙控編碼芯片,內(nèi)接有上拉電阻,無鍵按下時,電路中無電流流通,振蕩電路不起振,無遙控編碼信號輸出。當(dāng)有某一鍵按下時,電路產(chǎn)生455 kHz的振蕩信號,由BA5104內(nèi)部電路進(jìn)行12分頻,獲得38 kHz的載波信號。此時按鍵的編碼信息和C1、C2引腳的狀態(tài)信息對38 kHz載波進(jìn)行編碼調(diào)制,經(jīng)15引腳串行輸出,由三極管Q501、Q502構(gòu)成的達(dá)靈頓驅(qū)動電路放大,經(jīng)外發(fā)射管向空間發(fā)射,同時14引腳輸出高電平,發(fā)射狀態(tài)指示燈D501點亮。

      圖6 紅外遙控發(fā)射模塊電路

      3 系統(tǒng)軟件程序設(shè)計

      軟件程序設(shè)計主要包括讀寫RDA5807P芯片相關(guān)的模塊程序、頻率及音量顯示模塊程序、按鍵檢測與功能設(shè)定模塊程序、遙控解碼及功能設(shè)定模塊程序等。本設(shè)計選用CodeVisionAVR作為開發(fā)軟件,軟件中集成有LCD1602、I2C總線驅(qū)動程序,不用再編寫相應(yīng)的底層函數(shù),使用非常方便。故在此僅介紹RDA5807P芯片工作在RDA5807P 模式及采用I2C總線接口進(jìn)行搜臺的程序設(shè)計和紅外遙控解碼程序的設(shè)計。

      3.1 搜臺程序設(shè)計

      搜臺程序可用硬件模式進(jìn)行搜臺,也可以采用軟件模式進(jìn)行搜臺。本文著重介紹硬件模式搜臺,軟件模式搜臺可參照硬件搜臺模式進(jìn)行編程。

      I2C總線接口是由START、命令字節(jié)、數(shù)據(jù)字節(jié)及每個字節(jié)后的ACK及NACK比特、STOP組成。RDA58027P芯片寫器件地址為0x20,讀器件地址為0x21。RDA5807P芯片內(nèi)部的I2C總線接口有4個寫數(shù)據(jù)寄存器,其地址分別是0x02、0x03、0x04、0x05。2個讀數(shù)據(jù)寄存器,其地址分別為0x0A、0x0B,每個數(shù)據(jù)寄存器又分為高字節(jié)和低字節(jié)。這些數(shù)據(jù)寄存器的地址是不可見的,不能通過單片機(jī)直接對指定地址的數(shù)據(jù)寄存器進(jìn)行讀/寫操作。因此,單片機(jī)在發(fā)出讀/寫命令字節(jié)后,接下來必須對數(shù)據(jù)寄存器進(jìn)行連續(xù)地讀/寫操作。其子程序如下:

      //收音模塊寄存器連續(xù)寫操作子程序//

      void RDA5807P_write_reg(void){

      unsigned char i;

      i2c_start();

      //發(fā)起始信號

      i2c_write(RDA5807P_ADDRESS); //寫器件地址

      for(i=0;i<8;i++) //收音模塊連續(xù)寫操作

      {i2c_write(RDA5807P_reg_data[i]);}

      i2c_stop(); //發(fā)停止信號

      }

      //收音模塊寄存器連續(xù)讀操作子程序//

      void RDA5807P_read_reg(unsigned char *reg_buf){

      i2c_start(); // 發(fā)起始信號

      i2c_write(RDA5807P_ADDRESS|1);

      //收音模塊連續(xù)讀操作

      reg_buf[0]=i2c_read(1);

      //讀一個字節(jié)數(shù)據(jù),返回ACK

      reg_buf[1]=i2c_read(1);

      //讀一個字節(jié)數(shù)據(jù),返回ACK

      reg_buf[2]=i2c_read(1);

      //讀一個字節(jié)數(shù)據(jù),返回ACK

      reg_buf[3]=i2c_read(0);

      //讀一個字節(jié)數(shù)據(jù),返回NO ACK

      i2c_stop(); //發(fā)停止信號

      }

      硬件模式搜臺程序設(shè)計主要是通過調(diào)用連續(xù)寫和連續(xù)讀操作子程序來對收音模塊寄存器進(jìn)行讀/寫,其程序流程圖如圖7所示。

      圖7 硬件模式搜臺程序流程圖

      根據(jù)該流程圖編寫的子程序如下:

      //收音模塊硬件模式搜臺子程序

      void RDA5807P_FM_seek(void){

      unsigned int chan,temp;

      //reg_data[4]用于保存讀取0x0A,0x0B寄 //存器時的數(shù)據(jù)

      unsigned char reg_data[4]={0x00,0x00,0x00,0x00};

      RDA5807P_reg_data[3]&=~(1<<4);

      //TUNE置0,調(diào)諧禁用

      RDA5807P_reg_data[0]|=(1<<0);

      //SEEK位置1,允許自動搜臺

      RDA5807P_write_reg(); //調(diào)用連續(xù)寫字節(jié)函數(shù)

      while(0==(reg_data[0]&0x40)){

      //等待0x0A寄存器中STC標(biāo)志置位

      delay_ms(20);

      RDA5807P_read_reg(reg_data);

      //讀取0x0A寄存器的狀態(tài)

      }

      chan=reg_data[0]&0x03; //獲取當(dāng)前工作頻點

      chan=reg_data[1]|(chan<<8);

      chan=chan<<6;

      RDA5807P_reg_data[2]=(chan>>8)&0xff;

      //保存當(dāng)前工作頻點

      RDA5807P_reg_data[3]=(chan&0xff);

      //調(diào)用連續(xù)寫字節(jié)函數(shù)

      temp=(RDA5807P_reg_data[2]<<8)+(RDA5807P_reg_data[3]&0xc0);

      temp=temp>>6;

      frequency=(unsigned long)(100*temp+87000)/100;

      //計算當(dāng)前頻率值并保存

      }

      3.2 紅外遙控解碼程序設(shè)計

      由BA5104的編碼格式[5]可知:遙控碼的一幀長度為12位,其中包括3位起始碼、2位用戶碼、7位指令碼。遙控碼的每一幀時間間隔為4T,T=1.6879 ms為一位遙控碼的周期。一幀完整的遙控碼如圖8所示。

      圖8 一幀遙控碼

      遙控碼中“1”用3T/4的高電平與T/4的低電平表示,“0”用T/4的高電平與3T/4的低電平表示,一位遙控碼的波形[6]如圖9所示。

      圖9 一位遙控碼

      由圖9可見,要用單片機(jī)來判斷遙控發(fā)射器發(fā)出的是“0”還是“1”,關(guān)鍵是要判斷接收脈沖下降沿至上升沿之間的時間??梢圆捎猛獠恐袛喾?,也可以采用輸入捕獲功能法[6],本文采用后一種方法。解碼的思路是:初始化時,將ATmega8L的ICP1引腳設(shè)置為輸入狀態(tài),下降沿觸發(fā),當(dāng)紅外接收頭接收到紅外遙控信號時,產(chǎn)生下降沿,單片機(jī)自動將TCNT1寄存器中的值保存至ICR1寄存器中,在捕獲中斷服務(wù)程序中將ICR1中的值保存至T1中;然后將ICP1設(shè)置為上升沿觸發(fā),當(dāng)再次產(chǎn)生捕獲中斷時,將ICR1中的值保存至T2中,將ICP1設(shè)置為下降沿觸發(fā),并將TCNT1置0。之后計算出T2-T1的時間并保存至事先開辟的數(shù)組中,要注意的是,T2-T1有可能出現(xiàn)負(fù)值,此時要將(T2-T1+0xffff)再保存,直到接收完12位數(shù)據(jù)。ICP1中斷服務(wù)程序流程圖略——編者注。

      保存在數(shù)組中的數(shù)據(jù),當(dāng)其值為3/4×1.687 9ms≈1 266μs 時,被認(rèn)為接收到“1”,當(dāng)其值為1/4×1.687 9 ms≈422 μs時,被認(rèn)為接收到“0”。由于遙控發(fā)射器和單片機(jī)所使用的晶振頻率與標(biāo)稱值會有一定的偏差,所以在程序中要留有一定的余量。識別“0”和“1”的程序流程圖略——編者注。

      結(jié) 語

      經(jīng)過多次比對測試,該收音機(jī)可以清晰、穩(wěn)定地收聽省府及本地所發(fā)射的調(diào)頻電臺信號。

      [1] 肖慧超,王英坤.基于ARM Cortex-M3內(nèi)核收音機(jī)模塊的實現(xiàn)[J].微計算機(jī)信息(嵌入式與SOC),2009(25):125-126.

      [2] 藍(lán)土慶,黃春貴.基于單片機(jī)和TEA5767HN的FM收音機(jī)系統(tǒng)的設(shè)計[J].現(xiàn)代電子技術(shù),2011(34):181-183.

      [3] 蘆貺.基于TEA5767的USB調(diào)頻收音機(jī)設(shè)計[J].深圳職業(yè)技術(shù)學(xué)院學(xué)報,2010(9):12-17.

      [4] 林鋒,孫軍. 采用TEA5767的調(diào)頻收音電路設(shè)計[J].電聲技術(shù),2005(4):34-37.

      [5] 包書祥. 8通道紅外遙控集成電路BA5104/SM5032C[J].電子制作,2005(7):43-44.

      [6] 何乃味. 紅外遙控芯片BA5104的軟件解碼方法探討[J].電子設(shè)計工程,2012(20):16-18.

      [7] 馬潮. AVR單片機(jī)嵌入式系統(tǒng)原理與應(yīng)用實踐[M].北京:北京航空航天大學(xué)出版社,2007.

      何乃味(講師),研究方向為電子技術(shù)應(yīng)用與嵌入式系統(tǒng)應(yīng)用。

      He Naiwei

      (Liuzhou Vocational&Technical College,Liuzhou 545006,China)

      This article describes a kind of FM radio which its controlling core is a low-power microcontroller ATmega8L and the MCU’s receiver is RDA5807P chip . The radio can read and write RDA5807P radio module through the I2C data interface of by the microcontroller ATmega8L .The radio can conduct search, volume control and other operations with buttons , LCD displays the frequency receiver channels and the current volume size and other information.The design are gives the realization FM radio hardware circuit, the read / write RDA5807P radio module and an infrared remote control decoding program ideas. After several comparison tests, the results show that the radio can be listened to all the FM radio that provincial and local emission clearly and stably.

      AVR MCU; FM stereo radio; I2C; infrared remote control

      廣西教育廳2013年科研立項項目(項目編號:2013LX224)。

      TIP216

      A

      迪娜

      2014-01-06)

      猜你喜歡
      收音收音機(jī)字節(jié)
      #拍攝視頻 你有多在意收音效果?#
      攝影之友(2023年12期)2023-12-31 14:34:40
      # 拍攝視頻 你有多在意收音效果?#
      攝影之友(2023年12期)2023-03-24 02:34:05
      No.8 字節(jié)跳動將推出獨立出口電商APP
      這是一臺獨一無二的收音機(jī)
      好日子(2020年8期)2020-08-29 13:33:24
      兼具藍(lán)牙和收音機(jī)功能 Cambridge Audio(劍橋)AXR85
      實車收音效果測試與優(yōu)化方法
      No.10 “字節(jié)跳動手機(jī)”要來了?
      流淌在歲月里的音符 4款多功能收音機(jī)賞析
      簡談MC7字節(jié)碼
      靜音鉆
      大英县| 东丽区| 防城港市| 阜南县| 北宁市| 永昌县| 慈利县| 营口市| 大庆市| 正宁县| 盖州市| 苏尼特右旗| 高尔夫| 竹溪县| 苗栗市| 屏南县| 龙胜| 建阳市| 浪卡子县| 宜兴市| 喜德县| 涿州市| 南阳市| 仲巴县| 铁岭县| 定远县| 宁夏| 新竹市| 洪泽县| 武城县| 徐闻县| 会泽县| 枞阳县| 西华县| 泸州市| 定结县| 吉木萨尔县| 鄄城县| 南城县| 铜陵市| 嘉祥县|