欢迎来到天天文库
浏览记录
ID:36284798
大小:653.81 KB
页数:23页
时间:2019-05-08
《c51串行接口程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第11章C51串行接口程序设计51系列单片机提供了功能强大的全双工串行通信接口,可以方便地实现多机通信或单片机与计算机之间的通信。由于串行接口简单,需要的传输线少,其已经成为单片机与外部设备之间进行数据通信的主要途径。特别是在远程通信和分布式控制系统中,是单片机之间通信以及单片机和计算机之间通信的主要方式。本章主要介绍了51系列单片机串行通信接口的结构、特殊功能寄存器。本章结合串行端口的4种工作模式,详细介绍了4种工作模式的波特率设计及其C51程序设计。11.151系列单片机的串行接口51系列单片机内部集成的全双工串行通信接口电路,常称
2、为UART。该串行接口电路功能很强,不仅可以进行串行异步数据的发送和接收,也可以作为一个同步移位寄存器使用。11.1.1单片机串行通信概述单片机和外部设备可以采用并行通信和串行通信两种方法进行数据传输。这两种数据传输方式分别如图所示。其中,并行通信是指数据的各个二进制位同时进行传输。并行通信传输速度快,效率高,缺点是需要比较多的数据线,易受外界干扰,传输距离不能太远。串行通信是指数据的各个二进制位按照顺序一位一位地进行传输。串行通信所需的数据线少,节省硬件成本以及单片机的引脚资源,并且抗干扰能力强,适合于远距离数据传输,其缺点是每次发送
3、一个比特,导致传输速度慢,效率比较低。单片机并行通信单片机串行通信11.1.2单片机串行接口的内部结构51系列单片机的全双工串行口主要由数据发送缓冲器、发送控制器TI和接收控制器RI等组成,其结构如图所示。单片机串行口内部结构11.1.3串行接口控制寄存器SCON串行控制寄存器SCON的格式及各位的含义,如图所示。控制寄存器SCON的字节地址为98H,可进行位寻址。该寄存器用于选择串行通信的工作方式和某些控制功能,包括接收/发送控制及设置状态标志等。下面分别介绍各位的用途。串行接口控制寄存器SCON11.1.4特殊功能寄存器PCON特殊
4、功能寄存器PCON的格式,如图所示。PCON的单元字节地址为87H,不可以进行位寻址。特殊功能寄存器PCON用于CHMOS型单片机中进行电源控制,也称为电源控制寄存器。下面分别介绍各位的含义。PCON的格式11.2串行口工作模式0的C51程序设计51系列单片机串行口的工作模式0是同步移位寄存器输入/输出方式,模式0的数据帧格式,如图所示。从图中可以看出,模式0中的数据以8位为一帧,没有起始位和停止位,发送时低位在前,高位在后。在程序中可以设置控制寄存器SCON的SM0=0和SM1=0来将串行口设置为工作模式0。串行工作模式0的数据帧格式
5、11.2.1模式0的波特率8051单片机在串口模式0下,每个机器周期产生一个移位时钟,对应着一个比特数据的发送和接收。因此,此时波特率固定为8051单片机振荡频率的1/12,其波特率的计算公式如下:串口模式0波特率=fosc/12例如,对于24MHz的外部晶体振荡频率,模式0可以获得24MHz/12=2Mbit/s的波特率。同时,在串口模式0下,波特率不受波特率倍增位SMOD的影响。因此,在C51程序设计时只要指定串口工作于模式0便完成了串口速率的设置,而无需再设置波特率。11.2.2模式0的数据发送及C51程序设计对于模式0的数据发送
6、,单片机的TXD引脚都用于发送同步移位脉冲,而8位串行数据是通过单片机的RXD引脚来输出。1.模式0的数据发送流程2.采用查询方式的模式0数据发送C51程序设计3.采用中断方式的模式0数据发送C51程序设计扩展并行输出口14.2.3模式0的数据接收及C51程序设计对于模式0的数据接收,单片机的TXD引脚都用于发送同步移位脉冲,而8位串行数据是通过RXD引脚来输入。1.模式0的数据接收流程2.采用查询方式模式0数据接收的C51程序设计3.采用中断方式模式0数据接收的C51程序设计扩展并行输入口11.3串行口工作模式1的C51程序设计串行口
7、的工作模式1是波特率可变的串行异步通信方式,工作模式1下数据帧的格式,如图11.10所示。数据帧由10位组成,按顺序分别为起始位、8位数据位、停止位。数据在传输时,低位在前,高位在后。在程序中可以设置控制寄存器SCON的SM0=0和SM1=1来将串口设置为工作模式1。模式1的帧格式11.3.1模式1的波特率串口的工作模式1为10位异步发送接收方式。其串行移位时钟脉冲由定时器T1的溢出率来决定,因此,波特率由定时器T1的溢出率和波特率倍增位SMOD来共同决定。模式1的波特率计算公式如下:模式1波特率=T1溢出率·2SMOD/32设置模式1
8、的波特率,需要对定时器T1进行工作方式设置,以便于得到需要的波特率发生器。一般使T1工作于模式2,此时为初值自动加载的定时方式。如果计数器的初始值为X,则每过256-X个机器周期的时候,定时器T1便将产生一
此文档下载收益归作者所有