AT89C2051單片機(jī)與MT8880接口設(shè)計
3.2 接收程序
程序利用單片機(jī)的INT0以中斷方式接收DTMF信號,接收的7位數(shù)碼存入數(shù)組R_BUF中。
#include reg51.h>
#define uc unsigned char
uc data i,r_buf[7];
/* 子函數(shù)(子程序)說明 */
void initialize(void);
void rece_init(void);
/* 主函數(shù)(主程序) */
void main(void)
{ SP=0x5f;
i=0;
initialize();
rece_init();
for(;;);}
/* MT8880芯片初始化子函數(shù) */
void initialize(void)
{ P1=0x3f; /* 讀SR */
P1=0x20; /* CRA=0000 */
P1=0x20; /* CRA=0000 */
P1=0x28; /* CRA=1000 */
P1=0x20; } /* CRB=0000 */
/* 接收初始化子函數(shù) */
void rece_init(void)
{ P1=0x24; /* CRA=0100 */
IT0=1; /* 邊沿觸發(fā) */
IE=0x81; } /* 允許中斷,開中斷 */
/* 接收中斷服務(wù)程序 */
void int0(void) interrupt 0 using 1
{ P1=0x3f; /* 讀SR */
P1=0x1f; /* 讀RDR */
r_buf[i++]=P10x0f; } /* 保存 */
4 結(jié)束語
筆者在某基金項目的研制中,成功地利用上述接口電路實現(xiàn)了遠(yuǎn)距離的數(shù)傳通信,實際使用情況證明,接口簡單、可靠,取得了令人滿意的效果。
參考文獻(xiàn):
[1] MICROELECTRONICS ANALOG COMMUNICATIONS HANDBOOK. MITEL,1991
[2]馬忠梅.單片機(jī)的C語言應(yīng)用程序設(shè)計.北京:航空航天大學(xué)出版社,1997
評論