基于单片机的数字FM收音机设计与实现

合集下载

51单片机控制RDA5820制作 数字FM对讲机收音发射一体机程序

51单片机控制RDA5820制作 数字FM对讲机收音发射一体机程序

#include<reg52.h>#define uchar unsigned char#define uint unsigned intuint key_=0;uint k_1=0;uint a_3=0;uint m1,m_1,m_4;uint a_4=0;uint k_2=0;uint i_1=0;uint n_0=1;uint l1=1;uint l2=1;uint z,p=1;uint j_=1;uint r_i=0x0427;double b1=0;uint a1=0;uint a2=0;uint FreqTune=0x0000;uint vol=0xa;const uchar FmAddr = 0x22;sbit SDA =P0^0;sbit SCL =P0^1;sbit KEY =P1^4;sbit KEYu=P1^0;sbit KEYd=P1^2;sbit KEY1=P1^1;sbit KEY2=P1^3;sbit rs=P0^5;sbit rw=P0^6;sbit en=P0^7;sbit P02=P0^2;sbit P03=P0^3;sbit P04=P0^4;uchar code table[]="0123456789."; uchar code table_[]="Mhz Vol:";uchar code table_1[]="RT";uchar code table1[]="Welcome";uchar code table2[]="Digital FMdevice"; uchar code table3[]="Please choose"; uchar code table_3[]="s ";uchar code table4[]="function keys"; uchar code table5[]=" -Interphone "; uchar code table6[]=" FM receiver "; uchar code table7[]=" -FM receiver "; uchar code table8[]=" FM transmitter"; uchar code table9[]=" -FM transmitter"; uchar code table10[]=" Transmit Data "; uchar code table11[]=" -Transmit Data "; uchar code table12[]=" Interphone "; uchar code table14[]="Waiting ";uchar code table15[]="............... "; uchar code table16[]=" Interphone "; uchar code table18[]=" FM RX ";uchar code table20[]=" FM TX ";uchar code table22[]=" TX DATA ";uchar code tabletp[]=" ";uchar codetable23[]={0x00,0x1F,0x0A,0x04,0x04,0x0 4,0x04,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F, };uchar codetable24[]={0x00,0x1F,0x0A,0x04,0x04,0x0 4,0x04,0x00,0x00,0x00,0x00,0x00,0x02,0x06,0x0E,0x1E, };uchar codetable25[]={0x00,0x1F,0x0A,0x04,0x04,0x0 4,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0C,0x1C ,};uchar codetable26[]={0x00,0x1F,0x0A,0x04,0x04,0x0 4,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x18, } ;uchar codetable27[]={0x00,0x1F,0x0A,0x04,0x04,0x0 4,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10, };uchar codetable28[]={0x00,0x1F,0x0A,0x04,0x04,0x0 4,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, };uchar codetable29[]={0x02,0x06,0x1E,0x1E,0x1E,0x1 E,0x06,0x02,};void Dela_y(uint c) //延时{int i=0;for(i=0;i<c;i++);}void DelayIT(uint del_1)//延时 10ms * del {uint i,j;for(i=0; i<del_1; i++)for(j=0; j<1827; j++);}void delay_lcd(uint n)//lcd延时{uint x,y;for(x=n;x>0;x--)for(y=110;y>0;y--);}void lcd_wcom(uchar com)//lcd写命令{rs=0;rw=0;P3=com;delay_lcd(5);en=1;en=0;}void lcd_wdat(uchar dat)//lcd写数据{rs=1;rw=0;P3=dat;delay_lcd(5);en=1;en=0;}void lcd_init()//lcd初始化{lcd_wcom(0x38);lcd_wcom(0x0c);lcd_wcom(0x06);lcd_wcom(0x01);}void OpenIIC(){SDA = 1;SCL = 1; Dela_y(5);SDA = 0; Dela_y(5);SCL = 0; Dela_y(5);}void CloseIIC(){SDA = 0 ;SCL = 1; Dela_y(5);SDA = 1; Dela_y(5);SCL = 1; SDA = 1; Dela_y(150); //防止过快的读取造成EPPROM 来不及反应}}void IICWriteByte( uchar byte ){uchar i=0;int f=30000;bit bitdata;for(i=0;i<8;i++){bitdata=byte>>(7-i) & 1;SDA = bitdata;SCL =1; Dela_y(5);SCL = 0; Dela_y(5);}SCL = 1;while(SDA && -f); Dela_y(5);SCL = 0; Dela_y(5);}void IICWrite(uchar uaddr, uchar romaddr, uint rdata,bit _16b){uchar temp;OpenIIC();IICWriteByte(uaddr);IICWriteByte(romaddr);if(_16b){temp =(uchar)((rdata>>8) & 0x00ff) ; IICWriteByte(temp);}temp = (uchar) (rdata & 0xff); IICWriteByte(temp);CloseIIC();}uchar IICReadByte(bit next){uchar buf =0,i=0;for(i=0;i<8;i++){buf <<=1;SCL = 1; buf |= SDA; Dela_y(5);SCL = 0; Dela_y(5);}if(next){SDA = 0; SCL = 1; Dela_y(5);SCL = 0; Dela_y(5); SDA = 1;}else{SDA = 1; SCL = 1; Dela_y(5);SCL = 0; Dela_y(5); SDA=0;}return buf;}uint IICRead(uchar uaddr, uchar ramAddr,bit _16b){uint buf;OpenIIC();IICWriteByte(uaddr);IICWriteByte(ramAddr);OpenIIC();IICWriteByte(uaddr | 0x01);if(_16b){buf = IICReadByte(1);buf = buf<<8;buf =buf|IICReadByte(0);}else{buf = IICReadByte(0);}CloseIIC();return buf;}uint FM_ReadReg(uchar regAddr)//读取FM 模块的寄存器{return IICRead(FmAddr,regAddr,1);}void FM_WriteReg(uchar regAddr,uint dat)//写FM模块的寄存器{IICWrite(FmAddr,regAddr,dat,1);}void FM_SetFreq_RX(uint FreqTune_1)//设置RX频道的频率87-1*,步进频率100k0x00{FM_WriteReg(3,(FreqTune_1<<6) |0x0010);}void FM_SetFreq__RX(uint FreqTune__1)//设置RX频道的频率65-90,步进频率100k 0x00{FM_WriteReg(53,0x28a);FM_WriteReg(53,0x384);FM_WriteReg(3,(FreqTune__1<<6) |0x001c);}void FM_SetVolume(uint vol_)//设置音量0x0{FM_WriteReg(5,vol_|=0x88a0);}void show(uint addr,double m)//lcd显示初始地址addr及数字xxx.x{uchar n;uchar _n=10;for(n=0;n<5;n++){if(n==0) _n=m/100;if(n==1) _n=((int)m/10)%10;if(n==2) _n=(int)m%10;if(n==3) _n=10;if(n==4) _n=((int)(m*10))%10;lcd_wcom(addr+n);lcd_wdat(table[_n]);}}void show_(uint a_ddr,double k_)//lcd显示初始地址addr及数字xx{uchar n;uchar _n=10;for(n=0;n<2;n++){if(n==0) _n=(int)k_/10;if(n==1) _n=(int)k_%10;lcd_wcom(a_ddr+n);lcd_wdat(table[_n]);}}void rssi(uint r_addr,int rssi) //LCD信号强度指示显示(地址,0——5){lcd_wcom(0x40);if(rssi==0){for(m1=0;m1<16;m1++){lcd_wdat(table28[m1]);}};if(rssi==1){for(m1=0;m1<16;m1++){lcd_wdat(table27[m1]);}};if(rssi==2){for(m1=0;m1<16;m1++){lcd_wdat(table26[m1]);}};if(rssi==3){for(m1=0;m1<16;m1++){lcd_wdat(table25[m1]);}};if(rssi==4){for(m1=0;m1<16;m1++){lcd_wdat(table24[m1]);}};if(rssi==5){for(m1=0;m1<16;m1++){lcd_wdat(table23[m1]);}};lcd_wcom(r_addr); //显示地址for(m1=0;m1<2;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(m1);} ;}void kanji()//开机画面{uchar m1;DelayIT(20);lcd_init(); //液晶初始化lcd_wcom(0x84); //显示地址for(m1=0;m1<7;m1++) //将table1[Welcome]中的数据依次写入1602显示{lcd_wdat(table1[m1]);}lcd_wcom(0x80+0x40); //显示地址for(m1=0;m1<16;m1++) //将table2[Digital FMdevice]中的数据依次写入1602显示{lcd_wdat(table2[m1]);}DelayIT(100);lcd_init(); //液晶初始化lcd_wcom(0x81); //显示地址for(m1=0;m1<13;m1++) //将table3[Please choose]中的数据依次写入1602显示{lcd_wdat(table3[m1]); DelayIT(4) ;}lcd_wcom(0x80+0x41); //显示地址for(m1=0;m1<13;m1++) //将table4[function keys]中的数据依次写入1602显示{lcd_wdat(table4[m1]); DelayIT(5) ;}DelayIT(50) ;}void K_S()//主键盘扫描{if(a_3!=1)//有后退按键{a_3=1;if(k_1==0)//对讲机模式{lcd_init(); //液晶初始化lcd_wcom(0x80); //显示地址for(m1=0;m1<16;m1++) //将table5[-Interphone]中的数据依次写入1602显示{lcd_wdat(table5[m1]);}lcd_wcom(0x80+0x40); //显示地址for(m1=0;m1<16;m1++) //将table6[FM receiver]中的数据依次写入1602显示{lcd_wdat(table6[m1]);}};if(k_1==1)//收音机模式{lcd_init(); //液晶初始化lcd_wcom(0x80); //显示地址for(m1=0;m1<16;m1++) //将table12[]中的数据依次写入1602显示{lcd_wdat(table12[m1]);}lcd_wcom(0x80+0x40); //显示地址for(m1=0;m1<16;m1++) //将table7[]中的数据依次写入1602显示{lcd_wdat(table7[m1]);}};if(k_1==2)//FM发射模式{lcd_init(); //液晶初始化lcd_wcom(0x80); //显示地址for(m1=0;m1<16;m1++) //将table6[]中的数据依次写入1602显示{lcd_wdat(table6[m1]);}lcd_wcom(0x80+0x40); //显示地址for(m1=0;m1<16;m1++) //将table9[]中的数据依次写入1602显示{lcd_wdat(table9[m1]);}};if(k_1==3) //第四模式{lcd_init(); //液晶初始化lcd_wcom(0x80); //显示地址for(m1=0;m1<16;m1++) //将table8[]中的数据依次写入1602显示{lcd_wdat(table8[m1]);}lcd_wcom(0x80+0x40); //显示地址for(m1=0;m1<16;m1++) //将table11[]中的数据依次写入1602显示{lcd_wdat(table11[m1]);}};};if(KEYu==0) key_--;//按键判断if(KEYd==0) key_++;if(k_1!=key_%4) //有上下选择按键{k_1=key_%4;if(k_1==0){lcd_init(); //液晶初始化lcd_wcom(0x80); //显示地址for(m1=0;m1<16;m1++) //将table5[]中的数据依次写入1602显示{lcd_wdat(table5[m1]);}lcd_wcom(0x80+0x40); //显示地址for(m1=0;m1<16;m1++) //将table6[]中的数据依次写入1602显示{lcd_wdat(table6[m1]);}};if(k_1==1){lcd_init(); //液晶初始化lcd_wcom(0x80); //显示地址for(m1=0;m1<16;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(table12[m1]);}lcd_wcom(0x80+0x40); //显示地址for(m1=0;m1<16;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(table7[m1]);}};if(k_1==2){lcd_init(); //液晶初始化lcd_wcom(0x80); //显示地址for(m1=0;m1<16;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(table6[m1]);}lcd_wcom(0x80+0x40); //显示地址for(m1=0;m1<16;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(table9[m1]);}};if(k_1==3){lcd_init(); //液晶初始化lcd_wcom(0x80); //显示地址for(m1=0;m1<16;m1++) //将table11[]中的数据依次写入1602显示{lcd_wdat(table8[m1]);}lcd_wcom(0x80+0x40); //显示地址for(m1=0;m1<16;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(table11[m1]);}};DelayIT(30);};}使用道具举报13#枫霰中级会员发表于 2012-1-19 16:22:58|只看该作者接上:void mace()//主程序扫描{•串个门•加好友•打招呼•发消息if(k_1==0)//第一模式{for(;m_1>0;m_1--){m_4=8;lcd_init(); //液晶初始化for(;m_4<12;m_4++){lcd_wcom(0x80+0x44); //显示地址for(m1=0;m1<m_4;m1++) //将table15[ ]中的数据依次写入1602显示{lcd_wdat(table15[m1]);DelayIT(4);}}lcd_init(); //液晶初始化lcd_wcom(0x80); //显示地址for(m1=0;m1<16;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(table16[m1]);}};z=1;};if(k_1==1) //第二模式{for(;m_1>0;m_1--){m_4=8;lcd_init(); //液晶初始化for(;m_4<12;m_4++){lcd_wcom(0x80+0x44); //显示地址for(m1=0;m1<m_4;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(table15[m1]);DelayIT(4);}};lcd_init(); //液晶初始化lcd_wcom(0x80); //显示地址for(m1=0;m1<18;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(table18[m1]);}};z=2;};if(k_1==2)//第三模式{for(;m_1>0;m_1--){m_4=8;lcd_init(); //液晶初始化for(;m_4<12;m_4++){lcd_wcom(0x80+0x44); //显示地址for(m1=0;m1<m_4;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(table15[m1]);DelayIT(5);}};lcd_init(); //液晶初始化lcd_wcom(0x80); //显示地址for(m1=0;m1<16;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(table20[m1]);}};z=3;};if(k_1==3&&k_2==1) //第四模式{for(;m_1>0;m_1--){m_4=8;lcd_init(); //液晶初始化for(;m_4<12;m_4++){lcd_wcom(0x80+0x44); //显示地址for(m1=0;m1<m_4;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(table15[m1]);DelayIT(5);}};lcd_init(); //液晶初始化lcd_wcom(0x80); //显示地址for(m1=0;m1<16;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(table22[m1]);}};z=4;};}void main() //主程序{ uint z_1,Tune;P1=0xff;FM_WriteReg(2,0xd281);//rda5820地址FM_ReadReg(0x0b);P02=0;P03=0;kanji(); //开机画面while(1) //进入程序死循环{if(KEY2==0&&k_2<1) k_2++;//左右按键判断if(KEY1==0&&k_2>0) k_2--;if(k_2==0) //没有右按键{n_0=1;m_1=1;K_S(); //上下模式建扫描};if(k_2==1) //有右键{a_3=0;mace(); //模式扫描if(z==1) //第一模式{if(KEY==1){for(;p>0;p--) FM_SetFreq__RX(0x00);//设置频率65Mhzlcd_wcom(0x80+0x46); //显示地址for(m1=0;m1<8;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(table_[m1]);} ;lcd_wcom(0x80+0x40); //显示地址for(m1=0;m1<1;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(table_1[m1]);} ;for(;l1>0;l1--)l2=1;FM_WriteReg(0x40,0x0000);//进入接收模式if(KEYu==0&&KEY2==0&&vol<0xf)vol+=0x1;else if(KEYd==0&&KEY2==0&&vol>0x0)vol-=0x1;else if(KEYu==0&&Tune<20)a1++,Tune+=1;else if(KEYd==0&&Tune>0)a1--,Tune-=1; //声音,频率调节FreqTune=Tune*10;if(b1!=65+(double)Tune*1){b1=65+(double)Tune*1;FM_SetFreq__RX(FreqTune);//写入频率=65+tune};z_1=0xff&(FM_ReadReg(0x0a));FM_SetVolume(vol); //写入音量show(0x80+0x41,65+((double)z_1)/10);show_(0x80+0x4e,((double)vol)); //显示频率音量rssi(0x8d,(uint)((FM_ReadReg(0x0b)>>10)/5)); //显示信号强度if( ((FM_ReadReg(0x0b)>>10)/5) ){lcd_wcom(0x8f);for(m1=6;m1<7;m1++) //将s显示{lcd_wdat(table10[m1]);} ;};if( !((FM_ReadReg(0x0b)>>10)/5) ){lcd_wcom(0x8f);for(m1=0;m1<1;m1++) //将显示{lcd_wdat(table10[m1]);} ;};DelayIT(10);//延时 10ms * del};if(KEY==0){for(;l2>0;l2--){l1=1,FM_WriteReg(0x40,0x0001),FM_SetFreq__RX(FreqTune), lcd_wcom(0x80+0x40); //显示地址for(m1=0;m1<16;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(tabletp[m1]);} ;};FM_WriteReg(0x40,0x0001) ;z_1=0xff&(FM_ReadReg(0x0a));show(0x80+0x44,65+((double)z_1)/10);lcd_wcom(0x80+0x43); //显示地址for(m1=1;m1<2;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(table_1[m1]);} ;if(KEYu==0&&KEY==0&&r_i<0x043b)r_i+=0x000c;//功率调节if(KEYd==0&&KEY==0&&r_i>0x0405)r_i-=0x000c;FM_WriteReg(0x42,r_i);rssi(0x80+0x4d,(uint)((r_i&0xff)/0x0c));DelayIT(10);//延时 10ms * del};};if(z==2) //第二模式{p=1;for(;j_>0;j_--)FM_SetFreq_RX(0x00);FM_WriteReg(0x40,0x0000);lcd_wcom(0x80+0x46); //显示地址for(m1=0;m1<8;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(table_[m1]);} ;if(KEYu==0&&KEY2==0&&FreqTune<0xd2)a1+=10,FreqTune +=0x000a;else if(KEYd==0&&KEY2==0&&FreqTune>0x00)a1-=10,FreqTune-=0x000a;else if(KEYu==0&&KEY==0&&vol<0xf)a2++,vol+=0x1;else if(KEYd==0&&KEY==0&&vol>0x0)a2--,vol-=0x1;else if(KEYu==0&&FreqTune<0xd2)a1++,FreqTune+=0x0001; else if(KEYd==0&&FreqTune>0x00)a1--,FreqTune-=0x0001; if(b1!=87+(double)a1*0.1){b1=87+(double)a1*0.1;FM_SetFreq_RX(FreqTune);};FM_SetVolume(vol);z_1=0xff&(FM_ReadReg(0x0a));show(0x80+0x41,87+((double)z_1)/10);show_(0x80+0x4e,((double)vol));rssi(0x8d,(uint)((FM_ReadReg(0x0b)>>10)/5));if( ((FM_ReadReg(0x0b)>>10)/5) ){lcd_wcom(0x8f);for(m1=6;m1<7;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(table10[m1]);} ;};if( !((FM_ReadReg(0x0b)>>10)/5) ){lcd_wcom(0x8f);for(m1=0;m1<1;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(table10[m1]);} ;};DelayIT(10);//延时 10ms * del};if(z==3) //第三模式{ p=1;for(;j_>0;j_--)FM_SetFreq_RX(0x00);FM_WriteReg(0x40,0x0001) ;lcd_wcom(0x80+0x49); //显示地址for(m1=0;m1<3;m1++) //将table[]中的数据依次写入1602显示{lcd_wdat(table_[m1]);} ;if(KEYu==0&&KEY2==0&&FreqTune<0xd2)a1+=10,FreqTune +=0x000a;else if(KEYd==0&&KEY2==0&&FreqTune>0x00)a1-=10,FreqTune-=0x000a;else if(KEYu==0&&KEY==0&&r_i<0x043b)r_i+=0x000c;else if(KEYd==0&&KEY==0&&r_i>0x0405)r_i-=0x000c;else if(KEYu==0&&FreqTune<0xd2)a1++,FreqTune+=0x0001; else if(KEYd==0&&FreqTune>0x00)a1--,FreqTune-=0x0001; if(b1!=87+(double)a1*0.1){b1=87+(double)a1*0.1;FM_SetFreq_RX(FreqTune);};z_1=0xff&(FM_ReadReg(0x0a));FM_WriteReg(0x42,r_i);show(0x80+0x44,87+((double)z_1)/10);rssi(0x8d,(uint)((r_i&0xff)/0x0c));DelayIT(10);//延时 10ms * del};if(z==4) //第四模式{p=1;};};};}使用道具举报枫霰中级会员•串个门•加好友•打招呼14#发表于 2012-1-19 17:08:50|只看该作者本帖最后由枫霰于 2012-1-19 17:10 编辑RDA5820收音+发射模块PL102BH-20.pdf 资料•发消息近几天刚刚学了IIC总线控制,想亲自实践一下,就从众多IIC控制的芯片中找到了这个RDA5820模块,刚从网上淘回来就开始写控制它的C51程序,经过一周多努力终于调试成功。

