51单片机控制的FM收音机Word下载.docx

上传人:b****5 文档编号:19501825 上传时间:2023-01-07 格式:DOCX 页数:25 大小:126.09KB
下载 相关 举报
51单片机控制的FM收音机Word下载.docx_第1页
第1页 / 共25页
51单片机控制的FM收音机Word下载.docx_第2页
第2页 / 共25页
51单片机控制的FM收音机Word下载.docx_第3页
第3页 / 共25页
51单片机控制的FM收音机Word下载.docx_第4页
第4页 / 共25页
51单片机控制的FM收音机Word下载.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

51单片机控制的FM收音机Word下载.docx

《51单片机控制的FM收音机Word下载.docx》由会员分享,可在线阅读,更多相关《51单片机控制的FM收音机Word下载.docx(25页珍藏版)》请在冰豆网上搜索。

51单片机控制的FM收音机Word下载.docx

1.2.1调频广播收音机的原理:

一个典型的调频广播收音机的电路原理图如下:

122本设计用到的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)具有电台自动搜索功能;

123TEA5767HN的IIC总线说明:

TEA5767HN的IIC总线地址是C0H是可收发的从器件结构,无内部地址。

最大低电平是0.2VCCD最大高电平是0.45VCCD

当使用IIC总线时,引脚BUSMOD必须接地。

因总线的最高时钟频率是400kHZ故芯片的时钟频率不能高于该值。

当向TEA5767HN写入数据时,地址的最低位是0,即写地址是

C0H当从TEA5767Hr读出数据时,地址的最低位是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

单声道或立体声设置。

强制单声道;

0:

开立体声

2

左静音设置。

左声道静音强制单声道;

左声道非静音

1

右静音设置。

1:

右声道静音强制单声道;

右声道非静音

软件可编程输出口1设置。

SWPOF为高;

SWPORM氐

搜索停止电平设置

搜索停止电平

不搜索

低电平,ADC输出值为5

中电平,ADC输出值为7

高电平,ADC输出值为10

(本设计用的是

第三种)

125读数据

读地址为C1H

读模式字节1格式

位7

(MSB

位0

(LSB

RF

BLF

读模式字节1各位说明

Ready标志。

1:

发现了一个电台或

搜索到头;

未搜索到头

波段到头标志。

PLL13~8

搜索或预置的电台频率值的高6位

(需换算)

读模式字节2格式

PLL

读模式字节2各位说明

搜索或预置的电台频率值的低8位(需换算)

读模式字节3格式

STEREO

IF6

IF5

IF4

IF3

IF2

IF1

IF0

读模式字节3各位说明

立体声标志。

立体

声;

单声道

6~0

IF6~0

中频计数结果

126根据电台频率换算出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为收到的电台频率,

NDE(为控制字的十进制值,fIF为中频频率,fREFS为参考频率。

当采用高本振时,公式用减号,当采用低本振时,公式用加号。

本设计用的参考频率是32768HZ,低本振,计算公式为:

fRF二NDEC*8192+22500(HZ)

2FM收音机流程图:

3FM收音机电路图:

IDDDj

Q-Tj

TQD1

Fdm.

町帖去

珀耳DEFJ咖P3STI

町育□)

KTALI

ISXljlE

■<

C.1_1UlKi■E*.

B.»

^TT

W.T

L_<

wr

VK?

3SD

nSyz?

HH

r>

-M

器件清单:

器件

规格

件数

电解电容

1000H

47aF

普通电容

0.1aF

电阻

10k

TDA2822

喇叭

4FM收音机实物图:

5.FM收音机核心程序:

#inelude<

reg51.h>

#include<

string.h>

math.h>

uart.h>

i2e.h>

#definemax_freq108000

#definemin_freq87500sbitKEY11二P3A0;

sbitKEY22二卩3八1;

sbitKEY仁P3A2;

sbitKEY2=P3A3;

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++)

{;

}

#includevintrins.h>

sbitRS=P2A4;

//定义端口

sbitRW=卩2八3;

sbitEN=P2A2;

sbitP20=P2A0;

//定义锁存使能端口段锁存

sbitP2仁P2A1;

〃位锁存

sbitP35=P3A5;

〃这是为了关闭开发板上的点阵实际应用去掉

#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);

判忙函数

----*/

bitLCD_Check_Busy(void)

DataPort二OxFF;

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(0x06);

LCD_Write_Com(OxOC);

/*}

〃1602显示

voidDISP_FM()

unsignedcharj;

j=(radio_read_data[3]&

0xf0)>

>

4;

LCD_Write_Com(0x8e);

LCD_Write_Data('

O'

+(j/1O));

+(j%1O));

LCD_Write_Com(0x8c);

S'

);

:

'

FM=frequency;

LCD_Write_Com(0x80);

F'

R'

a'

d'

i'

o'

LCD_Write_Com(0xc2);

if(FM/1OOOOO)

+FM/1OOOOO);

elseLCD_Write_Data('

LCD_Write_Com(0xc3);

+(FM%1OOOOO)/1OOOO);

LCD_Write_Com(0xc4);

+(FM%1OOOO/1OOO));

LCD_Write_Com(0xc5);

.'

LCD_Write_Com(0xc6);

+(FM%1OOO)/1OO);

LCD_Write_Com(0xc7);

LCD_Write_Com(0xc8);

+(FM%1O));

LCD_Write_Com(0xc9);

LCD_Write_Com(Oxca);

M'

LCD_Write_Com(Oxcb);

H'

LCD_Write_Com(Oxcc);

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=(unsigned

频率单

int)((float)((frequency+225)*4)/(float)32.768);

位:

k

else

int)((float)((frequency-225)*4)/(float)32.768);

//由PLL计算频率

voidget_frequency(void)

unsignedintnpll=0;

npll=pll;

hlsi二radio_write_data[2]&

0x10;

频率单位:

KHz

frequency二(unsigned

Iong)((float)(npll)*(float)8.192-225);

Iong)((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」二radio_read_data[1];

temp_h二radio_read_data[0];

temp_h&

=0x3f;

pll二temp_h*256+temp_l;

get_frequency();

//手动设置频率,mode=1,+0.1MHz;

mode=0:

-0.1MHz,不用考虑

TEA5767用于搜台的相关位:

SM,SUD

voidsearch(bitmode)

radio_read();

if(mode)

frequency+=100;

if(frequency>

max_freq)

frequency二min_freq;

frequency-=100;

if(frequency<

min_freq)frequency二max_freq;

get_pll();

radio_write_data[0]=pll/256;

radio_write_data[1]=pll%256;

radio_write_data[2]=0x41;

radio_write_data[3]=0x11;

radio_write_data[4]=0x4

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 书信模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1