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

[复制链接]
3507|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
是不是发光二极管看出来的高低电平不算数啊??
chen3bing 发表于 2010-3-26 13:50 | 显示全部楼层
我的意思是从发送到接受的通路上会不会有干扰或者硬件问题什么的。
 楼主| 青石向晚 发表于 2010-3-26 14:29 | 显示全部楼层
5# chen3bing 就是四根线直接连到单片机引脚上的啊,中间没有经过别的硬件啊,我怀疑是程序的问题,可是就是查不出来。
 楼主| 青石向晚 发表于 2010-3-26 14:33 | 显示全部楼层
解码芯片的输出脚与单片机的引脚是直接用导线连上的啊,没有经过别的硬件,我怀疑是程序的问题,可是查不出来。
chen3bing 发表于 2010-3-26 14:42 | 显示全部楼层
你说无法读取,是没读到还是读到的数据不对?
 楼主| 青石向晚 发表于 2010-3-26 14:56 | 显示全部楼层
应该是没读到,因为外部显示的是同一个乱码。如果是读的不对的话,应该每次是随机的吧,显示也应该每次不同吧
chen3bing 发表于 2010-3-26 15:34 | 显示全部楼层
你可以设个断点看看,读出来的值对不对。
也许显示有问题。
还有,HT9170是什么东西?
 楼主| 青石向晚 发表于 2010-3-26 15:56 | 显示全部楼层
因为要跟外设交换数据,感觉要是仿真的话,不是那么容易做到的,我试试吧。HT9170是一种DTMF解码芯片
teddeng 发表于 2010-3-27 02:04 | 显示全部楼层
你代码里读端口的是哪一句?
 楼主| 青石向晚 发表于 2010-3-27 09:31 | 显示全部楼层
12# teddeng temp=DTMF&0x0f,DTMF定义的是单片机的接收脚P1口,是不是有什么问题啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

41

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部