MCS-51单片机串行接口

合集下载

MCS-51单片机

MCS-51单片机

口的位结构: (2)P1口的位结构 ) 口的位结构
• P1口作通用I/O口使用,因电路结构上输出驱动部分 P1口作通用I/O口使用, 口作通用I/O口使用 上拉电阻。 一样, 接有上拉电阻 当作输入时, PO一样 接有上拉电阻。当作输入时,同PO一样,要先对该口 写“1”。 。
读锁存器 1 内部总线 写锁存器 Q P1.x 锁存器 CL Q D 2 读引脚 Vcc
内部上拉电阻 P1.x 引脚 T
(b)P1口位结构
(3)P2口的位结构 ) 口的位结构
P2口的位结构比P1多了一个转换控制部分, P2口作通 P2口的位结构比P1多了一个转换控制部分,当P2口作通 口的位结构比P1多了一个转换控制部分 I/O口时 多路开关MUX倒向左; 口时, MUX倒向左 用I/O口时,多路开关MUX倒向左;
作输入口, 用P1.4~P1.7作输入口,采用位操作。 ~ 作输入口 采用位操作。 • 小结: 小结: ORG 0000H L1:MOV C, P1.4端口,即 , • : 、单片机的I/O端口, 1、单片机的 端口 MOV P1.0,C , 可用作输入口, 可用作输入口,也可用 MOV C, , 作输出口; 作输出口; P1.5 MOV P1.1,C , • 2、所有口线均可单独使 、 MOV C, P1.6 , MOV P1.2, , 用与控制; 用与控制; C MOV C, P1.7 , • 3、每个端口均可当做一 、 MOV P1.3,C , 位并行口单独使用。 个8位并行口单独使用。 位并行口单独使用 SJMP L1
MCS-51单片机的并行口 一、MCS-51单片机的并行口
• 1、概述: 概述:
• MCS-51有四个并行双向I/O口: MCS-51有四个并行双向I/O口 有四个并行双向I/O 口和P P0口、P1口、P2口和P3口 • 当作I/O口时,可按字节或位操作 当作I/O口时,可按字节 I/O口时 字节或 • 按位操作时,表示为:P0.0~P0.7 按位操作时 表示为: ~ P1.0~P1.7; P2.0~P2.7 ; P3.0~P3.7 ~ ~ ~ • 按字节操作:表示为P0、P1、P2、P3 按字节操作:表示为 、 、 、

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内容。由于串口的接收、发送各自独立,所以可同时发 送及接收,即可以实现全双工通讯。 送及接收,即可以实现全双工通讯。

第5章 MCS-51中断、定时计数器及串行接口

第5章 MCS-51中断、定时计数器及串行接口

22:26
7
保护现场
课本P103
保护现场是指由于CPU执行中断处理程序时, 可能使用主程序中用过的累加器、寄存器或标志位。
为了使这些寄存器的值在中断服务程序中不被 冲掉,进入中断服务程序前,要将它们保护起来。
中断服务程序执行完,必须恢复原寄存器的内 容及原程序中断处的地址,即恢复现场和恢复断点。
22:26
课本P105
一、中断请求控制
(1) TCON中的中断请求标志位 Timer Controller
TCON为定时/计数器控制寄存器,其字节 地址为88H,可位寻址。这个寄存器除了控制定 时/计数器T0和T1的溢出中断外,还控制外部中 断的触发方式和锁存外部中断请求标志位。
图5-3 TCON中的各位定义
22:26
24
2. 中断响应过程
课本P110
CPU响应中断后,由硬件自动执行如下的功能操作:
(1)根据请求源的优先级高低,对相应的优先级状态 触发器置1,自动生成长调用指令LCALL addr16。
(2)保护断点,把程序计数器PC的内容压入堆栈。 (3)清除相应的中断请求标志位。 (4)把被响应的中断源所对应的中断服务程序入口地

先进后出

POP DPL
POP DPH
POP ACC
RETI
最后1条指令 必须是RETI
27
中断响应过程
处理文档 电话铃响 暂停文档 文档中作暂停记号 电话交谈 找出暂停记号位置 继续处理文档
执行主程序(日常事务程序) 中断申请信号有效(中断请求)
暂停执行主程序响应中断 当前PC及寄存器入栈(保护现场)
22:26
5
中断系统的基本问题

51单片机串行通信接口

51单片机串行通信接口

工 作 方 式 选 择 位
多允 机许 通接 信收 控控 制制 位位
发 接发接 送 收送收 数 数中中 据 据断断 第 第标标 九 九志志 位位
北京交通大学
18
各位功能说明如下: SM0 SM1:串口工作方式选择位
00 方式0: 同步移位寄存器 波特率=主振频率/12
01 方式1: 8位异步,波特率可变
⑵在双机通信中,该位作为奇偶校验位; ⑶在多机通信中用来表示D7-D0是地址帧或数据帧
即:
D8=0:表示数据帧; D8=1:表示地址帧
北京交通大学
20位是接收到的第9位数据。 方式1,SM2=0,停止位。方式0,不用。
⑵在多机通信中是地址帧(RB8=1)和数据帧 (RB8=0)的标识位。
北京交通大学
34
方式2、3的区别是:波特率设置不同 方式2的波特率是固定的。即:
波特率=fosc/32或fosc/64 方式3的波特率是可变的。即:
波特率 2smod
fosc
32 12 (256 X )
X
256
fosc (2s mod ) 384 波特率
北京交通大学
35
表1 波特率与时间常数
第6章 串行通信接口
本章主要内容 • 串行数据通信基本原理 • MCS-51单片机串行口 • 串行口应用举例
北京交通大学
1
一、串行数据通信基本原理
计算机的两种方式数据传送:并行和串行
并行传送的特点:
各数据位同时传送,传送速度快、效率高。
但需要的数据线多,因此传送成本高。并行数据
传送的距离通常小于30米。
3.直到停止位到来之后把它送入到RB8中,并 置位RI,通知CPU从SBUF取走接收到的一个字符。

MCS-51串行口的工作方式

MCS-51串行口的工作方式

方ห้องสมุดไป่ตู้0——同步移位寄存器
时序
1.2 方式1——8位UART
数据在TxD发送,接收使用RxD 帧格式固定,每一帧数据共有10位,包括1个起始位、8个数据
位(最低有效位在前)、1个停止位 接收到的停止位保存到SCON的RB8中 波特率可变取决于T1或T2的溢出率、和PCON中的SMOD位 波特率因子为16
单片机原理与应用
MCS-51串行口的工作方式
方式0——同步移位寄存器 方式1——8位UART 方式2和3——9位UART
1.1 方式0——同步移位寄存器
串行数据通过RxD引脚输入或输出 TxD输出移位时钟 发送和接收不可同时进行 发送或接收的均为8位数据,最低有效位在前 波特率固定为单片机振荡频率的1/12
方式1——8位UART
时序
1.3 方式2和3——9位UART
数据在TxD发送,接收使用RxD 帧格式固定,每一帧数据共有11位,包括1个起始位、8个数据
位(最低有效位在前)、1个可编程的第9位数据、1个停止位。第 9位数据在发送时通过TB8赋值为0或1 接收时将第9位数据存入RB8中 波特率
方式2:只能为振荡器频率的1/32或1/64 方式3:与方式1时相同
方式2和3——9位UART
时序
单片机原理与应用

第7章MCS51的串行口

第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章 MCS-51串行接口

第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)) 同步通信传输速度较快,但要求有准确的时钟来实 现收发双方的严格同步,对硬件要求较高,适用于成批 数据传送。

MCS51的串行口PPT

