打印

ht9200打电话,有三个数字老是发不出去?(附电路)

[复制链接]
3354|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
oh_right|  楼主 | 2010-1-18 10:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
oh_right|  楼主 | 2010-1-18 10:39 | 只看该作者
再附上一张图,在线等。。。

QQ截图未命名2.jpg (71.72 KB )

QQ截图未命名2.jpg

使用特权

评论回复
板凳
tyw| | 2010-1-18 17:08 | 只看该作者
本帖最后由 tyw 于 2010-1-18 17:11 编辑

串行模式没道理鸭,若是并行模式,则有可能是数据线D3出问题,检查你的数据通讯程序

HT9200AB 双音多频(DTMF)信号发生器使用说明 .pdf (72.89 KB)

使用特权

评论回复
地板
oh_right|  楼主 | 2010-1-18 17:54 | 只看该作者
发现1,4,7这三个数字的高频部分都相同。
头都快想爆了,就是不知道问题在哪里。上传我的程序。请指导。
如果拨打没有1,4,7这三个数字的电话是OK的。

ht9200.rar

716 Bytes

使用特权

评论回复
5
tyw| | 2010-1-19 09:34 | 只看该作者
unsigned char table_dtmf[] = {0x0a,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0d,0x0e,0x0f,0x00,0x0b,0x0c};
                            // 0    1    2    3     4    5   6    7    8    9    A    B     C    D    *    #   
//==============================================================================
//延时10ms
void delay10ms(unsigned int s)   
{   
    unsigned int i;  
    while(s--)
    {
       for(i=0;i<9000;i++);
    }
}  
//==============================================================================
//发送一个字节
void send_byte(unsigned char num)   
{
    //将num的低5位发送出去,先发低,后发高   
    unsigned char i;   
    for(i=0;i<5;i++)   
    {   
       if(num&0x01)
       {
          HT9200_DATA_HIG;
       }
       else
       {
          HT9200_DATA_LOW;
       }  
       HT9200_CLK_HIG;                    
       __delay_cycles(40);        
       HT9200_CLK_LOW;              
       __delay_cycles(10000);        
       num>>=1;
    }   
    HT9200_CLK_HIG;  
}
//==============================================================================
//拨号
void dial(uint8 *ip)   
{  
    unsigned char num;
    CLI();  
    sys_call_flag =1;
    call_pulse_cnt = 0;
    while((*ip!=0x20))
    {
        HT9200_CLK_HIG;
        HT9200_CS_LOW;
        delay10ms(1);
        num = *ip++;
        send_byte(table_dtmf[num]);
        delay10ms(60);          //延时600ms,发送DTMF  
        HT9200_CS_HIG;
        delay10ms(1);
    }
    HT9200_CS_LOW;   
    delay10ms(1);               //延时10ms,以使其起振  
    send_byte(0xff);
    delay10ms(10);              //延时100ms,发送DTMF  
    HT9200_CS_HIG;
    SEI();
}

使用特权

评论回复
6
一级菜鸟| | 2010-1-19 12:25 | 只看该作者
C34,R58小了点,C58去掉应该马上就通了

使用特权

评论回复
7
一级菜鸟| | 2010-1-19 12:25 | 只看该作者
看错,是C59

使用特权

评论回复
8
oh_right|  楼主 | 2010-1-19 14:43 | 只看该作者
现在用市场上卖的家防的电路板,用我的软件拨号,发现一个问题:
拨打本地的手机和固定电话没问题,拨打外地的手机怎么也打不通。

使用特权

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

本版积分规则

9

主题

28

帖子

0

粉丝