51单片机串行口的使用与串行通信
串行通信:
俩个概念:
1、串行异步通信:
双方按照各自约定好的时钟周期作为各自的时钟周期;原理上来说,双方各用各的时钟周期且约定相等,但是在实际的使用中由于各种因素的影响,会产生时钟偏差。这种方式为串行异步通信。
2、串行同步通信:
只有一方提供时钟周期信号,另一方只做接收,这样的化就只有一个时钟周期为基准。这样就会大大提高通信可靠性,这种方式为串行同步通信。
RS232接口标准:
用于短距离或带调制解调器的串行通信接口协议
1、RXD:接收数据
2、TXD:发送数据
3、GND:接地
采用负逻辑电平:
-15V~3V:逻辑1
+15V~+3V:逻辑0
串行口的使用:
串行口的结构:
1、发送 :数据总线将数据传输到发送寄存器SBUF中,通过发送控制器将数据逐位发送给TXD引脚,当一个字节发送完成后,触发TI中断。
2、接收 :RXD引脚实时监测电平变化,并输入到移位寄存器,当移位寄存器满足8位接收后,触发RI中断。
串行口相关寄存器:
PS:详见51单片机之特殊功能寄存器SFR篇
串行口的工作方式:
方式0:同步移位寄存器方式
通常用于外接移位寄存器用作扩展I/O口 ,波特率固定为一个机器周期,串行数据通过RXD输入输出,同步时钟通过TXD输出
发送:
接收:
利用方式0扩展并行I/O口:
1、当外接串入并出的移位寄存器时,就可以扩展并行输出口
2、当外接并入串出的移位寄存器时,就可以扩展并行输入口
方式1:8位异步通信方式
传输一帧信息为10位:1位起始位(0),8位数据位,一位停止位(1)
发送:
接收:
此种方式下波特率是可变的,有关波特率的计算:
例: