tea5767采用i2c或者三线接口控制,我是用的i2c,单片机用stc89c52,带1k eeprom,可以掉电存台,1602lcd显示.
tea5767读写数据都是5个字节,其中pll参数14位,具体数据格式请看datasheet.以下程序中的函数可以直接在主程序中调用.
#include iic.c
#define max_freq 108000
#define min_freq 87500
unsigned char radio_write_data[5]={0x29,0xc2,0x20,0x11,0x00}; //要写入tea5767的数据
unsigned char radio_read_data[5]; //tea5767读出的状态
unsigned int default_pll=0x29c2;//0x29f9; //默认存台的pll,87.8mhz
//unsigned int max_pll=0x339b; //108mhz时的pll,
//unsigned int min_pll=9000; //70mhz时的pll
void radio_write(void)
{
unsigned char i;
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();
}
//读tea5767状态,并转换成频率
void radio_read(void)
{
unsigned char i;
unsigned char temp_l,temp_h;
pll=0;
iic_start();
iic_write8bit(0xc1); //tea5767读地址
if(!iic_testack())
{
for(i=0;imax_freq)
frequency=min_freq;
}
else
{
frequency-=100;
if(frequency
}
get_pll();
radio_write_data[0]=pll/256;
radio_write_data[1]=pll%256;
radio_write_data[2]=0x20;
radio_write_data[3]=0x11;
radio_write_data[4]=0x00;
radio_write();
}
//自动搜台,mode=1,频率增加搜台; mode=0:频率减小搜台,不过这个好像不能循环搜台
void auto_search(bit mode)
{
radio_read();
get_pll();
if(mode)
radio_write_data[2]=0xa0;
else
radio_write_data[2]=0x20;
radio_write_data[0]=pll/256+0x40;
radio_write_data[1]=pll%256;
radio_write_data[3]=0x11;
radio_write_data[4]=0x00;
radio_write();
radio_read();
while(!(radio_read_data[0]&0x80)) //搜台成功标志
{
radio_read();
disp_freq(9,1);
}
}
国产北斗导航型芯片模块累计销量已突破8000万片 国产北斗芯片已实现规模化应用
利用采样保持放大器和RF ADC从根本上扩展带宽以突破X波段频率
DCS的停电和上电更深入的了解
关于中国制造2025发展的分析和发展之路
印刷电路板的制作过程
收音机模块TEA5767的C51控制程序
事件相机的原理与应用简介
找方案 | 基于慧能泰HUSB311的PD 100W双向充放电参考设计方案
怎样将Arduino Sketch上传到STM32F407开发板
LED段码显示驱动芯片在智能闹钟上的应用
Cortex-A8和ARM9有何不同?-Cortex-A8和ARM9的区别
【底盘大PK】路虎发现神行/凯迪拉克XT5
九天睿芯亮相GTIC 2022全球AI芯片峰会
微软VR还有高配版:配OLED屏,性能惊人
富瀚微拟收购眸芯科技32.43%股权,扩充SoC芯片业务
云时代下,云服务器正在取代传统机架服务器成为主流
塞尔瑟斯正式加入HART通讯基金会(HART Communi
中兴通讯再引3G热潮
VXLAN是什么,VXLAN 解决了什么问题
oppor11前后2000万像素臻美自拍再升级,拍照神机再续辉煌