MCS51的串行口PPT
其他工作方式,串行接受到停止位时,该位置“1”。 RI=1,表达一帧数据接受完毕,并申请中断, CPU从 接受SBUF取走数据。该位状态也可软件查询。RI必 须由软件清“0”。
6.1.2 特殊功能寄存器PCON
字节地址为87H,没有位寻址功能。
SMOD:波特率选择位。 例如:方式1旳波特率旳计算公式为: 方式1波特率=(2SMOD/32)×定时器T1旳溢出率
图6-14 流水灯显示电路图
ORG 0000H LJMP MAIN ORG 2023H MAIN: MOV SCON,#00H ;置串行口工作方式0 MOV A,#80H :最高位灯先亮 CLR P1.1 ;关闭并行输出(避象传播过程中,各 LED旳“暗红”现象) OUT0: MOV SBUF,A ;开始串行输出 OUT1: JNB TI,OUT1 ;输出完否? CLR TI ;完了,清TI标志,以备下次发送 SETB P1.1 ;打开并行口输出 ACALL DELAY ;延时一段时间 RR A ;循环右移 CLR P1.1;关闭并行输出 SJMP OUT0;循环 DELAY: …………;延时子程序,不再反复
假如SM2=0,则不论第9位数据是“1”还是“0”,都 将 前8位数据送入SBUF中,并置“1” RI,产生 中断祈求。
在方式1时,假如SM2=1,则只有收到停止位时才会激 活RI。
在方式0时,SM2必须为0。
(3)REN——允许串行接受位
由软件置“1”或清“0”。
REN=1 允许串行口接受数据。 REN=0 禁止串行口接受数据。 (4)TB8——发送旳第9位数据 方式2和3时,TB8是要发送旳第9位数据,可作为奇偶 校验位使用,也可作为地址帧或数据帧旳标志。 =1为地址帧, =0为数据帧 (5)RB8——接受到旳第9位数据 方式2和3时,RB8存储接受到旳第9位数据。在方式1 ,假如SM2=0,RB8是接受到旳停止位。在方式0, 不使用RB8。 (6)TI——发送中断标志位

MCS-51单片机串行通信

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。

MCS-51单片机的串行口及控制寄存器

MCS-51单片机的串行口及控制寄存器

位序
B7
B6
B5
B4
B3
B2
B1
B0
位符
smod
/
/
/
GF1
Hale Waihona Puke GF0PDIDL

PD和IDL:是CHMOS单片机用于进入低功耗方式的控制位,在第 2章中已介绍过这两位的应用。
GF1和GF0:用户使用的一般标志位。
smod:串行口波特率倍增位,当smod=1时,串行口波特率增加 1倍。系统复位时,smod=0。
位地 址
位符 号
0AFH 0AEH 0ADH 0ACH 0ABH 0AAH 0A9H 0A8 H
EA
/
/
ES
ET1
EX1
ET1 EX0
其中与串行口有关的是ES位。当ES=0时,禁止串行口的中断; 当ES=1时,表示允许串行口中断。EX0、ET0、EX1、ET1分别表示 对外中断0、定时器/计数器0、外中断1、定时器/计数器1个中断 源的中断允许控制,EA是中断总允许控制位,详见本书第5章介绍。
PCON寄存器的B6、B5、B4位未定义。
3. 中断允许寄存器IE
中断允许寄存器IE,是MCS-51单片机中实现是否开放某 中断源中断的控制寄存器,在第5章中已做过介绍。IE寄存 器 是 可 寻 址 的 寄 存 器 , 其 字 节 地 址 为 0 A8H, 位 地 址 由 0A8H~0AFH,IE寄存器各位定义如下:
0BBH PT1
0BAH PX1
0B9H PT0
0B8H
PX0
其中与串行口有关的是PS位,当PS=0时,表示串行口中断处于 低优先级别;当PS=1时,表示串行口中断处于高优先级别。PX0、 PT0、PX1、PT1分别控制外中断0、定时器/计数器0、外中断1、定 时器/计数器1中断源的中断优先级别,详见本书第5章介绍。

MCS-51单片机的硬件结构

MCS-51单片机的硬件结构

MCS-51单⽚机的硬件结构MCS-51单⽚机的基本组成MCS-51是Intel公司⽣产的⼀个单⽚机系列的总称.在功能上,该系列单⽚机有基本型和增强型两⼤类,通常以芯⽚型号的末位数字来区别。

