打印

HT9170与51单片机的收发数据问题

[复制链接]
2769|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
青石向晚|  楼主 | 2010-3-25 15:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通过发光二极管可以看出HT9170输出的数据时正确的,可是单片机就是无法读取,可能是程序的问题,请各位大虾指点一下,下面是源程序
main()
{
.........
while(1)
{
     if(DV==1)
    {
       DTMF_read();
       while(DV);
       OE=0;  
    }
    if(flag==1)
    break;
}
........
}


void DTMF_read(void)
{
     unsigned char temp;
     unsigned int i;

     OE=1;
     DTMF=0xff;
     temp=DTMF&0x0f;    //读数据

     for(i=0;i<10;i++)
     {
         if(temp==Table_DTMF[i])
         {
                    a=i;      //取出数据
                    flag=1;
                    break;
          }
     }  
}

相关帖子

沙发
青石向晚|  楼主 | 2010-3-25 22:10 | 只看该作者
怎么没人啊,各位大虾帮帮忙啊

使用特权

评论回复
板凳
chen3bing| | 2010-3-26 07:43 | 只看该作者
量一量单片机接受腿上的波形对不对。

使用特权

评论回复
地板
青石向晚|  楼主 | 2010-3-26 12:48 | 只看该作者
量一量单片机接受腿上的波形对不对。
chen3bing 发表于 2010-3-26 07:43
是不是发光二极管看出来的高低电平不算数啊??

使用特权

评论回复
5
chen3bing| | 2010-3-26 13:50 | 只看该作者
我的意思是从发送到接受的通路上会不会有干扰或者硬件问题什么的。

使用特权

评论回复
6
青石向晚|  楼主 | 2010-3-26 14:29 | 只看该作者
5# chen3bing 就是四根线直接连到单片机引脚上的啊,中间没有经过别的硬件啊,我怀疑是程序的问题,可是就是查不出来。

使用特权

评论回复
7
青石向晚|  楼主 | 2010-3-26 14:33 | 只看该作者
解码芯片的输出脚与单片机的引脚是直接用导线连上的啊,没有经过别的硬件,我怀疑是程序的问题,可是查不出来。

使用特权

评论回复
8
chen3bing| | 2010-3-26 14:42 | 只看该作者
你说无法读取,是没读到还是读到的数据不对?

使用特权

评论回复
9
青石向晚|  楼主 | 2010-3-26 14:56 | 只看该作者
应该是没读到,因为外部显示的是同一个乱码。如果是读的不对的话,应该每次是随机的吧,显示也应该每次不同吧

使用特权

评论回复
10
chen3bing| | 2010-3-26 15:34 | 只看该作者
你可以设个断点看看,读出来的值对不对。
也许显示有问题。
还有,HT9170是什么东西?

使用特权

评论回复
11
青石向晚|  楼主 | 2010-3-26 15:56 | 只看该作者
因为要跟外设交换数据,感觉要是仿真的话,不是那么容易做到的,我试试吧。HT9170是一种DTMF解码芯片

使用特权

评论回复
12
teddeng| | 2010-3-27 02:04 | 只看该作者
你代码里读端口的是哪一句?

使用特权

评论回复
13
青石向晚|  楼主 | 2010-3-27 09:31 | 只看该作者
12# teddeng temp=DTMF&0x0f,DTMF定义的是单片机的接收脚P1口,是不是有什么问题啊?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

41

帖子

0

粉丝