TEA5767收音模块
:) #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;i<5;i++)
{
radio_read_data[i]=iic_read8bit();
iic_ack();
}
}
iic_stop();
temp_l=radio_read_data[1];
temp_h=radio_read_data[0];
temp_h&=0x3f;
pll=temp_h*256+temp_l;
get_frequency();
}
//由频率计算PLL
void get_pll(void)
{
unsigned char hlsi; //本振
unsigned int twpll=0;
hlsi=radio_write_data[2]&0x10;
if (hlsi)
pll=(unsigned int)((float)((frequency+225)*4)/(float)32.768); //频率单位:k(采用高本振,hlsi=1)
else
pll=(unsigned int)((float)((frequency-225)*4)/(float)32.768); //频率单位:k(采用低本振,hlsi=0)
}
//由PLL计算频率
void get_frequency(unsigned long pll)
{
unsigned char hlsi;
unsigned int npll=0;
npll=pll;
hlsi=radio_write_data[2]&0x10;
if (hlsi)
frequency=(unsigned long)((float)(npll)*(float)8.192-225); //频率单位:KHz
else
frequency=(unsigned long)((float)(npll)*(float)8.192+225); //频率单位:KHz
}
//手动设置频率,mode=1,+0.1MHz; mode=0:-0.1MHz ,不用考虑TEA5767用于搜台的相关位:SM,SUD
void search(bit mode)
{
radio_read();
if(mode)
{
frequency+=100;
if(frequency>max_freq)
frequency=min_freq;
}
else
{
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]=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);
}
}
TEA5767收音模块相关推荐
- ESP32设备驱动-TEA5767收音机模块驱动
TEA5767收音机模块驱动 1.TEA5767介绍 TEA5767HN 是一款用于低压应用的单芯片电子调谐 FM 立体声收音机,具有完全集成的中频 (IF) 选择性和解调功能,频率范围从76-108 ...
- ESP8266-Arduino编程实例-TEA5767收音机模块驱动
TEA5767收音机模块驱动 1.TEA5767介绍 TEA5767HN 是一款用于低压应用的单芯片电子调谐 FM 立体声收音机,具有完全集成的中频 (IF) 选择性和解调功能,频率范围从76-108 ...
- 小型化RDA5807调频收音模块实验板
项目介绍1 RDA5807M模块是小型化的调频收音模块.为了便于能够在面包板上进行实验,下面将该模块通过一个转接板来形成六针接口模块,这便于在面包板上完成相应的实验. 六针接口的定义如下:正视 ...
- STM32驱动TEA5767收音机模块
Tea5767是飞利浦公司出的一款集成化的收音机芯片,大四的时候机缘巧合遇到了这个芯片,用了一下,写点资料 主要特性 TEA5767HN是一款低功耗立体声收音IC,广泛应用于手机MP3 .MP 4 播 ...
- 关于TEA5767收音机模块以及TEA5767寄存器介绍。
首先:TEA5767芯片,基本资料 ①高灵敏.低噪声高频放大器. ②收音频率:87.6MHz~108MHz,(支持频率范围在76MHz~87.5MHz 之间的校园收音频道),③LC 调谐振荡器使成本更 ...
- stc12c5a60s2驱动TEA5767收音机模块硬件调试总结
1.IIC总线需要串联10uH的电感. 作的时候没有加这个两个电感,声音有明显的数码声 2.TEA5767的电源 串联10uH电感,加0.1uF和100uF/16V电 容滤波.单点接地串联10uH电 ...
- STM32F103学习笔记(2)——收音机模块TEA5767使用
一.简介 TEA5767是由菲利普公司推出的一款低功耗立体声收音机接收器芯片.频率范围从76-108MHz自动数字调谐.高灵敏度,高稳定性,低噪音,收音模块.一片低功耗电调谐调频立体声收音机电路,其内 ...
- 嵌入式设计 | 基于51单片机的TEA5767 FM收音机
我们现在想要实现,51单片机控制TEA5767收音模块,自动搜台,功放发声,并在1602液晶上面显示 还是那句话,要学会看芯片手册.这个项目无非通过就是I²C写数据输出,喇叭发声,然后把变化的数据显示 ...
- FM收音机模块单片机实现
FM收音机模块例程说明 设计思路和方法: TEA5767集成电路芯片是Philips公司推出的针对低电压应用的数字调谐FM立体声收音机芯片.它采用创新的收音机架构和小尺寸封装,外围电路简单,功能强大, ...
最新文章
- 一张贴纸骗过AI识别?对抗性机器学习是什么东西?
- python详细安装教程linux-Linux系统如何安装Python?新手教程
- Boost signals(1) 基本介绍
- 项目中最常用到的颜色
- 实验3 编程、编译、链接、跟踪
- linux防火墙 33001端口,Linux操作系统下IPTables配置方法详解
- python几个版本的区别-Python的这几个版本不同
- Apache Hive 建表操作的简单描述
- saltstack minion端状态监控程序
- windows使用Charles手机抓包
- uniapp 调用阿里云OCR身份证识别
- deep-text-recognition-benchmark 项目训练data.mdb数据集,运行日志中,只显示训练了英文和数字
- TOEFL wordlist 26
- Power bi_商品销售案例分析
- pxe kickstart无人值守自动化装机
- uniapp引入支付宝原生扫码插件步骤详解
- 【漏洞修复】SSL/TLS协议信息泄露漏洞(CVE-2016-2183)
- 微信小程序学习:(二)app.js及index.js详解
- PAC文件解释-转载 小胡子哥的个人网站
- 世上无难事,只要肯攀登