搜索
bottom↓
回复: 8

89S52 控制 LCD显示、时钟、温度、串口通讯 都搞定了,就是TEA5767没搞定,怎么设置都

[复制链接]

出0入0汤圆

发表于 2010-12-9 23:29:10 | 显示全部楼层 |阅读模式
LCD显示、时钟、温度、串口通讯 都搞定了,就是TEA5767没搞定,怎么设置都是出噪音!
请高手指导下。
TEA5767是89S52用iic协议控制的。

已经搞定, 等整理好上程序

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2010-12-9 23:32:46 | 显示全部楼层
其中有关 IIC 和 TEA5767 的代码如下

/*************************************************************************/  
void iic_start()  //开始信号  
{
/*         
        SDA=1;  
        delay(20);  // old: delay()  
        SCL=1;  
        delay(20);  // old: delay()  
        SDA=0;  
        delay(20);  // old: delay()  
*/
SDA = 1;
SCL = 1;
delayNOP();
SDA = 0;
delayNOP();
SCL = 0;
}  

void iic_stop()   //停止  
    {  
/*
        SDA=0;  
        delay(20);  // old: delay()  
        SCL=1;  
        delay(20);  // old: delay()  
        SDA=1;  
        delay(20);  // old: delay()  
*/
SDA = 0;
delayNOP();
SCL = 1;
delayNOP();
SDA = 1;

    }  
void iic_respons()  //应答  
   {  
        uchar i;  
        SCL=1;  
        delay(20);  // old: delay()  
        while((SDA==1)&&(i<250))i++;  
        SCL=0;  
        delay(20);  // old: delay()  
    }  
void iic_init()  
    {  
        SDA=1;  
        delay(20);  // old: delay()  
        SCL=1;  
        delay(20);  // old: delay()  
    }  

void wr1(void)//写数据1
{
   SDA=1;
   delay(20);  //old:delaym(20)
   SCL=1;
   delay(20);  //old:delaym(20)
   SCL=0;
   delay(20);  //old:delaym(20)
   SDA=0;
   delay(20);  //old:delaym(20)
}
void wr0()//写数据0
{
  SDA=0;
  delay(20);  //old:delaym(20)
  SCL=1;
  delay(20);  //old:delaym(20)
  SCL=0;
  delay(20);  //old:delaym(20)
}
void iic_write_byte(uchar byt) //写一个字节的数据到总线上
{
  uchar temp=0x00;
  uchar count;
  for(count=0;count<8;count++)
    {
      if((byt<<count)&0x80)
        wr1();
      else
        wr0();
     }
}
/*
void iic_write_byte(uchar date)  
{  
        uchar i,temp;  
        temp=date;  
        for(i=0;i<8;i++)  
           {  
                temp=temp<<1;  
                SCL=0;  
            delay(20);  // old: delay()  
                SDA=CY;  
                delay(20);  // old: delay()  
                SCL=1;  
                delay(20);  // old: delay()  
            }  
        SCL=0;  
        delay(20);  // old: delay()  
        SDA=1;  
        delay(20);  // old: delay()  
}  
*/
/*******************************************  
函数名称: TEA5767_writeB  
功    能: 向TEA5767写入电阻值数据  
参    数: c1为0x20时5767正常工作,为0x26时静音  
返回值  : success--数据成功标志(为TRUE时写入成功,为FALSE时失败)  
/********************************************/  
void TEA5767_writeB(uchar a1,uchar b1,uchar c1)  
{  
//uchar aa;            

send_char('1'); //调试信息

iic_start();                                                      //产生START信号  

send_char('2'); //调试信息

iic_respons();                                                      //等待START信号发送完毕  
//if(TestACK()!=START)                              //检查是否是START信号发送完毕状态  

send_char('3'); //调试信息

   iic_write_byte(0xc0);                                      //发送从器件地址  

send_char('4'); //调试信息

        iic_respons();                                                      //等待发送完毕  
//if(TestACK()!=MT_SLA_ACK);                    //检查是否是从器件地址发送完毕状态  
        iic_write_byte(a1);                                      //发送TEA5767的数据  
           iic_respons();                                                      //等待发送完毕  
                iic_write_byte(b1);                                      //发送TEA5767的数据  
           iic_respons();                                                      //等待发送完毕  
                iic_write_byte(c1);                                      //发送TEA5767的数据  
           iic_respons();                                                      //等待发送完毕  
                iic_write_byte(0x11);                                      //发送TEA5767的数据  
           iic_respons();                                                      //等待发送完毕  
                iic_write_byte(0x00);                                      //发送TEA5767的数据  
           iic_respons();                                                      //等待发送完毕  
//if(TestACK()!=MT_DATA_ACK);                     //检查是否是数据发送完毕  

send_char('o'); //调试信息

     iic_stop();                                                       //对TEA5767的一次操作完毕,发送STOP信号  

send_char('v'); //调试信息

     delayms(10);                                                 //等待发送完毕  
        // }  
}  
/*************************************************************************/  
void tea5767se()                                          //设置收音功能  
{  

/*
0x2f,0x5c,0x20);   //99.1 (hlsi=1)
0x29,0xd4,0x20);   //87.5 (hlsi=1)
0x2d,0x7a,0x20);   //95.1 (hlsi=1)

frequency:90.9  pll(hlsi=1):0x2b 0x73
frequency:93.4  pll(hlsi=1):0x2c 0xa4
frequency:99.0  pll(hlsi=1):0x2f 0x50
frequency:101.7  pll(hlsi=1):0x30 0x9a
frequency:103.7  pll(hlsi=1):0x31 0x8e

frequency:99.1  pll(hlsi=0):0x2f 0x25
frequency:87.5  pll(hlsi=0):0x29 0x9d
frequency:95.1  pll(hlsi=0):0x2d 0x3d

frequency:90.9  pll(hlsi=0):0x2b 0x3c
frequency:93.4  pll(hlsi=0):0x2c 0x6d
frequency:99.0  pll(hlsi=0):0x2f 0x19
frequency:101.7  pll(hlsi=0):0x30 0x63
frequency:103.7  pll(hlsi=0):0x31 0x57
*/

//    TEA5767_writeB(0x2f,0x5c,0x20);   //99.1  中国之声  

// 103.7 是我们这里本地信号最好的FM电台
    TEA5767_writeB(0x31,0x8e,0x20);   //103.7 pll(hlsi=1)
//    TEA5767_writeB(0x31,0x57,0x20);   //103.7 pll(hlsi=0)

}

出0入0汤圆

 楼主| 发表于 2010-12-10 02:44:08 | 显示全部楼层
已经搞定,哈哈

出0入0汤圆

发表于 2010-12-13 14:51:10 | 显示全部楼层
你好~~我也遇到了一样的问题,怎么弄都是输出沙沙声~请问是什么原因呢?

出0入0汤圆

发表于 2010-12-14 20:33:30 | 显示全部楼层
能不能发布一下图及源码,期待中。。。。。。。

出115入0汤圆

发表于 2010-12-21 23:34:54 | 显示全部楼层
看看你用的是什么电源,纹波多大,建议避免使用开关电源,改用线性电源,即可得到清晰音质。

出0入0汤圆

发表于 2010-12-22 09:29:58 | 显示全部楼层
应该是iic没有设置好。这个问题我也出现过。我的毕业设计就涉及这个。当时就出现楼主这事。现在想来晕

出0入0汤圆

发表于 2010-12-28 11:44:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-5-14 20:08:19 | 显示全部楼层
lz 可以分析一下当时的原因 ?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 02:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表