基于单片机和TEA5767HN的FM收音机系统的设计

基于单片机和TEA5767HN的FM收音机系统的设计

在当前数字信息技术和网络技术高速发展的PC时代。

嵌入式技术越来越同人们的生活紧密相关。

其中掌上嵌入式电子产品更是给人们的生活带来了很大方便和很多快乐。

尽管生活方式不断发生变化,但无线电仍然很流行。

因此,本文针对TEA5767HN数字收音机芯片的控制机理,阐述了通过该芯片和C51单片机来将FM数字收音机嵌入智能电子产品的设计方法。

1 系统整体设计思路本立体声FM数字收音机的设计目标是通过单片机AT89S52来控制FM接收芯片TEA5767HN,从而实现可自动搜索并存储10多个电台节目(也可手动搜索并存储电台节目)。

所收听电台的频率和台号及时钟可在显示模块中的LCD上显示,音量则可通过音量加、减按键自主控制,并能存储关机时设定的数据以及闹钟功能。

具体系统设计框图如图1所示。

本系统主要由单片机AT89S52控制模块、TEA5767HN收音模块、音量控制模块、ROM存储模块、显示模块、按键模块和电源模块七部分组成。

本系统硬件设计的关键则在于FM接收、音频处理等模拟部分;软件设计的关键在于控制模块与收音模块之间的通信。

