51单片机教程:单片机串行口介绍

合集下载

51单片机各引脚及端口详解

51单片机各引脚及端口详解

51单片机各引脚及端口详解51单片机引脚功能:MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图:l P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。

l P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。

l P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。

l P3.0~P3.7 P2口8位双向口线(在引脚的10~17号端子)。

这4个I/O口具有不完全相同的功能,大家可得学好了,其它书本里虽然有,但写的太深,对于初学者来说很难理解的,我这里都是按我自已的表达方式来写的,相信你也能够理解的。

P0口有三个功能:1、外部扩展存储器时,当做数据总线(如图1中的D0~D7为数据总线接口)2、外部扩展存储器时,当作地址总线(如图1中的A0~A7为地址总线接口)3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。

P1口只做I/O口使用:其内部有上拉电阻。

P2口有两个功能:1、扩展外部存储器时,当作地址总线使用2、做一般I/O口使用,其内部有上拉电阻;P3口有两个功能:除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。

有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的,即:编程脉冲:30脚(ALE/PROG)编程电压(25V):31脚(EA/Vpp)接触过工业设备的兄弟可能会看到有些印刷线路板上会有一个电池,这个电池是干什么用的呢?这就是单片机的备用电源,当外接电源下降到下限值时,备用电源就会经第二功能的方式由第9脚(即RST/VPD)引入,以保护内部RAM中的信息不会丢失。

在介绍这四个I/O口时提到了一个“上拉电阻”那么上拉电阻又是一个什么东东呢?他起什么作用呢?都说了是电阻那当然就是一个电阻啦,当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。

AT89S51单片机串行口的内部结构及工作原理介绍

AT89S51单片机串行口的内部结构及工作原理介绍

AT89S51单片机串行口的内部结构及工作原理介绍AT89S51单片机串行口的内部结构如下图所示。

它有两个物理上独立的接收、发送缓冲器SBUF(属于特殊功能寄存器),可同时发送、接收数据。

发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,两个缓冲器共用一个特殊功能寄存器字节地址(99H)。

串行口的控制寄存器共有两个:特殊功能寄存器SCON 和PCON。

下面介绍这两个特殊功能寄存器各位的功能。

1、串行口控制寄存器SCON串行口控制寄存器SCON,字节地址988H,可位寻址,位地址为98H~9FH。

SCON的格式如下图所示。

下面介绍SCON中各位的功能。

(1) SM0、SMl:串行口4种工作方式选择位。

SM0、SM1两位的编码所对应的4种工作方式见下表。

表串行口的4种工作方式(2) SM2:多机通信控制位。

因为多机通信是在方式2和方式3下进行的,因此SM2位主要用于方式2或方式3中。

当串行口以方式2或方式3接收时,如果SM2=1,则只有当接收到的第9位数据(RB8)为1时,才使RI置l,产生中断请求,并将接收到的前8位数据送人SBUF;当接收到的第9位数据(RB8)为0时,则将接收到的前8位数据丢弃。

而当SM2=0时,则不论第9位数据是l还是0,都将前8位数据送入SBUF中,并使RI置1,产生中断请求。

在方式1时,如果SM2=1,则只有收到有效的停止位时才会激活RI。

在方式0时,SM2必须为0。

(3)REN:允许串行接收位。

由软件置1或清0。

REN=1,允许串行口接收数据。

REN=O,禁止串行口接收数据。

(4)TB8:发送的第9位数据。

在方式2和方式3时,TB8是要发送的第9位数据,其值由软件置l或清O。

在双机串行通信时,TB8一般作为奇偶校验位使用;在多机串行通信中用来表示主机发送的是地址帧还是数据帧,TB8=1为地址帧,TB8=0为数据帧。

(5) RB8:接收的第9位数据。

工作在方式2和方式3时,RB8存放接收到的第9位数据。

MCS-51单片机串口编程及应用介绍

MCS-51单片机串口编程及应用介绍

起 始 位

