AT89S52 12MHZ TEA5767的数码管显示调频收音机Word下载.docx

上传人:b****5 文档编号:20015032 上传时间:2023-01-15 格式:DOCX 页数:6 大小:16.32KB
下载 相关 举报
AT89S52 12MHZ TEA5767的数码管显示调频收音机Word下载.docx_第1页
第1页 / 共6页
AT89S52 12MHZ TEA5767的数码管显示调频收音机Word下载.docx_第2页
第2页 / 共6页
AT89S52 12MHZ TEA5767的数码管显示调频收音机Word下载.docx_第3页
第3页 / 共6页
AT89S52 12MHZ TEA5767的数码管显示调频收音机Word下载.docx_第4页
第4页 / 共6页
AT89S52 12MHZ TEA5767的数码管显示调频收音机Word下载.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

AT89S52 12MHZ TEA5767的数码管显示调频收音机Word下载.docx

《AT89S52 12MHZ TEA5767的数码管显示调频收音机Word下载.docx》由会员分享,可在线阅读,更多相关《AT89S52 12MHZ TEA5767的数码管显示调频收音机Word下载.docx(6页珍藏版)》请在冰豆网上搜索。

AT89S52 12MHZ TEA5767的数码管显示调频收音机Word下载.docx

sbitKEY3=P3^6;

sbitKEY4=P3^7;

#defineduanP0

//频率显示的数码管段选P0端口

//#definegy

//使用共阴极时屏蔽这行

sbitdula=P2^6;

sbitwela=P2^7;

ucharIF,ADC,CH;

//bitRF,STEREO;

#ifdefgy

unsignedcharcodedispbit[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

//显示位码

unsignedcharcodedispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};

//数码管显示编码

#else

unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};

//数码管显示编码

unsignedcharcodedispbit[]={0x7e,0x7d,0x7b,0x77,0x6f,0x5f};

/*定义点亮的数码管与数组的关系*/

#endif

/**************************************************************************************************************

unsignedcharradio_write_data[5]={0x2c,0xe1,0x70,0x16,0x80};

//频率为93.9MHz广东音乐电台

unsignedcharradio_write_data[5]={0x30,0x5c,0x70,0x16,0x80};

//频率为101.2MHz广东电台音乐之声

unsignedcharradio_write_data[5]={0x31,0x38,0x70,0x16,0x80};

//频率为103.0MHz广东珠江经济电台

unsignedcharradio_write_data[5]={0x31,0xd7,0x70,0x16,0x80};

//频率为104.3MHz宝安广播电台

unsignedcharradio_write_data[5]={0x32,0x20,0x70,0x16,0x80};

//频率为104.9MHz中央人民广播电台华夏之声

unsignedcharradio_write_data[5]={0x33,0x2d,0x70,0x16,0x80};

//频率为107.1MHz中国国际广播电台环球资讯

unsignedcharradio_read_data[5];

unsignedcharradio_write_data[5];

unsignedlongfrequency=104900;

//开机初始化的电台频率为104.9MHz中央民广播电台华夏之声

unsignedintPLL;

//计算频率合成时用的变量

voidDelayus(unsignedcharx)

{

for(;

x>

;

0;

x--);

}

voidiic_start()//启动总线传输

SDA=1;

Delayus(4);

SCL=1;

SDA=0;

SCL=0;

voidiic_stop()//结束总线传输

voidiic_ack()//发送应答位

bitiic_testack()

bitErrorBit;

ErrorBit=SDA;

returnErrorBit;

voidiic_write8bit(unsignedcharinput)//写一个字节的数据到总线上

unsignedchartemp;

for(temp=8;

temp>

temp--)

SDA=(bit)(input&

0x80);

Delayus(4);

SCL=1;

SCL=0;

input=input;

b--)

for(i=0;

i;

>

=4;

//STEREO=radio_read_data[2]&

0x80;

//最高位就是STEREO值

temp_l=radio_read_data[1];

temp_h=radio_read_data[0];

temp_h&

=0x3f;

PLL=temp_h*256+temp_l;

get_frequency();

//读TEA5767状态,并转换成频率

#definemax_freq108000

#definemin_freq87500

//自动搜台,mode=1,频率增加搜台;

mode=0:

频率减小搜台

voidauto_search(uchardec)

intk=0;

//unsignedcharaa[6]={0};

radio_write();

//写收音机芯片数据

if(dec)//自动搜台,mode=1,频率增加搜台

while(frequency;

0x31)&

&

(ADC>

4))//&

(STEREO)&

(RF))//如搜到电台

{

frequency+=100;

return;

}

frequency=min_freq;

//将最小频率下限值赋给当前频率

else//自动搜台,mode=0:

while(frequency>

min_freq)//如果当前频率大于最小频率下限值

get_pll();

//由频率计算PLL

radio_write_data[0]=PLL/256;

radio_write_data[1]=PLL%256;

radio_write_data[2]=0x20;

//减小频率搜索,低:

ADC输出大小为5,高充电电流

radio_write_data[3]=0x11;

//fxtal=32.768KHz,软件静音开

radio_write_data[4]=0x80;

//6.5MHz的锁相环参考频率开,去加重时间常数为50us。

radio_write_data[0]|=0x40;

//01000000=SM/SM=1则处于搜索模式

radio_write();

//写入TEA5767

desplay(frequency/100);

//调用显示

radio_read();

//读收音机芯片数据

//if((radio_read_data[0]&

0x80))//如果有一个频道被搜到或者一个制式已经符合

if((IF;

frequency-=100;

frequency=max_freq;

//将最大频率上限值赋给当前频率

voidmain()

//观察变量用

unsignedcharB,D;

frequency=104900;

PLL=(unsignedint)((float)((frequency+225))/(float)8.192);

B=PLL/256;

D=PLL%256;

delay();

delays(1000);

//延时消抖

search();

//写入初始化电台频率

//radio_read();

while

(1)

if(!

KEY1)//手动设置频率,+0.1MHz;

delays(250);

//延时消抖

if(frequency>

108500)//频率如果大于108.5MHz

frequency=87500;

//频率设定为87.5MHz

search();

//将显示的频率算好后写到TEA5767芯片里面

KEY2)

//手动设置频率,-0.1MHz;

delays(20);

frequency-=100;

if(frequency<

87500)//频率如果小于87.5MHz

frequency=108500;

//频率设定为108.5MHz

KEY3)

//加频率

auto_search

(1);

//自动搜台,mode=1,频率增加搜台

while(!

KEY3)desplay(frequency/100);

//调用显示

KEY4)

//减频率

auto_search(0);

//自动搜台mode=0:

频率减小搜台

KEY4)desplay(frequency/100);

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

当前位置:首页 > 工程科技 > 能源化工

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

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