从图1中可以看出,控制模块仅仅通过I2C总线与收音模块连接并控制收音机工作。

本设计使用单片机P3口的两个I/O脚来模拟I2C总线的SDA和SCL时序并与TEA5767HN 通信;TEA5767HN输出的左右声道音频信号可通过音量控制模块进行前级放大及音量控制,然后输入到TDA7057进行后级功率放大,最后输出到扬声器。

单片机可通过I2C总线进行音量调节;ROM存储模块主要用于存储电台数据、音量数据和时钟数据,为存储和读取数据带来方便。

系统可通过按键进行操作,通过MCU检测按键信号并经单片机实现手动搜台、自动搜台、音量控制、时钟调整等功能,各项操作提示和操作结果均可通过LCD显示出来。

稳压电源模块产生的5 V和3.3 V电压可分别为各个模块器件供电。

2 硬件系统电路设计由于本系统硬件设计的关键在于FM接收、音频处理等模拟电路部分,其余电路均为常规电路,因而其硬件系统的设计着重分析收音模块、音量控制模块这两部分电路。

基于STM32开发板的FM收音机设计

基于STM32开发板的FM收音机设计

题目:基于单片机的数字FM收音机设计生产组长:岳昌运设计组长:曾路遥设计小组成员:岳昌运、曾路遥、吴佩欣、杨林昌、于廷照、苑志刚、张成坤、赵奕婷、田密、龚鹤灵、陆洋2012年9月13日基于单片机的数字FM 收音机设计一、概述:本设计是一个数字调频收音机,调频就是频率调制,所谓频率调制就是原来等幅恒频的高频信号的频率,随着调制信号(音频信号)的幅度变化而变化,调频收音机(FM Radio )就是接收这些频率调制的无线电信号,经过解调还原成原信号的电子设备。

