单片机串口通信
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
TI:发送中断标志位。由片内硬件在方式0 串行发送第8位结束时臵位,或在其他方式 串行发送停止位的开始时臵位。必须由软件 清零。 RI:接收中断标志位。由片内硬件在方式0 串行接收到第8位结束时置位,或在其他方 式串行接收到停止位的中间时置位,必须由 软件清零。
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
奇偶校验位:数据位发送完之后,可以发送奇偶 校验位。奇偶校验用于有限差错检测,通讯双方在通 讯时须约定一致的奇偶校验方式。就数据传送而言, 奇偶校验位是冗余位,但它表示数据的一种性质。这 种性质用于检错,虽有限但很容易实现。 停止位:在奇偶位或数据位(当无奇偶校验时) 之后发送的是停止位是一个字符数据的结束标志,可 以是1位、1.5位或2位。 • 由于异步通讯每次都必须发送起始位,结束位等等, 所以在数据传输速度上有限,一般应用于低速场合
首页 向上 向下 未页 返回
单片机电子教案
10.1.3 串口工作方式
bojia@bojia.net
51系列单片机有4种工作方式,通过SCON中的SM1、 SM0来设置
SM0
wk.baidu.com
SM1
方式
功能说明
0 0
0 1
0 1
1
1
0
1
2
3
移位寄存器方式(用于扩展 I/O口) 8位UART,波特率可变(T1 溢出率/n) 9位UART,波特率为fosc/64 或fosc/32 9位USRT,波特率可变(T1 溢出率/n)
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
51系列单片机中一般也集成了全双工的 串行端口。一般通过定时器来设定通讯 的波特率,通过设置几个寄存器来设定 工作方式等等。
首页 向上 向下 未页 返回
单片机电子教案
本章主要内容
bojia@bojia.net
串行口的结构:介绍与串行通讯相关的寄存器以及工作模式 等 串行通讯的原理:主要介绍同步,异步通讯的原理 通讯协议:介绍常用的通讯协议的设计与实现 单机通讯:介绍单片机与PC机、单片机与单片机之间的串行 通讯 多机通讯:介绍单片机多机通讯的原理和多机通讯协议的设 计 通讯程序的调试:介绍如何调试通讯程序
方式3为波特串可变的9位异步通讯方式,除了波特 率外,方式3和方式2相同,方式3的波特率由下式 确定:
2 方式 3 波特率= 32
SMOD
×定时器 T1 的溢出率
首页 向上 向下 未页 返回
单片机电子教案
10.2 串行通讯的原理
bojia@bojia.net
相对与并行通讯来说,串行通讯硬件代价、 结构简单,传输距离上也要比并行通讯长 的多;但由于数据是一位位传送的,所以 在速度上比并行通讯要慢,如图10-1、 10-2所示为并行通讯示例和串行通讯示例。
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
SM0、SM 1:控制串行口的工作方式。 SM 2:允许方式2和方式3进行多机通 讯控制位。在方式2或方式3中,如SM 2=1, 则接收到第9位数据。 EN:允许串行接收控制位。由软件置 位时允许接收,软件清零时停止接收。 TE8:是工作在方式2和方式3时,要发 送的第9位数据。 RB8:是工作在方式2和方式3时,接收 到的第9位数据。
bojia@bojia.net
当REN=1时,串行口便以所选波特率的16倍速率采 样RxD引脚状态,当采样到RXD端从1到0的跳变时就 进行接收,接收的值是3次采样中至少二次相同的 值,以保证数据可靠无误。在起始位,如果接收到 的值不为0,则起始位无效,重新接收,当再次接 收到一个由l到0的跳变时,重新启动接收。如果接 收值为0,起始位有效,串行口开始接收数据位的 其余信息(10位),接收完成后,RI被置位。 方式1的波特率是可以通过软件进行设置的,其计 算公式如下:
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
并行通讯
串行通讯
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
• 串行通讯在通讯方式上分为单工、半双工和全
双工三种。 单工:通讯双方为A、B;在单工方式下 只能由A-->B,或者只能由B-->A。 半双工:通讯双方为A、B;可以互相传 送,但在某个时间内,只能由A-->B,或者只 能由B-->A。 • 全双工:通讯双方为A、B;可以互相传送,在 任何时间内都可以A-->B和B-->A可以同时进行。
单片机电子教案
bojia@bojia.net
• 与异步通讯相比,同步通讯传输的数据量大,速度也
快,常用于高速传输的场合中。 • 通讯速度是用波特率来表示的。波特率表示的是单位 时间内传输数据的位数,单位为bps。 • 例如,前面所说的波特率为9600bps,这表示,在这种 工作状态下,单片机的串行口每秒钟能发送或者接受 9600位的数据,也就是1.2K字节的数据。 • 波特率设置在异步通讯中是非常重要的;只有当通讯 双方以相同的波特率发送或者接收数据,传输才能够 正确。
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
该方式下串行口作为同步移位寄存器使用,可以利 用移位寄存器进行并行I/O扩展。这时以RxD端作为 数据移位的输入、输出口,而出TXD端提供移位时 钟脉冲。 在方式0的接收状态下,设置REN=1和RI=0,串行口 就处于允许接收状态,此时RxD为串行输入端, TXD 为 同 步 脉 冲 输 出 端 。 串 行 接 收 的 波 特 串 为 fosc/12。当接收完一帧数据(8位)后,控制信号 复位,中断标志RI被置位,呈中断申请状态。每次 接收完成时,必须通过软件将RI清零,以启动下一 次接收。 首页 向上 向下 未页 返回
单片机电子教案
单片机电子教案
bojia@bojia.net
第10章 串行通信及接口
首页 向上 向下 未页 返回
单片机电子教案
学习指南
bojia@bojia.net
串行通讯技术是单片机系统开发中常用的 技术之一,串行口也是单片机常规内部集成 的功能。近几年来,虽然新的通讯技术、手 段不断出现,但串行通讯技术由于它技术成 熟、开发方便而一直都被广泛应用于工控场 合。
首页 向上 向下 未页 返回
单片机电子教案
方式0
bojia@bojia.net
在方式0状态下,串行口为同步移位寄存器方式, 其波特率是固定的,为fosc/12。数据由RXD端出入, 同步移位脉冲由TxD端输出,发送、接收的是8位效 据,不设起始比和停止位,低位在前,高位在后。。 在方式0的发送状态,当一个数据写入串行口发送 缓冲器SBUF时,串行口将数据以fosc/12的波特率 由低位到高位从TxD引脚输出,发送完中断标志TI 置1,TxD引脚输出同步脉冲。
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
• 串行通讯在数据传输上的方式分为了异步通讯
和同步通讯两种。 u 异步通讯 • 异步串行通讯规定了字符数据的传送格式,即 每个数据以相同的格式传送。一般的格式如图 10-3所示。
图10-3 异步通讯数据帧结构
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
• 每一帧信息由起始位、数据位、奇偶校验位和停止位
组成。 起始位:在通讯线上没有数据传送时处于逻辑 “1”状态。当发送设备要发送数据时,首先发出一个 逻辑“0”信号,这个逻辑低电平就是起始位。起始位 通过通讯线传向接收设备,当接收设备检测到这个逻 辑低电平后,就开始准备接收数据位信号。因此,起 始位所起的作用就是表示字符传送开始。 数据值:当接收设备收到起始位后,紧接着就会 收到数据位。数据位的个数可以是5、6、7或8位的数 据。在字符数据传送过程中,数据位从最小有效位 (最低位)开始传送。
首页 向上 向下 未页 返回
单片机电子教案
10.1 串行口的结构
bojia@bojia.net
51系列单片机内部有全双工串行口,提供了4 种工作方式。波特率可由软件设置,由片内的定时 器/计数器产生。接收、发送均可工作在查询方式 或中断方式,使用十分灵活。串行口除了用于数据 通讯外,还可以非常方便地构成一个或多个并行输 入/输出口,或作串,并转换,或用来驱动键盘和 显示器。
首页 向上 向下 未页 返回
单片机电子教案
2 方式 1 波特率= 32
SMOD
bojia@bojia.net
×定时器 T1 的溢出率
所谓的溢出率是指单位时间内T1的溢出次数, 假设定时器的初值为N则,溢出率为 =fosc/12*(2n-N)。其中n为定时器的定时位 数,例如,将T1设置为工作模式2,即8位自 动重装的模式,则n=8,溢出率为 =fosc/12*(28-N)。
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
假如fosc=11.0592MHz,想得到9600的拨特率,此时, 定时器T1初值的计算方法为: N=28-(2SMOD*11.0592*106)/(9600*32*12) 如果SMOD=1则N=FAH。
首页 向上 向下 未页 返回
首页 向上 向下 未页 返回
单片机电子教案
10.1.1 串口控制寄存器
bojia@bojia.net
串行口控制寄存器SCON:该寄存器的字节地址为 98H,可位寻址。SCON格式为:
D7 SCON 位 地 址 SM0 9F D6 SM1 9E D5 SM2 9D D4 REN 9C D3 TB8 9B D2 RB8 9A D1 TI 99 D0 RI 98
首页 向上 向下 未页 返回
单片机电子教案
10.1.2 特殊功能寄存器
bojia@bojia.net
PCON:其字节地址a7H、没有位寻址功能。PCON的 格式如下,其中与串行接口有关的只有D7。 D7 (SMOD)是波特率加倍位,为1的时候,波特率加倍。
D7 PCON SMOD D6 D5 D4 D3 D2 D1 D0
单片机电子教案
方式1
bojia@bojia.net
此时串行口为8位异步通讯接口。数据长度为10位: 含1位起始位,8位数据位(低位在先)和1位停止 位。TxD为发送端,RxD为接收端。 串行口以方式1发送时,数据由TxD端输出,发送完 10位数据后,发送中断标志置1。
首页 向上 向下 未页 返回
单片机电子教案
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
u 同步通讯 • 同步通讯不像异步通讯那样靠起始位在每个字
符数据开始时使发送相接收同步,而是通过同 步字符在每个数据块传送开始时使收/发双方 同步,一般格式如图10-4所示。
图10-4 同步通讯数据结构
首页 向上 向下 未页 返回
首页 向上 向下 未页 返回
单片机电子教案
10.3 通讯协议
bojia@bojia.net
通讯协议是通讯双方事先约定,共同遵守的 一个协议。在通讯中,只有双方同时满足协议 要求,才能进行通讯。一般说来,通讯协议分 为了电气协议和软件协议两个部分。 电气协议主要规定了通讯的电气特性,对 接口、信号等做出了详细的说明。串行通讯协 议主要有:RS-232C、RS-485、RS-449、RS422、RS-423。其中,应用最为广泛的是RS232C和RS-485。 首页 向上 向下 未页 返回
单片机电子教案
方式2
bojia@bojia.net
串行口工作在方式2时,为9位异步通讯口,数据长 度为11位,1位起始位、8位数据位(低在先)、1 位可编程位(第9数据位)和1位停止位。 在方式2发送时,数据由TxD端输出,附加的第9位数 据为SCON中的TB8;送完一帧信息后,TI被置1。在 发送下一帧信息之前,TI必须清零。
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
在方式2接收时,数据由RxD增输入,接收11位信息。 接收完成后设置相应的中断标志位。 方式2的波特率是固定的,其计算公式如下:
2 方式 2 波特率= 64
SMOD
×fosc
首页 向上 向下 未页 返回
单片机电子教案
方式3
bojia@bojia.net
单片机电子教案
bojia@bojia.net
TI:发送中断标志位。由片内硬件在方式0 串行发送第8位结束时臵位,或在其他方式 串行发送停止位的开始时臵位。必须由软件 清零。 RI:接收中断标志位。由片内硬件在方式0 串行接收到第8位结束时置位,或在其他方 式串行接收到停止位的中间时置位,必须由 软件清零。
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
奇偶校验位:数据位发送完之后,可以发送奇偶 校验位。奇偶校验用于有限差错检测,通讯双方在通 讯时须约定一致的奇偶校验方式。就数据传送而言, 奇偶校验位是冗余位,但它表示数据的一种性质。这 种性质用于检错,虽有限但很容易实现。 停止位:在奇偶位或数据位(当无奇偶校验时) 之后发送的是停止位是一个字符数据的结束标志,可 以是1位、1.5位或2位。 • 由于异步通讯每次都必须发送起始位,结束位等等, 所以在数据传输速度上有限,一般应用于低速场合
首页 向上 向下 未页 返回
单片机电子教案
10.1.3 串口工作方式
bojia@bojia.net
51系列单片机有4种工作方式,通过SCON中的SM1、 SM0来设置
SM0
wk.baidu.com
SM1
方式
功能说明
0 0
0 1
0 1
1
1
0
1
2
3
移位寄存器方式(用于扩展 I/O口) 8位UART,波特率可变(T1 溢出率/n) 9位UART,波特率为fosc/64 或fosc/32 9位USRT,波特率可变(T1 溢出率/n)
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
51系列单片机中一般也集成了全双工的 串行端口。一般通过定时器来设定通讯 的波特率,通过设置几个寄存器来设定 工作方式等等。
首页 向上 向下 未页 返回
单片机电子教案
本章主要内容
bojia@bojia.net
串行口的结构:介绍与串行通讯相关的寄存器以及工作模式 等 串行通讯的原理:主要介绍同步,异步通讯的原理 通讯协议:介绍常用的通讯协议的设计与实现 单机通讯:介绍单片机与PC机、单片机与单片机之间的串行 通讯 多机通讯:介绍单片机多机通讯的原理和多机通讯协议的设 计 通讯程序的调试:介绍如何调试通讯程序
方式3为波特串可变的9位异步通讯方式,除了波特 率外,方式3和方式2相同,方式3的波特率由下式 确定:
2 方式 3 波特率= 32
SMOD
×定时器 T1 的溢出率
首页 向上 向下 未页 返回
单片机电子教案
10.2 串行通讯的原理
bojia@bojia.net
相对与并行通讯来说,串行通讯硬件代价、 结构简单,传输距离上也要比并行通讯长 的多;但由于数据是一位位传送的,所以 在速度上比并行通讯要慢,如图10-1、 10-2所示为并行通讯示例和串行通讯示例。
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
SM0、SM 1:控制串行口的工作方式。 SM 2:允许方式2和方式3进行多机通 讯控制位。在方式2或方式3中,如SM 2=1, 则接收到第9位数据。 EN:允许串行接收控制位。由软件置 位时允许接收,软件清零时停止接收。 TE8:是工作在方式2和方式3时,要发 送的第9位数据。 RB8:是工作在方式2和方式3时,接收 到的第9位数据。
bojia@bojia.net
当REN=1时,串行口便以所选波特率的16倍速率采 样RxD引脚状态,当采样到RXD端从1到0的跳变时就 进行接收,接收的值是3次采样中至少二次相同的 值,以保证数据可靠无误。在起始位,如果接收到 的值不为0,则起始位无效,重新接收,当再次接 收到一个由l到0的跳变时,重新启动接收。如果接 收值为0,起始位有效,串行口开始接收数据位的 其余信息(10位),接收完成后,RI被置位。 方式1的波特率是可以通过软件进行设置的,其计 算公式如下:
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
并行通讯
串行通讯
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
• 串行通讯在通讯方式上分为单工、半双工和全
双工三种。 单工:通讯双方为A、B;在单工方式下 只能由A-->B,或者只能由B-->A。 半双工:通讯双方为A、B;可以互相传 送,但在某个时间内,只能由A-->B,或者只 能由B-->A。 • 全双工:通讯双方为A、B;可以互相传送,在 任何时间内都可以A-->B和B-->A可以同时进行。
单片机电子教案
bojia@bojia.net
• 与异步通讯相比,同步通讯传输的数据量大,速度也
快,常用于高速传输的场合中。 • 通讯速度是用波特率来表示的。波特率表示的是单位 时间内传输数据的位数,单位为bps。 • 例如,前面所说的波特率为9600bps,这表示,在这种 工作状态下,单片机的串行口每秒钟能发送或者接受 9600位的数据,也就是1.2K字节的数据。 • 波特率设置在异步通讯中是非常重要的;只有当通讯 双方以相同的波特率发送或者接收数据,传输才能够 正确。
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
该方式下串行口作为同步移位寄存器使用,可以利 用移位寄存器进行并行I/O扩展。这时以RxD端作为 数据移位的输入、输出口,而出TXD端提供移位时 钟脉冲。 在方式0的接收状态下,设置REN=1和RI=0,串行口 就处于允许接收状态,此时RxD为串行输入端, TXD 为 同 步 脉 冲 输 出 端 。 串 行 接 收 的 波 特 串 为 fosc/12。当接收完一帧数据(8位)后,控制信号 复位,中断标志RI被置位,呈中断申请状态。每次 接收完成时,必须通过软件将RI清零,以启动下一 次接收。 首页 向上 向下 未页 返回
单片机电子教案
单片机电子教案
bojia@bojia.net
第10章 串行通信及接口
首页 向上 向下 未页 返回
单片机电子教案
学习指南
bojia@bojia.net
串行通讯技术是单片机系统开发中常用的 技术之一,串行口也是单片机常规内部集成 的功能。近几年来,虽然新的通讯技术、手 段不断出现,但串行通讯技术由于它技术成 熟、开发方便而一直都被广泛应用于工控场 合。
首页 向上 向下 未页 返回
单片机电子教案
方式0
bojia@bojia.net
在方式0状态下,串行口为同步移位寄存器方式, 其波特率是固定的,为fosc/12。数据由RXD端出入, 同步移位脉冲由TxD端输出,发送、接收的是8位效 据,不设起始比和停止位,低位在前,高位在后。。 在方式0的发送状态,当一个数据写入串行口发送 缓冲器SBUF时,串行口将数据以fosc/12的波特率 由低位到高位从TxD引脚输出,发送完中断标志TI 置1,TxD引脚输出同步脉冲。
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
• 串行通讯在数据传输上的方式分为了异步通讯
和同步通讯两种。 u 异步通讯 • 异步串行通讯规定了字符数据的传送格式,即 每个数据以相同的格式传送。一般的格式如图 10-3所示。
图10-3 异步通讯数据帧结构
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
• 每一帧信息由起始位、数据位、奇偶校验位和停止位
组成。 起始位:在通讯线上没有数据传送时处于逻辑 “1”状态。当发送设备要发送数据时,首先发出一个 逻辑“0”信号,这个逻辑低电平就是起始位。起始位 通过通讯线传向接收设备,当接收设备检测到这个逻 辑低电平后,就开始准备接收数据位信号。因此,起 始位所起的作用就是表示字符传送开始。 数据值:当接收设备收到起始位后,紧接着就会 收到数据位。数据位的个数可以是5、6、7或8位的数 据。在字符数据传送过程中,数据位从最小有效位 (最低位)开始传送。
首页 向上 向下 未页 返回
单片机电子教案
10.1 串行口的结构
bojia@bojia.net
51系列单片机内部有全双工串行口,提供了4 种工作方式。波特率可由软件设置,由片内的定时 器/计数器产生。接收、发送均可工作在查询方式 或中断方式,使用十分灵活。串行口除了用于数据 通讯外,还可以非常方便地构成一个或多个并行输 入/输出口,或作串,并转换,或用来驱动键盘和 显示器。
首页 向上 向下 未页 返回
单片机电子教案
2 方式 1 波特率= 32
SMOD
bojia@bojia.net
×定时器 T1 的溢出率
所谓的溢出率是指单位时间内T1的溢出次数, 假设定时器的初值为N则,溢出率为 =fosc/12*(2n-N)。其中n为定时器的定时位 数,例如,将T1设置为工作模式2,即8位自 动重装的模式,则n=8,溢出率为 =fosc/12*(28-N)。
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
假如fosc=11.0592MHz,想得到9600的拨特率,此时, 定时器T1初值的计算方法为: N=28-(2SMOD*11.0592*106)/(9600*32*12) 如果SMOD=1则N=FAH。
首页 向上 向下 未页 返回
首页 向上 向下 未页 返回
单片机电子教案
10.1.1 串口控制寄存器
bojia@bojia.net
串行口控制寄存器SCON:该寄存器的字节地址为 98H,可位寻址。SCON格式为:
D7 SCON 位 地 址 SM0 9F D6 SM1 9E D5 SM2 9D D4 REN 9C D3 TB8 9B D2 RB8 9A D1 TI 99 D0 RI 98
首页 向上 向下 未页 返回
单片机电子教案
10.1.2 特殊功能寄存器
bojia@bojia.net
PCON:其字节地址a7H、没有位寻址功能。PCON的 格式如下,其中与串行接口有关的只有D7。 D7 (SMOD)是波特率加倍位,为1的时候,波特率加倍。
D7 PCON SMOD D6 D5 D4 D3 D2 D1 D0
单片机电子教案
方式1
bojia@bojia.net
此时串行口为8位异步通讯接口。数据长度为10位: 含1位起始位,8位数据位(低位在先)和1位停止 位。TxD为发送端,RxD为接收端。 串行口以方式1发送时,数据由TxD端输出,发送完 10位数据后,发送中断标志置1。
首页 向上 向下 未页 返回
单片机电子教案
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
u 同步通讯 • 同步通讯不像异步通讯那样靠起始位在每个字
符数据开始时使发送相接收同步,而是通过同 步字符在每个数据块传送开始时使收/发双方 同步,一般格式如图10-4所示。
图10-4 同步通讯数据结构
首页 向上 向下 未页 返回
首页 向上 向下 未页 返回
单片机电子教案
10.3 通讯协议
bojia@bojia.net
通讯协议是通讯双方事先约定,共同遵守的 一个协议。在通讯中,只有双方同时满足协议 要求,才能进行通讯。一般说来,通讯协议分 为了电气协议和软件协议两个部分。 电气协议主要规定了通讯的电气特性,对 接口、信号等做出了详细的说明。串行通讯协 议主要有:RS-232C、RS-485、RS-449、RS422、RS-423。其中,应用最为广泛的是RS232C和RS-485。 首页 向上 向下 未页 返回
单片机电子教案
方式2
bojia@bojia.net
串行口工作在方式2时,为9位异步通讯口,数据长 度为11位,1位起始位、8位数据位(低在先)、1 位可编程位(第9数据位)和1位停止位。 在方式2发送时,数据由TxD端输出,附加的第9位数 据为SCON中的TB8;送完一帧信息后,TI被置1。在 发送下一帧信息之前,TI必须清零。
首页 向上 向下 未页 返回
单片机电子教案
bojia@bojia.net
在方式2接收时,数据由RxD增输入,接收11位信息。 接收完成后设置相应的中断标志位。 方式2的波特率是固定的,其计算公式如下:
2 方式 2 波特率= 64
SMOD
×fosc
首页 向上 向下 未页 返回
单片机电子教案
方式3
bojia@bojia.net