方法PICTEA5767数码管显示调频收音机Word文件下载.docx

上传人:b****1 文档编号:4295215 上传时间:2023-05-03 格式:DOCX 页数:17 大小:21.80KB
下载 相关 举报
方法PICTEA5767数码管显示调频收音机Word文件下载.docx_第1页
第1页 / 共17页
方法PICTEA5767数码管显示调频收音机Word文件下载.docx_第2页
第2页 / 共17页
方法PICTEA5767数码管显示调频收音机Word文件下载.docx_第3页
第3页 / 共17页
方法PICTEA5767数码管显示调频收音机Word文件下载.docx_第4页
第4页 / 共17页
方法PICTEA5767数码管显示调频收音机Word文件下载.docx_第5页
第5页 / 共17页
方法PICTEA5767数码管显示调频收音机Word文件下载.docx_第6页
第6页 / 共17页
方法PICTEA5767数码管显示调频收音机Word文件下载.docx_第7页
第7页 / 共17页
方法PICTEA5767数码管显示调频收音机Word文件下载.docx_第8页
第8页 / 共17页
方法PICTEA5767数码管显示调频收音机Word文件下载.docx_第9页
第9页 / 共17页
方法PICTEA5767数码管显示调频收音机Word文件下载.docx_第10页
第10页 / 共17页
方法PICTEA5767数码管显示调频收音机Word文件下载.docx_第11页
第11页 / 共17页
方法PICTEA5767数码管显示调频收音机Word文件下载.docx_第12页
第12页 / 共17页
方法PICTEA5767数码管显示调频收音机Word文件下载.docx_第13页
第13页 / 共17页
方法PICTEA5767数码管显示调频收音机Word文件下载.docx_第14页
第14页 / 共17页
方法PICTEA5767数码管显示调频收音机Word文件下载.docx_第15页
第15页 / 共17页
方法PICTEA5767数码管显示调频收音机Word文件下载.docx_第16页
第16页 / 共17页
方法PICTEA5767数码管显示调频收音机Word文件下载.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

方法PICTEA5767数码管显示调频收音机Word文件下载.docx

《方法PICTEA5767数码管显示调频收音机Word文件下载.docx》由会员分享,可在线阅读,更多相关《方法PICTEA5767数码管显示调频收音机Word文件下载.docx(17页珍藏版)》请在冰点文库上搜索。

方法PICTEA5767数码管显示调频收音机Word文件下载.docx

#include<

reg51.h>

#defineucharunsignedchar

#defineuintunsignedint

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

sbitSDA=P3^0;

//接在TEA5767的数据端口

sbitSCL=P3^1;

//接在TEA5767的时钟端口

sbitKEY1=P3^4;

//频率增加按键端口

sbitKEY2=P3^5;

//频率减小按键端口

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_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<

<

1;

uchariic_rdbyt()//从总线上读取一个字节的数据

uchara=0,i=0;

for(i=0;

i<

8;

i++)

SDA=1;

if(SDA==1)

{

a=(a<

1)+1;

}

elseif(SDA==0)

a=a<

return(a);

voiddelays(unsignedcharb)//按键消抖用的延时程序

unsignedchari;

for(b;

b>

b--)

250;

i++);

voidradio_write(void)//写入TEA5767

iic_start();

//启动总线传输

iic_write8bit(0xc0);

//TEA5767写地址

if(!

iic_testack())

for(i=0;

5;

iic_write8bit(radio_write_data);

//写一个字节的数据到总线上

iic_ack();

//发送应答位

iic_stop();

//结束总线传输

//将显示的频率算好后写到TEA5767芯片里面实现调节,不用考虑TEA5767用于搜台的相关位:

SM,SUD

//写模式

//数据字节1数据字节2数据字节3数据字节4数据字节5

voidsearch()

{

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

//计算合成频率数据频率单位:

k

//数据字节1的格式radio_write_data[0]

//位7(高位)位6位5位4位3位2位1位0(低位)

//MUTESMPLL13PLL12PLL11PLL10PLL9PLL8

//7MUTE如果MUTE=1则左右声道被静音;

MUTE=0左右声道正常工作。

//6SM如果SM=1则处于搜索模式SM=0不处于搜索模式。

//5到0PLL[13:

8]设定用于搜索和预设的可编程频率合成器。

radio_write_data[0]=PLL/256;

//将算好的频率高位数据存入将要TEA5767的数组里

//数据字节2的格式radio_write_data[1]

//PLL7PLL6PLL5PLL4PLL3PLL2PLL1PLL0

//PLL[7:

0]设定用于搜索和预设的可编程频率合成器。