FM Radio 电路一般主要由接收天线、振荡器、混频器、AGC (自动增益控制)、中频放大器、中频限幅器、中频滤波器、鉴频器、低频静噪电路、搜索调谐电路、信号检测电路及频率锁定环路、音频输出电路等组成。

本设计就是用单片机控制集成了上述所有FM 功能的专用芯片,设计一个数字FM 收音机系统。

二、总体设计: 总体系统结构:第七组人员分工:组号 七 设计组长 曾路遥组员 岳昌运、张成坤、杨林昌、吴佩欣、苑志刚、于廷照、田密、赵奕婷、陆洋、龚鹤灵 设计名称 基于单片机的调频收音机 实现功能 实现定点搜台拓展功能 实现自动、手动收听无线电台组员分工Si4720模块:岳昌运 吴佩欣 张成坤 曾路遥音频模块 : 杨林昌 龚鹤灵 路洋OLED 和键盘: 苑志刚 于廷照 田密 赵奕婷 控制模块:曾路遥 岳昌运CPU Si4720WM 8978键盘LED三、关键模块设计:Si4720功能框图:四、测试结果:key1为手动;key2为自动;key3为手动加0.1MHz;key4为手动减0.1MHz;OLED显示当前频率开机显示“HELLO FM PLAYER”,开机可以收听到106MHz,按key2后开始自动从76.0MHz搜台,然后每次自动加0.1MHz,到108.6MHz之后自动返回76.0MHz重新开始搜索。

