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单片机的并行接口
1.1 P0口
口结构
P0口
“读-改-写”类指令 先读端口,然后对读入的数据进行修改,最后再写回到端口 不直接读取引脚上的数据而读锁存器Q端内容,是为了消除错
读引脚电平的可能性
P0口
P0既可用作地址/数据总线,又可用作通用I/O端口 用作输出端口时,输出级为开漏电路,在驱动NMOS电路时应
例 某接口电路与单片机使用一条线传送握手信号。双方约定, 单片机先向接口发送一个1和一个0,随后接口电路向单片机回 送一个1
单片机原理与应用
单片机原理与应用
MCS-51单片机的并行接口
MCS-51单片机本身提供了4个8位的并行端口,分别记做P0、 P1、P2和P3,共有32条I/O口线
都是双向端口,每个口包含一个锁存器(即特殊功能寄存器P0、 P1、P2和P3)、一个输出驱动器和输入缓冲器
端口和其中的锁存器都表示为P0、P1、P2、P3 结构不同,功能各异
1.4 P3口
口结构
P3口
作为通用I/O口使用时,工作原理与P1、P2口类似,但第二功 能输出端应保持高电平,使锁存器输出端Q内容能通过与非门
P3口的各位都具有第二功能
P3口
P3口的第二功能输入信号
P3.0——RxD,串行口数据接收 P3.2—— INT0#,外部中断0请求信号输入 P3.3—— INT1#,外部中断1请求信号输入 P3.4——T0,定时器/计数器0外部计数脉冲输入 P3.5——T1,定时器/计数器1外部计数脉冲输入
ORL ANL XRL CPL
P1, #3CH ;将P1中间4位置位
P1, #0C3H ;将P1中间4位清零
P1, #03H ;将P1最低2位取反
P1.5
;取反P1.5
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内容。由于串口的接收、发送各自独立,所以可同时发 送及接收,即可以实现全双工通讯。 送及接收,即可以实现全双工通讯。
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的串行口
发送 接收
半双工
发送
时间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
一次传输的起始位、字符各位、校验位、停止 位构成一个字符帧(数据帧)信息 帧与帧间可有任意个空闲位,起始位后紧跟数据 的最低位。
MCS51单片机的结构
MCS51单片机的结构MCS-51单片机是Intel公司设计开发的一种高度集成的8位微控制器(microcontroller),主要应用于嵌入式系统中。
它采用了Harvard 架构,包含一个CPU核心、片内存储器、外围接口和定时器/计数器等功能模块。
在本文中,我将详细介绍MCS-51单片机的结构。
MCS-51单片机的结构主要分为以下几个部分:1.中央处理器(CPU)核心:MCS-51单片机的CPU核心采用了8位的数据总线和地址总线,以及一组功能强大的指令集。
该CPU支持多种指令,包括数据传送指令、算术逻辑指令、位操作指令和条件跳转指令等。
它还包括一个累加寄存器和标志寄存器,用于存储操作数和标志位信息。
2.存储器部分:MCS-51单片机包含片内存储器和片外存储器。
片内存储器主要用于存储程序代码和数据,包括ROM(只读存储器)和RAM(随机存储器)。
ROM用于存储程序代码,RAM用于存储数据和临时变量。
片外存储器通过地址线和数据线与单片机连接,可以扩展存储器容量。
3.输入输出(I/O)接口:MCS-51单片机通过多个I/O口与外部世界进行数据交互。
每个I/O 口包含一组引脚,可以用作输入或输出。
这些引脚可以通过配置寄存器来选择其功能。
MCS-51单片机还支持中断输入,可以用于实现外部设备的中断功能。
4.定时器/计数器(Timer/Counter):MCS-51单片机内置了多个定时器/计数器模块,用于生成精确的时间延迟或测量外部事件的时间间隔。
定时器可以产生周期性的中断信号,用于实现定时任务。
计数器可以计数外部事件的脉冲数量,用于测量时间间隔。
5.串行通信接口:MCS-51单片机内置了一个串行通信接口,可以用于与其他设备进行数据传输。
该接口支持异步串行通信协议,如UART(通用异步收发器)或SPI(串行外围接口)等。
它可以通过配置寄存器来设置通信参数,如波特率和数据格式等。
6.时钟电路: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)) 同步通信传输速度较快,但要求有准确的时钟来实 现收发双方的严格同步,对硬件要求较高,适用于成批 数据传送。
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单片机的串行口及控制寄存器
位序
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章介绍。
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口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。
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的波特率计算公式为
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单片机输入输出口
MCS-51单片机输入输出口【1 】8051有4组8位I/O口:P0.P1.P2和P3口,P1.P2和P3为准双向口,P0口则为双向三态输入输出口,下面我们分离介绍这几个口线:·P0口和P2口:右图为P0口和P2口个中一位的电路图,由图可见,电路中包含一个数据输出锁存器和两个三态数据输入缓冲器,别的还有一个数据输出的驱动和掌握电路.这两组口线用来作为CPU与外部数据存储器.外部程序存储器和I/O扩大口,而不克不及象P1.P3直接用作输出口.它们一路可以作为外部地址总线,P0口身兼两职,既可作为地址总线,也可作为数据总线.参考图2.P2口作为外部数据存储器或程序存储器的地址总线的高8位输出口AB8-AB15,P0口由ALE选通作为地址总线的低8位输出口AB0-AB7.外部的程序存储器由PSEN旌旗灯号选通,数据存储器则由WR和RD读写旌旗灯号选通,因为216=64k,所以8051最大可外接64kB的程序存储器和数据存储器.·P1口:右图为P1口个中一位的电路图,P1口为8位准双向口,每一位均可单独界说为输入或输出口,当作为输进口时,1写入锁存器,Q(非)=0,T2截止,内上拉电阻将电位拉至"1",此时该口输出为1,当0写入锁存器,Q(非)=1,T2导通,输出则为0.作为输进口时,锁存器置1,Q(非)=0,T2截止,此时该位既可以把外部电路拉成低电平,也可由内部上拉电阻拉成高电平,正因为这个原因,所以P1口常称为准双向口.须要解释的是,作为输进口运用时,有两种情形,其一是:起首是读锁存器的内容,进行处理后再写到锁存器中,这种操纵即读—修正—写操纵,象JBC(逻辑断定).CPL(取反).INC(递增).DEC(递减).ANL(与逻辑)和ORL(逻辑或)指令均属于这类操纵.其二是:读P1口线状况时,打开三态门G2,将外部状况读入CPU.·P3口:P3口的电路如上图所示,P3口为准双向口,为顺应引脚的第二功效的须要,增长了第二功效掌握逻辑,在真正的运用电路中,第二功效显得更为主要.因为第二功效旌旗灯号有输入输出两种情形,我们分离加以解释.P3口的输入输出及P3口锁存器.中止.准时/计数器.串行口和特别功效存放器有关,P3口的第一功效和P1口一样可作为输入输出端口,同样具有字节操纵和位操纵两种方法,在位操纵模式下,每一位均可界说为输入或输出.我们侧重评论辩论P3口的第二功效,P3口的第二功效各管脚界说如下:·P3.0 串行输进口(RXD)·P3.1 串行输出口(TXD)·P3.2 外中止0(INT0)·P3.3 外中止1(INT1)·P3.4 准时/计数器0的外部输进口(T0)·P3.5 准时/计数器1的外部输进口(T1)·P3.6 外部数据存储器写选通(WR)·P3.7 外部数据存储器读选通(RD)对于第二功效为输出引脚,当作I/O口运用时,第二功效旌旗灯号线应保持高电平,与非门开通,以保持从锁存器到输出口数据输出通路疏浚无阻.而当作第二功效口线运用时,该位的锁存器置高电平,使与非门对第二功效旌旗灯号的输出是疏浚的,从而实现第二功效旌旗灯号的输出.对于第二功效为输入的旌旗灯号引脚,在口线上的输入通路增设了一个缓冲器,输入的第二功效旌旗灯号即从这个缓冲器的输出端取得.而作为I/O口线输入端时,取自三态缓冲器的输出端.如许,不管是作为输进口运用照样第二功效旌旗灯号输入,输出电路中的锁存器输出和第二功效输出旌旗灯号线均应置“1”.。
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口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。
第4章 MCS-51单片机中断、定时系统及串行数据通信
表4-2 中断源入口地址表 中断源 外部中断0 中断服务程序入口地址 0003H
定时器/计数器T0 外部中断1 定时器/计数器T1 串行口中断
000BH 0013H 001BH 0023H
单片机的两个相邻中断源中断服务程序入口地址 相距只有8个单元,一般中断服务程序容纳不下,因此 在该中断的入口地址处放一条长跳转指令LJMP,这 样就可以转到64KB的任何可用区域了。在2KB范围内 转移可用短跳转AJMP指令。
表4-1 同级中断源优先级排列顺序
中断源
外部中断0(IE0) 定时器/计数器T0中断(TF0) 外部中断1(IE1) 定时器/计数器T1中断(TF1)
同级内的优先级
最低级
串行口中断(RI+TI)
最高级
当单片机系统复位后,IE中各位均被清0,所有 中断源禁止;IP中各位均被清0,5个中断源均为低优 先级。
SET SET
SET
ET0 ET1
EA
;定时器/计数器0允许中断 ;定时器/计数器1允许中断
;CPU开中断
用字节操作指令 MOV IE,#8AH 或 MOV A8H,#8AH
(2)中断优先级控制寄存器(IP) MCS-51单片机系统的中断源有两个优先级,每 个中断源均可由中断优先级寄存器IP来设置优先级别。 IP的字节地址为0B8H,位地址为0B8H~0BFH。与 中断有关的控制位如下: 位地址 0BFH 0BEH 0BDH 0BCH 0BBH 0BAH 0B9H 0B8H
TMOD是定时器的工作方式寄存器,TCON是控制 寄存器,用于对T0和T1的管理和控制。
2.定时器/计数器的结构的工作原理 16位定时器/计数器的核心是一个加1计数器,如图 4-4所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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各位的含义如下:D7D6D5D4D3D2D1D0SCON98H9FH9EH9DH9CH9BH9AH99H98H (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、DATA相继有效,通过输出控制门从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中断来实现重装计数值。