这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » ㄐ偶际?mt8888 请教:mt8888拨号问题

共2条 1/1 1 跳转至

ㄐ偶际?mt8888 请教:mt8888拨号问题

院士
2006-09-17 18:14:16     打赏
ㄐ偶际?mt8888 请教:mt8888拨号问题



关键词: ㄐ偶     mt8888     请教     拨号     问题    

院士
2006-12-22 22:43:00     打赏
2楼
mt8888拨号问题

    摘机拨号过程中,监听,相当于电话机有按键一直被按下的声音(即按着某一按键不松手);IRQ引脚不出现低电平;请问这是问什么?

1: 显然你的程序有误仔细看器件的说明文档,需要正确配置芯片。 2: 回来了,继续,还是老问题//MT_CS--P2.6;MT_RS--P2.3;
//读写信号接单片机读写信号
void mt_read_status(void)                      //读状态寄存器  只读
{    
    MT_RS0=1;                     //MT_RS=1;
    MT_WR=1;                        
    MT_RD=0;
    mt_status=P0&0x0F;
}
//----------------------------------------------------------------------------------------------
void mt_write_control(uchar data wdata)        //写控制寄存器CRA或者CRB
{
    MT_RS0=1;                     //MT_RS=1;
    MT_WR=0;
    MT_RD=1;
    P0=wdata;
}
//----------------------------------------------------------------------------------------------
void mt_write_TDR(uchar data sedata)  //写发送数据缓冲寄存器  只写
{
     MT_RS0=0;                     //MT_RS=0;
     MT_WR=0;
     MT_RD=1;
     P0=sedata;
}
//----------------------------------------------------------------------------------------------      
uchar mt_read_RDR(void)                  //读接收数据缓冲寄存器  只读
{
    uchar data redata;
    MT_RS0=0;                     //MT_RS=0;
    MT_WR=1;
    MT_RD=0;
    redata=P0&0x0F;
    return(redata);
}
//---------------------------------------初始化MT8888子程序------------------------------------
void init_mt8888(void)
{
//    uchar data i;
    AUXR=0x02;
    MT_CS=0;                            //禁止ALE输出
    delay(6248);
    mt_read_status();                          //读状态寄存器
    mt_write_control(0x00);                     //向CRA写0
    mt_write_control(0x00);                     //再次向CRA写0
    mt_write_control(0x08);                     //向CRA写8,准备写CRB
    mt_write_control(0x00);                     //向CRB写0
    mt_read_status();                          //读状态寄存器
    mt_write_control(0x0D);
    mt_write_control(0x00);
    MT_CS=1;
    set573(0x28);                       //挂断
}
//--------------------------------------------------------------------------------------------
void mt_send(void)
{
    uchar data *pt;
    AUXR=0x02;                           //禁止ALE输出
    MT_CS=0;
    set573(0xF9);                       //摘机,开通信指示灯,MT_RS=0   
    MT_CS=0;
    for(pt=&phnum;*pt!=0;pt++)
    {
        mt_read_status();
        mt_write_TDR(*pt);
        while(MT_IRQ);                 //等待中断;为什么不产生中断
           while(1)
        {
           mt_read_status();
           if((mt_status&0x02)==0x02)  break;    //发送一个数据结束,可以接受下一个数据
         }
    }
    MT_CS=1;
    set573(0x28);                        //挂断
}

    还是老问题,能拨出一个电话号码,不产生中断,状态寄存器b1不置位,请问我的程序哪里出问题了? 3: 时序,还是时序终于搞定了,谢谢! 4: 我用AVRm16也有问题啊!我得时序也有问题能否帮助一下?qq:286202869谢谢了!

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]