期间可以按下key1可以停止自动调节,频率固定,按下key3、key4可以手动加减0.1MHz。

基于单片机的FM收音机的设计

基于单片机的FM收音机的设计

济南大学泉城学院毕业设计题目基于单片机的FM收音机的设计学院工学院专业电气工程及其自动化班级电气1301学生李帅先学号2013040039指导教师刘韦二〇一五年四月二十五日摘要本设计是一个数字调频收音机(FM),就是接受频率调制的无线电信号,经过解调还原成原信号的电子设备,利用单片机控制有FM功能的专用芯片,设计一个收音机系统。

单片机自从20世纪70年代问世以来,以极其高的性能价格比受到人们的重视和关注,所以应用很广,发展很快。

单片机的应用改变了控制系统传统的设计思想和方法。

以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。

这种以软件结合硬件或取代硬件并能提高系统性能的控制技术称为微控制技术。

例如,本文所要论述的通过单片机STC89C54来控制TEA5767HN芯片使其实现调频功能。

STC89C54单片机的特点是体积小、集成度高、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。

现在人们常使用的收音机为手动调频收台,使用较为麻烦,而且由于接收灵敏度不高,所接收的频段较窄。

本设计采用的是TEA5767HN芯片,它是由PHILIPS公司推出的针对低电压应用的单芯片数字调谐FM立体声收音机芯片。

TEA5767HN芯片内集成了完整的IF频率选择和鉴频系统,只需很少的低成本外围元件,就可实现FM收音机的全部功能。

随着信息化的发展,TEA5767系列单片数字收音机也就被广泛应用到数码音响,使用宏晶科技生产的8位微控制器STC89C54来控制数字收音机模块TEA5767,构成一个FM数字收音机系统。

