深圳市华胄科技有限公司 >> MCU专题 >> 单片机教程


MCS-51的串行通信口



提交者 耕牛  在  2008-4-22 17:36:31 

上一篇 下一篇
MCS-51单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,它们的地址为99H。这个通信口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器使用。如果在传行口的输入输出引脚上加上电平转换器,就可方便地构成标准的RS-232接口。下面我们分别介绍。


[1]. 基本概念


数据通信的传输方式

常用于数据通信的传输方式有单工、半双工、全双工和多工方式。


单工方式:数据仅按一个固定方向传送。因而这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集。


半双工方式:数据可实现双向传送,但不能同时进行,实际的应用采用某种协议实现收/发开关转换。


全双工方式:允许双方同时进行数据双向传送,但一般全双工传输方式的线路和设备较复杂。


多工方式:以上三种传输方式都是用同一线路传输一种频率信号,为了充分地利用线路资源,可通过使用多路复用器或多路集线器,采用频分、时分或码分复用技术,即可实现在同一线路上资源共享功能,我们盛之为多工传输方式。


串行数据通信两种形式

异步通信

在这种通信方式中,接收器和发送器有各自的时钟,它们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下:一个起始位,仅接着是若干个数据位,图2是传输45H的数据格式。


同步通信

同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步通信中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送数据量较大的场合,速度就慢得多。同步传输方式去掉了这些起始位和停止位,只在传输数据块时先送出一个同步头(字符)标志即可。


同步传输方式比异步传输方式速度快,这是它的优势。但同步传输方式也有其缺点,即它必须要用一个时钟来协调收发器的工作,所以它的设备也较复杂。


串行数据通信的传输速率


串行数据传输速率有两个概念,即每秒转送的位数bps(Bit per second)和每秒符号数—波特率(Band rate),在具有调制解调器的通信中,波特率与调制速率有关。





图1


图2


[2]. MCS-51的串行口和控制寄存器


串行口控制寄存器

MCS-51单片机串行口寄存器结构如图3所示。SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发送器寄存器,可以实现全双工通信。但这两个寄存器具有同一地址(99H)。MCS-51的串行数据传输很简单,只要向发送缓冲器写入数据即可发送数据。而从接收缓冲器读出数据即可接收数据。


此外,从图中可看出,接收缓冲器前还加上一级输入移位寄存器,MCS-51这种结构目的在于接收数据时避免发生数据帧重叠现象,以免出错,部分文献称这种结构为双缓冲器结构。而发送数据时就不需要这样设置,因为发送时,CPU是主动的,不可能出现这种现象。





图3


串行通信控制寄存器

在上一节我们已经分析了SCON控制寄存器,它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98H,其结构格式如下:




表1


下面我们对各控制位功能介绍如下:

(1).SM0、SM1:串行口工作方式控制位。
SM0,SM1 工作方式
00 方式0
01 方式1
10 方式2
11 方式3



(2).SM2:多机通信控制位。

多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接受到的数据放弃。当SM2=0时,就不管第位数据是0还是1,都难得数据送入SBUF,并发出中断申请。

工作于方式0时,SM2必须为0。


(3).REN:允许接收位。

REN用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,禁止接收。


(4).TB8:发送接收数据位8。

在方式2和方式3中,TB8是要发送的——即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。


(5).RB8:接收数据位8。

在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。


(6).TI:发送中断标志位。

可寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。
(7).RI:接收中断标志位。

可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。


电源管理寄存器PCON

PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下:





表2


在CHMOS型单片机中,除SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。系统复位默认为SMOD=0。


中断允许寄存器IE

中断允许寄存器在前一节中已阐述,这里重述一下对串行口有影响的位ES。ES为串行中断允许控制位,ES=1允许串行中断,ES=0,禁止串行中断。





表3



单片机教程,五系列(55讲)电子书全集下载