据 位
校 验 位
停 止 位
异步通信的帧格式
二、同步通信传送方式
同步传送:以同步字符 同步传送:以同步字符SYN开始连续发 开始连续发 再以同步字符结束, 送,再以同步字符结束,时钟信号同时发 适用高速、大容量的数据传送。 送。适用高速、大容量的数据传送。
开始 同步字符 同步字符 数据段 同步字符 结束 同步字符
工作原理: 工作原理: 发送:CPU执行 执行MOV SBUF,A,将数据送入SBUF SBUF。 发送:CPU执行MOV SBUF,A,将数据送入SBUF。 发送控制器按波特率发生器(定时器构成) 发送控制器按波特率发生器(定时器构成)提供的时钟速 率将SBUF中的数据一位、一位从TXD输出,发送结束时, SBUF中的数据一位 TXD输出 率将SBUF中的数据一位、一位从TXD输出,发送结束时,置 TI=1。 TI=1。 接收:接收控制器按波特率发生器提供的时钟速率从RXD引 接收:接收控制器按波特率发生器提供的时钟速率从RXD引 RXD 脚一位一位接收数据,当收到一个完整字符时,装入SBUF 脚一位一位接收数据,当收到一个完整字符时,装入SBUF 中,同时置RI=1,通知CPU,CPU执行MOV A,SBUF,将数据读 同时置RI=1,通知CPU,CPU执行MOV A,SBUF, RI=1 CPU 执行 入累加器A 入累加器A。 注意:由于SBUF具有双缓冲作用,它可以在CPU读入之前 注意:由于SBUF具有双缓冲作用,它可以在CPU读入之前 SBUF具有双缓冲作用 CPU 开始接收下一数据, CPU应在下一数据接收完毕前读取 开始接收下一数据, CPU应在下一数据接收完毕前读取 SBUF内容 由于串口的接收、发送各自独立, 内容。 SBUF内容。由于串口的接收、发送各自独立,所以可同时发 送及接收,即可以实现全双工通讯。 送及接收,即可以实现全双工通讯。

第19章 51系列单片机

第19章  51系列单片机

19.4.2 模式1的接收
• 在串行口的工作模式1中,RXD引脚为数据接收端。模式1接 收数据中的定时信号可以有两种,接收移位脉冲和接收字 符的检测脉冲。 • 串行口模式1接收数据时的移位脉冲,由定时器1的溢出信 号和波特率倍增位SMOD来共同决定,即由定时器1的溢出信 号经过16或32分频得到。 • 接收字符的检测脉冲,其频率是接收移位脉冲的16倍。在 接收一位数据的时候,有16个检测脉冲,以其中的第7、8、 9这3个脉冲作为真正的接收信号的采样脉冲。对三次采样 结果采取三中取二的原则来确定所检测到的值。采样这种 机制是为了抑制干扰,由于采样的信号总是在接收位的中 间位置,这样便可以避免信号两端的边沿失真,也可以防 止由于收发时钟频率不完全一致而带来的错误接收。
19.2.1 单片机串行接口的内部结构
• 51系列单片机的全双工串行口主要由数据发送缓 冲器、发送控制器TI、输出控制门、接收控制器、 输入移位寄存器、数据接收缓冲器等组成,如图 所示。
19.2.2 单片机串行接口的程序控制
• 51系列单片机的串行通信接口,通过控制寄存器 SCON和波特率选择特殊功能寄存器PCON来控制。 下面分别介绍这两个寄存器。 • 1.串行接口控制寄存器SCON
19.7.1 查询方式
• 假设发送方A需要把片内RAM中50H~6FH单元中的数 据,通过串行接口发送给接收方B。接收方B将接 收到的这32个字节数据后,存入片外1000H~101FH。 • 发送方和接收方均采用8051单片机,外接 fosc=6MHz的晶振,使用串行口工作方式2,波特率 规定为187.5kbit/s,需要使用波特率倍增位,即 置SMOD=1。 • 发送方定义TB8作为奇偶校验位。接收方进行奇偶 校验位RB8的判断,如果出错,则置F0标志位为1; 如果正确,则置F0标志位为0,然后返回。

51单片机SCON

51单片机SCON

51单片机的简介——串行口、SCON51单片机有一个全双工串行通讯口,它即可作为UART(Universal AsynchronousReceiver/Transmitter),也可作为一个同步移位寄存器。

而且作为UART时,其具有多机通讯能力。

51单片机的串行口由发送控制、接收控制、波特率输入管理和发送/接收缓冲区SBUF(地址为99H)组成。

SBUF作为发送和接收缓冲区其实际是分开的两个器件,数据不会相互覆盖,但在对其寻址时都是99H,51单片机会根据读或者写指令操作相应的器件。

站在汇编角度来看,51单片机的串行口通讯操作体现为累加器Acc(地址E0H)和发送/接收缓冲区SBUF之间的数据传递。

