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的單片機控制系統的仿真設計
主站蜘蛛池模板: 亚洲无码精彩视频在线观看| 久久综合成人| 女人av社区男人的天堂| 日本不卡免费高清视频| 久久久久国产精品嫩草影院| 国产乱子伦精品视频| 综合色88| yy6080理论大片一级久久| 国产一区二区三区精品久久呦| 国产xxxxx免费视频| 国产精品自在拍首页视频8| 视频国产精品丝袜第一页| 亚洲性日韩精品一区二区| 99久久婷婷国产综合精| 91成人在线免费视频| 国内精品九九久久久精品| 国产一区在线观看无码| 任我操在线视频| 亚洲Va中文字幕久久一区| 国产自视频| 香蕉在线视频网站| 麻豆精选在线| 国产精品免费p区| 日韩福利在线观看| 精品伊人久久久久7777人| 亚洲天堂视频网站| 国产成在线观看免费视频| 婷婷亚洲天堂| 免费一级毛片不卡在线播放| 亚洲国产精品美女| 玖玖精品视频在线观看| 欧美精品v欧洲精品| 亚洲无码电影| 欧美性久久久久| 97se亚洲综合在线天天| 欧美自拍另类欧美综合图区| 免费a在线观看播放| 香蕉伊思人视频| 亚洲日本在线免费观看| 久久久久久午夜精品| 伊人无码视屏| 久久黄色毛片| 日韩精品久久无码中文字幕色欲| 一本无码在线观看| 亚洲成人一区二区| 2020最新国产精品视频| 日韩国产高清无码| 国产H片无码不卡在线视频| 在线观看亚洲国产| 中文字幕久久亚洲一区| 久久青草精品一区二区三区| 在线另类稀缺国产呦| 最新国语自产精品视频在| 日韩毛片基地| 亚洲黄色网站视频| 国产第一页第二页| 国产精品九九视频| 综合网天天| 亚洲黄色片免费看| 国产永久在线观看| 欧美日韩国产一级| 中文字幕在线播放不卡| 国产在线精品网址你懂的| 久久精品视频一| 99re免费视频| 26uuu国产精品视频| 手机精品视频在线观看免费| 美女免费黄网站| 一级毛片免费的| 久久 午夜福利 张柏芝| 99视频在线精品免费观看6| 欧美成人精品欧美一级乱黄| 亚洲自偷自拍另类小说| 国产福利在线观看精品| 欧美激情成人网| 欧美福利在线观看| 毛片久久久| 国产一级毛片高清完整视频版| 五月丁香在线视频| 久久婷婷国产综合尤物精品| 欧美成人一区午夜福利在线| 亚洲成在人线av品善网好看|