51单片机控制的FM收音机1.docx
- 文档编号:29140098
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:27
- 大小:561.66KB
51单片机控制的FM收音机1.docx
《51单片机控制的FM收音机1.docx》由会员分享,可在线阅读,更多相关《51单片机控制的FM收音机1.docx(27页珍藏版)》请在冰豆网上搜索。
51单片机控制的FM收音机1
专业综合课程设计
基于单片机控制的FM收音机
班级:
通信(三)班
成绩:
基于单片机控制的FM收音机
摘要:
单片机自20世纪70年代问世以来,以极其高的性能价格比受到人们的重视和关注,所以应用很广,发展很快。
单片机的特点是体积小、集成度高、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。
正因为单片机有如此多的优点,因此其应用领域之广,几乎到了无孔不入的地步。
在我国,单片机已被广泛地应用在工业自动化控制、自动检测、智能仪表、智能化家用电器、航空航天系统和和国防军事、尖端武器等各个方面。
我们可以开发利用单片机系统以获得很高的经济效益。
更重要的意义是单片机的应用改变了控制系统传统的设计思想和方法。
以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。
这种以软件结合硬件或取代硬件并能提高系统性能的控制技术称为微控制技术。
例如,本文所要论述的通过单片机来控制TEA5767HN芯片及驱动LCD1602液晶屏实现FM收音并显示频率。
现在人们常使用的收音机为手动调频收台,使用较为麻烦,而且由于接收灵敏度不高,所接收的频段较窄。
本设计采用的是TEA5767HN芯片,它是由PHILIPS公司推出的针对低电压应用的单芯片数字调谐FM立体声收音机芯片。
TEA5767HN芯片内集成了完整的IF频率选择和鉴频系统,只需很少的低成本外围元件,就可实现FM收音机的全部功能。
另外,它具有高性能的RFAGC电路,其接收灵敏度高;参考频率选择灵活;可实现自动搜台。
关键词:
89C52单片机;TEA5767HN芯片;2822功率放大器
Abstract
Thistestconstitutewithstc89c52singlechipmicyoco,tea5767model,2822poweramplifier,1602andperipheralcircuit.Inthedesignprocess,weusedmodulardesignforseveraltypes,suchassearchingmodel,displaymodel,storagemodelandsomeancillaryfunction.STCseriessinglechiphasverygoodcontrolabilityandstableleveltomeettherequirements.
前言:
本设计研究FM收音机分为硬件电路和程序设计两个方面。
从硬件电路来说,主要是实现所需电压值、稳压、搜台、控制和频率显示等方面;从系统程序来说,主要是如何将电台频率换算出PLL控制字写入TEA5767HN,以及PLL控制字转换成频率送显示。
意义:
随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,TEA5767HN芯片可通过IIC系统总线进行各种功能控制,并通过IIC总线输出7位IF计数值;立体声解调器完全免调,可用软件控制SNC、HCC、暂停和静音功能;具有两个可编程I/O口,可用于系统的其他相关功能,又由于其小尺寸的封装,使得它非常适合用于电路板空间相当有限的设计上。
1课题分析
1.1总体分析
课题研究分为两部分:
硬件电路和程序。
硬件电路包括主控制器、调频模块、喇叭(耳机)接收和频率显示四部分。
主控制器采用的是单片机AT89S51,调频模块采用的是TEA5767HN芯片,显示电路采用FPB9742芯片和LCD液晶屏直读显示。
程序部分用C语言编写包括设定89.6MHZ电台、TEA5767HN写入和读出、PLL控制字转换为频率送显示和IIC总线操作子程序包。
通过设计电路图和电路焊接,编写程序并调试,使系统达到设计要求。
1.2主要技术分析:
1.2.1调频广播收音机的原理:
一个典型的调频广播收音机的电路原理图如下:
本地振荡器
1.2.2本设计用到的TEA5767HN的功能介绍:
(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
MUTE
左右声道静音设置。
1:
左右声道静音;0:
左右声道非静音
6
SM
搜索模式设置。
1:
搜索模式;0:
非搜索模式
5~0
PLL13~8
预置或搜索电台的频率数据高6位
写模式字节2格式
位7(MSB)
位6
位5
位4
位3
位2
位1
位0(LSB)
PLL7
PLL6
PLL5
PLL4
PLL3
PLL2
PLL1
PLL0
写模式字节2各位说明
位
符号
说明
7~0
PLL7~0
预置或搜索电台的频率数据低8位
写模式字节3格式
位7(MSB)
位6
位5
位4
位3
位2
位1
位0(LSB)
SUD
SSL1
SSL0
HLSI
MS
ML
MR
SWP1
写模式字节3各位说明
位
符号
说明
7
SUD
上下搜索设置。
1:
向上搜索;0:
向下搜索
6,5
SSL1~0
设定搜索停止电平,见下表
4
HLSI
设定高低本振。
1:
高端本振注入;0:
低端本振注入
3
MS
单声道或立体声设置。
1:
强制单声道;0:
开立体声
2
ML
左静音设置。
1:
左声道静音强制单声道;0:
左声道非静音
1
MR
右静音设置。
1:
右声道静音强制单声道;0:
右声道非静音
0
SWP1
软件可编程输出口1设置。
1:
SWPOR1为高;0:
SWPOR1为低
搜索停止电平设置
SSL1
SSL0
搜索停止电平
0
0
不搜索
0
1
低电平,ADC输出值为5
1
0
中电平,ADC输出值为7
1
1
高电平,ADC输出值为10
(本设计用的是第三种)
1.2.5读数据
读地址为C1H。
读模式字节1格式
位7(MSB)
位6
位5
位4
位3
位2
位1
位0(LSB)
RF
BLF
PLL13
PLL12
PLL11
PLL10
PLL9
PLL8
读模式字节1各位说明
位
符号
说明
7
RF
Ready标志。
1:
发现了一个电台或搜索到头;0:
未搜索到头
6
BLF
波段到头标志。
1:
搜索到头;0:
未搜索到头
5~0
PLL13~8
搜索或预置的电台频率值的高6位(需换算)
读模式字节2格式
位7(MSB)
位6
位5
位4
位3
位2
位1
位0(LSB)
PLL7
PLL6
PLL5
PLL4
PLL3
PLL2
PLL1
PLL0
读模式字节2各位说明
位
符号
说明
7~0
PLL7~0
搜索或预置的电台频率值的低8位(需换算)
读模式字节3格式
位7(MSB)
位6
位5
位4
位3
位2
位1
位0(LSB)
STEREO
IF6
IF5
IF4
IF3
IF2
IF1
IF0
读模式字节3各位说明
位
符号
说明
7
STEREO
立体声标志。
1:
立体声;0:
单声道
6~0
IF6~0
中频计数结果
1.2.6根据电台频率换算出PLL控制字写入以及根据PLL控制字换算出电台频率读出。
TEA5767HN的中频f固定为225khz,参考频率与所使用的晶振有关,具体数值如下:
XTAL是写模式控制字第4字节的位4,PLLREF是写模式控制字第5字节的7位。
FM收音机参考频率
XTAL
PLLREF
参考频率
振荡频率
0
0
3000HZ
13MHZ
0
1
3000HZ
6.5MHZ
1
0
32768HZ
32.768KHZ
1
1
32768HZ
32.768KHZ
fRF=(NDEC*fREFS)/4-(+)fIF式中,fRF为收到的电台频率,NDEC为控制字的十进制值,fIF为中频频率,fREFS为参考频率。
当采用高本振时,公式用减号,当采用低本振时,公式用加号。
本设计用的参考频率是32768HZ,低本振,计算公式为:
fRF=NDEC*8192+225000(HZ)
2FM收音机流程图:
3FM收音机电路图:
器件清单:
器件
规格
件数
电解电容
1µF
2
电解电容
1000µF
1
电解电容
47µF
4
普通电容
0.1µF
1
电阻
10k
2
TDA2822
1
喇叭
1
4FM收音机实物图:
5.FM收音机核心程序:
#include
#include
#include
#include
#include
#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
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,无返回值
unsignedchar是定义无符号字符变量,其值的范围是
0~255这里使用晶振12M,精确延时请使用汇编
------------------------------------------------*/
voidDelayMs(unsignedchart)
{
while(t--)
{
//大致延时1mS
DelayUs2x(245);
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());//忙则等待
RS_CLR;
RW_CLR;
EN_SET;
DataPort=com;
_nop_();
EN_CLR;
}
/*------------------------------------------------
写入数据函数
------------------------------------------------*/
voidLCD_Write_Data(unsignedcharData)
{
while(LCD_Check_Busy());//忙则等待
RS_SET;
RW_CLR;
EN_SET;
DataPort=Data;
_nop_();
EN_CLR;
}
/*------------------------------------------------
清屏函数
------------------------------------------------*/
voidLCD_Clear(void)
{
LCD_Write_Com(0x01);
DelayMs(5);
}
/*------------------------------------------------
初始化函数
------------------------------------------------*/
voidLCD_Init(void)
{
LCD_Write_Com(0x38);/*显示模式设置*/
DelayMs(5);
LCD_Write_Com(0x38);
DelayMs(5);
LCD_Write_Com(0x38);
DelayMs(5);
LCD_Write_Com(0x38);
LCD_Write_Com(0x08);/*显示关闭*/
LCD_Write_Com(0x01);/*显示清屏*/
LCD_Write_Com(0x06);/*显示光标移动设置*/
DelayMs(5);
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));
LCD_Write_Data('0'+(j%10));
LCD_Write_Com(0x8c);
LCD_Write_Data('S');
LCD_Write_Data(':
');
FM=frequency;
LCD_Write_Com(0x80);
LCD_Write_Data('F');
LCD_Write_Data('M');
LCD_Write_Data('');
LCD_Write_Data('R');
LCD_Write_Data('a');
LCD_Write_Data('d');
LCD_Write_Data('i');
LCD_Write_Data('o');
LCD_Write_Com(0xc2);
if(FM/100000)
LCD_Write_Data('0'+FM/100000);
elseLCD_Write_Data('');
LCD_Write_Com(0xc3);
LCD_Write_Data('0'+(FM%100000)/10000);
LCD_Write_Com(0xc4);
LCD_Write_Data('0'+(FM%10000/1000));
LCD_Write_Com(0xc5);
LCD_Write_Data('.');
LCD_Write_Com(0xc6);
LCD_Write_Data('0'+(FM%1000)/100);
LCD_Write_Com(0xc7);
LCD_Write_Data('0'+(FM%100)/10);
LCD_Write_Com(0xc8);
LCD_Write_Data('0'+(FM%10));
LCD_Write_Com(0xc9);
LCD_Write_Data('');
LCD_Write_Com(0xca);
LCD_Write_Data('M');
LCD_Write_Com(0xcb);
LCD_Write_Data('H');
LCD_Write_Com(0xcc);
LCD_Write_Data('Z');
}
voidradio_write(void)
{
unsignedchari;
iic_start();
iic_write8bit(0xc0);//TEA5767写地址
if(!
iic_testack())
{
for(i=0;i<5;i++)
{
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);//频率单位:
k
}
//由PLL计算频率
voidget_frequency(void)
{
unsignedcharhlsi;
unsignedintnpll=0;
npll=pll;
hlsi=radio_write_data[2]&0x10;
if(hlsi)
frequency=(unsignedlong)((float)(npll)*(float)8.192-225);//频率单位:
KHz
else
frequency=(unsignedlong)((float)(npll)*(float)8.192+225);//频率单位:
KHz
}
voidradio_read(void)
{
unsignedchari;
unsignedchartemp_l,temp_h;
pll=0;
iic_start();
iic_write8bit(0xc1);//TEA5767读地址
if(!
iic_testack())
{
for(i=0;i<5;i++)
{
radio_read_data[i]=iic_rea
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 控制 FM 收音机