当我们要发送数据时,对串行口完成初始化设置后,数据由累加器A传入SBUF,然后在发送控制器的控制下组成帧结构,并自动从TXD端口发出,发送结束后置位TI(TI是特殊功能寄存器SCON的可独立寻址位,参见SCON介绍),如果要继续发送就在指令中将TI清0。

接收数据时,相当于对串口完成初始化设置后,数据由SBUF传入累加器Acc,在置位允许位(即设置SCON的独立寻址位REN为1)后才开始进行串行接收操作,在接收控制器控制下,通过移位寄存器将串行数据输入SBUF,接收结束后将RI(SCON中可独立寻址位)置位,最后将数据送累加器Acc。

特殊功能寄存器SCON是串行口控制寄存器,用于存放串行口的控制和状态信息,其地址为98H,具有位寻址功能,其各位的结构如下图所示:其中各个位的功能及含义如下:SM0、SM1:串行口工作方式选择位,其组合含义如下图所示:SM2:多机通讯控制位。

在方式2和方式3中用于多机通讯控制,在方式2、方式3的接收状态中,若SM2=1,当接收到的第9位(同时系统将第9位值赋予RB8)为0时,舍弃接收到的数据,RI置0;若第9位为1时,将接收到的数据送入接收SBUF中,并将RI置1;而对于方式1,接收到有效的停止位时,将RI置1。

穿行口实验报告

穿行口实验报告

一、实验目的1. 理解穿行口的工作原理和功能。

2. 掌握穿行口在单片机系统中的应用。

3. 学习如何通过编程控制穿行口实现数据传输。

4. 提高对单片机硬件资源和编程技术的应用能力。

二、实验原理穿行口(Serial Port)是单片机中用于串行通信的接口,它可以将单片机的并行数据转换为串行数据,或将串行数据转换为并行数据。

本实验主要涉及MCS-51单片机的串行口,其工作原理如下:1. 串行通信的基本概念:串行通信是指数据以一位一位的顺序传送,按照一定的顺序进行。

与并行通信相比,串行通信的传输速度较慢,但具有传输距离远、抗干扰能力强等优点。

2. MCS-51单片机的串行口:MCS-51单片机的串行口采用全双工通信方式,即同时可以进行发送和接收操作。

串行口的主要功能包括:- 数据发送:将并行数据转换为串行数据,通过串行口发送出去。

- 数据接收:接收串行数据,并将其转换为并行数据。

3. 串行口的工作模式:MCS-51单片机的串行口支持四种工作模式,分别是:- 模式0:同步移位寄存器方式。

- 模式1:8位UART(通用异步收发传输器)方式。

- 模式2:9位UART方式。

- 模式3:波特率可变UART方式。

三、实验器材1. 单片机实验板2. 连接线3. 示波器(可选)4. 编程器四、实验步骤1. 搭建实验电路:根据实验要求,将单片机实验板上的相关引脚与连接线连接好。

2. 编写程序:使用C语言编写程序,实现串行口的数据发送和接收功能。

3. 编译程序:使用编程器将程序烧录到单片机中。

4. 调试程序:通过示波器或其他测试工具观察串行口的数据传输情况,验证程序的正确性。

5. 实验结果分析:根据实验结果,分析程序的正确性和串行口的工作状态。

五、实验程序以下是一个简单的串行口发送和接收程序示例:```c#include <reg51.h>void main() {SCON = 0x50; // 设置串行口为模式1,8位UART方式TMOD |= 0x20; // 设置定时器1为方式2TH1 = 0xFD; // 设置波特率为9600TL1 = 0xFD; // 设置波特率为9600TR1 = 1; // 启动定时器1TI = 1; // 设置发送标志位while (1) {if (TI) { // 检查发送标志位TI = 0; // 清除发送标志位SBUF = 'A'; // 发送字符'A'}if (RI) { // 检查接收标志位RI = 0; // 清除接收标志位// 处理接收到的数据}}}```六、实验结果分析1. 在实验过程中,观察到串行口的数据发送和接收功能正常。

51单片机-串行口ppt课件

51单片机-串行口ppt课件

