单片机控制的FM收音机Word文件下载.docx
- 文档编号:16340969
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:23
- 大小:149.66KB
单片机控制的FM收音机Word文件下载.docx
《单片机控制的FM收音机Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机控制的FM收音机Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。
(1)具有集成的高灵敏度低噪声射频输入放大器;
(2)具有射频自动增益控制电路RFAGC;
(3)LC调谐振荡器采用廉价的固定片式电感;
(4)具有内部实现的FM中频选择性;
(5)具有完全集成的FM鉴频器,无需外部解调;
(6)可选择32.768kHZ或13MHZ的晶体参考频率振荡器,也可使用外部
6.5MHZ的参考频率;
(7)采用PLL合成器调谐系统;
(8)引脚BUSMODE可选择IIC和3-wire总线;
(9)总线可输出7位中频计数器;
(10)总线可输出4位信号电平信息;
(11)具有软件静音功能;
(12)具有免调整立体声解调功能;
(13)具有电台自动搜索功能;
1.2.3TEA5767HN的IIC总线说明:
TEA5767HN的IIC总线地址是C0H,是可收发的从器件结构,无内部地址。
最大低电平是0.2VCCD,最大高电平是0.45VCCD。
当使用IIC总线时,引脚BUSMODE必须接地。
因总线的最高时钟频率是400kHZ,故芯片的时钟频率不能高于该值。
当向TEA5767HN写入数据时,地址的最低位是0,即写地址是C0H。
当从TEA5767HN读出数据时,地址的最低位是1,即读地址是C1H。
TEA5767HN遵守通用的IIC总线通信协议,IIC总线的写模式和读模式格式分别为:
IIC写模式
开始位
写地址
应答位
数据字节
停止位
IIC读模式
读地址
数据字节1
1.2.4写数据:
TEA5767HN内部有一个5字节的控制寄存器,在IIC上电复位后,必须先通过总线接口向其写入适当控制字,TEA5767HN才能正常工作。
写入控制字应按照以下顺序:
地址,字节1,字节2,字节3,字节4,字节5
首先发送每个字节的最高位。
在时钟下降沿后写入的数据才有效。
写模式字节1格式
位7(MSB)
位6
位5
位4
位3
位2
位1
位0(LSB)
MUTE
SM
PLL13
PLL12
PLL11
PLL10
PLL9
PLL8
写模式字节1各位说明
位
符号
说明
7
左右声道静音设置。
1:
左右声道静音;
0:
左右声道非静音
6
搜索模式设置。
搜索模式;
非搜索模式
5~0
PLL13~8
预置或搜索电台的频率数据高6位
写模式字节2格式
PLL7
PLL6
PLL5
PLL4
PLL3
PLL2
PLL1
PLL0
写模式字节2各位说明
说明
7~0
PLL7~0
预置或搜索电台的频率数据低8位
写模式字节3格式
SUD
SSL1
SSL0
HLSI
MS
ML
MR
SWP1
写模式字节3各位说明
上下搜索设置。
向上搜索;
向下搜索
6,5
SSL1~0
设定搜索停止电平,见下表
4
设定高低本振。
高端本振注入;
低端本振注入
3
单声道或立体声设置。
强制单声道;
开立体声
2
左静音设置。
左声道静音强制单声道;
左声道非静音
1
右静音设置。
右声道静音强制单声道;
右声道非静音
软件可编程输出口1设置。
SWPOR1为高;
SWPOR1为低
搜索停止电平设置
搜索停止电平
不搜索
低电平,ADC输出值为5
中电平,ADC输出值为7
高电平,ADC输出值为10
(本设计用的是第三种)
1.2.5读数据
读地址为C1H。
读模式字节1格式
RF
BLF
读模式字节1各位说明
Ready标志。
发现了一个电台或搜索到头;
未搜索到头
波段到头标志。
搜索到头;
搜索或预置的电台频率值的高6位(需换算)
读模式字节2格式
读模式字节2各位说明
搜索或预置的电台频率值的低8位(需换算)
读模式字节3格式
STEREO
IF6
IF5
IF4
IF3
IF2
IF1
IF0
读模式字节3各位说明
立体声标志。
立体声;
单声道
6~0
IF6~0
中频计数结果
1.2.6根据电台频率换算出PLL控制字写入以及根据PLL控制字换算出电台频率读出。
TEA5767HN的中频f固定为225khz,参考频率与所使用的晶振有关,具体数值如下:
XTAL是写模式控制字第4字节的位4,PLLREF是写模式控制字第5字节的7位。
FM收音机参考频率
XTAL
PLLREF
参考频率
振荡频率
3000HZ
13MHZ
6.5MHZ
32768HZ
32.768KHZ
fRF=(NDEC*fREFS)/4-(+)fIF式中,fRF为收到的电台频率,NDEC为控制字的十进制值,fIF为中频频率,fREFS为参考频率。
当采用高本振时,公式用减号,当采用低本振时,公式用加号。
本设计用的参考频率是32768HZ,低本振,计算公式为:
fRF=NDEC*8192+225000(HZ)
2FM收音机流程图:
3FM收音机电路图:
器件清单:
器件
规格
件数
电解电容
1µ
F
1000µ
47µ
普通电容
0.1µ
电阻
10k
TDA2822
喇叭
4FM收音机实物图:
5.FM收音机核心程序:
#include<
reg51.h>
string.h>
math.h>
uart.h>
i2c.h>
#definemax_freq108000
#definemin_freq87500
sbitKEY11=P3^0;
sbitKEY22=P3^1;
sbitKEY1=P3^2;
sbitKEY2=P3^3;
unsignedcharradio_write_data[5]={0x2a,0xb6,0x40,0x11,0x40};
//要写入TEA5767的数据
unsignedcharradio_read_data[5];
//TEA5767读出的状态
unsignedintdefault_pll=0x301d;
//0x29f9;
//默认存台的pll,95.8MHz
unsignedintmax_pll=0x339b;
//108MHz时的pll,
unsignedintmin_pll=9000;
//70MHz时的pll
unsignedlongfrequency;
unsignedintpll;
unsignedlongFM;
/*voiddelay(unsignedinttime)
{
while(time--);
}*/
voiddelay1ms(unsignedintb)//1ms
for(b;
b>
0;
b--)
{unsignedinti;
for(i=0;
i<
300;
i++)
{;
}
}
#include<
intrins.h>
sbitRS=P2^4;
//定义端口
sbitRW=P2^3;
sbitEN=P2^2;
sbitP20=P2^0;
//定义锁存使能端口段锁存
sbitP21=P2^1;
//位锁存
sbitP35=P3^5;
//这是为了关闭开发板上的点阵实际应用去掉
#defineRS_CLRRS=0
#defineRS_SETRS=1
#defineRW_CLRRW=0
#defineRW_SETRW=1
#defineEN_CLREN=0
#defineEN_SETEN=1
#defineDataPortP1
/*------------------------------------------------
uS延时函数,含有输入参数unsignedchart,无返回值
unsignedchar是定义无符号字符变量,其值的范围是
0~255这里使用晶振12M,精确延时请使用汇编,大致延时
长度如下T=tx2+5uS
------------------------------------------------*/
voidDelayUs2x(unsignedchart)
{
while(--t);
mS延时函数,含有输入参数unsignedchart,无返回值
0~255这里使用晶振12M,精确延时请使用汇编
voidDelayMs(unsignedchart)
while(t--)
{
//大致延时1mS
DelayUs2x(245);
判忙函数
bitLCD_Check_Busy(void)
{
DataPort=0xFF;
RS_CLR;
RW_SET;
EN_CLR;
_nop_();
EN_SET;
return(bit)(DataPort&
0x80);
写入命令函数
voidLCD_Write_Com(unsignedcharcom)
while(LCD_Check_Busy());
//忙则等待
RW_CLR;
DataPort=com;
写入数据函数
voidLCD_Write_Data(unsignedcharData)
RS_SET;
DataPort=Data;
清屏函数
voidLCD_Clear(void)
LCD_Write_Com(0x01);
DelayMs(5);
初始化函数
voidLCD_Init(void)
LCD_Write_Com(0x38);
/*显示模式设置*/
LCD_Write_Com(0x08);
/*显示关闭*/
/*显示清屏*/
LCD_Write_Com(0x06);
/*显示光标移动设置*/
LCD_Write_Com(0x0C);
/*显示开及光标设置*/
//1602显示
voidDISP_FM()
unsignedcharj;
j=(radio_read_data[3]&
0xf0)>
>
4;
LCD_Write_Com(0x8e);
LCD_Write_Data('
0'
+(j/10));
+(j%10));
LCD_Write_Com(0x8c);
S'
);
:
'
FM=frequency;
LCD_Write_Com(0x80);
F'
M'
'
R'
a'
d'
i'
o'
LCD_Write_Com(0xc2);
if(FM/100000)
+FM/100000);
elseLCD_Write_Data('
LCD_Write_Com(0xc3);
+(FM%100000)/10000);
LCD_Write_Com(0xc4);
+(FM%10000/1000));
LCD_Write_Com(0xc5);
.'
LCD_Write_Com(0xc6);
+(FM%1000)/100);
LCD_Write_Com(0xc7);
+(FM%100)/10);
LCD_Write_Com(0xc8);
+(FM%10));
LCD_Write_Com(0xc9);
LCD_Write_Com(0xca);
LCD_Write_Com(0xcb);
H'
LCD_Write_Com(0xcc);
Z'
}
voidradio_write(void)
unsignedchari;
iic_start();
iic_write8bit(0xc0);
//TEA5767写地址
if(!
iic_testack())
5;
iic_write8bit(radio_write_data[i]);
iic_ack();
iic_stop();
//由频率计算PLL
voidget_pll(void)
unsignedcharhlsi;
unsignedinttwpll=0;
hlsi=radio_write_data[2]&
0x10;
//HLSI位
if(hlsi)
pll=(unsignedint)((float)((frequency+225)*4)/(float)32.768);
//频率单位:
k
else
pll=(unsignedint)((float)((frequency-225)*4)/(float)32.768);
//由PLL计算频率
voidget_frequency(void)
unsignedintnpll=0;
npll=pll;
frequency=(unsignedlong)((float)(npll)*(float)8.192-225);
KHz
frequency=(unsignedlong)((float)(npll)*(float)8.192+225);
voidradio_read(void)
unsignedchartemp_l,temp_h;
pll=0;
iic_write8bit(0xc1);
//TEA5767读地址
radio_read_data[i]=iic_read8bit();
temp_l=radio_read_data[1];
temp_h=radio_read_data[0];
temp_h&
=0x3f;
pll=temp_h*256+temp_l;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 控制 FM 收音机
![提示](https://static.bdocx.com/images/bang_tan.gif)