第7章 MCS-51单片机的串行通信及其接口
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.3 MCS-51串行接口的结构
7.3.2 串行口的控制寄存器
2. 串行控制寄存器SCON
位地址
位名称
9FH
SM0
9EH
SM1
9DH
SM2
9CH
REN
9BH
TB8
9AH
RB8
99H
TI
98H
RI
REN:允许串行接收控制位,该位由软件置位或复位。 REN=0,禁止从串行口RXD接收数据。
REN=1,允许从串行口RXD接收数据。
7.3.2 串行口的控制寄存器
2. 串行控制寄存器SCON
位地址
位名称
9FH
SM0
9EH
SM1
9DH
SM2
9CH
REN
9BH
TB8
9AH
RB8
99H
TI
98H
RI
SM2:多机通信控制位,主要用于工作方式2和方式3,只用于接收方。 SM2=0,不论第9位数据为0或1,都将前8位数据装入SBUF中,并产生中断请 求。 RB8=0,不置位接收中断标志RI(即RI=0),丢失已收到数据。 SM2=1 RB8=1,置位接收中断标志RI(即RI=1)
7.4 串行接口的工作方式
7.4.1 方式0
例7-1:利用串口方式0的功能实现8个发光二极管从上到下 依次点亮,并循环反复。
中断方式: ORG 0000H LJMP START ORG 0023H LJMP SBR ORG 2000H START:MOV SCON,#00H SETB EA SETB ES MOV A,#80H CLR P1.0 MOV SBUF,A SJMP $ ORG 2100H SBR: SETB P1.0 ACALL DELAY CLR TI RR A CLR P1.0 MOV SBUF,A RETI
并行
串行
TXD RXD
7.2 串行通信的一般概念
7.2.2 串行通信的两种基本方式 1. 异步通信
数据(以字符为单位)是一帧一帧传送的,每一帧有相应的数 据格式。在帧格式中,一个字符由4部分组成:起始位、数据位、 奇偶校验位和停止位。异步通信依靠起始位、停止位控制通信的开 始和结束,即保持通信同步。
第7章 MCS-51单片机的串行通信及其接口
7.1 任务5:用串行接口控制信号灯
7.1.1要求
通过甲机向乙机发送数据,乙机P1口所连接的8个
LED实现亮点流动。
7.1 任务5:用串行接口控制信号灯
7.1.2任务分析
在上述图中,甲机、乙机之间通过了TXD、RXD引脚
相连。 由于一条线路在一个时刻只能进行一位的数据传输, 所以这个系统就无法应用8位同时传送数据的方式。 因此,我们则可通过单片机的串行通信口进行相应的 数据传输。 甲机作为发送方,乙机作为接收方。
7.3 MCS-51串行接口的结构
7.3.2 串行口的控制寄存器
3. 特殊功能寄存器PCON
PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器。 位序号 位名称 D7 SMOD D6 / D5 / D4 / D3 GF1 D2 GF0 D1 PD D0 ID
在HMOS单片机中,该寄存器除最高位外,其它位都是虚设的。 最高位SMOD为串行口波特率倍增位。 当SMOD=1时,方式1、2、3的波特率加倍;系统复位时,SMOD=0。
1. 数据缓冲器SBUF
在物理上两个独立的接收、发送缓冲器,可同时发送 、接收数据。两个缓冲器只用一个字节地址99H,可通 过指令对SBUF的读写来区别是对接收缓冲器的操作 还是对发送缓冲器的操作。
MEMO: MOV A,SUBF;指令对SBUF读,接收数据 MOV SUBF,A;指令对SBUF写,发送数据
举例:设有一帧信息,1个起始位、8个数据位、1个停止 位,传输速率为240字符/s。求波特率。 解:(1+8+1)×240 = 2400 b/s = 2400波特。
7.2 串行通信的一般概念
7.2.5 串行通信的接口电路
在串行通信中,数据是逐位按顺序传送的,而计算机 内部的数据是并行的。因此当计算机和外设进行通信时, 必须进行数据转换,实现这种功能目前主要采用通用异步 接收/发送器UART。 UART的主要功能是:一是从计算机接收8位并行数据 并将其转换为串行数据送到串口输出;二是从串口读入外 部串行数据并将其转换为8位并行数据送到计算机。
7.3 MCS-51串行接口的结构
7.3.1 串行口的内部结构
发送 SBUF 波特率发生器 门 串行控制寄存器 TXD
发送控制器
串行中断 +
TI
累加器A
串行通信引脚
接收控制器
输入移位寄存器
RI
接收 SBUF
RXD
串行通信接口的结构
7.3 MCS-51串行接口的结构
7.3.2 串行口的控制寄存器
7.1 任务5:用串行接口控制信号灯
7.1.3 编写、汇编、运行程序
这个系统中共使用了两台单片机,它们需要有各自的
程序,一个作为发送,另一个作为接收,因此,需要 各自编程。 参考程序在任务5文件中。甲机 乙机
7.1 任务5:用串行接口控制信号灯
7.1.4 问题的提出
① MCS-51单片机在进行串行通信时,使 用到了定时器1,串行通信与之有关系吗? ② SCON、SBUF这两个寄存器,它们的 作用是什么?如何使用?
数据输出 移位脉冲 Fosc/12
7.4 串行接口的工作方式
7.4.1 方式0
在方式0下,串行口作为8位同步移位寄存器使用,这种方式不能用
于串行异步通信,但可以通过外接移位寄存器来实现I/O口扩展。 ②串行口作为并行输入口使用时,要有“并入串出”的移位寄存器(例 如CD4014或74LS165、74HC165等)配合。
③ TI、RI两个中断标志位的用途是什么? 在其后均有清零的指令,这又是为何呢?
7.2 串行通信的一般概念
7.2.1 两种基本通信方式
并行通信与串行通信 并行通信是数据的各位同时发送或同时接收。 并行通信优点:传送速度快。缺点:不便长距离传送,小于30M。
P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 串行通信是数据的各位依次逐位发送或接收。 P0.6 外部设备 P0.7 串行通信优点:便于长距离传送,几米到几千公里。缺点:传送速度较慢。
7.2 串行通信的一般概念
7.2.3 串行的通信类型
三种方式:单工、半双工和全双工
单工 A发 B接
单向
半双工 A发 A接 全双工 A发 A接 B接 B发 B发 B接
双向、分时
双向、同时
三种通信的示意图
7.2 串行通信的一般概念
7.2.4 波特率
波特率,即数据传送速率,表示每秒传送二进制代码的 位数,它的单位是b/s (波特 bps)。波特率的倒数即为每位 传输所需的时间。 它与字符的传送速率(字符/秒)之间存在如下关系: 波特率=位/字符×字符/秒=位/秒
并行输入
数据输入
RXD 80C51 TXD P1.0 D7 …….. D0
P/ S
7.4 串行接口的工作方式
7.4.1 方式0
例1:利用串口方式0的功能实现8个发光二极管从上到下 依次点亮,并循环反复。
7.4 串行接口的工作方式
7.4.1 方式0
例1:利用串口方式0的功能实现8个发光二极管从上到下 依次点亮,并循环反复。 查询方式: MOV SCON,#00H ACALL DELAY MOV IE,#00H CLR TI RR A MOV A,#80H AJMP DELR DELR:CLR P1.0 MOV SBUF,A JNB TI,$ SETB P1.0
SM0、SM1:串行口工作方式选择位.
SM0 0 SM1 0 工作方式 0 功能说明 8位移位寄存器(用于I/O扩展、fosc/12)
0
1
1
0
1
2ቤተ መጻሕፍቲ ባይዱ
8位异步串行通信(波特率可变,由定时器控制 )
9位异步串行通信(fosc/32或fosc/64)
1
1
3
9位异步串行通信(波特率可变,由定时器控制
7.3 MCS-51串行接口的结构
按低位在前、高位在后顺序排列应为1010110。 前面加1位起始位0,后面配上偶校验位1位0,最后面加1位停止位1, 所以,传送的字符格式为0101011001
7.2 串行通信的一般概念
7.2.2 串行通信的两种基本方式 2. 同步通信
指在发送端与接收端的时钟频率一致的条件下,发送端先发送 1~2个同步字符,随之发送若干个数据字符的方式,适用于大批量 数据传送。优点是传送速率高,缺点是硬件复杂,造价高。
7.3 MCS-51串行接口的结构
7.3.2 串行口的控制寄存器
2. 串行控制寄存器SCON
位地址
位名称
9FH
SM0
9EH
SM1
9DH
SM2
9CH
REN
9BH
TB8
9AH
RB8
99H
TI
98H
RI
TB8:发送数据位8 ,在方式2和方式3时,TB8为所要发送的第9位数据。 可用作数据的奇偶校验位,该位由软件置位或复位。
7.4 串行接口的工作方式
7.4.1 方式0
同步移位寄存器方式,波特率固定为fosc/12
①发送过程:CPU执行MOV SBUF,A,即启动发送。数据在TXD同步 脉冲的作用下,由低位至高位通过RXD引脚输出。发送数据过程演示 D7 D6 D5 D4 D3 D2 D1 D0
②接收过程:数据在TXD同步脉冲的作用下,由低位至高位通过RXD 引脚接收,接收完后硬件自动置RI=1,通知CPU提取数据。
7.3 MCS-51串行接口的结构
7.3.2 串行口的控制寄存器
2. 串行控制寄存器SCON
SCON寄存器字地址为98H,用来控制串行口的工作方式和状态,它可以位 寻址。在复位时所有位被清0。 位地址 位名称 9FH SM0 9EH SM1 9DH SM2 9CH REN 9BH TB8 9AH RB8 99H TI 98H RI
在多机通信中, TB8=0为数据帧,TB8=1为地址帧(主机发送帧)。
7.3 MCS-51串行接口的结构
7.3.2 串行口的控制寄存器
2. 串行控制寄存器SCON
位地址
位名称
9FH
SM0
9EH
SM1
9DH
SM2
9CH
REN
9BH
TB8
9AH
RB8
99H
TI
98H
RI
RB8:接收数据位8。 在方式2和方式3,RB8存放接收到的第9位数据,用以识别接收到的数 据特征,即地址帧还是数据帧。 RB8=1表示地址帧,RB8=0表示数据帧,前提SM2=1。
一个字符帧数据 起 始 位 1 0 停 止 位
8位数据
D0 D1 D2 D3 D4 D5 D6 D7
校 验 位 0/1
空 闲 位 1
1
异步通信字符帧的格式
7.2 串行通信的一般概念
7.2.2 串行通信的两种基本方式 1. 异步通信 传送的数据是不连续的,以字符为单位传送,字符 间隔不固定,如果停止位以后不是紧接着传送下一个 字符,则要使线路电 平保持为高电平。 例如:‘5’的ASCII码为35H,其对应7位数据位为0110101。 每一帧数据传送均为低位在前,高位在后。
7.3 MCS-51串行接口的结构
7.3.2 串行口的控制寄存器
2. 串行控制寄存器SCON
位地址
位名称 需要通过指令清除 TI或者RI
9FH
SM0
9EH
SM1
9DH
SM2
9CH
REN
9BH
TB8
9AH
RB8
99H
TI
98H
RI
TI:发送中断标志位,发送完一帧,硬件自动置1,向CPU提出申请中断。 RI:接收中断标志位,接收完一帧,硬件自动置1,向CPU提出申请中断。 MEMO: TI和RI共用一个中断源与中断服务入口地址,因此单片机在 既做为发送机又做为接收机时,应识别是哪种中断,并在对应的中断 清除对应的标志位。
MEMO:CPU在响应串行中断要用软件清除TI或者RI,若用查询的方式 同样也需要清除TI或者RI.
7.4 串行接口的工作方式
7.4.1 方式0
在方式0下,串行口作为8位同步移位寄存器使用,这种方式不能用
于串行异步通信,但可以通过外接移位寄存器来实现I/O口扩展。 ①串行口作为并行输出口使用时,要有“串入并出”的移位寄存器(例 如CD4094或74LS164、74HC164等)配合。(设置STB状态控制 CD4094的输出。)
7.4 串行接口的工作方式
7.4.2 UART方式
1. 方式1
串行口被设置为波特率可变的8位异步通信接口。 起始位 8位数据 停止位 波特率=(2SMOD/32)×定时器T1的溢出率
0
D0
D1
D2
D3
D4
D5
D6
D7
1
①发送过程:CPU执行MOV SBUF,A,即启动发送。通过TXD引脚输 出一帧。8位数据发送完,在发送停止位前,硬件置TI为1。 ②接收过程:REN=1 ,串行口处于方式1的接收状态。 当采样到RXD引脚出现负跳变, 则收到起始位,随后在移位脉冲的作 用下,把接收到的数据位送到接收寄存器中。 若RI=0且停止位为1或者RI=0且SM2=0,接收到一帧有效,送入 SBUF,停止位进入RB8,硬件置RI为1。否则,丢弃接收到数据。 重新开始检测RXD引脚信号。