打印

HT9200A只能拔2369这四个数字其他数字拔不了

[复制链接]
1401|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
china0043|  楼主 | 2013-6-2 23:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<AT89X52.H>

#define uint unsigned int
#define uchar unsigned char

sbit        CE = P2^6;
sbit        CLK = P2^3;
sbit        DATA = P2^4;

sbit        DS_CE = P3^3;

void Dtmf_1(uchar Value);
void Delay(uint Value);
void DTMF_BH(uchar L,uchar *Value);

void main(void)
{
        uchar HM[]={10,1,3,6,9,9,7,6,8,7,8,1,};
        DS_CE = 0;//关掉DS1302,避免干扰;
        DTMF_BH(12,HM);//拔手机号码
        while(1);//结束
}


void DTMF_BH(uchar L,uchar *Value)
{
        uchar i = 0;
        CE = 1;
        CE = 0;//打开HT9200A的控制端
        for(i = 0; i<L;i++)
                {
                        Dtmf_1(Value[i]);        //拔号的时间0.5S
                        Delay(50000);
                        Delay(50000);
                        Dtmf_1(0x1F);
                        Delay(50000);
                        Delay(50000);
                }
        CE = 1;
}

void Dtmf_1(uchar Value)
{
        uchar i = 0;
        for(i = 0;i<5;i++)
                {
                        DATA = Value & 0x01;
                        CLK = 1;
                        CLK = 0;
                        Value >>= 1;
                }       
        DATA =1;
        CLK = 1;
}


void Delay(uint Value)
{
        while(-- Value);
}

相关帖子

沙发
china0043|  楼主 | 2013-6-2 23:23 | 只看该作者
请各位高手指点一下小弟

使用特权

评论回复
板凳
xxdcq| | 2013-6-4 11:58 | 只看该作者
与电话接口电路有关

使用特权

评论回复
地板
china0043|  楼主 | 2013-6-4 14:50 | 只看该作者
电话接口电路是成熟电路来的呢,人家一直用,我就拿他的板然后调我的程序呢,你确定是电话接口电路有问题吗

使用特权

评论回复
5
china0043|  楼主 | 2013-6-4 14:51 | 只看该作者
xxdcq 发表于 2013-6-4 11:58
与电话接口电路有关

电话接口电路是成熟电路来的呢,人家一直用,我就拿他的板然后调我的程序呢,你确定是电话接口电路有问题吗

使用特权

评论回复
6
china0043|  楼主 | 2013-6-5 09:46 | 只看该作者
已经搞定,果断是接口电路有问题,感谢xxdcq,不过还有一个问题,就是如何知道对方已接听呢

使用特权

评论回复
7
qjjie| | 2013-6-5 16:27 | 只看该作者
检测回铃声,如果对方是彩铃,那就不知道如何做了

使用特权

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

本版积分规则

21

主题

72

帖子

1

粉丝