彻底理解串口通信.pdf

彻底理解串口通信.pdf

ID:50158642

大小:285.60 KB

页数:11页

时间:2020-03-08

彻底理解串口通信.pdf_第1页
彻底理解串口通信.pdf_第2页
彻底理解串口通信.pdf_第3页
彻底理解串口通信.pdf_第4页
彻底理解串口通信.pdf_第5页
资源描述:

《彻底理解串口通信.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、串口通讯概念和基本实验1、串行接口的一般概念单片机与外界进行信息交换称之为通讯。89c51单片机的通讯方式有两种:A、并行通讯:数据的各位同时发送或接收。本文档不涉及并行通讯,只将串行通讯。B、串行通讯:数据一位一位顺序发送或接收。串行通讯的方式:异步通讯:它用一个起始位表示字符的开始,用停止位表示字符的结束。其每帧的格式如下:在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(可以省略),最后是停止位1。用这种格式表示字符,则字符可以一个接一个地传送。在异步通讯中,CPU与外设之间必须有两项规定,即字符格式和波特

2、率。字符格式的规定是双方能够在对同一种0和1的串理解成同一种意义。原则上字符格式可以由通讯的双方自由制定,但从通用、方便的角度出发,一般还是使用一些标准为好,如采用ASCII标准。波特率即数据传送的速率,其定义是每秒钟传送的二进制数的位数。例如,数据传送的速率是120字符/s,而每个字符如上述规定包含10数位,则传送波特率为1200波特。同步通讯:在同步通讯中,每个字符要用起始位和停止位作为字符开始和结束的标志,占用了时间;所以在数据块传递时,为了提高速度,常去掉这些标志,采用同步传送。由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端与接收

3、端之间的同步,故硬件较复杂。本文档不讨论同步通讯。2.89c51单片机的串行接口结构89c51单片机通过引脚RXD(P3.0,串行数据接收端)和引脚TXD(P3.1,串行数据发送端)与外界通讯。SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据。所以,语句SBUF=SBUF;是有意义的。它并不是将本身的值赋给了本身,而是将一个寄存器的值赋给了另一个寄存器,并且单片机不会搞错哪个是发送的,哪个是接受的。3、串行口的控制与状态寄存器�串行口控制寄存器S

4、CON它用于定义串行口的工作方式及实施接收和发送控制。其各位定义如下表:SM0SM1SM2RENTB8RB8TIRI串口控制寄存器SCON示意表各位的说明如下SM0.SM1:工作方式控制位(其中fosc为晶振频率)SM0SM1工作方式说明波特率000同步移位寄存器Fosc/1201110位异歩收发由定时器控制10211位异步收发Fosc/32或Fosc/6411311位异步收发由定时器控制注意,由于实验条件本文档只有方式1和方式3的例程。SM2:多机通讯控制位。本文档不使用,编程时置0即可。REN:接收允许控制位。由软件置位以允许接收,又由软件清0来禁止接

5、收。TB8:是要发送数据的第9位。在方式2或方式3中,要发送的第9位数据,根据需要由软件置1或清0。例如,可约定作为奇偶校验位,或在多机通讯中作为区别地址帧或数据帧的标志位。RB8:接收到的数据的第9位。在方式0中不使用RB8。在方式1中,若(SM2)=0,RB8为接收到的停止位。在方式2或方式3中,RB8为接收到的第9位数据。TI:发送中断标志。在方式0中,第8位发送结束时,由硬件置位。在其它方式的发送停止位前,由硬件置位。TI置位既表示一帧信息发送结束,同时也是申请中断,可根据需要,用软件查询的方法获得数据已发送完毕的信息,或用中断的方式来发送下一个数

6、据。TI必须用软件清0。RI:接收中断标志位。在方式0,当接收完第8位数据后,由硬件置位。在其它方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于SM2的说明)。RI置位表示一帧数据接收完毕,可用查询的方法获知或者用中断的方法获知。RI也必须用软件清0。�电源控制寄存器PCON:SMOD此寄存器只有第一位SMOD和本文档有关。SMOD:串行口波特率加倍位1――方式1,3波特率=定时器1溢出率/16;方式2波特率为Fosc/32。0――方式1,3波特率=定时器1溢出率/32;方式2波特率为Fosc/648051单片机的全双工串行口可编程为4种工作方式,

7、现分述如下:方式0为移位寄存器输入/输出方式。本文档不用,故不叙述,有兴趣的话可以看教程。方式1为波特率可变的10位异步通讯接口方式。发送或接收一帧信息,包括1个起始位0,8个数据位和1个停止位1。输出:当CPU执行一条指令将数据写入发送缓冲SBUF时,就启动发送。串行数据从TXD引脚输出,发送完一帧数据后,就由硬件置位TI。输入:在(REN)=1时,串行口采样RXD引脚,当采样到1至0的跳变时,确认是开始位0,就开始接收一帧数据。只有当(RI)=0且停止位为1或者(SM2)=0时,停止位才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI;

8、否则信息丢失。所以在方式1接收时,应先用软件清零RI和SM2标志。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。