为发送时CPU是主动的,不会产生重叠错误。
最新课件
21
8.2.2 80C51串行口的控制寄存器
SCON 是一个特殊功能寄存器,用以设定串行口的工 作方式、接收/发送控制以及设置状态标志:
SM0和SM1为工作方式选择位,可选择四种工作方式:
最新课件
22
●SM2,多机通信控制位,主要用于方式2和方式3。 当接收机的SM2=1时可以利用收到的RB8来控制是否 激活RI(RB8=0时不激活RI,收到的信息丢弃; RB8=1时收到的数据进入SBUF,并激活RI,进而在 中断服务中将数据从SBUF读走)。当SM2=0时,不 论收到的RB8为0和1,均可以使收到的数据进入 SBUF,并激活RI(即此时RB8不具有控制RI激活的 功能)。通过控制SM2,可以实现多机通信。
起 空始 闲位
一个字符帧 数据位
校停 验止 位位
空 下一字符 闲 起始位
LSB
MSB
异步通信的特点:不要求收发双方时钟的
严格一致,实现容易,设备开销较小,但 每个字符要附加2~3位用于起止位,各帧 之间还有间隔,因此传输效率不高。
最新课件
9
2、同步通信
同步通信时要建立发送方时钟对接收方时钟的直接控制, 使双方达到完全同步。此时,传输数据的位之间的距离均 为“位间隔”的整数倍,同时传送的字符间不留间隙,即 保持位同步关系,也保持字符同步关系。发送方对接收方 的同步可以通过两种方法实现。
波特率=2SMOD/32×T1的溢出率 = 2SMOD × fosc/[ 32 × 12×(2K-初值)]
最新课件
19
回目录 上页 下页
3、传输距离与传输速率的关系
串行接口或终端直接传送串行信息位流的

51单片机串行口的工作方式

51单片机串行口的工作方式
☞再比如要显示“3” 须令a b c d g 为“0” 电平,e f h为“1”电平。
hgfedcba
a
fg b
e
c
dh
共阳极
累加器 A hgfedcba
0C0H = “0”
0B0H = “3”
例:利用串行口工作方式0扩展出8位并行I/O 口,驱动共阳LED数码管显示0—9。
VCC TxD RxD
☞方式2的波特率 = fosc 2SMOD/64 即: fosc 1/32 或 fosc 1/64 两种
☞奇偶校验是检验串行通信双方传输的数据正确与 否的一个措施,并不能保证通信数据的传输一定正 确。
换言之:如果奇偶校验发生错误,表明数据传输 一定出错了;如果奇偶校验没有出错,绝不等于数 据传输完全正确。
☞ REN:串行口接收允许位。 REN=1 允许接收
☞ TB8,RB8,TI,RI等位由运行中间的情况 决定,可先写成 “0”
三、工作方式2: 9位UART(1+8+1+1位)两种波特率
☞由于波特率固定,常用于单片机间通讯。 数据由8+1位组成,通常附加的一位 (TB8/RB8)用于“奇偶校验”。
☞ 溢出率:T1溢出的频繁程度 即:T1溢出一次所需时间的倒数。
☞ 波特率 =
2SMOD fosc 32 12(2n - X)
其中:X 是定时器初值
☞ 初值 X = 2n -
2SMOD fosc 32 波特率 12
常用波特率和T1初值查表
☞表格有多种, 晶振也不止一种
串口波特率 (方式1,3)
74LS164
hgfedcba
A B
CLK
CLR
74LS164
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51单片机教程:单片机串行口介绍
串行口是单片机与外界进行信息交换的工具。

8051 单片机的通信方式有两种:
并行通信:数据的各位同时发送或接收。

串行通信:数据一位一位次序发送或接收。

参看下图:
串行通信的方式:
异步通信:它用一个起始位表示字符的开始,用停止位表示字符的结束。

其每帧的格式如下:
在一帧格式中,先是一个起始位0,然后是8 个数据位,规定低位在前,高位在后,接下来是奇偶校验位(能省略),最后是停止位1。

用这种格式表示字符,则字符能一个接一个地传送。

在异步通信中,CPU 与外设之间必须有两项规定,即字符格式和波特率。

字符格式的规定是双方能够在对同一种0 和1 的串理解成同一种意义。

原则上字符格式能由通信的双方自由制定,但从通用、方便的角度出发,一般还是使用一些标准为好,如采用ASCII 标准。

波特率即数据传送的速率,其定义是每秒钟传送的二进制数的位数。

例如,数据传送的速率是120 字符/s,而每个字符如上述规定包含10 数位,则传送波特率为1200 波特。

同步通信:在同步通信中,每个字符要用起始位和停止位作为字符开始和结束的标志,占用了时间;所以在数据块传递时,为了提高速度,常去掉这些标志,采用同步传送。

由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端与接收端之间的同步,故硬件较复杂。

相关文档
最新文档