末位数字位“1”的型号是基本型,为“2”的信号是增强型。

MCS-51单⽚机的内部结构如图所⽰,基本结构包括:⼀个8位的CPU及⽚内振荡器;4KB掩膜ROM(8051),4KB EPROM(8751),⽆ROM(8031);128B RAM,21个特殊功能寄存器SFK;4个(P0~P3)8位并⾏I/O接⼝,⼀个可编程全双⼯通⽤异步串⾏接⼝(UART);具有5个中断源,2个优先级;可寻址64KB 的⽚外ROM和64KB的⽚外RAM;两个16位的定时/计数器;具有位操作功能的布尔处理机及位寻址功能。

MCS-51单⽚机的引脚及其功能MCS-51单⽚机的引脚封装MCS-51单⽚机有普通的HMOS芯⽚和CMOS低功耗芯⽚。

HMOS芯⽚采⽤双列直插封装⽅式,⽽CMOS芯⽚采⽤的封装⽅式有双列直插也有⽅形封装的。

尽管封装的⽅式不同,但是它们的结构完全⼀样。

输⼊/输出接⼝MCS-51单⽚机有4个双向8位I/O接⼝,它们是P0、P1、P2、P3。

在⽆外接存储器时,这4个I/O接⼝均可以作为通⽤I/O接⼝使⽤,CPU既可以对它们进⾏字节操作也可以进⾏位操作。

当外接程序存储器或数据存储器时,P0⼝和P2⼝不再作为通⽤I/O⼝使⽤。

此时,P0⼝传送存储器地址的低8位以及双向的8位数据,P2⼝传送存储器地址的⾼8位。

P0⼝和P2共同组成MCS-51单⽚机的16位地址总线,⽽低8位地址总线与8位双向数据总线分时复⽤。

P0⼝P0⼝有8位,每⼀位由⼀个锁存器、两个三态输⼊缓冲器、控制电路和驱动电路组成。

P0⼝有两种功能,⼀是作为通⽤I/O⼝;⼆是当外接存储器时,作为低8位地址总线和8位双向数据总线。

P0 ⼝作为通⽤I/O ⼝作为通⽤I/O ⼝时,P0 ⼝既可以做输⼊⼝,也可以做输出⼝,并且每⼀位都可以设定为输⼊或输出。

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

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

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

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

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

l ~ 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口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。

单片机串行数据通信

单片机串行数据通信

第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单片机的串行口及串行通信技术

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位。

停⽌位必须是⾼电平。

接收端接收到停⽌位后,就知道此字符传送完毕。

MCS-51单片机应用教程 第4章

MCS-51单片机应用教程 第4章

3. 方式1或方式3的波特率 在这两种方式下,串行口波特率是由定时器的溢出率 决定的,因而波特率是可变的。波特率的公式为:
2SMOD 波特率= 定时器T1溢出率 32
定时器T1的溢出率计算公式为: f osc 1 定时器T 1 溢出率= K ( ) 12 2 -初值
式中: K为定时器T1的位数;若定时器T1方式0,则 K=13;若定时器T1方式1,则K=l6;若定时器T1方 式2或方式3,则K=8。
2. 串行口控制寄存器SCON SCON是可以进行位寻址ห้องสมุดไป่ตู้8位控制寄存器,地址 为98H。SCON的各位的定义和功能如下:
SCON.7 SM0
.6 SM1
.5
.4
.3
.2 RB8
.1 TI
SCON.0 RI
SM2 REN TB8
SM0、SM1: 串行口工作方式选择位(内容见 4.2.2节)。 SM2: 多机通信控制位。具体用法见4.3.3节。 REN: 串行接收允许位。由软件置位或清除。软 件置1时,串行口允许接收,清零后禁止接收。 TB8: 在方式2和方式3中是发送的第9位数据。 RB8: 在方式2和方式3中是接收的第9位数据。 TI: 发送中断标志位。发送结束时由硬件置位。 该位必须用软件清零。 RI: 接收中断标志位。结束接收时由硬件置位。 该位必须用软件清零。
2. 同步方式 将一大批数据分成几个数据块,数据块之间用同步 字符予以隔开,而传输的各位二进制码之间都没有 间隔,所以同步方式是按数据块传送数据的,一次 可以传送完一大批数据。 同步方式中,每一位数据占用的传输时间都是相等 的,接收机的接收时钟应该和发送机的发送时钟以 及传送的码元同步。图4-2(b)中给出了典型的数据 格式。与图4-2(a)相比,同步通信方式的数据格式 中没有两帧之间的空闲时间,也没有一帧之内的识 别标志位。显然这种方式可以大大提高通信速度, 常用于高速计算机的大容量数据通信。

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

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

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

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

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

