:) #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收音模块相关推荐

  1. ESP32设备驱动-TEA5767收音机模块驱动

    TEA5767收音机模块驱动 1.TEA5767介绍 TEA5767HN 是一款用于低压应用的单芯片电子调谐 FM 立体声收音机,具有完全集成的中频 (IF) 选择性和解调功能,频率范围从76-108 ...

  2. ESP8266-Arduino编程实例-TEA5767收音机模块驱动

    TEA5767收音机模块驱动 1.TEA5767介绍 TEA5767HN 是一款用于低压应用的单芯片电子调谐 FM 立体声收音机,具有完全集成的中频 (IF) 选择性和解调功能,频率范围从76-108 ...

  3. 小型化RDA5807调频收音模块实验板

    项目介绍1   RDA5807M模块是小型化的调频收音模块.为了便于能够在面包板上进行实验,下面将该模块通过一个转接板来形成六针接口模块,这便于在面包板上完成相应的实验.   六针接口的定义如下:正视 ...

  4. STM32驱动TEA5767收音机模块

    Tea5767是飞利浦公司出的一款集成化的收音机芯片,大四的时候机缘巧合遇到了这个芯片,用了一下,写点资料 主要特性 TEA5767HN是一款低功耗立体声收音IC,广泛应用于手机MP3 .MP 4 播 ...

  5. 关于TEA5767收音机模块以及TEA5767寄存器介绍。

    首先:TEA5767芯片,基本资料 ①高灵敏.低噪声高频放大器. ②收音频率:87.6MHz~108MHz,(支持频率范围在76MHz~87.5MHz 之间的校园收音频道),③LC 调谐振荡器使成本更 ...

  6. stc12c5a60s2驱动TEA5767收音机模块硬件调试总结

    1.IIC总线需要串联10uH的电感. 作的时候没有加这个两个电感,声音有明显的数码声 2.TEA5767的电源 串联10uH电感,加0.1uF和100uF/16V电  容滤波.单点接地串联10uH电 ...

  7. STM32F103学习笔记(2)——收音机模块TEA5767使用

    一.简介 TEA5767是由菲利普公司推出的一款低功耗立体声收音机接收器芯片.频率范围从76-108MHz自动数字调谐.高灵敏度,高稳定性,低噪音,收音模块.一片低功耗电调谐调频立体声收音机电路,其内 ...

  8. 嵌入式设计 | 基于51单片机的TEA5767 FM收音机

    我们现在想要实现,51单片机控制TEA5767收音模块,自动搜台,功放发声,并在1602液晶上面显示 还是那句话,要学会看芯片手册.这个项目无非通过就是I²C写数据输出,喇叭发声,然后把变化的数据显示 ...

  9. FM收音机模块单片机实现

    FM收音机模块例程说明 设计思路和方法: TEA5767集成电路芯片是Philips公司推出的针对低电压应用的数字调谐FM立体声收音机芯片.它采用创新的收音机架构和小尺寸封装,外围电路简单,功能强大, ...

最新文章

  1. 一张贴纸骗过AI识别?对抗性机器学习是什么东西?
  2. python详细安装教程linux-Linux系统如何安装Python?新手教程
  3. Boost signals(1) 基本介绍
  4. 项目中最常用到的颜色
  5. 实验3 编程、编译、链接、跟踪
  6. linux防火墙 33001端口,Linux操作系统下IPTables配置方法详解
  7. python几个版本的区别-Python的这几个版本不同
  8. Apache Hive 建表操作的简单描述
  9. saltstack minion端状态监控程序
  10. windows使用Charles手机抓包
  11. uniapp 调用阿里云OCR身份证识别
  12. deep-text-recognition-benchmark 项目训练data.mdb数据集,运行日志中,只显示训练了英文和数字
  13. TOEFL wordlist 26
  14. Power bi_商品销售案例分析
  15. pxe kickstart无人值守自动化装机
  16. uniapp引入支付宝原生扫码插件步骤详解
  17. 【漏洞修复】SSL/TLS协议信息泄露漏洞(CVE-2016-2183)
  18. 微信小程序学习:(二)app.js及index.js详解
  19. PAC文件解释-转载 小胡子哥的个人网站
  20. 世上无难事,只要肯攀登

热门文章

  1. 动态规划法求解资源分配问题
  2. mysql主从复制与主主复制的对比_MySQL主从复制与主主复制
  3. 操作系统 课堂笔记 第二章 进程管理
  4. ubuntu安装klee教程
  5. 关于言论自由。_言论自由
  6. 一流程序员的成长之路
  7. Javascript之字节跳动 浮点数与十六进制互相转换 有符号整数与十六进制互相转换 速度超快
  8. Lua不同版本下的位操作
  9. iPhone开发之-iPhone 安装文件的三种格式
  10. 如何用命令行进入MySQL数据库?