基于ARM智能撥號器的設計和實現
MT8880_WriteCRACRB(dBytesCRA, dBytesCRB);//將1101,0000 分別寫入到CRA 和CRB
dLength = strlength(pSendNum); //保存要寫入到MT8880 的被叫號碼的長度
for(dL = 0; dL dLength; dL++) { //連續(xù)發(fā)送dLength 個DTMF 信號
switch(*pSendNum++) { //判斷ARM 處理器傳來的字符型的電話號碼
case '1':{
dBytesSend[3] = 0; //D3D2D1D0=0001
dBytesSend[2] = 0;
……
break;}
case '2':{
dBytesSend[3] = 0; //D3D2D1D0=0010
……
break;}
……
default:
{
break;
}
}
MT8880_WriteDataReg(dBytesSend); //寫發(fā)送數據寄存器
for(iTemp = 5000; iTemp; --iTemp) {
MT8880_ReadStateReg(dBytesSReg); //讀取狀態(tài)寄存器的值
if(dBytesSReg[1] == 1) //判斷狀態(tài)寄存器的第二位是否為1
break; //即發(fā)送數據寄存器滿,準備發(fā)送數據
}
2.信號音處理程序
首先將芯片 MT8880設置為呼叫處理、中斷模式,信號音處理程序分為四大部分:一是撥號前檢測是否允許撥號 ,即檢測信號音是撥號音還是忙號音;二是撥號后檢測是否接通,即檢測信號音是回鈴音、忙號音還是占線音;三是撥號接通后檢測是否應答,即檢測回鈴音是否消失;四是檢測各種信號音:撥號音、忙號音、回鈴音。
各種信號音的特點:撥號音在 5秒內是連續(xù)音;忙號音在 5秒內 0.35秒通,0.35秒斷;回鈴音在 5秒內是 1秒通,4秒斷。
3.串行通信程序主要功能是接收上位機的命令,執(zhí)行相應的操作。將另撰文詳說。
五、小結
首先對智能撥號器的硬件組成進行了詳細的研究和說明,并對部分軟件代碼進行了解釋。該系統(tǒng)已經測試使用,它具有成本低、功耗小、便于攜帶、功能易于擴展等特點,在一定的應用背景下有很好的使用前景。
評論