搜索
bottom↓
回复: 1

请教DTMF芯片MT8888的初始化问题及如何设置各种模式

[复制链接]

出0入0汤圆

发表于 2010-8-27 14:50:41 | 显示全部楼层 |阅读模式
我这个项目是用STC单片机STC11F02E来驱动MT8888的,请问MT8888的芯片的初始化流程是怎么样的,初始化的时候我也按照芯片资料所说的来做了,但是还是有有时候发送出去的数被正确解码了,但有时不行。我本来的意愿是设为DTMF模式的,请大侠们看我的这个初始化及发送数据部分有什么问题否?
这个破东西搞了我好几天呢,谁要是有好的MT8888程序就发到我的邮箱上面,小弟我感激不尽450706035@qq.com
#include<reg52.h>
#include<intrins.h>
/***********************
MT的CP端接到了INT0
D3-----------------p1^7;
D2-----------------p1^6;
D1-----------------p1^5;
D0-----------------p1^4;
************************/  
sbit     RD_MT     =P1^3;
sbit     RS0_MT    =P1^2;
sbit     RW_MT     =P1^1;
sbit     CS_MT     =P1^0;
sbit     CS_34018  =P3^3;   //MC34018的使能端,低电平使能
sbit     good      =P3^0;
unsigned char Status;
unsigned char buffer;
void delaynop(unsigned char temp)
{
     unsigned char i;
         for(i=0;i<temp;i++) _nop_();
}
/*******************************
function: Read status register
RS0_MT-----------1
RD_MT------------0
RW_MT------------1
*******************************/
unsigned char ReadStatusREG()
{
    unsigned char temp;
        P1|=0xf0;   
        P1|=0x0e;         
        delaynop(10);
        RD_MT=0;               
        delaynop(10);
        temp=P1;
        P1|=0x0e;         //将相关的控制线都拉高
        temp>>=4;
        return temp;
}
/**********************************
function:  Write to control register
RS0_MT----------------1
RD_MT-----------------1
RW_MT-----------------0
**********************************/
void WriteControlREG(unsigned char com)  //这是写控制寄存的子函数
{
    P1|=0x0e;
        com<<=4;
        P1&=0x0f;     //先将4个数据位电平拉低
    delaynop(10);
        P1|=com;     //将数据位送到总线上
        delaynop(10);
        RW_MT=0;
        delaynop(10);
        P1|=0x0e;     //将所有控制线都拉高
        delaynop(10);
}
/**********************************
function: Write to data register
RS0_MT----------------0
RD_MT-----------------1
RW_MT-----------------0
**********************************/
void WriteDataREG(unsigned char Data)   //写发送数据的子函数
{
    P1|=0x0e;
        Data<<=4;
        P1&=0x0f;
        delaynop(10);
        P1|=Data;
        delaynop(10);
        RS0_MT=0;
        delaynop(10);
        RW_MT=0;
        delaynop(10);
        P1|=0x0e;
        delaynop(10);
}
void delay120ms(void)   //延时120ms
{
    unsigned char a,b,c;
    for(c=29;c>0;c--)
        for(b=246;b>0;b--)
            for(a=45;a>0;a--);
}

void Init_system()   //初始化MT8888
{
    CS_MT=0;
    CS_34018=0;
    delay120ms();
    buffer=ReadStatusREG();
    WriteControlREG(0);
    WriteControlREG(0);
    WriteControlREG(0x08);
    WriteControlREG(0x0);
    buffer=ReadStatusREG();
    delay120ms();
}  
void SendOneNumber(unsigned char number)   //发送一个电话号码
{
    WriteControlREG(0x0d);
    WriteControlREG(0X01);
    WriteDataREG(number);
    delay120ms();
    buffer=ReadStatusREG();
    WriteControlREG(0x08);
    WriteControlREG(0X0);   
}
void main()
{
    volatile bit flag;
    Init_system();     
    SendOneNumber(15);
    while(1);

}

出0入0汤圆

 楼主| 发表于 2010-8-27 16:45:50 | 显示全部楼层
回复【楼主位】tcp1985
-----------------------------------------------------------------------

怎么没人理我呢~~~~~~~~~
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 14:34

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表