999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

AVR單片機的調頻立體聲收音機設計*

2014-09-06 10:49:58何乃味
單片機與嵌入式系統應用 2014年5期
關鍵詞:單片機

何乃味

(柳州職業技術學院, 柳州 545006)

?

何乃味

(柳州職業技術學院, 柳州 545006)

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

AVR單片機;調頻立體聲收音機;I2C總線;紅外遙控

引 言

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

1 收音機總體設計方案

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

圖1 收音機總體設計框圖

2 系統硬件電路設計

2.1 電源管理模塊電路設計

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

圖2 電源管理模塊電路

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

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

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

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

2.3 調頻收音模塊電路設計

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

圖4 調頻收音模塊電路

2.4 音頻功率放大電路設計

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

2.5 紅外發射模塊電路設計

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

圖6 紅外遙控發射模塊電路

3 系統軟件程序設計

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

3.1 搜臺程序設計

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

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

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

void RDA5807P_write_reg(void){

unsigned char i;

i2c_start();

//發起始信號

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

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

{i2c_write(RDA5807P_reg_data[i]);}

i2c_stop(); //發停止信號

}

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

void RDA5807P_read_reg(unsigned char *reg_buf){

i2c_start(); // 發起始信號

i2c_write(RDA5807P_ADDRESS|1);

//收音模塊連續讀操作

reg_buf[0]=i2c_read(1);

//讀一個字節數據,返回ACK

reg_buf[1]=i2c_read(1);

//讀一個字節數據,返回ACK

reg_buf[2]=i2c_read(1);

//讀一個字節數據,返回ACK

reg_buf[3]=i2c_read(0);

//讀一個字節數據,返回NO ACK

i2c_stop(); //發停止信號

}

硬件模式搜臺程序設計主要是通過調用連續寫和連續讀操作子程序來對收音模塊寄存器進行讀/寫,其程序流程圖如圖7所示。

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

根據該流程圖編寫的子程序如下:

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

void RDA5807P_FM_seek(void){

unsigned int chan,temp;

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

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

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

//TUNE置0,調諧禁用

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

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

RDA5807P_write_reg(); //調用連續寫字節函數

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

//等待0x0A寄存器中STC標志置位

delay_ms(20);

RDA5807P_read_reg(reg_data);

//讀取0x0A寄存器的狀態

}

chan=reg_data[0]&0x03; //獲取當前工作頻點

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

chan=chan<<6;

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

//保存當前工作頻點

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

//調用連續寫字節函數

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

temp=temp>>6;

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

//計算當前頻率值并保存

}

3.2 紅外遙控解碼程序設計

由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可見,要用單片機來判斷遙控發射器發出的是“0”還是“1”,關鍵是要判斷接收脈沖下降沿至上升沿之間的時間。可以采用外部中斷法,也可以采用輸入捕獲功能法[6],本文采用后一種方法。解碼的思路是:初始化時,將ATmega8L的ICP1引腳設置為輸入狀態,下降沿觸發,當紅外接收頭接收到紅外遙控信號時,產生下降沿,單片機自動將TCNT1寄存器中的值保存至ICR1寄存器中,在捕獲中斷服務程序中將ICR1中的值保存至T1中;然后將ICP1設置為上升沿觸發,當再次產生捕獲中斷時,將ICR1中的值保存至T2中,將ICP1設置為下降沿觸發,并將TCNT1置0。之后計算出T2-T1的時間并保存至事先開辟的數組中,要注意的是,T2-T1有可能出現負值,此時要將(T2-T1+0xffff)再保存,直到接收完12位數據。ICP1中斷服務程序流程圖略——編者注。

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

結 語

經過多次比對測試,該收音機可以清晰、穩定地收聽省府及本地所發射的調頻電臺信號。

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

[2] 藍土慶,黃春貴.基于單片機和TEA5767HN的FM收音機系統的設計[J].現代電子技術,2011(34):181-183.

[3] 蘆貺.基于TEA5767的USB調頻收音機設計[J].深圳職業技術學院學報,2010(9):12-17.

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

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

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

[7] 馬潮. AVR單片機嵌入式系統原理與應用實踐[M].北京:北京航空航天大學出版社,2007.

何乃味(講師),研究方向為電子技術應用與嵌入式系統應用。

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)

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機在仿真中要注意的幾點問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機的三維LED點陣設計
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個全新PIC單片機系列
基于Proteus的單片機控制系統的仿真設計
主站蜘蛛池模板: 久久免费视频6| 日韩AV无码一区| 亚洲无线观看| 67194亚洲无码| 2020国产在线视精品在| 精品亚洲欧美中文字幕在线看| AⅤ色综合久久天堂AV色综合| 天堂久久久久久中文字幕| 国产99在线观看| 99999久久久久久亚洲| 国产粉嫩粉嫩的18在线播放91| 欧美成人区| 亚洲精品久综合蜜| 国产高清无码第一十页在线观看| 视频二区中文无码| 国产亚洲欧美日韩在线一区| 国产精品自拍合集| 色老头综合网| 精品无码一区二区在线观看| 超清无码一区二区三区| 国产精品色婷婷在线观看| 天天色综网| 99热这里只有精品免费国产| 免费a在线观看播放| 激情六月丁香婷婷四房播| 久热这里只有精品6| 国产成人啪视频一区二区三区| 国外欧美一区另类中文字幕| 国产美女主播一级成人毛片| 91色爱欧美精品www| 亚洲国产中文在线二区三区免| 久久国产V一级毛多内射| 国产一区二区福利| 国产欧美日韩另类| 日韩第九页| AV不卡国产在线观看| 视频国产精品丝袜第一页| 国产亚洲精品无码专| 不卡无码h在线观看| 亚卅精品无码久久毛片乌克兰| 亚洲欧美成人在线视频| 成人另类稀缺在线观看| 欧美 亚洲 日韩 国产| 午夜视频免费试看| 91香蕉国产亚洲一二三区| 91极品美女高潮叫床在线观看| 日本中文字幕久久网站| 亚洲欧美激情另类| 精品国产网| 全部免费特黄特色大片视频| 国产精品短篇二区| 国产无码制服丝袜| 国产日韩精品欧美一区喷| 亚洲中文字幕97久久精品少妇| 久久人与动人物A级毛片| 日韩欧美中文字幕在线精品| www.狠狠| 女人一级毛片| 日韩高清成人| 91最新精品视频发布页| 免费激情网址| 精品一区二区久久久久网站| 天天激情综合| 午夜小视频在线| 人妻中文久热无码丝袜| 欧美精品成人一区二区在线观看| 亚洲欧美日韩另类在线一| 原味小视频在线www国产| 亚洲中文精品久久久久久不卡| 久久精品娱乐亚洲领先| 久久久久青草线综合超碰| 免费观看国产小粉嫩喷水| 丁香婷婷激情网| 亚洲爱婷婷色69堂| 97国产在线播放| 精品剧情v国产在线观看| 无码一区中文字幕| 精品视频福利| 女高中生自慰污污网站| 中文无码毛片又爽又刺激| 午夜色综合| 成人综合网址|