本设计主要是体现单片机系统的自动控制能力,更重要的意义是单片机的应用改变了控制系统传统的设计思想和方法。

关键词:STC89C54单片机;TEA5767HN芯片;ABSTRACTThe design is a digital FM radio (FM), It is to receive the frequency modulated radio signals, electronic equipment restored to the original signal after demodulation, the use of dedicated chip MCU control FM functions, design a radio system.The singlechip has come out since the 1970s, compared to is valued people's and the attention by the extremely high performance price, therefore the application is very broad, the development is very quick. The application of SCM has changed the design idea and method of the traditional control system. Previously used by most of the hardware circuit of the control function, is the MCU software methods to achieve. With the combination of hardware or software to replace hardware and can improve the control system performance is called the micro control technology. STC89C54 Monolithic integrated circuit's characteristic is the volume is small, the integration rate is high, the weight is light, antijamming ability, is not high to the environment request, the low in price, the reliability is high, the flexibility is good, the development is easier. What this design uses is the TEA5767 chip, it is promotes by PHILIPS Corporation in view of the low voltage application single chip digit harmonious FM stereophonic receiver chip. In the TEA5767 chip integrated the complete IF frequency selection and the frequency discrimination system, only need the very few low cost periphery part, be possible to realize the FM radio's complete function. With the development of information technology, the TEA5767 series monolithic digital radios will be widely applied to digital audio, use the macro crystal technology to produce 8 bit micro controller STC89C54 to control the module of digital radio TEA5767, a FM digital radio system.This design is mainly the automatic control ability of MCU system, more important is the design idea and method of the application of SCM has changed the traditional control system.Keywords:STC89C52 , Nokia5110 , TEA5767目录摘要 (I)ABSTRACT (II)1前言................................................................................................ .. (1)1.1 选题的背景 (1)1.2 课题的意义 (1)2 设计内容与步骤 (3)2.1 确定机械手的总体方案 (3)2.2设计机械手的各执行构件 (3)2.3气动液压系统的设计 (4)3 设计方案的制动与选择 (5)3.1 机械手搬运规格及参数 (5)3.2 方案的制定 (5)3.3 方案的总结分析 (8)3.4 方案的优化设计 (9)4机械手主要零部件的设计 (13)4.1 机械手抓部件主要参数的确定 (13)4.1.1 推力液压缸选型的确定 (13)4.1.2 推力液压缸行程的确定 (16)4.1.3 机械手指的设计 (18)4.1.4 机械手骨架设计 (19)4.1.5 轴承的计算与选择 (19)4.1.6 立轴的设计 (20)4.2移动架部件主要参数的确定 (21)4.2.1 中间升降液压缸型号的确定 (21)4.3 滑动板部件主要参数的确定 (23)4.3.1 滑动板的外形设计 (23)4.3.2 支撑轴的设计 (24)4.3.3 滑轮的设计 (25)4.4 支撑架部件主要参数的确定 (26)4.4.1 推动液压缸的选型确定 (26)4.4.2 支撑架的设计 (27)5重要的零部件的校核 (29)5.1键的校核 (29)6结论 (31)参考文献 (32)致谢 (33)1前言1.1选题背景现如今,新媒体技术蓬勃发展。

51单片机控制的FM收音机

51单片机控制的FM收音机

专业综合课程设计基于单片机控制的FM收音机班级:通信(三)班成绩:基于单片机控制的FM收音机摘要:单片机自20世纪70年代问世以来,以极其高的性能价格比受到人们的重视和关注,所以应用很广,发展很快。

单片机的特点是体积小、集成度高、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。

正因为单片机有如此多的优点,因此其应用领域之广,几乎到了无孔不入的地步。

在我国,单片机已被广泛地应用在工业自动化控制、自动检测、智能仪表、智能化家用电器、航空航天系统和和国防军事、尖端武器等各个方面。

我们可以开发利用单片机系统以获得很高的经济效益。

更重要的意义是单片机的应用改变了控制系统传统的设计思想和方法。

以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。

这种以软件结合硬件或取代硬件并能提高系统性能的控制技术称为微控制技术。

例如,本文所要论述的通过单片机来控制TEA5767HN芯片及驱动LCD1602液晶屏实现FM收音并显示频率。

现在人们常使用的收音机为手动调频收台,使用较为麻烦,而且由于接收灵敏度不高,所接收的频段较窄。

本设计采用的是TEA5767HN芯片,它是由PHILIPS公司推出的针对低电压应用的单芯片数字调谐FM立体声收音机芯片。

TEA5767HN芯片内集成了完整的IF频率选择和鉴频系统,只需很少的低成本外围元件,就可实现FM收音机的全部功能。

另外,它具有高性能的RF AGC电路,其接收灵敏度高;参考频率选择灵活;可实现自动搜台。

关键词:89C52单片机;TEA5767HN芯片;2822功率放大器AbstractThis test constitute with stc89c52 singlechip micyoco, tea5767 model,2822 power amplifier,1602 and peripheral circuit.In the design process,we used modular design for several types,such as searching model,display model,storage model and some ancillary function.STC series singlechip has very good control ability and stable level to meet the requirements.前言:本设计研究FM收音机分为硬件电路和程序设计两个方面。

大学生毕业设计 基于TEA5767和单片机的数字FM收音机设计

大学生毕业设计 基于TEA5767和单片机的数字FM收音机设计

摘要本设计是一个数字调频收音机(FM),就是接受频率调制的无线电信号,经过解调还原成原信号的电子设备,利用单片机控制有FM功能的专用芯片,设计一个基于TEA5767模块的数字FM收音机。

