⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mt8880.c

📁 一个电话报警系统源码 /*------------- 泰兴电子集团 ------------------ *----------------------------------------------
💻 C
字号:
/*------------- 泰兴电子集团 ------------------
*----------------------------------------------
*文件名:    MT8880.C 
*开发:     www.at90s1200.go.nease.net
*创建日期:  2004-6-30 16:19
*创建人:   尹刚
*功能:      8880功能函数
-----------------------------------------------
-----------------------------------------------*/
#include 	"global.h"
/***************************************************************
*名称:     void MT8880_WC(Byte com);
*功能:     写控制寄存器CRA或CRB
*入口参数: com--要写入的数据
*出口参数: 无
****************************************************************/

void MT8880_WC(Byte com)
{
	EA=0;
	MT_CS=0;              
	MT_RS0=1;
	MT_RW=0;
	_nop_();
	MT_CLK=1;
	com&=0x0f;
	MT_DataBus&=0xf0;
	MT_DataBus|=com;
	_nop_();
	MT_CLK=0;
	MT_CS=1; 
	P2=0xff;
	EA=1;
}

/***************************************************************
*名称:     void MT8880_WD(Byte dat);
*功能:      写MT8880的发送数据寄存器
*入口参数: dat--要发送的数据
*出口参数: 无
****************************************************************/

void MT8880_WD(Byte dat)
{
	EA=0;
	MT_CS=0;
	MT_RS0=0;          
	MT_RW=0;
	MT_CLK=1;
	dat&=0x0f;
	MT_DataBus&=0xf0;
	MT_DataBus|=dat;
	MT_CLK=0;
	MT_CS=1;
	P2=0xff;
	EA=1;
}

/***************************************************************
*名称:      Byte MT8880_RD(void);
*功能:     读MT8880的接收数据寄存器
*入口参数: 无
*出口参数: temp--读出的数据,低4位有效
****************************************************************/

Byte MT8880_RD(void)
{
	Byte temp;
	EA=0;
	MT_DataBus |= 0x0f;           //D0~D3设置为输入 
	MT_CS = 0;       
	MT_RS0 = 0;
	MT_RW = 1;
	MT_CLK = 1;
	_nop_();
	temp=MT_DataBus;         
	MT_CLK = 0;
	temp &= 0x0f;
	MT_CS = 1;
	P2 = 0xff;
	EA=1;
	return(temp);
}

/***************************************************************
*名称:      Byte MT8880_RS(void);
*功能:     读MT8880的状态寄存器
*入口参数: 无
*出口参数: temp--读出的数据,低4位有效
****************************************************************/    

Byte MT8880_RS(void)
{
	Byte temp;
	EA=0;
	MT_DataBus|=0x0f;          //D0~D3设置为输入     
	MT_CS=0;
	MT_RS0=1;          
	MT_RW=1;
	MT_CLK=1;
	_nop_();
	temp=MT_DataBus;
	temp &=0x0f;
	MT_CLK=0;
	MT_CS=1;   
	P2=0xff;
	EA=1;
	return(temp);
}
/***************************************************************
*名称:     void InitMT8880(Byte mode);
*功能:     初始化MT8880,中断允许,双音模式
*入口参数: mode 可以选择CP8880,DTMF8880,RST8880三个参数
*出口参数: 无
****************************************************************/
void InitMT8880(Byte mode)
{	
	MT8880_WC(0x00);		//写控制寄存器,确保控制寄存器指针指向CRA
	MT8880_WC(0x00); 
	MT8880_WC(mode);        //写控制寄存器A
	MT8880_WC(0x00);        //写控制寄存器B
	MT8880_RS();            //读状态寄存器,用以清除各标志 		
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -