?? mt8880.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 + -