本设计采用模块化设计,整个系统由控制模块,FM音频模块和功放模块组成。

本设计核心采用的是TEA5767芯片,它是由PHILIPS公司推出的针对低电压应用的单芯片数字调谐FM立体声收音机芯片。

TEA5767芯片内集成了完整的IF频率选择和鉴频系统,就可实现FM收音机的全部功能。

采用的是Lcd1602液晶显示屏,实现单片机的频率值与模块内部的寄存器(PLL值)之间的相互转换,从而带动功放的工作。

功能:自动收台,手动收台,液晶显示。

采用主要模块有:(1)STC89C52单片机模块。

(2)Lcd1602显示模块。

(3)TEA5767收音机模块。

关键词:STC89C52 Lcd1602 TEA5767模块目录摘要 (2)1.绪论 (5)1.1 课题背景 (5)1.2 课题概述 (5)2.设计要求与思路 (5)2.1 收音机的设计要求 (5)2.2 系统设计整体思路 (5)3.主要电路模块的实现方案比较及选择 (6)3.1 控制模块方案选择 (7)3.2 液晶显示模块方案选择 (7)3.3 无线芯片方案选择 (7)4.系统电路图 (8)4.1 微控制器模块 (8)4.2 FM模块 (9)4.2.1 FM模块介绍 (9)4.3 工作原理 (10)4.3.1串行总线工作模式 (10)4.3.2 串行总线基本操作 (10)4.3.3数据传送 (12)4.3.4、三线总线工作模式 (12)5.系统软件设计 (13)5.1 主程序设计 (13)5.2 流程图 (14)6.硬件电路测试与检测 (14)6.1 硬件装配 (14)6.2 系统测试 (14)7.结束语 (15)8.参考文献 (15)9.致谢 (15)10.附录 (16)10.1 电路原理图 (16)10.2 电路PCB图 (16)10.3 电路实物图 (17)10.3 元器件清单 (18)11.操作框图 (19)程序框图 (20)12.程序 (21)12.1 主程序 (21)12.2 I2C总线 (26)12.3 Lcd1602程序 (29)基于TEA5767模块的数字FM收音机设计一.绪论1.1课题背景随着科学技术的不断发展,新颖的调频收音机的不断出现,技术不断的提高,设计出来的收音机外型精致和小巧。

51单片机FM收音机课程设计报告

51单片机FM收音机课程设计报告

微处理器系统综合设计51单片机FM收音机课程设计报告姓名:朱洪涛学号:311309020430学院:计算机科学与技术学院班级:通信1304微处理器系统综合设计1 设计要求51单片机FM收音机分为硬件电路和程序设计两个方面。

从硬件电路来说,主要是实现所需电压值、稳压、搜台、控制和频率显示等方面;从系统程序来说,主要是通过软件来实现RDA5807模块的功能,最后将程序经过编译后所生成的后缀为.HEX的文件烧录到单片机芯片中,使用IIC总线方式调台,并且得到当前的频率,处理并实现频率转换、显示。

2 项目概述2.1 主要功能该项目实现的主要功能及参数:(1)采用液晶作为显示器。

(2)可接收87.5~108MHz范围内的调频广播电台。

(3)立体声,耳机输出声音。

(4)按键可实现音量调节和自动搜台两个功能。

2.2 设计方案项目采用“电子积木+底板”的形式,通过电子积木拼接,实现项目功能。

主要积木包括:51单片机核心板、独立按键模块、FM模块、LCD1602液晶模块。

系统框图微处理器系统综合设计51单片机FM收音机实物图程序框图微处理器系统综合设计3 硬件电路RDA5802E芯片为核心的,新一代数字调频收音机模块。

具有微处理器系统综合设计4 软件程序4.1 程序流程本项目采用C51语言开发,在集成开发环境KEIL中编写完成。

微处理器系统综合设计(1)初始化开机后,完成的初始化包括:1、串口初始化。

串口初始化之后,可通过printf语句通过串口打印信息。

可以作为程序调试的方法。

2、液晶初始化。

液晶LCD1602初始化,并显示“开机界面”,然后再清屏。

(2)主循环1、显示当前频率及音量信息。

调用Lcd_Display(),根据变量frequency及volume显示。

2、根据键值,执行相应程序。

如果4个按键有按下的,分别会执行:自动搜台加减和音量加减。

4.2 主要函数(1)库函数I2C.h该文件包括了I2C总线驱动的一些基本函数。

基于单片机数字FM收音机的设计方法与实现(毕业论文)

基于单片机数字FM收音机的设计方法与实现(毕业论文)

学科分类号0806本科毕业论文(设计)题目(中文):基于单片机的数字FM收音机设计(英文):The Design of FM Radio Based onMCU学生姓名:某某学号:0810404003系别:物理与信息工程系专业:通信工程专业指导教师:某某讲师起止日期:2011年12月—2012年5月2012年5月12日怀化学院本科毕业设计报告书诚信声明作者郑重声明:所呈交的本科毕业设计,是在指导老师的指导下,独立进行研究所取得的成果,成果不存在知识产权争议。

除文中已经注明引用的内容外,报告书中不含任何其他个人或集体已经发表或撰写过的成果。

对毕业设计做出重要贡献的个人和集体均已在文中以明确的方式标明。

本声明的法律结果由作者承担。

本科毕业设计报告书作者签名:年月日目录摘要 (I)关键词 (I)Abstract (II)Key words (III)1 前言 (3)2 方案设计与论证·······················································错误!未定义书签。

