C51编程:祝大家圣诞快乐,送大家一份礼物MODEM(异步)操作:
检查RING信号,有RING为对方在拨自己,需要做的是初始化MODEM(如果已初始化就不必,有的
MODE不需要初始化,具体看MODE说明书)+应答来电。
拨号/打出:检查DCD=1(无载波,即MODEM非连通),然后发ATD+电话号码,拨通后DCD为0
硬件用1488和1489,注意该芯片反向;推荐使用两片美信的232。
连接信号RING、DCD、TX、RX、GND
拨号例程:
void modem_dial(void)
{
unsigned int i;
if (dcd==0) return; /* 已经在线 */
if (wait_dial) return; /* 正在拨号 */
modem_init(); /* 初始化 MODEM */
showstr("atd电话号码");
DCOUNT=1408; /* 一分钟 */
wait_dial=1; /*拨号标记*/
}
void showstr(unsigned char *str) /*串口发送程序*/
{
while (*str!=0)
{
TI=0;
SBUF=*str++;
while (!TI);
TI=0;
}
}
void timer0() interrupt 1 using 0
{
if ( --DCOUNT == 0 ) wait_dial = 0;
}