论坛精选:
单片机教程,MCS51单片机从零开始 第一讲:初识单片机
http://bbs.huazhoucn.com/Topic.aspx?id=2539
单片机教程,MCS51单片机从零开始 第二讲:MCS-51单片机简述
http://bbs.huazhoucn.com/Topic.aspx?id=2540
单片机教程,MCS51单片机从零开始 第三讲:单片机相关常用名词解释
http://bbs.huazhoucn.com/Topic.aspx?id=2541
单片机教程,MCS51单片机从零开始 第四讲:计算机中数的表示及运算
http://bbs.huazhoucn.com/Topic.aspx?id=2542
单片机教程,MCS51单片机从零开始 第五讲:常用逻辑电路
http://bbs.huazhoucn.com/Topic.aspx?id=2544
单片机教程,MCS51单片机从零开始 第六讲:51单片机的结构及其组成
http://bbs.huazhoucn.com/Topic.aspx?id=2545
单片机教程,MCS51单片机从零开始 第七讲:51单片机的引脚
http://bbs.huazhoucn.com/Topic.aspx?id=2546
单片机教程,MCS51单片机从零开始 第八讲:8051单片机I/O引脚工作原理
http://bbs.huazhoucn.com/Topic.aspx?id=2547
单片机教程,MCS51单片机从零开始 第九讲:8051单片机的存储器结构
http://bbs.huazhoucn.com/Topic.aspx?id=2548
单片机教程,MCS51单片机从零开始 第十讲:编码及译码器工作原理
http://bbs.huazhoucn.com/Topic.aspx?id=2549
单片机教程,MCS51单片机从零开始 第十一讲:存储器的存储原理
http://bbs.huazhoucn.com/Topic.aspx?id=2550
单片机教程,MCS51单片机从零开始 第十二讲:51单片机的特殊功能寄存器
http://bbs.huazhoucn.com/Topic.aspx?id=2551
单片机教程,MCS51单片机从零开始 第十三讲:51单片机CPU的内部结构
http://bbs.huazhoucn.com/Topic.aspx?id=2552
单片机教程,MCS51单片机从零开始 第十四讲:定时器/计数器的基本结构及工作原理
http://bbs.huazhoucn.com/Topic.aspx?id=2553
单片机教程,MCS51单片机从零开始 第十五讲:51单片机的中断系统
http://bbs.huazhoucn.com/Topic.aspx?id=2554
单片机教程,MCS51单片机从零开始 第十六讲:51单片机的复位
http://bbs.huazhoucn.com/Topic.aspx?id=2555
单片机教程,MCS51单片机从零开始 第十七讲:51单片机执行指令的过程
http://bbs.huazhoucn.com/Topic.aspx?id=2556
单片机教程,MCS51单片机从零开始 第十八讲:51单片机的延时及时序分析
http://bbs.huazhoucn.com/Topic.aspx?id=2557
单片机教程,MCS51单片机从零开始 第十九讲:汇编语言基础
http://bbs.huazhoucn.com/Topic.aspx?id=2558
单片机教程,MCS51单片机从零开始 第二十讲:汇编语言及汇编过程
http://bbs.huazhoucn.com/Topic.aspx?id=2556
单片机教程,MCS51单片机从零开始 第二十一讲:汇编程序的基本结构
http://bbs.huazhoucn.com/Topic.aspx?id=2560
单片机教程,MCS51单片机从零开始 第二十二讲:51单片机的寻址方式
http://bbs.huazhoucn.com/Topic.aspx?id=2561
单片机教程,MCS51单片机从零开始 第二十三讲:数据传送类指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2562
单片机教程,MCS51单片机从零开始 第二十四讲:算术运算类指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2563
单片机教程,MCS51单片机从零开始 第二十五讲:逻辑运算及移位指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2564
单片机教程,MCS51单片机从零开始 第二十六讲:控制转移类指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2565
单片机教程,MCS51单片机从零开始 第二十七讲:布尔变量操作指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2566
单片机教程,MCS51单片机从零开始 第二十八讲:伪指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2567

1 楼  提交者:xinyueliu 在 2008-4-25 22:35:19
2 楼  提交者:343498677 在 2008-5-6 4:07:44
gg
3 楼  提交者:Guest 在 2008-5-19 17:15:27
hao  
4 楼  提交者:小方 在 2008-5-22 8:04:28
xiexie 
5 楼  提交者:Guest 在 2008-5-23 23:13:57
6 楼  提交者:Guest 在 2008-5-26 15:55:51
good
7 楼  提交者:烽火连天 在 2008-6-15 16:57:10
8 楼  提交者:Guest 在 2008-7-6 15:55:39
hui yige
9 楼  提交者:Guest 在 2008-7-7 14:55:13
慢慢来  学海无涯  苦作舟 
10 楼  提交者:ahbbpt 在 2008-7-18 22:40:37
kankan
11 楼  提交者:xhs1950 在 2008-7-22 17:04:41
12 楼  提交者:Guest 在 2008-7-22 17:46:50
有理
13 楼  提交者:Guest 在 2008-7-24 20:11:15
fghfghghghghghgfhgf
14 楼  提交者:Guest 在 2008-7-28 13:35:48
恩   好
15 楼  提交者:Guest 在 2008-7-28 15:57:49
4979
16 楼  提交者:Guest 在 2008-8-2 10:56:21
321321
17 楼  提交者:Guest 在 2008-8-2 17:29:29
0
18 楼  提交者:Guest 在 2008-8-6 10:47:33
hao
19 楼  提交者:leonyechen 在 2008-8-6 12:29:40
haoo
20 楼  提交者:Guest 在 2008-8-6 16:23:54
kkkkkkkkkk
21 楼  提交者:Guest 在 2008-8-22 13:13:38
a
22 楼  提交者:Guest 在 2008-8-23 21:59:26
23 楼  提交者:张英324 在 2008-8-26 0:27:52
1313
24 楼  提交者:絮烦 在 2008-8-26 17:08:35
lhhjkhjkh
25 楼  提交者:俺很土 在 2008-8-27 9:59:56
的顶
26 楼  提交者:梁兄 在 2008-9-1 16:48:58
27 楼  提交者:Guest 在 2008-9-2 18:48:46
28 楼  提交者:wgx1976 在 2008-9-5 15:54:12
ff
29 楼  提交者:Guest 在 2008-9-5 19:43:57
30 楼  提交者:psf 在 2008-9-8 10:36:41
看看内容
上一篇 下一篇
当前第〖1〗页 共有2页 转到第 1 2