TEA5767收音机模块的C51控制程序

时间:2008-08-15

  这几天做个案子,用到飞利浦的TEA5767的收音机模块,在网上搜了下相关的内容,发现很多人都在问,可是提供编程指导的很少,可能是高手都不屑回答这些小问题吧,在这里我把我的部分程序及TEA5767的相关资料放上来吧,给需要的人一些参考.(PS:无锡硅动力的SP3767和TEA5767完全兼容,有中文资料)

  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();
  }
   }
  _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();
        }
 
  



  
上一篇:ISD2500与ATmega8单片机配合使用的智能语音系统设计
下一篇:微处理器和JTAG总线桥接接口

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料