l ~ 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口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第七章MCS-51单片机串行接口第一节串行通信的基本概念(一)学习要求1.掌握串行通信的基本概念。

2. 掌握异步通信和同步通信的区别。

(二)内容提要一:基本概念及分类串行通信是将数据的各位一位一位地依次传送。

适合于计算机之间、计算机与外部设备之间的远距离通信。

串行通信从传输方式分为:单工方式、半双工方式、全双工方式。

从接收方式来说,串行通信有两种方式:异步通信方式、同步通信方式。

二:串行口的功能MCS-51单片机中的异步通信串行接口能方便地与其他计算机或传送信息的外围设备(如串行打印机、CPU终端等)实现双机、多机通信。

串行口有4种工作方式,见表7-1。

方式0并不用于通信,而是通过外接移位寄存器芯片实现扩展并行I/O接口的功能。

该方式又称为移位寄存器方式。

方式1、方式2、方式3都是异步通信方式。

方式1是8位异步通信接口。

一帧信息由10位组成,其格式见图7-2a。

方式1用于双机串行通信。

方式2、方式3都是9位异步通信接口、一帧信息中包括9位数据,1位起始位,1位停止位,其格式见图7-2b。

方式2、方式3的区别在于波特率不同,方式2、方式3主要用于多机通信,也可用于双机通信。

表7-1(三)习题与思考题1、什么是并行通信?什么是串行通信?各有何优缺点?答:并行通信指数据的各位同时传输的通信方式,串行通信是指各位数据逐位顺序传输的通信方式。

2、什么是异步通信?什么是同步通信?各有何优缺点?3、什么是波特率?某异步串行通信接口每分钟传送1800个字符,每个字符由11位组成,请计算出传送波特率。

第二节MCS-51串行接口的组成(一)学习要求(1) 了解串行接口的结构。

(2) 了解串行接口的控制与状态寄存器工作原理。

(二)内容提要一:串行接口的结构串行接口主要由发送数据缓冲器、发送控制器、输出控制门、接收数据缓冲器、接收控制器、输入移位寄存器、波特率发生器T1等组成。

串行口中还有两个特殊功能寄存器SCON、PCON,特殊功能寄存器SCON用来存放串行口的控制和状态信息。

定时器/计数器1(T1)与定时器/计数器2(T2)都可构成串行口的波特率发生器,其波特率是否增倍可由特殊功能寄存器PCON的最高位控制。

二:串行接口控制与状态寄存器MCS-51串行口的工作方式选择、中断标志、可编程位的设置、波特率的增倍均是通过两个特殊功能寄存器SCON和PCON来控制的。

1.电源和波特率控制寄存器PCON电源控制寄存器PCON的格式如下:电源和波特率控制寄存器PCON,其地址为87H,只能进行字节寻址,不能按位寻址。

PCON的最高位D7位作SMOD,是串行口波特率的增倍控制位。

当SMOD=1时,波特率加倍。

例如在工作方式2下,若SMOD=0时,则波特率为f osc/64;当SMOD=1时,则波特率为f osc/32,恰好增大一倍。

系统复位时,SMOD位为0。

串行口控制寄存器SCON 解SCON各位的含义如下:D7 D6 D5 D4 D3 D2 D1 D098H 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H (1)串行口控制方式选择位SM0、SM1,其SM0、SM1由软件置位或清零,用于选择串行口的4种工作方式。