radio_write_data[1]=PLL%256;

//将算好的频率低位数据存入将要TEA5767的数组里

//数据字节3的格式radio_write_data[2]

//SUDSSL1SSL0HLSIMSMLMRSWP1

//SUDSUD=1增加频率搜索SUD=0减小频率搜索。

//SLL[1:

0]搜索停止标准:

见下表1。

//SSL0SSL1搜索停止标准

//00在搜索模式下禁止

//01低:

ADC输出大小为5

//10中:

ADC输出大小为7

//11高:

ADC输出大小为10

//HLSI高/低充电电流切换:

HLSI=1高充电电流HLSI=0低充电电流。

//MS立体声/单声道:

MS=1单声道MS=0立体声。

//ML左声道静音:

ML=1左声道静音并置立体声ML=0左声道正常。

//MR右声道静音:

MR=1右声道静音并置立体声MR=0右声道正常。

//SWP1软件可编程端口1:

SWP1=1端口1高电平SWP1=0端口1低电平。

radio_write_data[2]=0x70;

//这是TEA5767开立体声关静音

//数据字节4的各个位描述radio_write_data[3]

//SWP2STBYBLXTALSMUTEHCCSNCSI

//SWP2软件可编程端口2:

SWP2=1,端口2高电平;

SWP2=0,端口2低电平。

//STBY等待:

STBY=1处于待机模式,STBY=0,退出待机模式。

//BL波段制式:

BL=1日本调频制式BL=0,美国/欧洲调频制式。

//XTAL如果XTAL=1那么fxtal=32.768KHz;

如果XTAL=0那么fxtal=13MHz。

//SMUTE软件静音:

SMUTE=1软静音打开;

SMUTE=0,软静音关闭。

//HCC白电平切割:

HCC=1高电平切割打开HCC=0高电平切割关闭。

//SNC立体声噪声去除:

如果SNC=1,立体声消噪除打开,如果SNC=0,立体声消噪除关闭。

//SI搜索标志位:

SI=1SWPORT1输出准备好信号SI=0SWPORT1作为软件可编程端口1用。

radio_write_data[3]=0x16;

//中国制式采用32768晶振软静音关立体声消噪声开

//数据字节5的格式radio_write_data[4]

//PLLREFDTC------------

//若PLLREF=16.5MHz的锁相环参考频率启用;

若PLLREF=06.5MHz的锁相环参考频率关闭。

//若DTC=1去加重时间常数为75us;

若DTC=0去加重时间常数为50us。

//位5到0未用状态不必考虑。

radio_write_data[4]=0x80;

//6.5M锁相环开去加重时间50US

radio_write();

//写入TEA5767

//读模式

//数据字节1数据字节2数据字节3数据字节4数据字节5

//数据字节1的格式

//RFBLFPLL13PLL12PLL11PLL10PLL9PLL8

//7RF准备好标志:

RF=1有一个频道被搜到或者一个制式已经符合;

RF=0没有频道被搜到。

//6BLF波段制式:

BLF=1一个制式已经符合BLF=0没有制式已经符合。

8]用于搜索和预设后的可编程频率合成器设定结果。

//数据字节2的格式

//数据字节2的各个位描述

0]设定用于搜索和预设后的可编程频率合成器设定结果。

//数据字节3的格式

//STEREOIF6IF5IF4IF3IF2IF1IF0

//7STEREO立体声标志位:

STEREO=1立体声接收STEREO=0单声道接收。

//6到0IF[6:

0]中频计数器结果。

//数据字节4的格式

//LEV3LEV2LEV1LEV0CI3CI2CI10

//7到4LEV[3:

0]ADC的输出。

//3到1CI[3:

1]芯片验证号。

//0------该位内部置0。

//数据字节5的格式

//00000000

//7到0------预留为扩展用由内部置0。

voiddelay()

uchark;

for(k=0;

k<

100;

k++);

voiddesplay(uintaa)

duan=tab[aa/1000]|0x80;

//关这位数码管的小数点

led1=0;

delay();

led1=1;

duan=tab[aa%1000/100]|0x

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

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2