📄 mt888.c
字号:
#include "AT89X52.h"
#include "MT888.h"
#include "stdio.h"
#define RS_MT P1_7
#define RD_MT P1_6
#define WR_MT P1_5
#define D0 P3_7
#define D1 P3_6
#define D2 P3_5
#define D3 P3_4
char bdata MT_Read;
sbit TFinished = MT_Read^1;
sbit DRecieved = MT_Read^2;
unsigned char Digit;
/////////////////////////////////////////////////////////////////
// ////////
////////////////////////////////////////////////////////////////
void write_data_transmit(unsigned char dat)
{
if(dat&0x01==1) D0 = 1;
else D0 = 0;
if((dat>>1)&0x01==1) D1 = 1;
else D1 = 0;
if((dat>>2)&0x01==1) D2 = 1;
else D2 = 0;
if((dat>>3)&0x01 ==1) D3 = 1;
else D3 = 0;
RS_MT = 0;
RD_MT = 1;
WR_MT = 0;
WR_MT =1;
}
unsigned char read_data_reg()
{
unsigned char dat;
D0 = 1;
D1 = 1;
D2 = 1;
D3 = 1;
RS_MT = 0;
WR_MT = 1;
RD_MT = 0;
dat = 0x00;
if(D0 == 1) dat = dat|0x01;
if(D1 == 1) dat = dat|0x02;
if(D2 == 1) dat = dat|0x04;
if(D3 == 1) dat = dat|0x08;
RD_MT = 1;
return dat;
}
void write_control_reg(unsigned char dat)
{
if(dat&0x01==1) D0 = 1;
else D0 = 0;
if((dat>>1)&0x01==1) D1 = 1;
else D1 = 0;
if((dat>>2)&0x01==1) D2 = 1;
else D2 = 0;
if((dat>>3)&0x01 ==1) D3 = 1;
else D3 = 0;
RS_MT = 1;
RD_MT = 1;
WR_MT = 0;
WR_MT = 1;
}
unsigned char read_status_reg()
{
unsigned char dat;
D0 = 1;
D1 = 1;
D2 = 1;
D3 = 1;
RS_MT = 1;
WR_MT = 1;
RD_MT = 0;
dat=0x00;
if(D0 ==1) dat=dat|0x01;
if(D1 ==1) dat=dat|0x02;
if(D2 ==1) dat=dat|0x04;
if(D3 ==1) dat=dat|0x08;
RD_MT = 1;
return dat;
}
void initMT8888(void)
{
read_status_reg();
write_control_reg(0);
write_control_reg(0);
write_control_reg(8);
write_control_reg(0);
read_status_reg();
}
void setupMT8888(void)
{
write_control_reg(13);
write_control_reg(0);
}
void TransmitDTMF(unsigned char digit)
{
write_data_transmit(digit);
do
{
MT_Read = 0x00;
MT_Read = read_status_reg();
}
while (TFinished==0);
}
unsigned char ReceiveDTMF()
{
MT_Read = 0x00;
MT_Read = read_status_reg();
while(MT_Read^2==1)
{
Digit = read_data_reg();
MT_Read = read_status_reg();
}
Digit =Digit&0x0f; // b? nible cao v
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -