第7章 51单片机的串行通信模块
第7章MCS51的串行口
发送 接收
半双工
发送
时间1
接收
接收
时间2
发送
全双工
发送 接收
接收
发送
8051有1个全双工异步通信串行口
通信线的连接 1、单片机与单片机 2、单片机与PC 3、多机通信
+5V
TXD RXD89C51 主机
单片机 +
1 3 4 5
T1IN
16
2 6
+ 单片机
TXD + RXD
11
MAX232
SBUF 串行口
串行接口功能
1.发送器:并串数据格式转换,添加标识位和校 验位,一帧发送结束,设置结束标志,申请中断。 2.接收器:串并数据格式转换,检查错误,去掉 标识位,保存有效数据,设置接收结束标志,申请中 断。 3.控制器:接收编程命令和控制参数,设置工作方 式:同步/异步、字符格式、波特率、校验方式、数 据位与同步时钟比例等。
• 89C51串行口控制寄存器SCON
字节地址98H,可位寻址
位地址 位符号 9FH SM0 9EH SM1 9DH SM2 9CH REN 9BH TB8 9AH RB8 99H TI 98H RI
SM0,SM1:串口4种工作方式选择。
SM0 0 0 1 1 SM1 0 1 0 1 工作方式 方式0 方式1 方式2 方式3 功能 8位同步移位寄存器 8位异步收发 9位异步收发 9位异步收发 波特率 fosc/12 可变 fosc/64或fosc/32 可变
空 闲
空 闲
下一字符 起始位
D0
D7
一次传输的起始位、字符各位、校验位、停止 位构成一个字符帧(数据帧)信息 帧与帧间可有任意个空闲位,起始位后紧跟数据 的最低位。
第7章补充习题
第7章 MCS-51的串行口一、填空1. MCS-51单片机的串行接口有种工作方式。
其中方式为多机通信方式。
2. 串行口中断标志RI/TI由置位,清零。
3. MCS-51串行接口有4种工作方式,这可在初始化程序中用软件填写特殊功能寄存器()加以选择.4. 用串口扩并口时,串行接口工作方式应选为方式。
5. 串行通信按照数据传送方向可分为三种制式: 、 和 。
6. 波特率定义为 。
串行通信对波特率的基本要求是互相通信的甲乙双方必须具有的 波特率。
7. 多机通信时,主机向从机发送信息分地址帧和数据帧两类,以第9位可编程TB8作区分标志。
TB8=0,表示 ;TB8=1,表示 。
8. 当从机 时,只能接收主机发出的地址帧,对数据不予理睬。
9. 多机通信开始时,主机首先发送地址,各从机核对主机发送的地址与本机地址是否相符,若相符,则置 。
二、判断1. 要进行多机通信,MCS-51串行接口的工作方式应为方式1。
()2. MCS-51的串行接口是全双工的。
()3. MCS-51上电复位时,SBUF=00H。
()。
三、简答1. 串行通信和并行通信有什么区别?各有什么优点?2. 什么是串行异步通信,它有哪些作用?并简述串行口接收和发送数据的过程。
3. 简述MCS-51单片机多机通信的特点。
4. 若异步通信按方式2传送,每分钟传送3000个字符,其波特率是多少?5. 什么是串行异步通信,它有哪些作用?并简述串行口接收和发送数据的过程。
6. 8051单片机四种工作方式的波特率应如何确定?7. 某异步通信接口,其帧格式由1个起始位(0),7个数据位,1个偶校验和1个停止位(1)组成。
当该接口每分钟传送1800个字符时,试计算出传送波特率。
8. 串行口工作方式在方式1和方式3时,其波特率与fosc、定时器T1工作模式2的初值及SNOD位的关系如何?设fosc=6MHz,现利用定时器T1模式2产生的波特率为110bps。
试计算定时器初值。
《单片机原理及接口技术》第7章习题及答案
《单片机原理及接口技术》(第2版)人民邮电出版社第7章 AT89S51单片机的串行口思考题及习题71.帧格式为1个起始位,8个数据位和1个停止位的异步串行通信方式是方式。
答:方式1。
2.在串行通信中,收发双方对波特率的设定应该是的。
答:相等的。
3.下列选项中,是正确的。
A.串行口通信的第9数据位的功能可由用户定义。
对B.发送数据的第9数据位的内容是在SCON寄存器的TB8位中预先准备好的。
对C.串行通信帧发送时,指令把TB8位的状态送入发送SBUF中。
错D.串行通信接收到的第9位数据送SCON寄存器的RB8中保存。
对E.串行口方式1的波特率是可变的,通过定时器/计数器T1的溢出率设定。
对4.通过串行口发送或接收数据时,在程序中应使用。
A.MOVC指令B.MOVX指令 C.MOV指令 D.XCHD指令答:C5.串行口工作方式1的波特率是。
A.固定的,为f osc/32 B.固定的,为f osc/16C.可变的,通过定时器/计数器T1的溢出率设定D.固定的,为f osc/64答:C6.在异步串行通信中,接收方是如何知道发送方开始发送数据的?答:当接收方检测到RXD端从1到0的跳变时就启动检测器,接收的值是3次连续采样,取其中2次相同的值,以确认是否是真正的起始位的开始,这样能较好地消除干扰引起的影响,以保证可靠无误的开始接受数据。
7.AT89S51单片机的串行口有几种工作方式?有几种帧格式?各种工作方式的波特率如何确定?答:串行口有4种工作方式:方式0、方式1、方式2、方式3;有3种帧格式,方式2和3具有相同的帧格式;方式0的发送和接收都以fosc/12为固定波特率,方式1的波特率=2SMOD /32×定时器T1的溢出率方式2的波特率=2SMOD /64×fosc方式3的波特率=2SMOD /32×定时器T1的溢出率8.假定串行口串行发送的字符格式为1个起始位、8个数据位、1个奇校验位、1个停止位,请画出传送字符“B ”的帧格式。
binbin详解第7章-串行输入输出接口电路
5. 信号的调制和解调
利用电话信道(频带宽度通常为 利用电话信道(频带宽度通常为300~3400Hz)进行远距离传输,为完 ~ )进行远距离传输, 成传输数字信号,通常把数字信号的“ 或 成传输数字信号,通常把数字信号的“0”或“1”转换成较高的不同频率的模拟 转换成较高的不同频率的模拟 信号,而在接收端再将该模拟信号转换成数字信号。前一种转换称为调制, 调制 信号,而在接收端再将该模拟信号转换成数字信号。前一种转换称为调制,后 一种转换称为解调。完成调制、解调功能的设备叫做调制解调器(Modem) 一种转换称为解调。完成调制、解调功能的设备叫做调制解调器(Modem)。 解调 调制解调器
波特率与字符的传送速率不同: 波特率与字符的传送速率不同:
波特率是每秒钟传送的二进制位数,传送率是每秒钟传送的字符个数, 波特率是每秒钟传送的二进制位数,传送率是每秒钟传送的字符个数,二 者之间存在如下关系: 者之间存在如下关系:
波特率=位 字符 字符/秒 位 秒 字符× 波特率 位/字符×字符 秒=位/秒
串行通信按通信的格式分为:异步通信和同步通信。 串行通信按通信的格式分为:异步通信和同步通信。
通信协议:通信的双方约定,何时开始发送, 通信协议:通信的双方约定,何时开始发送,何时发送完毕以及双方的 联络方式、正确与否等。 联络方式、正确与否等。
第7章 MCS-51串行接口
5.通信协议
(1) 奇偶校验 (2) 累加和校验 (3) 循环冗余码校验 (Cyclic Redundancy Check, 简称CRC)
7.2 MCS-51串行口结构与工作原理
MCS-51单片机内部含有1个可编程全双工串行通信接口, 它有4种工作方式。串行口内部结构如下图,两个物理上独立地 接收和发送缓冲器,可同时收、发数据(全双工)。 两个缓冲器共用一个特殊功能寄存器字节地址:SBUF(99H)
发送指令:MOV SBUF,A ;将数据写到发送缓冲器SBUF 接收指令:MOV A,SBUF ;读出接收缓冲器SBUF中接收到的数据 控制寄存器共两个:特殊功能寄存器SCON和PCON。
串行数据缓冲器SBUF 在逻辑上只有一个,既表示发送寄存器,又表示接收寄 存器,具有同一个单元地址99H,用同一寄存器名SBUF。 在物理上有两个,一个是发送缓冲寄存器,另一个是接 收缓冲寄存器。 发送时,只需将发送数据输入SBUF,CPU将自动启动和 完成串行数据的发送; 接收时,CPU将自动把接收到的数据存入SBUF,用户只 需从SBUF中读出接收数据。 指令 MOV SBUF,A 启动一次数据发送,可向SBUF 再发送下一个数 指令 MOV A,SBUF 完成一次数据接收,SBUF可再 接收下一个数
(2)同步通信 同步通信依靠同步字符保持通信同步。同步通信 是由1~2个同步字符和多字节数据位组成,同步字符作 为起始位以触发同步时钟开始发送或接收数据;多字节 数据之间不允许有空隙,每位占用的时间相等;空闲位 需发送同步字符。(同步字符可以用户约定,也可以有 用ASCⅡ码中规定的SYNC同步字符(即16H)) 同步通信传输速度较快,但要求有准确的时钟来实 现收发双方的严格同步,对硬件要求较高,适用于成批 数据传送。
nj单片机原理及应用(C语言版)第7章
单片机原理及应用(C语言版)第7章MCS-51单片机串行口主编:周国运中国水利水电出版社本章要点本章主要讲述MCS-51单片机串行口的结构、工作原理以及应用。
主要内容包括串行通信基本知识、MCS-51单片机串行口结构、串行口工作方式以及单片机与PC机通信的接口电路。
7.1 串行通信基本知识主要内容7.1.1 数据通信7.1.2 异步通信和同步通信7.1.3 波特率7.1.4 通信方向7.1.5 串行通信接口种类7.1.1 数据通信计算机与外界的信息交换称为通信。
基本的通信方法有并行通信和串行通信两种。
1.并行通信单位信息(通常指一个字节)的各位数据同时传送的通信方法称为并行通信。
优点:传送速度快;缺点:数据有多少位,就需要多少根传送线。
适合近距离通信7.1.1 数据通信2.串行通信单位信息的各位数据被分时一位一位依次顺序传送的通信方式称为串行通信。
优点:只需一对传输线,大大降低了传送成本,特别适用于远距离通信;缺点:传送速度较低。
适合远距离通信1.异步通信异步通信中,传送的数据可以是一个字符代码或一个字节数据,数据以帧的形式一帧一帧传送。
7.1.2异步通信和同步通信图7-3 异步通信的一帧数据格式1、异步通信起始位(0):信号只占用一位,用来通知接收设备一个待接收的字符开始到达。
线路上在不传送字符时应保持为1。
接收端不断检测线路的状态,若连续为1以后又测到一个0,就知道发来一个新字符,应马上准备接收。
数据位:紧接着起始位后面,它可以是5位(D0--D4)、6位、7位或8位(D0--D7)。
1、异步通信奇偶校验:只占一位,但也可以规定不使用奇偶校验位,这一位就可省去。
也可用这一位(1/0)来确定这一帧中的字符所代表信息的性质(地址/数据等)。
停止位:用来表征字符的结束,它一定是高电位(逻辑1)。
停止位可以是1位、1.5位或2位。
接收端收到停止位后,知道上一字符已传送完毕,同时,也为接收下一个字符做好准备--只要再接收到0,就是新的字符的起始位。
MCS-51单片机串行通信
9.1 串行通信概述
• ④停止位 表示发送一个数据的结束,用高电平表示,占1 位、1.5 位或2 位。 • 线路空闲时,线路处于逻辑“1”等待状态,即空闲位为1。 空闲位是异步通信特征之一。异步通信中数据传送格式如 图9.1 所示。 • 图9.1 异步通信数据帧格式
图9.1 异步通信数据帧格式
9.1 串行通信概述
9.1 串行通信概述
• 3.波特率 • 波特率是数据传递的速率,指每秒传送二进制数据的位数, 单位为位/秒(bit/s)。 • 例9.1 假设微型打印机最快的传送速率为30 字符/秒,每 个字符为10 位,计算波特率。 • 解: • 波特率=10 b/字符×30字符/s=300 b/s • 每一位代码的传送时间Td 为波特率的倒数: • Td=1/300=3.3 ms • 异步通信的波特率一般在50~19 200 b/s 之间,常用于 计算机到终端机和打印机之间的通信、直通电报以及无线 电通信的数据发送等。
异步10位收发 异步11位收发 异步11位收发
9.2 串行口结构与工作原理
• SM2:多机通信控制位。 • a.用于方式2和方式3。若SM2=1,则允许多机通信。 多机通信协议规定,若第9位数据(RB8)为1,则表明本帧 数据为地址帧。否则,若第9位数据(RB8)为0,则表明本 帧数据为数据帧。 • 当一个8051(主机)与多个8051(从机)进行通信时,令所有 从机的SM2都置1。主机要与某个从机通信,首先发送一 个与该从机相一致的地址帧(每个从机的地址必须惟一), 且第9位为1,所有从机接收到数据后,将第9位送入RB8 中。 • 若RB8=1,说明是地址帧,将数据装入SBUF,且置RI =1,即中断所有从机,若从机判断出该地址帧数据与本 机号(地址)一致,则置SM2=0,准备接收主机发来的数 据。其他从机仍然保持SM2=1。
(单片机完整课件PPT)第七章
当SM2=1时,只有当接收到第9位数据(RB8)为1时,才将接 收到的前8位数据送入SBUF,并置位RI;否则,将接收到的8位 数据丢弃。当SM2=0时,则不论第9位数据为0还是为1,都将8 位数据装入SBUF中,并置位RI。 REN:允许/禁止接收控制位 0—禁止接收; 1—允许接收。 TB8:发送数据第9位。 RB8:接收数据第9位。 TI: 发送中断标志 RI: 接收中断标志。
(2)输入(接收) 设置:SM0=0,SM1=0,SM2=0,REN=1。
时序:
RXD TXD D0 D1 D2 D3 D4 D5 D6 D7
7.2 MCS-51串行口的结构
内部含有1个可编程全双工串行通信接口,4种工作方式。
1.串行口数据缓冲器SBUF
8位发送/接收缓冲器SBUF,在物理上是独立的两个,包括 发送缓冲器SBUF和接收缓冲器SBUF,只是共用地址 99H,这样可以同时进行发送、接收。 发送缓冲器SBUF只能写入不能读出,接收缓冲器SBUF只能 读出不能写入。
(1)输出(发送)
设置:SM0=0,SM1=0,SM2=0,REN=0。 时序:
RXD TXD D0 D1 D2 D3 D4 D5 D6 D7
串口方式0发送数据时序
发送完8位数据,即SBUF为空,硬件自动置“1”中断标志位TI,
CPU响应中断后必须软件清“0”TI。
应用:扩展一并行口,“串入并出”。
2.串行通信的分类
异步通信(Asynchronous Communication)
数据以字节为单位组成字符帧传送。字符帧由发送端一帧 一帧地发送。两相邻字符帧之间可以无空闲位,也可以有若干 空闲位。这就是异步概念。发送端和接收端的时钟各自独立。 实现双方同步接收是靠字符帧的起始位和停止位。
第7章AT89S51单片机的串行口
PCONSMOD — — — GF1 GF0 PD IDL
GF1,GF0:用户可自行定义使用的通用标志位 GF1: General purpose Flag bit. GF0 :General purpose Fபைடு நூலகம்ag bit.
PD:掉电方式控制位 Power Down bit. =0:常规工作方式. =1:进入掉电方式:振荡器停振片内RAM和SRF的
例如:120字符/秒,1个字符10位, 波特率为:120×10=1200bps 平均每一位传送占用时间:Td=1/1200=0.833ms
常用的波特率有:(离散) 19200/9600/4800/2400/1200/600/300/150/100
/50, 还有10M/100M
7.1.1 与串行通信有关的寄存器
TB8:在串行工作方式2和方式3中,是要发送的第9位数据。 The 9th bit that will be transmitted in modes 2&3. Set/Cleared
by software 多机通信中: TB8=0 表示发送的是数据;
TB8=1 表示发送的是地址.
RB8:在串行工作方式2和方式3中,是收到的第9位数据.该数据来自发
REN:串行口接收允许控制位 Set/Cleared by software to Enable/Disable reception
=1 允许接收; (SETB REN) =0 禁止接收.
系统复位后,REN=0,不允许接受
SM0 SM1 SM2 REN TB8 RB8 TI RI
模式选择 多机通讯位 允许接收位 发送、接收第9位 发送、接收标志
1
1
3 Split timer mode (Timer 0) TL0 is an 8-bit Timer/Counter controlled by the
《单片机原理与接口技术》第7章 串行接口
PCON寄存器的D7位为SMOD,称为波特率倍增位。即当SMOD=1时,波 特率加倍; 当SMOD=0时,波特率不加倍。 通过软件可设置SMOD=0或SMOD=1。因为PCON无位寻址功能,所以, 要想改变SMOD的值,可通过相应指令来完成: ANL ORL MOV PCON,#7FH PCON,#80H PCON,#00H ;使SMOD=0 ;使SMOD=1 ;使SMOD=0
高等职业教育 计算机类课程规划教材
大连理工大学出版社
第7章
7.1 7.2 7.3 7.4
串行接口
串行通信的基本概念 MCS-51 单片机串行接口及控制寄存器 MCSMCSMCS-51 单片机串行口的工作方式 串行口的应用
7.1 串行通信的基本概念
7.1.1 数据通信的概念 计算机的CPU与外部设备之间、计算机与计算机之间的信息交换称 为数据通信。 1.并行通信 1.并行通信 并行通信是数据的各位同时进行传送(发送或接收)的通信方式。 其优点是数据传送速度快; 缺点是数据有多少位,就需要多少根传送线。 2.串行通信 2.串行通信 串行通信是数据的各位一位一位顺序传送的通信方式。
7.3
7.3.1 方式0 方式0
MCS-51单片机串行口的工作方式 MCS-51单片机串行口的工作方式
串行口工作于方式0下,串行口为8位同步移位寄存器输入/输出口, 其波特率固定为fosc/12。
数据由RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)端 输出,发送、接收的是 8位数据。不设起始位和停止位,低位在前,高 位在后。其帧格式为:
起始0 D0 D1 D2 D3 D4 D5 D6 D7 TB8/RB8 停止1
51单片机复习题及答案
第1章单片机概述1.单片机与普通微型计算机的不同之处在于其将CPU、存储器、和I/O口 3部分集成于一块芯片上。
2.8051与8751的区别是C。
A.内部数据存储单元数目不同B.内部数据存储器的类型不同C.内部程序存储器的类型不同D.内部寄存器的数目不同3.在家用电器中使用单片机应属于微计算机的。
A.辅助设计应用;B.测量、控制应用;C.数值计算应用;D.数据处理应用答:B。
第2章 51单片机片内硬件结构1.在51单片机中,如果采用6MHz晶振,一个机器周期为。
答:2µs2.AT89C51单片机的机器周期等于个时钟振荡周期。
答:12。
3.若A中的内容为63H,那么,P标志位的值为。
答:P标志位的值为0。
4.内部RAM中,可作为工作寄存器区的单元地址为 H~ H。
答:00H;1FH。
5.通过堆栈操作实现子程序调用,首先要把的内容入栈,以进行断点保护。
调用返回时,再进行出栈保护,把保护的断点送回到。
答:PC;PC。
6. 51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为51单片机的PC是16位的,因此其寻址的范围为 KB。
答:64KB。
7.判断下列项说法是正确的。
A.51单片机的CPU是由RAM和EPROM组成的B.区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低端还是高端C.在51单片机中,为使准双向的I/O口工作在输入方式,必须保证它被事先预置为1D.PC可以看成是程序存储器的地址指针答: A. 错; B. 错;C. 对;D. 对。
8.判断以下有关PC和DPTR的结论是正确的。
A.DPTR是可以访问的,而PC不能访问B.它们都是16位寄存器C.在单片机运行时,它们都具有自动加“1”的功能D.DPTR可以分为2个8位的寄存器使用,但PC不能答:A. 对; B. 对;C. 错;D. 对。
9.判断下列说法项是正确的。
A.程序计数器PC不能为用户编程时直接访问,因为它没有地址B.内部RAM的位寻址区,只能供位寻址使用,而不能供字节寻址使用C.51单片机共有21个特殊功能寄存器,它们的位都是可用软件设置的,因此,是可以进行位寻址的。
MCS-51_第07章 MCS-51的串行口
【例7-1】方式2发送在双机串行通信中的应用
下面的发送中断服务程序,以TB8作为奇偶校验位,偶校验 发送。数据写入SBUF之前,先将数据的偶校验位写入TB8 (设第2组的工作寄存器区的R0作为发送数据区地址指针)。
PIPTI: PUSH PSW PUSH Acc SETB RS1 CLR CLR MOV MOV MOV RS0 TI A,@R0 C,P TB8,C ;发送中断标志清“0” ;取数据 ;校验位送TB8, 采用偶校验 ;P=1,校验位TB8=1,P=0,校验 ;位TB8=0 ;选择第2组工作寄存器区 ;现场保护
MOV SBUF ,A INC R0 POP Acc POP PSW RETI
;A数据发送,同时发TB8 ;数据指针加1 ;恢复现场 ;中断返回
2.方式2接收 SM0、SM1=10,且REN = 1时,以方式2接收数据。 数据由RXD端输入,接收11位信息。当位检测逻辑采样
到RXD的负跳变,判断起始位有效,便开始接收一帧信息。
(RX时钟),它的频率和传送的波特率相同,另一种是位 检测器采样脉冲,频率是RX时钟的16倍。以波特率的16倍 速率采样RXD脚状态。当采样到RXD端从1到0的负跳变时就 启动检测器,接收的值是3次连续采样(第7、8、9个脉冲 时采样)取两次相同的值,以确认起始位(负跳变)的开 始,较好地消除干扰引起的影响。
字节地址为87H,不能位寻址。格式如图7-3所示。
D7 PCON SMOD D6 D5 D4 D3 D2 D1 D0 87H
图7-3
特殊功能寄存器PCON的格式
2SMOD 32
下面介绍PCON中各位功能。仅最高位SMOD与串口有
关。 SMOD:波特率选择位。 例如,方式1的波特率计算公式为
51单片机串行通信原理
51单片机串行通信原理串行通信是指在信息传输时,数据位逐个进行传输的方式。
51单片机串行通信是指在51单片机中,使用串行通信协议进行数据传输。
1.串行传输方式:串行通信中,数据位按照顺序逐个传输。
每个数据位传输结束后,发送端或接收端会发送一个时钟信号来同步数据的传输。
2.通信协议:串行通信需要定义一种通信协议,用于规定数据传输的格式和规则。
常用的串行通信协议包括UART(通用异步收发传输)协议、SPI(串行外设接口)协议和I2C(串行双线制)协议等。
3.UART串行通信协议:UART协议是一种异步串行通信协议,常用于单片机与外部设备(如计算机、模块等)之间的通信。
UART使用一对传输线(分别为传输线和接收线)进行数据的传输,通过起始位、数据位、校验位和停止位等进行数据的解析和传输。
4.SPI串行通信协议:SPI协议是一种同步串行通信协议,常用于单片机与外部设备之间的通信。
SPI使用四根传输线(分别为传输线、接收线、时钟线和片选线)进行数据的传输,通过时钟信号同步数据的传输。
SPI协议具有母-从的结构,单片机可以作为主设备控制从设备的操作。
5.I2C串行通信协议:I2C协议是一种双线制串行通信协议,常用于单片机与外部设备之间的通信。
I2C使用两条传输线(分别为传输线和接收线)进行数据的传输,通过时钟信号同步数据的传输。
I2C协议具有多主-多从的结构,多个设备可以共享同一条数据线。
6.数据传输流程:在串行通信过程中,发送端会将数据位逐个传输到接收端。
接收端接收到数据位后,对数据进行解析和处理。
在UART协议中,通信开始时发送端会发送起始位,然后发送数据位,接收端解析数据位后,可以进行校验,最后发送停止位。
在SPI和I2C协议中,发送端通过时钟信号同步数据的传输,并通过片选线或地址来选择接收端。
以上就是51单片机串行通信的原理,通过串行通信可以有效地进行数据传输和设备间的通信。
51单片机串行口
异步通信(Asynchronous Communication) 在异步通信中,数据通常是以字符或字节为单位
组成数据帧进行传送的。收、发端各有一套彼此独 立,互不同步的通信机构,由于收发数据的帧格式 相同,因此可以相互识别接收到的数据信息。
异步通信信息帧格式如图7.4所示。
第n-1字符
若这两个条件不同时满足,收到的数据将丢失。
方式1波特率=(2^SMOD/32)×定时器T1的溢出率 SMOD为PCON寄存器的最高位的值(0或1)。
定时器T1(方式2)的溢出时间: (28-初值)×振荡周期(1/Fosc)×12
方式1波特率=(2^SMOD/32)/ ((28-初值)×振荡周期(1/Fosc)×12)
D
图:电源控制寄存器PCON的格式
SMOD:串行口波特率倍增位。在工作方式1~ 工作方式3时,若SMOD=1,则串行口波特率增 加一倍。若SMOD=0,波特率不加倍。系统复位 时,SMOD=0。
六、串行口工作方式
8051串行通信共有4种工作方式,它们分别是 方式0、方式1、方式2和方式3,由串行控制寄存器 SCON中的SM0 SM1决定。
即BaudRate ×(28-初值)/Fosc×12 = 2^SMOD/32
(3) 奇偶校验位: 数据位发送完(接收完)之后,可发送一位用来检
验数据在传送过程中是否出错的奇偶校验位。奇 偶校验是收发双方预先约定好的差错检验方式之 一。有时也可不用奇偶校验。
(4) 停止位: 字符帧格式的最后部分是停止位,逻辑“1”电
平有效,它可占1/2位、1位或2位(在串行通信时 每位的传送时间是固定的)。停止位表示传送一帧 信息的结束,也为发送下一帧信息作好准备。
单片机串行数据通信
第n 字符帧 … D7 1 0 起 始 位 D0 D1 D2 D3 D4 8 位数据 D5 D6 D7 1 停 止 位 0
第n +1 字符帧 D0 D1 …
10位的帧格式
23
2.方式1
串行口工作于模式 1 时, 为波特率可变的 8 位异步通信接 口。数据位由 P3.0 (RXD)端接收, 由P3.1(TXD)端发送。 传送 一帧信息为 10 位: 一位起始位(0), 8 位数据位(低位在前) 和一位停止位(1)。波特率是可变的, 它取决于定时器 T1 的 溢出速率及SMOD的状态。 (1)方式1 发送过程。 用软件清除 TI后, CPU执行任何一 条以 SBUF为目标寄存器的指令, 就启动发送过程。数据由
11位的帧格式
27
方式3
方式3为波特率可变的11位UART通信方式,除了波 特率以外,方式3和方式2完全相同。
28
方式2 和方式3
串行口工作于方式2 和方式3 时, 被定义为 9 位异步通信 接口。 它们的每帧数据结构是 11 位的: 最低位是起始位 (0), 其后是 8 位数据位(低位在先), 第 10 位是用户定义
(2)方式2和方式3接收过程。 与方式1类似,方式2和方式3接收过程始于在 RXD端检测
到负跳变时,为此, CPU以波特率 16倍的采样速率对 RXD端不
断采样。一检测到负跳变, 16分频计数器就立刻复位, 同时把
1FFH写入输入移位寄存器。计数器的16个状态把一位时间等 分成16份, 在每一位的第7、8、9个状态时, 位检测器对 RXD 端的值采样。如果所接收到的起始位无效(为1),则复位接 收电路, 等待另一个负跳变的到来。 若起始位有效(为 0) 则起始位移入移位寄存器, 并开始接收这一帧的其余位。 当 起始位 0 移到最左面时, 通知接收控制器进行最后一次移位。 把 8 位数据装入接收缓冲器 SBUF, 第 9 位数据装入SCON中
MCS-51单片机的串行口及串行通信技术
MCS-51单⽚机的串⾏⼝及串⾏通信技术数据通信的基本概念串⾏通信有单⼯通信、半双⼯通信和全双⼯通信3种⽅式。
单⼯通信:数据只能单⽅向地从⼀端向另⼀端传送。
例如,⽬前的有线电视节⽬,只能单⽅向传送。
半双⼯通信:数据可以双向传送,但任⼀时刻只能向⼀个⽅向传送。
也就是说,半双⼯通信可以分时双向传送数据。
例如,⽬前的某些对讲机,任⼀时刻只能⼀⽅讲,另⼀⽅听。
全双⼯通信:数据可同时向两个⽅向传送。
全双⼯通信效率最⾼,适⽤于计算机之间的通信。
此外,通信双⽅要正确地进⾏数据传输,需要解决何时开始传输,何时结束传输,以及数据传输速率等问题,即解决数据同步问题。
实现数据同步,通常有两种⽅式,⼀种是异步通信,另⼀种是同步通信。
异步通信在异步通信中,数据⼀帧⼀帧地传送。
每⼀帧由⼀个字符代码组成,⼀个字符代码由起始位、数据位、奇偶校验位和停⽌位4部分组成。
每⼀帧的数据格式如图7-1所⽰。
⼀个串⾏帧的开始是⼀个起始位“0”,然后是5〜8位数据(规定低位数据在前,⾼位数据在后),接着是奇偶校验位(此位可省略),最后是停⽌位“1”。
起始位起始位"0”占⽤⼀位,⽤来通知接收设备,开始接收字符。
通信线在不传送字符时,⼀直保持为“1”。
接收端不断检测线路状态,当测到⼀个“0”电平时,就知道发来⼀个新字符,马上进⾏接收。
起始位还被⽤作同步接收端的时钟,以保证以后的接收能正确进⾏。
数据位数据位是要传送的数据,可以是5位、6位或更多。
当数据位是5位时,数据位为D0〜D4;当数据位是6位时,数据位为D0〜D5;当数据位是8位时,数据位为D0〜D7。
奇偶校验位奇偶校验位只占⼀位,其数据位为D8。
当传送数据不进⾏奇偶校验时,可以省略此位。
此位也可⽤于确定该帧字符所代表的信息类型,“1"表明传送的是地址帧,“0”表明传送的是数据帧。
停⽌位停⽌位⽤来表⽰字符的结束,停⽌位可以是1位、1.5位或2位。
停⽌位必须是⾼电平。
接收端接收到停⽌位后,就知道此字符传送完毕。
单片机第七章习题参考答案
第七章习题参考答案一、填空题1、在串行通信中,有数据传送方向为单工、半双工和全双工三种方式。
2、要串口为10位UART,工作方式应选为方式1 。
3、用串口扩并口时,串行接口工作方式应选为方式0 。
4、计算机的数据传送有两种方式,即并行数据传送和串行数据传送方式,其中具有成本低特点的是串行数据传送方式。
5、串行通信按同步方式可分为异步通信和同步通信。
6、异步串行数据通信的帧格式由起始位、数据位、奇偶校验位和停止位组成。
7、串行接口电路的主要功能是串行化和反串行化,把帧中格式信息滤除而保留数据位的操作是反串行化。
8、专用寄存器“串行数据缓冲寄存器”,实际上是发送缓冲寄存器和接收缓冲寄存器的总称。
9、MCS-51的串行口在工作方式0下,是把串行口作为同步移位寄存器来使用。
这样,在串入并出移位寄存器的配合下,就可以把串行口作为并行输出口使用,在并入串出移位寄存器的配合下,就可以把串行口作为并行输入口使用。
10、在串行通信中,收发双方对波特率的设定应该是约定的。
11、使用定时器/计数器设置串行通信的波特率时,应把定时器/计数器1设定作方式 2 ,即自动重新加载方式。
12、某8031串行口,传送数据的帧格式为1个起始位(0),7个数据位,1个偶校验位和1个停止位(1)组成。
当该串行口每分钟传送1800个字符时,则波特率应为300b/s 。
解答:串口每秒钟传送的字符为:1800/60=30个字符/秒所以波特率为:30个字符/秒×10位/个字符=300b/s13、8051单片机的串行接口由发送缓冲积存器SBUF、接收缓冲寄存器SBUF 、串行接口控制寄存器SCON、定时器T1构成的波特率发生器等部件组成。
14、当向SBUF发“写”命令时,即执行MOV SBUF,A 指令,即向发送缓冲寄存器SBUF装载并开始由TXD 引脚向外发送一帧数据,发送完后便使发送中断标志位TI 置“1”。
15、在满足串行接口接收中断标志位RI=0 的条件下,置允许接收位REN=1 ,就会接收一帧数据进入移位寄存器,并装载到接收SBUF中,同时使RI=1,当发读SBUF命令时,即指令MOV A,SBUF 指令,便由接收缓冲寄存器SBUF取出信息同过8051内部总线送CPU。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
串行通信模块的控制寄存器(SCON)用于对串行通信模块进行相应控制,支持位寻址,其内部功 能如下表所示,在51单片机复位后该寄存器被清零。
前一页
7.3.2串行通信模块数据寄存器(SBUF)
串行通信模块的数据寄存器SBUF用于存放在串行通信中发送和接收的相关数据,其由发送缓 冲寄存器和接收缓冲寄存器两部分组成,这两个寄存器占用同一个51寄存器地址(0x99),允 许同时访问,其中发送缓冲寄存器只能够写入不能够读出,接收缓冲寄存器只能够读出不能够 写入,所以这两个寄存器在同时访问过程中并不会发生冲突。 SBUF寄存器是单字节(Byte)寄存器,当将一个数据写入后,51单片机立刻根据选择的工作 方式和波特率将写入的字节数据进行相应的处理后从TXD(P3.1)引脚串行发送出去,发送完 成后置位相应寄存器里的标志位,只有当相应的标志位被清除之后才能够进行下一次数据的发 送。 当RXD(P3.0)引脚根据工作方式和波特率接收到一个完整的数据字节后51单片机将把该数据 字节放入接收缓冲寄存器中,并且置位串行通信模块控制寄存器SCON中的相应位。由于接收 缓冲数据寄存器在物理结构上是双字节的(用户的实际操作还是单字节,其中一个字节的空间 仅仅用于存放临时数据,不能被用户访问),这样就可以在51单片机读取接收缓冲数据寄存器 中的数据时候同时进行下一个字节的数据接收,不会发生前后两个字节的数据冲突。 SUBF寄存器只能按字节进行读写操作,不能按位访问。
《单片机应用技术实例教程(C51版)》
--高等院校嵌入式人才培养规划教材
第7章 51单片机的串行通信模块
本章主要内容
7.1 51单片机串行通信的一些术语 7.2 51单片机串行通信模块的组成 7.3 51单片机串行通信模块的寄存器 7.4 51单片机串行通信模块的工作方式和使用 7.5 串行通信模块的特殊应用 7.6 应用案例7.1-51单片机和PC通信系统的实现 7.7 应用案例7.2-多点数据采集系统的实现 7.8 C51语言的输入和输出函数 7.9 使用普通I/O引脚模拟串行通信模块 7.10 串行通信模块的波特率自适应 7.11 串行通信模块的“高速”通信 7.12 串行通信模块的波特率误差 7.13 本章总结
前一页
首页
7.6应用案例7.1-51单片机和PC通信 系统的实现
7.6.1 RS-232接口标准和MAX232芯片基础 7.6.2 51单片机和PC通信系统的电路 7.6.3 51单片机和PC通信的应用代码 7.6.4 PC的串口调试工具
前一页
首页
7.6.1 RS-232接口标准和MAX232芯片基础
实例中涉及的典型器件说明如表7.2(详见教材)所示。 【例7.1】双机高速通信的C51 (实例代码详见教材)
前一页
7.4.2工作方式1
当SM0、SM1设定为“01”时,串行通信模块工作方式1,该工作方式是波特率可变的8位异 步通信方式,使用定时计数器T1作为波特率发生器,其波特率由以下公式决定: 其中,SMOD为PCON控制器的最高位(有1和0两种取值可能),Fosc为单片机的工作频率, N为T1的初始化值,当定时计数器T1使用工作方式2时,可以得到初始化值为。 表7.3(详见教材)给出了51单片机在不同的工作频率下常用波特率所对应的T1初始值。 当一个字节的数据写入SBUF寄存器后,51单片机在下一个机器开始时把数据从TXD(P3.1) 引脚发出。每个数据帧包括一个起始位、低位在前高位在后的8位数据位和一个停止位。当一 个数据帧发送完成之后TI标志位被置“1”,如果此时串行中断被使能会触发串行中断事件, 只有在用户使用软件清除了TI标志位之后51单片机才能够进行下一次的数据发送。 当满足下列条件时候,51单片机允许串行接收。 ●没有串行中断事件或者上一次中断数据已被取走,此时RI标志位为“0”。 ●允许接收,REN标志位为“1”。 ●SM2位置为“0”或者是接收到停止位。 在接收状态中,外部数据被送入51单片机的外部引脚RXD(P3.0)上,单片机16倍于波特率 的频率来采集该引脚上的数据,当检测到引脚上的负跳变时,启动串行接收,当数据接收完成 之后,8位数据被存放到数据寄存器SBUF中,停止位被放入RB8位,同时置位RI标志位,如果 此时串行中断模块的中断被使能则会触发串行中断事件。
51单片机通过串行口接收PC发过来的一个字节数据,将该字节数据返回给PC,其应用代码 如例7.3所示,51单片机工作频率为11.0592MHz,通信波特率2 400bit/s,使用工作方式1, SMOD位=0,SM2=1;使用定时计数器1作为波特率发生器,自动重装工作方式。在主循环 中使用while循环等待接收到数据RI标志位被置位,然后发送该字节数据。 【例7.3】51单片机和PC通信 (实例代码详见教材)
前一页
7.4 51单片机串行通信模块的工作方 式和使用
7.4.1工作方式0 7.4.2工作方式1 7.4.3工作方式2、3 7.4.4串行通信模块的中断
前一页
首页
7.4.1工作方式0
51单片机的串行模块一共有4种工作方式,其中工作方式0为同步通信方式,其余3种为异步通信 方式,本小节将介绍如何使用串行通信模块的这些工作方式及其中断。 串行通信模块的工作方式0适用于外扩应用器件或者两片51单片机进行高速数据通信的场合,例 7.1是一个两块51单片机使用串行口进行高速数据交换的应用,单片机A使用串行模块在工作方式 0下将12字节的数据写入单片机B中,然后单片机B再将12字节的数据写入单片机A,其应用电路 如图7.2所示,单片机A(U1)和单片机B(U2)的串行模块数据引脚TXD(P3.1)和RXD(P3.0) 交叉连接,并且P2.0引脚都连接到另外一块单片机的外部中断0引脚INT0(P3.2)上,实例的电 路图如下图所示。
前一页
7.4.4串行通信模块的中断
当51单片机的的中断控制寄存器IE中的EA位和ES位都被置“1”的时候,串行模块的中断被使 能,在这种状态下,如果RI或者TI被置位,则会触发串行模块中断事件。由第2章可知,串行 模块的中断优先级别默认是最低的,但是可以通过修改中断优先级寄存器IP中的PS位来提高串 行模块的中断优先级。 串行模块的中断处理函数的结构如下: void 函数名(void) interrupt 4 using 寄存器编号 {
前一页
7.1 51单片机串行通信的一些术语
在51单片机的应用系统中关于串行通信的一些术语说明如下。 ●同步通信方式;一种基于位(bit)数据的通信方式,要求发收双方具有同频同相的同步时钟 信号,只需在传送数据的最前面附加特定的同步字符使发收双方建立同步即可在同步时钟的控 制下逐位发送/接收,在通信过程中数据的收发必须是连续的。 ●异步通信方式:也是一种基于位(bit)的数据通信方式,不需要收发双方具有相同的时钟信 号,但是需要有相同的数据帧结构和波特率,并且在通信过程中数据的收发不需要连续。 ●全双工通信:参与通信的双方可以同时进行数据发送和接收操作的通信方式。 ●半双工通信:参与通信的双方可以切换进行数据发送和接收操作但是不能同时进行的通信方 式。 ●单工通信:参与通信的双方只能进行单向数据发送或者接收操作的通信方式。。 ●波特率:每秒钟传送的二进制位数,通常用bit/s 作为单位,其中b=bit。 ●通信协议:通信双方为了完成通信所必须遵循的规则和约定。
由于51单片机的串行通信模块的外部引脚的输出和输入信号均为TTL电平,而PC的串口输出和输 入电平为RS-232电平(其通信符合RS-232标准),所以需要使用RS-232电平转换芯片进行电平 转换,在实际应用中最常用RS-232芯片是MAX232。 RS-232接口标准是目前应用最为广泛的标准串行总线接口标准之一,其有多个版本,应用最为 广泛的是RS-232-C,其中的“C”代表修订版本号,目前该版本号已经到了F,这些修订版本都 包括了RS232接口的的电气和机械等几个方面的定义。 一个标准的RS-232接口包括一个25针的D型插座,分为公头和母头两种,包括主信道和辅助信道 两个通信信道且主信道的通信速率高于辅助信道。在实际使用中,常常只使用一个主信道,此时 RS-232接口只需要9根连接线,使用一个简化为9针的D型插座,同样也分为公头和母头,表7.4 (详见教材)给出了RS-232接口的引脚定义。 MAX232使用5V供电,其内部有两套发送接收驱动器,可以同时进行两路TTL到RS-232接口电平 的转化,还有里两套电源变换电路,其中一个升压泵将5V电源提升到10V,而另外一个反相器则 提供-10V的相关信号,MAX232的逻辑信号、内部组成以及简单外围电路如下左图所示。51单 片机使用MAX232构成的和PC通信的RS-232典型应用电路如下右图所示。
采用串行口工作方式2、3的多机通信操作步骤如下。 (1)把所有的从机SM2位均置“1”。 (2)主机发送地址包。 (3)所有的从机接收到数据包,判断是否和自己通信,然后对自己的SM2位进行相应的操作 (被选中的从机SM2被清“0”)。 (4)主机和从机进行通信。 (5)通信完成,从机重新置自己的SM2为1,等待下一次地址包。
前一页
7.3.3电源管理寄存器(PCON)
PCON是51单片机电源管理的相应寄存器,其中和串口管理相关的只有其中的第7位 SMOD,该位参与控制了单片机串行口在工作方式1、2、3下的波特率的设置,其具体的 设置方法将在7.4的相应小节中进行详细介绍,PCON寄存器不能够按位寻址,在51单片 机复位后被清零。
中断函数代码; }
前一页
7.5串行通信模块的特殊应用
除了利用定时计数器中断来扩展外部中断之外,还可以利用串行口中断来扩展外部中断,把需 要检测的外部信号加在RXD外部引脚上,设置串行口为工作方式1,设置REN = 1来允许串行 接收,并且设置 SM2 = 0。在串行口检测到由高到低的电平跳变之后,会认为是接收到一个起 始位,进入接收模式,当完成8位数据的接收后,单片机将申请一个串行中断,可以利用这个 串行中断来扩充外部中断。 利用串行口来扩展外部中断同样有一定的缺点如下。 ●首先,这个信号也必须是负跳变触发。 ●其次,这个信号的负电平保持时间必须使得单片机的串行口确认这个起始位。 ●最后,串行口在检测到这个跳变之后会有9个位传输时间的延迟,其具体时间和波特率有关 系。 例7.2是利用串行通信模块扩展外部中断的C51语言实现。 【例7.2】串行通信模块扩展外部中断 (实例代码详见教材)