(2)多机通信控制位SM2和接收中断标志位RI SM2=1时,如果接收到的一帧信息中的第九位数据为1,且原有的接收中断标志位RI=0,则硬件将RI置1;如果第九位数据为0,则RI不置1,且所接收的数据无效。

SM2=0时,只要接收到一帧信息,不管第九位数据是0还是1,硬件都置RI=0,RI 由软件清零。

SM2由软件置位或清零。

多机通信时,SM2必须置1,双机通信时,通常使SM2=0。

方式0时SM2必须为0。

(3)发送中断标志位TI 在方式0中,发送完8位数据后,由硬件置位;在其它方式中,在发送停止位之初,由硬件使TI=1。

TI置位后可向CPU申请中断,任何方式中TI 位都必须由软件清除。

(4 ) 接收中断标志RI 在方式0中,接收完8位数据后,由硬件置位;在其它方式中,在接收停止位的一半时由硬件将RI置位(还应考虑SM2的设定)。

RI被置位后可允许CPU申请中断,任何方式中TI位都必须由软件来清除。

串行发送中断标志TI和接收中断标志RI共用一个中断源,CPU并不知道是TI还是RI 产生的中断请求,所以在全双工通信时,必须由软件来断别。

(5)允许接收控制位REN REN=1时允许接收,REN=0时禁止接收。

REN由软件置位或清零。

(6)发送数据D8位TB8 TB8是方式2、方式3中要发送的第九位数据,事先用软件写入1或0。

方式0、方式1不用。

(7)接收数据D8位RB8方式2、方式3中,由硬件将接收到的第九位数据存入RB8。

方式1中,停止位存入RB8。

复位后SCON的所有位清零。

(三)习题与思考题1、MCS-51单片机的串行口由哪些功能部件组成?各有什么作用。

2、特殊功能寄存器SCON 和PCON的作用和工作过程是什么?第三节串行口的工作方式(一)学习要求(1) 了解串行接口的工作方式。

(2) 掌握波特率的计算。

(二)内容提要一、串行接口的工作方式0SM0=0、SM1=0串行口工作于方式0, 即串行寄存器方式或称为同步移位寄存器输入/输出方式。

CPU执行一条写SBUF的指令如MOV SBUF ,A就启动了发送过程。

发送的时序见图7-1。

接收时序见图7-2图7-1 方式0发送时序图7-2 方式0接收时序串行口方式0不适用于两个8051之间的数据通信,但可通过外接移位寄存器来扩展单片机的接口。

例如,可以采用74LS164可以扩展并行输出口,74LS165可以扩展输入口。

二、串行口工作方式1SM0=0,SM1=1串行口接口工作于方式1,即将8位异步通信接口方式,结构示意图见图7-7。

RXD为接收端,TXD为发送端。

一帧信息由10位组成,方式1的波特率可变,由定时器/计数器1或定时器/计数器2的溢出速率以及SMOD(PCON.7)决定,且发送波特率与接收波特率可以不同。

1.发送CPU执行一条写SBUF指令后便启动了串行口发送,数据从TXD输出,时序见图7-8a。

在指令执行期间,CPU送来“写SBUF”信号,将并行数据送入SBUF,并启动发送控制器,经一个机器周期,发送控制器的SEND、DA TA相继有效,通过输出控制门从TXD上逐位输出一帧信号。

一帧信号发送完毕后,SEND、DATA失效,发送控制器硬件置发送中断标志TI=1,向CPU申请中断。

2.接收方式1的接收时序见图7-8b。

允许接收位REN被置1接收器就开始工作,跳变检测器以波特率16倍的速率采样RXD引脚上电平,当采样到从1到0的负跳变时,启动接收控制器接收数据,由于发送、接收双方各自使用自己的时钟,两者的频率总有少许差异。

为了避免这种影响,控制器将1位送时间等分成16分、位检测器在7、8、9三个状态也就是在位信号中央采样RXD三次。

而且,三次采样中至少两次相同的值被确认为数据,这是为了减小干扰的影响。

