基于AT89C52控制的FM收音机.docx
- 文档编号:30772732
- 上传时间:2023-08-23
- 格式:DOCX
- 页数:20
- 大小:96.30KB
基于AT89C52控制的FM收音机.docx
《基于AT89C52控制的FM收音机.docx》由会员分享,可在线阅读,更多相关《基于AT89C52控制的FM收音机.docx(20页珍藏版)》请在冰豆网上搜索。
基于AT89C52控制的FM收音机
基于AT89C52控制的FM收音机
摘要:
1
0前言1
1课题分析2
1.1总体分析2
1.2主要技术分析2
2FM收音机程序流程图7
3FM收音机电路图8
4FM收音机实物图8
5FM收音机核心程序9
6项目拓展13
7结论13
参考文献13
基于单片机控制的FM收音机
摘要:
单片机自20世纪70年代问世以来,以极其高的性能价格比受到人们的重视和关注,所以应用很广,发展很快。
单片机的特点是体积小、集成度高、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。
正因为单片机有如此多的优点,因此其应用领域之广,几乎到了无孔不入的地步。
在我国,单片机已被广泛地应用在工业自动化控制、自动检测、智能仪表、智能化家用电器、航空航天系统和和国防军事、尖端武器等各个方面。
我们可以开发利用单片机系统以获得很高的经济效益。
更重要的意义是单片机的应用改变了控制系统传统的设计思想和方法。
以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。
这种以软件结合硬件或取代硬件并能提高系统性能的控制技术称为微控制技术。
例如,本文所要论述的通过单片机来控制TEA5767HN芯片与驱动LED数码管实现FM收音并显示频率。
现在人们常使用的收音机为手动调频收台,使用较为麻烦,而且由于接收灵敏度不高,所接收的频段较窄。
本设计采用的是TEA5767HN芯片,它是由PHILIPS公司推出的针对低电压应用的单芯片数字调谐FM立体声收音机芯片。
TEA5767HN芯片集成了完整的IF频率选择和鉴频系统,只需很少的低成本外围元件,就可实现FM收音机的全部功能。
另外,它具有高性能的RFAGC电路,其接收灵敏度高;参考频率选择灵活;可实现自动搜台。
关键词:
单片机;FM收音机
0前言:
本设计研究FM收音机分为硬件电路和程序设计两个方面。
从硬件电路来说,主要是实现所需电压值、稳压、搜台、控制和频率显示等方面;从系统程序来说,主要是如何将电台频率换算出PLL控制字写入TEA5767HN,以与PLL控制字转换成频率送显示。
意义:
随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,TEA5767HN芯片可通过IIC系统总线进行各种功能控制,并通过IIC总线输出7位IF计数值;立体声解调器完全免调,可用软件控制SNC、HCC、暂停和静音功能;具有两个可编程I/O口,可用于系统的其他相关功能,又由于其小尺寸的封装,使得它非常适合用于电路板空间相当有限的设计上。
1课题分析
1.1总体分析
课题研究分为两部分:
硬件电路和程序。
硬件电路包括主控制器、调频模块、喇叭(耳机)接收和频率显示四部分。
主控制器采用的是单片机AT89S51,调频模块采用的是TEA5767HN芯片,显示电路采用四个74LS164芯片和4位共阳极LED数码管直读显示。
程序部分用C语言编写包括设定89.6MHZ电台、TEA5767HN写入和读出、PLL控制字转换为频率送显示和IIC总线操作子程序包。
通过设计电路图和电路焊接,编写程序并调试,使系统达到设计要求。
1.2主要技术分析:
1.2.1调频广播收音机的原理:
一个典型的调频广播收音机的电路原理图如下:
1.2.2本设计用到的TEA5767HN的功能介绍:
//具有集成的高灵敏度低噪声射频输入放大器;
//具有射频自动增益控制电路RFAGC;
//LC调谐振荡器采用廉价的固定片式电感;
//具有部实现的FM中频选择性;
//具有完全集成的FM鉴频器,无需外部解调;
//可选择32.768kHZ或13MHZ的晶体参考频率振荡器,也可使用外部6.5MHZ的参考频率;
//采用PLL合成器调谐系统;
//引脚BUSMODE可选择IIC和3-wire总线;
//总线可输出7位中频计数器;
//总线可输出4位信号电平信息;
//具有软件静音功能;
//具有免调整立体声解调功能;
//具有电台自动搜索功能;
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收音机电路图:
4FM收音机实物图:
如图,工作在105.1MHz
5.FM收音机核心程序:
#pragmaSMALL
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitSDA=P1^1;
sbitSCL=P1^0;
sbitLEDG=P3^5;
sbitLEDR=P3^7;
sbitS1=P1^4;
unsignedlongPLL;
uintFG[5];
bitRF=0X08;
bitBLF=0X09;
bitSTERE0=0X0A;
ucharMRD[5],MTD[5];
uchardisplay[10]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};
/*IIC总线程序*/
voidclr()
{
MRD[0]=0X00;
MRD[1]=0X00;
MRD[2]=0X00;
MRD[3]=0X00;
MRD[4]=0X00;
PLL=0;
}
voiddel240()
{
inti,j;
for(i=240;i>0;i--)
for(j=110;j>0;j--);
}
voidFM_WT()
{inti;
L2:
do
{
sta();
wrbyt(0xc0);
cack();
}while(F0==1);
for(i=0;i<5;i++)
{wrbyt(MTD[i]);
cack();
while(F0==1)
gotoL2;
}
stop();
}
voidFM_RD()
{
inti;
uchardata0;
do{
sta();
wrbyt(0xc1);
cack();
}while(F0==1);
for(i=0;i<5;i++)
{
data0=rdbyt();
MRD[i]=data0;
if(i<4)mack();
}
mnack();
stop();
RF=MRD[0]/2/2/2/2/2/2;
BLF=MRD[0]/2/2/2/2/2%2;
PLL=(MRD[0]&0X3F)*16*16+MRD[1];
STERE0=MRD[2]/2/2/2/2/2/2;
}
voidPLLDIS()
{
unsignedlongF;
inti;
F=(PLL*8192+225000)/10000;
FG[0]=F/10000;
FG[1]=(F%10000)/1000;
FG[2]=(F%1000)/100;
FG[3]=(F%100)/10;
FG[4]=F%10;
if(FG[4]>5)FG[3]=FG[3]+1;
if(FG[3]>9)
{
FG[2]=FG[2]+1;
FG[3]=0;
}
if(FG[2]>9)
{
FG[1]=FG[1]+1;
FG[2]=0;}
if(FG[1]>9)
{
FG[0]=1;
FG[1]=0;
}
for(i=3;i>=0;i--)
{if(i!
=2)
{
SBUF=display[FG[i]];
}
elseSBUF=display[FG[i]]&0xfe;
while(TI==0);
TI=0;
}
}
voidmain()
{
uinti=1;
SCON=0x00;
BLF=0;
RF=0;
STERE0=0;
LEDG=1;
LEDR=1;
MTD[0]=0X2A;
MTD[1]=0X9E;
MTD[2]=0XC0;
MTD[3]=0X17;
MTD[4]=0X00;
FM_WT();
del240();
clr();
FM_RD();
PLLDIS();
//if(STERE0==1)LEDG=0;
L1:
if(i==1)
{
MTD[0]=0XE9;
MTD[1]=0XDA;
MTD[2]=0Xc8;
MTD[3]=0X17;
MTD[4]=0X00;
}
else
{
MTD[0]=0XF3;
MTD[1]=0X64;
MTD[2]=0X48;
MTD[3]=0X17;
MTD[4]=0X00;
}
while
(1)
{
while(S1==1)NOP();
LEDG=1;
LEDR=1;
FM_WT();
del240();
del240();
clr();
do
{
FM_RD();
}
while(RF==0);
if(STERE0==0)
{
MTD[2]=0X08;
}
else
{
MTD[2]=0X00;
LEDG=0;
}
MTD[0]=MRD[0]&0x7f;
MTD[1]=MRD[1];
FM_WT();
PLLDIS();
if(BLF==1)
{
i=!
i;
LEDR=0;
gotoL1;
}
if(i==1)
{
MTD[2]=0XC8;
MTD[1]=0X0C+MRD[1];
if(MTD[1]>0XFF)
{
MTD[1]=MTD[1]-0XFF;
MRD[0]=MRD[0]+1;
}
MTD[0]=0XC0|MRD[0];
}
else
{
MTD[2]=0X48;
MTD[1]=MRD[1]-0X0C;
if(MTD[1]<0)
{
MTD[1]=MTD[1]+0XFF;
MRD[0]=MRD[0]-1;
}
MTD[0]=MRD[0]|0XC0;
}
}
}
6项目扩展
在原板子上加上DS18B20数字温度传感器检测空气温度并由单片机控制在LED数码管上显示,进一步可扩展2262、2267无限传输模块实现无线传输。
7总结
经过一个多月的设计和开发,FM收音机已经做成并能正常工作,又经过项目扩展并可实现温度测量与显示,通过这次课程设计掌握了基本硬件电路的设计、焊接与故障调试,并学习了keilc编程语言,总之收获颇丰。
参考文献
[1]俊谟.单片机中级教程——原理与应用.:
航空航天大学,2006年10月.
[2]唐工.51单片机工程应用实例.:
航空航天大学,2006年3月.
我们认为:
师兄的程序还不够理想,大家先看着,我们正在编写更好的。
另外TEA5767不便于仿真,故文中无仿真图,不是故意不提供。
支持本论坛,斑竹辛苦了!
向本论坛网友赠送电子入门套件之部分器材,只为广交朋友:
a、电子门铃制作,b、简易循环小彩灯(用PCB板做),d、LED“手电筒”制作。
不但可以赠送,而且包装费由本部承担。
但邮费要受赠者自付,想省钱走邮局的平邮,想快走快递(我校有两三家快递)。
请你先去问问邮局(或快递)按最小重量500克计,从到贵处邮费多少,先打邮费给我们,本部就赠送器材。
本学生开放实验室公共的主号是154401855(点击可以聊天,备用154401856),请加为好友并查看该资料,上面列出了更多人员的联系方式,可以找到联系,可以询问,由于学生是流动的,所以新的我们在主号的资料中更新。
找人联系可以得到赠送器材。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89C52 控制 FM 收音机