新闻中心

EEPW首页>嵌入式系统>设计应用> 单片机的MODEM通讯

单片机的MODEM通讯

作者: 时间:2012-03-14 来源:网络 收藏

Setdata:
MOV DPTR,#LSR
MOVX A,@DPTR
JNB ACC.5,Setdata
MOV A,DataNumber;DataNumber记录发 ;送字符的个数
MOV DPTR,#AtCommand ;AtCommand定义AT命令参数的起始地址
MOVC A,@A+DPTR
MOV DPTR,#THR ;发送保持寄存器
MOVX @DPTR,A
INC DataNumber
MOV A,DataNumber
CJNE A,#0BH,Setdata ;发送11个字符
AtCommand:DB “A”,“T”,“S”,“0”,“=”,“2”,“S”,“8”, “=”,“5”,0DH

本文引用地址://m.amcfsurvey.com/article/171883.htm

(9)状态寄存器(status register)
豹MSR.0~3=1时,表示自上一次读MSR寄存器之后,分别反映控制逻辑的四个输入信号的状态发生了变化。
豹MSR.0=1时,清除发送信号(CTS)已经发生了变化。
豹MSR.1=1时,数据设备就绪信号(DSR)已经发生了变化。
豹MSR.2=1时,振铃信号(RI)已经发生了变化。
豹MSR.3=1时,载波信号(DCD)已经发生了变化。
豹MSR.4~7四位分别反映MODEM控制逻辑的四个输入信号的当前状态。
豹MSR.4=1时,清除发送信号(CTS)有效。
豹MSR.5=1时,数据设备就绪信号(DSR)有效。
豹MSR.6=1时,振铃信号(RI)有效。
豹MSR.7=1时,载波信号(DCD)有效。

(10) 临时数据寄存器(scratchpag register)

可以存储用户信息。

有了上面知识的准备后就可以轻松地写出的MODEM程序。现在可把零散的东西组织起来了。

GM16C550芯片初始化模块
Init_16C550:
豹MOV DPTR,#LCR ;除数锁定允许
豹MOV A,#80H
豹MOVX @DPTR, A
豹MOV DPTR,#LSB ;波特率为9600baud
豹MOV A,#0CH
豹MOVX @DPTR, A
豹INC DPTR
豹CLR A
豹MOVX @DPTR, A
豹MOV DPTR,#LCR;传输长度为8位,停止 ;位为1,偶校验
豹MOV A,#1BH
豹MOVX @DPTR, A
豹MOV DPTR,#MCR;异步串口芯片的DTR。RTS ;引脚送出逻辑低电平
豹MOV A,#03H
豹MOVX @DPTR,A
豹MOV DPTR,#IER
豹MOV A,#01H
豹MOVX @DPTR,A

采用中断的方式接数据
Interrupt2:
豹PUSH ACC
豹PUSH DPH
豹PUSH DPL
豹PUSH PSW
豹MOV DPTR,#RHR ;接受数据
豹MOVX A,@DPTR
豹……………………
豹POP PSW
豹POP DPL
豹POP DPH
豹POP ACC
豹RETI

至此,完成了一个小型的MODEM系统。其中的检错寄存器、MODEM状态寄存器等应用限于篇幅没有完全涉及到。有兴趣的朋友可以试一试,那么你就会对MODEM通讯有一个比较深刻的认识。


上一页 1 2 3 4 下一页

关键词:通讯MODEM单片机

评论


相关推荐

技术专区

关闭