3 硬件电路设计 (7)3.1 主控电路 (7)3.2 音频输出模块电路 (10)3.3 FM收音电路 (12)3.4 LED数码管电路 (16)3.5 按键电路 (17)3.6 I2C总线简介 (18)3.7 电路装配注意事项 (21)4 软件设计 (21)4.1主程序设计 (22)4.2数码管显示控制子程序 (24)4.3 收音机控制子程序 (25)5 系统测试 (26)6 结论与心得 (27)参考文献 (28)致谢 (29)附录A (30)附录B (37)基于单片机的FM调频收音机摘要调频收音机本次所设计的题目是调频收音机的设计。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的数字FM收音机设计与实现
基于51单片机的数字FM收音机
设计与实现
摘 要
关键词:数字调频;STC89C52;TEA5767;TDA2030
ABSTRACT
Nowadays peopleusually use the radio for manual FM accept , it is much trouble, and because the rx sensitivity is not high, the frequency 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 inthis designingI will use the STC89C52 single-chip microcomputer and TEA5767 as the core components of digital FM radio system andUse the I2C communication to connect between STC89C52 and TEA5767 chip。Through the software written and using single chip computer control TEA5767 achieve manually live to be automatic FM, received signal through the TAD2030 amplifier amplification device, then use the speaker output the signal。In the process of FM the frequency of the signal can be checked by LCD1602。
该设计分为两部分:硬件电路和程序。硬件电路包括控制模块、FM调频模块、电源供电模块和接收模块四部分。主控制器采用的是单片机STC89C52,调频模块采用的是TEA5767芯片,电源供电模块可采用电池直接供电或通过变压设备得到要求的电源。本设计采用模块化设计,整个系统由、控制模块、TEA576模块、音量控制模块和功放模块显示模块组成,系统的整体方案框图如图1-2
1
FM
FM收音机由输入回路、高放回路、本振回路、混频回路、中放回路、鉴频回路和音频功率放大器组成。如图1-1所示。
调频的接收天线以耳机的地线替代,也可直接插上配给的天线ANT,二者工作原理相同。调频广播的高频信号输入回路直接经电容C、L组成的LC振荡回路,实际上构成一带通滤波器,其通频带为88MHz—108MHz。在集成块内部接受的调频信号经过高频放大,谐振放大。被放大的信号与本地振荡器产生的本振信号在内部进行FM混频,混频后输出。
此设计的基本原理与上述传统收音机的原理相似,在此不再累述。主要组成部分有单片机、存储器、功放、收音芯片。此处介绍不同之处。此方案通过单片机根据键盘输入,通过I2C对TEA5767模块的控制寄存器进行读写22构成的功放电路放大处理由扬声器输出。并将从TEA5767模块中读取的频率字换算后显示在LCD上。按存储键时,单片机将频率字写入24c02实现存台功能,按读取键即可收听所存电台。
图1-1FM收音机原理框图
FM混频信号由FM中频回路进行选择,提取以中频为载波的调频波。该中频选择回路由滤波器构成。中频调制波经中放电路进行中频放大,然后进行鉴频得到音频信号,经功率放大输出,耦合到扬声器,还原为声音。此外,因在调频波段未收到电台信号时,内部增益处于失控而产生的噪声很大。为此,通过检出无信号时的控制电平,控制静噪电路工作,使音频放大器处于微放大状态,从而达到静噪功能。
图1-2系统框图
从图1-2中可以看出,控制模块仅仅通过I2C总线与收音模块连接并控制收音机工作。本设计使用单片机P3口的两个I/O脚来模拟I2C总线的SDA和SCL时序并与TEA5767通信;TEA5767输出的左右声道音频信号可通过音量控制模块进行前级放大及音量控制,然后输入到TDA7057进行后级功率放大,最后输出到扬声器。单片机可通过I2C总线进行音量调节;ROM存储模块主要用于存储电台数据、音量数据和时钟数据,为存储和读取数据带来方便。系统可通过按键进行操作,通过MCU检测按键信号并经单片机实现手动搜台、自动搜台、音量控制、时钟调整等功能,各项操作提示和操作结果均可通过LCD显示出来。稳压电源模块产生的5 V和3.3 V电压可分别为各个模块器件供电。
Key words:Digital FM;STC89C52;TEA5767;TAD2030
绪论
虽然手机、计算机、电视等各种电子娱乐设施已经越来越普遍,但是收音机在丰富的娱乐媒介中仍然占有重要地位。随着消费类电子的兴起和繁荣以及数字电子技术的发展,收音机逐渐数字化,集成化,而且成本越来越低,这使得在各种设备中嵌入收音机的现象更加普遍。广大从事消费类电子设计的厂商都不忘在诸如MP3、智慧手机、便携式Video播放器等产品中嵌入FM部分。TEA5767系列单片数字元收音机就被广泛地应用在各类电子产品中。利用TEA5767设计数字FM收音机与传统的超外差式收音机的调谐方式不太一样,传统的超外差式收音机的固定频率为,而TEA5767系列数字元收音机的固定中频为225KHz,由于固定中频不同,锁相环系统的软件控制就有很大的差别,这就给广大芯片应用设计者带来一定的难度。本设计将采用宏晶STC89C52芯片来控制Philips公司的TEA5767收音模块,从而做成一个数位收音机。该收音机,具有抗干扰能力强、体积小、方便携带、调频范围宽等优点。
相关文档
最新文档