很有用的
实用第一智慧密集
基于MCS-51单片机的串行通信
徐小涛
摘要:根据单片机的串行通信原理,深入分析了单片机串口通信模式、波特率的设置、单片机
和单片机之间以及单片机与PC机之间的通信协议,并以MCS-51单片机为基础,针对串行通信的实施,提出了相应的实现方法,对于MCS-51单片机的扩展运用具有重要的实践意义。关键词:单片机;串行通信;实现
随着电子技术的飞速发展,单片机在自动控制领域的应用越来越广泛。单片机作为自动控制系统的神经中枢,在自控系统中发挥着核心的作用,单片机与外接设备的联系通常是通过一个串行通信接口来实现的,以此来实现单片机与其他计算机或外围设备的通信,因此,单片机的串行通信实现对自控系统的实现有着重要的意义。
1串行通信原理
单片机与外界的信息交换及通信通常有串行通信和并行通
信两种,一次传送多位数据的通信方法叫并行通信,它的传输速度很快,但传输距离有限,成本高,难以大规模推广,因此,现在的单片机系统一般采用串行通信,及信号一位一位地传送。
串行通信通过串行接口来实现,串行通信按信息传送的方向可以分为单工、半双工和全双工三种。只能单方向传送信息的称为单工,能双向传送信息但在同一时间只能向一个放想传送的称为半双工,能同时实现信息的双向传送的称为全双工。本文要应用的单片机MCS-51就有一个全双工串行口。它需要两根线,一根线作为发送信号线,另一根作为接受信号线。
串行通信又可分为同步通信和异步通信两中方式。同步通信一般适合于传送大量的数据,它将数据分块传送。在传诵每一个数据块开头时,发送方发送一个和两个同步字符,使发送与接收双方取得同步。同步通信时,如果发送的数据块之间有间隔时间,再发送同步字符填充。其传送速度较快,但不适用于发送数据量少且间隔时间较长的场合。
异步通信用起始位“0”表示字符的开始,然后从地位到高位逐位传送数据,最后用停止位“1”表示字符结束,一个字符又叫一帧信息。在异步串行通信中,一帧信息一般包括1位起始位、多位数据位和1位停止位,其中数据位可以为8位,也可以为9位。在MCS-51单片机系统中,第9位数据
D8可以用来作为奇偶校验位,也可以用来作为地址/数据帧标
志,当D8=1时,表示该帧信息传送的是地址:D8=0时,表示
60
2010.15
该帧传送的是数据。两帧之间可以无间隔也可以有间隔,且间隔时间可以任意改变,间隔用空闲位“1”来填充。
由于异步通信每帧都要加上起始位和停止位,所以通信速度相对同步来说比较慢,但它的时间间隔可以任意改变,使其使用非常方便。在数据量较小且时间间隔不定的通信中,往往采用异步串行通信。
MCS-51单片机的串行接口的基本工作原理是:发送时,
将CPU送来的并行数据转换为一定格式的串行数据,然后从引脚TXD按照规定的波特率一位一位地发送出去;接收时,监视引脚RXD,一旦出现起始位“0”,就将外围设备送来的一定格式的串行数据转换成并行数据,等待CPU读入。
2单片机的工作模式及波特率的设置
串行口有4种工作模式,其中方式0并不用于通信,而是
通过外接移位寄存器芯片来实现I/O口的扩展,利用这个功能,可以方便地实现扩展2脚的串行I/O到8脚的并行I/O口。该方式又称作移位寄存器方式。而方式1、方式2、方式3都是异步通信方式。方式1是8位异步通信方式,一帧信息由
10位组成,它主要用于双机串行通信。方式2、方式3都是9
位异步通信方式,一帧信息中包括9位数据和1个起始位、1个停止位。方式2和方式3的区别在于其波特率的选择不同,它们主要用于多机通信,也可以用于双机通信。
波特率是在一帧信息中每一位的传送时间的倒数。只有通信双方采用相同的波特率时,通信才不会发生混乱。波特率表示每秒传送的位数。
2.1串口的工作模式
串口有4种工作方式,由SCON寄存器中的SM0、SM1两
位来进行选择。
方式0即串行寄存器方式,当SM0=0、SM1=0时即工作在这种方式下。串口方式0的数据由RXD脚上发送或接受。而
TXD脚作为同步移位脉冲的输出脚,用来控制时序。一帧信息
由8位数据位组成,低位在前,高位在后,波特率固定,为