如果起始位接收到的值不是0,由起始位无效,复位接收电路。

如果起始位为0,则开始开始接收本帧其他数据。

控制器发出的内部移位脉冲将RXD上的数据逐位移入移位寄存器,当8位数据及停止位全移入后:(1)如果RI=0、SM2=0,接收控制器发出“装载SBUF”信号,将8位数据装入接收数据缓冲器SBUF,停止装入RB8,并置RI=1,向CPU申请中断。

(2)如果RI=0、SM2=1,那么只有停止位为1时才发生上述动作。

(3)如果RI=0、SM2=1且停止位为0,(通常由传输过程中的干扰所致)所接收的数据应会丢失,不再恢复。

(4)如果RI=1,则所接收的数据在任何情况下都会丢失。

无论出现哪一种情况,跳变检测器将继续采样RXD引脚的负跳变,以便接收下一帧信息。

接收器采用移位寄存器和SBUF双缓冲结构,以避免在接收后一帧数据之前,CPU尚未及时响应中断将前一帧数据取走,造成两帧数据重叠问题。

采用双缓冲器后,前、后两帧数据进入SBUF的时间间隔至少有10个位传送周期。

在后一帧数据送入SBUF之前,CPU 有足够的时间将前一帧数据取走。

三、串行接口工作方式2和与方式3串行口工作在方式2、方式3时,为9位异步通信接口。

发送或接收的一帧信息由11位组成,见图7-2b。

方式2与方式3仅波特率不同,方式2的波特率为f osc/32(SMOD=1时)或f osc/64(SMOD=0时),而方式3的波特率由定时器/计数器具或定时器/计数器2及SMOD决定。

1.发送方式2、方式3发送时,数据从TXD引脚输出,附加的第九位数据由SCON中的TB8提供。

CPU执行一条写入SBUF的指令后立即启动发送器发送。

发送完一帧信息后由硬件置TI=1。

2.接收与方式1相似,REN置1后,跳变检测器不断对RXD引脚采样。

当采样到负跳变后就启动接收控制器。

位检测器对每位数据采集3个值,用采3取2办法确定每位的数值。

当第九位数据移入移位寄存器后,将8位数据装入SBUF,第九位数据装入RB8,并置RI=1,其时序见图2-26b。

与方式1相同,方式2、方式3中也设置有数据辨别功能,即当RI=1或SM2=1且第九位数据为0时所接收的一帧信息被丢失。

四、各方式波特率的设计在串行通信中,收发双方对发送或接收的数据速率(即波特率)要有一定的约定。

可通过对串行口编程设定。

各种工作方式下其波特率的设置均有所不同,其中方式0和方式2的波特率是固定的,方式1和方式3的波特率是可变的,由定时器T1的溢出率确定。

(1) 方式0的波特率 方式0时,其波特率固定为振荡频率的1/12,并不受PCON 中SMOD 位的影响。

因而,方式0的波特率=f osc /12。

(2) 方式2的波特率 方式2的波特率由系统的振荡频率f osc 和PCON 的最高位SMOD 确定,即为2SMOD ×f osc /64。

在SMOD=0时,波特率=f osc /64;在SMOD=1时,波特率=f osc /32。

(3) 方式1、3的波特率 MCS-51串行口方式1、3的波特率由定时器T1的溢出率和SMOD 的值共同确定,即方式1、3的波特率=(2SMOD /32)×定时器T1的溢出率。

其中定时器溢出率取决于计数速率和定时器的预置值。

计数速率与TMOD 寄存器中T /C 的设置有关。

当T /C =0时,为定时方式,计数速率= f osc /12;当T /C =1时,为计数方式,计数速率取决于外部输入时钟的频率,但不能超过f osc /24。

定时器的预置值等于M -X ,X为计数初值,M为定时器的最大计数,与操作模式有关。

(可取213、216、28)。

如果为了到达很低的波特率,则可以选择16位的操作模式,即模式1,或模式0,可以利用T1中断来实现重装计数值。

相关文档
最新文档