单片机课件--第8章

合集下载

单片机-第8章 单片机的并行接口

单片机-第8章  单片机的并行接口

1.8155的内部结构
图8-1 8155的内部结构
8155芯片各组成部分的作用:
双向数据总线缓冲器:用于缓冲存储单 片机与8155的RAM之间的读/写数据。 地址锁存器:用于锁存单片机送给8155 的端口地址或RAM单元地址。 地址译码器:用于对地址锁存器送来的 低3位地址进行译码,根据译码输出,选择 命令/状态寄存器、定时器/计数器或A、B 和C 3个I/O寄存器中的某一个工作。
命令寄存器和状态寄存器:命令寄存器存放 单片机送来的命令字,只能写入;状态寄存器 存放8155的状态字,只能读出。 定时器/计数器:是一个二进制14位的减法 计数器。计数器初值由单片机送入,由TIMER IN引脚上输入的脉冲实现减1计数控制,并根据 不同的计数输出方式从TIMER OUT引脚输出相 应的波形。作为定时器使用时,TIMER IN引脚 应输入频率恒定的周期脉冲。
读写控制器:根据和线上的信号,控制 单片机与8155之间所传信息的 读写。
RAM存储器:容量为256字节,用于存 放实时数据。存储器存储单元地址由地址 锁存器指定。
I/O寄存器:A、B和C 3个端口各有一 个I/O寄存器。其中A、B端口的I/O寄存器 为8位,用于存放外设的输入/输出数据;C 口的I/O寄存器为6位,用于存放输入/输出 数据或命令/状态信息。8155在某一时刻只 能选中某个I/O寄存器工作,这由单片机送 给8155的命令字决定。
PC1、PC2:C口工作方式设置位,设 置方法如表8-2所示。
P3口 的第二功能
P3口引脚 P3.0 名称 RXD 功 能 串行口输入
P3.1 P3.2 P3.3 P3.4 P3.5 P3.6
P3.7
TXD
INT0

最新单片机原理及应用C语言版8ppt课件

最新单片机原理及应用C语言版8ppt课件

8.3.1 扩展存储器概述
存储器扩展的核心问题是存储器的编址问 题。所谓编址就是给存储单元分配地址。
由于存储器通常由多个芯片组成,为此存 储器的编址分为两个层次:
即存储器芯片的选择和存储器芯片内部存 储单元的选择。
8.3.1 扩展存储器概述
一、地址线的译码
存储器芯片的选择有两种方法:线选法和 译码法。
其中,G1、G2A、G2B为控制端。只有 当G1为“1”,且G2A、G2B均为“0”时,译 码器才能进行译码输出。否则译码器的8个 输出端全为高阻状态。
译码输入端与输出端之间的译码关系如 表8-1所示。
8.3.1 扩展存储器概述
表8-1 74LS138的译码关系 CBA编码 000 001 010 011 100 101 110 111 输出有效位 Y 0 Y 1 Y 2 Y 3 Y 4 Y 5 Y 6 Y 7
8.3 扩展并行数据存储器
数据存储器即随机存取存储器(Random Access Memory,RAM),用于存放可随时 修改的数据信息。
单片机使用的主要是静态RAM。 MCS-51系列单片机片外数据存储器的空 间可达64KB,而片内数据存储器的空间只 有128B或256B。如果片内的数据存储器不 够用时,则需进行数据存储器的扩展。
+5V
P0.0
D0 Q0
P0.1
D1 Q1
P0.2
D2 Q2
P0.3
D3 Q3
P0.4
D4 Q4
P0.5
D5 Q5
P0.6
D6 Q6
P0.7
D7 Q7
LE VCC
89C52
74HC244
Q0 D0
+
WR P2.0 RD

单片机原理及应用系统设计-基于STC可仿真的IAP15W4K58S4系列课件第8章

单片机原理及应用系统设计-基于STC可仿真的IAP15W4K58S4系列课件第8章

➢ 停止位至下一个起始位之间是不定长的空闲位,并且规定 起始位为低电平(逻辑值为0),停止位和空闲位都是高电 平(逻辑值为1),这样就保证了起始位开始处一定会有一 个下跳沿,由此就可以标志一个字符传输的起始。而根据 起始位和停止位也就很容易得实现了字符的界定和同步。
图8-3 异步通信数据格式
➢ 起始位:必须是持续一个比特时间的逻辑0电平,标志传输一个字符开 始,接收方可用起始位使自己的接收时钟与发送方数据同步。
➢ 停止位:停止位可以是是1位、1.5位或2位,可以由软件设定。它一定是 逻辑1电平,标志着传输一个字符的结束。
➢ 空闲位:空闲位是指从一个字符的停止位结束到下一个字符的起始位开 始,表示线路处于空闲状态,必须由高电平来填充。
2.串行通信的传输方式
➢ 串行通信根据数据传输的方向及时间关系可分为:单工、 半双工和全双工。
8.2.2 串口1的工作方式
(2) 接收:当软件置位接收允许标志位REN,即REN=1时, 接收器便以选定波特率的16分频的速率采样串行接收端口 RxD,当检测到RxD引脚输入电平发生负跳变时,则说明 起始位有效,将其移入移位寄存器,并开始接收这一帧信 息的其余位。
8.2.2 串口1的工作方式
3. 方式2和方式3 ➢ 串行口1工作在方式2和方式3时,其一帧的信息由11位组成:
8.2.1 串行口1的控制寄存器
➢ SM2:允许方式2或方式3多机通信控制位。 ➢ REN:允许/禁止串行接收控制位。由软件置位REN,即
REN=1为允许串行接收状态,可启动串行接收器RxD,开始 接收信息。软件复位REN,即REN=0,则禁止接收。 ➢ TB8:在方式2或方式3,它为要发送的第9位数据,按需要由 软件置位或清0。 ➢ RB8: 在方式2或方式3,是接收到的第9位数据,作为奇偶 校 验 位 或 地 址 帧 /数据帧的标志位 。方 式 0 中不用 RB8(置 SM2=0)。方式1中也不用RB8(置SM2=0, RB8是接收到的停止 位)。

单片机第八章课件

单片机第八章课件
• 存储器可由用户按规定的方法多次编程,如编程之后想修改,可用紫外线 灯制作的擦抹器 照射15分钟左右,芯片中的信息被擦除,成为一块“干净” 的EPROM,可再次写入信 息。
存储器的扩展
存储器的扩展
ROM 只读内存(Read-Only Memory)
E2PROM:电擦除的 PROM,或称 EEPROM(Electrically Erasable PROM),
接收器件收到一个完整的数据字节后,有可能需要完成一些其它工作,如处 理内部中断服务等,可能无法立刻接收下一个字节,这时接收器件可以将 SCL线拉成低电平,从而使主机处于等待状态。直到接收器件准备好接收下 一个字节时,再释放SCL线使之为高电平,从而使数据传送可以继续进行。
I2C
有效传送
I2C总线进行数据传送时,时钟信号为高电平期间,数据线 上的数据必须保持稳定,只有在时钟线上的信号为低电平 期间,数据线上的高电平或低电平状态才允许变化。
I2C
二、典型信号模拟子程序
(4)读一个字节 uchar readbyte() {
I2C
特征
1、只要求两条总线线路:一条串行数据线SDA,一条串行时钟 线SCL;
2、每个连接到总线的器件都可以通过唯一的地址和一直存在的 简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主 机接收器;
3、它是一个真正的多主机总线,如果两个或更多主机同时初始 化,数据传输可以通过冲突检测和仲裁防止数据被破坏;
c、在传送过程中,当需要改变传送方向时,起始 信号和从机地址都被重复产生一次,但两次读/写 方向位正好反相。
I2C 总线的寻址 I2C总线协议有明确的规定:采用7位的寻址字节 (寻址字节是起始信号后的第一个字节)。 (1)寻址字节的位定义

8单片机原理及应用(第八章串行通信)PPT课件

8单片机原理及应用(第八章串行通信)PPT课件
数据帧(一帧数据):包含起始位(“0”电平)、数据位、 奇偶校验位、停止位(“1”电平)等组成。
2
异步通信中接收和发送双方必须(至少)有两项设定: (1)帧格式确定(帧字符长度) 如ASCII帧(字符)为10位。数据位7位,起始位、校验位、 停止位各一位。 (2)波特率的设定 波特率:每秒传输的位。 如120字符(帧)/秒,每帧数据10位,则传输速率为1200 波特率。
9
8-2-2 串行通信控制寄存器
与串行通信有关的寄存器共有三个。 1)串行控制寄存器SCON
位地址 9F
9E
9D
9C
9B
9A
位符号 SM 0 SM 1 SM 2 REN TB 8 RB 8
99 98 TI RI
字节地址:98H
10
各位功能说明: 1)SM0、SM1—串行口工作方式选择位
SM 0 SM 1 00 01 10 11
15
2) 电源控制寄存器PCON (波特率倍增控制寄存器)
字节地址:87H
位序
7
6
5
4
3
2
1
0
位符号 SMOD /
/
/
GF 1
GF0
PD IDL
SMOD=1,串行口波特率加倍; SMOD=0,波特率正常。 系统复位时,SMOD=0。 PCON不可以进行位寻址。
16
中断允许控制寄存器(IE)
位地址 AF
2)格式信息的插入和滤除 格式信息:异步通信格式中,启始位、奇偶校验位、停止位等。 串化过程:将格式信息插入,和数据位一起构成完整数据帧。 反串化过程:滤除格式信息,保留数据位。
3)错误检验 检验数据通信过程是否正确。
6
8-2 MCS-51单片机串行通信

单片机应用第8章PPT课件

单片机应用第8章PPT课件
19
第8章 接口技术
程序说明: (1)本例接口电路是以软件为主的接口电路,显示数 据有6位,每位数码管对应1位有效显示数据。 (2)由程序可知,由于数码显示器的低位(最右边的位) 显示的是显示缓冲区中的低地址单元中的数,因此数 在显示缓冲区中存放的次序为低地址单元存低位,高地 址单元存高位。 (3)在动态扫描显示过程中,每位数码管的显示时间 约1ms,这由调用延时1ms子程序DELY来实现。
12
第8章 接口技术
图6―22 8155作6位LED显示器接口的电路
13
8.1.3 LED数码显示器的显示方法
第8章 接口技术
对于多位数码显示器来说,为了简化线路、降低成本, 往往采用以软件为主的接口方法,即不使用专门的硬件译 码器,而采用软件程序进行译码。如前所述,由于各位数码 管的显示段码是互相并联的,因此在同一时刻只能显示同 一种字符。对于这种接口电路来说,其显示方法有静态显 示和动态显示两种。
16
第8章 接口技术
下面介绍一种动态扫描显示子程序:
DIR: MOV R0,#7AH
;指向显示缓冲区首址
MOV R3,#01H
;从右边第1位开始显示
MOV A,#00H
;取全不亮位控字
MOV R1,#BITPORT ;指向位控口
MOVX @R1,A
;瞬时关显示
LD1: MOV A,@R0
;取出显示数据
A,R3
;取位控字
@R1,A
;输出位控字
DELY
;延时1ms
R0
;指向下一个缓冲单元
A.5,LD2
;已到最高位则转返回
A
;不到,向显示器高位移位
R3,A
;保存位控字

第8章 几种典型的单片机

第8章   几种典型的单片机

态锁存器将复用的地址与数据信号分离(见图8―7),这
样就可获得扩展外存与外设所需的全部总线信号。
第8章 几种典型的单片机

图8―7 8098系统总线形成电路
第8章 几种典型的单片机
4. 芯片配置寄存器CCR
为了使外接电路尽可能简化,8098提供了多种总 线控制方式与就绪控制方式,以便使用户可以有选择 地定义总线控制信号及选择插入总线周期中等待状态 周期数。这些方式的选择取决于CCR的设置。 CCR是1个独立于SFR的重要寄存器,它不能直接 寻址。当系统复位时,片内RAM2018H单元中的芯片 配置字节被自动送入到CCR中。CCR的数据格式如图
ROM/EPROM的8098、带8KB片内掩膜ROM的8398及 带8KB片内EPROM的8798。
1.内部结构
8098单片机内部结构如图8―1所示。它包含16位
CPU、片内8KBROM/EPROM(8398或8798)、高速输入
/输出(HSI/HSO)口、4个多用途I/O口、全双工串行口、 4路10位A/D转换器、脉宽调制(PWM)器、1个16位
第8章 几种典型的单片机
·P0口4位高输入阻抗端口,可作为数字量输入口(4
位 P0.4~P0.7) , 也 可 作 为 模 拟 量 输 入 口 (4 路 ACH4~ACH7)。无论用P0口作数字输入还是模拟输入, 都应通过VREF向P0口提供电源。 ·P2口4位多功能口,可作为数据输入/输出口(P2.0、 P2.1、P2.2、P2.5),还可用作其他控制(P2.0可用作串 口发送端TXD,P2.1可用作串口接收端RXD,P2.2可 用 作 外 中 断 输 入 端 EXTINT , P2.5 可 用 作 脉 宽 调 制
第8章 几种典型的单片机

第8章单片机经典课件

第8章单片机经典课件

第八章 单片机系统扩展
2.单片机总线驱动扩展
在单片机扩展应用中,由于CPU是通过总线与数片存储 器芯片及若干个I/O接口芯片相连接的,而且这些芯片可能 是TTL器件,也可能是CMOS器件,所以当构成系统时, CPU总线能否支持其负载是必须考虑的问题。当CPU总线上 连接的器件均为CMOS器件且数量不多时,因为CMOS器件 功耗低,所以一般不会超载。当总线上连接的器件使CPU超 载时,就应该考虑总线的驱动问题。这时需在总线上增加缓 冲器和驱动器,以增加CPU总线的带负载能力。
源有关,所以我们这里主要针对高速CMOS电路进行讨论。
第八章 单片机系统扩展 表8-1 TTL、CMOS电路的输入、输出特性参数
电路种类 参数名称 VOH(min)/V VOL(max)/V IOH(max)/mA IOL(max)/mA VIH(min)/V VIL(max)/V IIH(max)/A IIL(max)/mA TTL 74 系列 2.4 0.4 -0.4 16 2 0.8 40 -1.6 TTL 74LS 系列 2.7 0.5 -0.4 8 2 0.8 20 -0.4 CMOS* 4000 系列 4.6 0.05 -0.51 0.51 3.5 1.5 0.1 -0.1× -3 10 高速 CMOS 74HC 系列 4.4 0.1 -4 4 3.5 1 0.1 -0.1× -3 10 高速 CMOS 74HCT 系列 4.4 0.1 -4 4 2 0.8 0.1 -0.1× -3 10
第八章 单片机系统扩展
虽然都是MCS-51系列单片机,但各个厂家采用的生产
工艺不同(TTL或CMOS),产品不同,端口不同,驱动的外 部负载电路不同,则带负载能力也不一样。在设计单片机外 围扩展电路时都要考虑其是否能驱动所有负载正常工作。特 别是外围扩展电路较多时,更要考虑这一问题。在实际系统 设计中,首先要详细了解所用芯片的电气指标(高、低电平, 输入、输出电流等),如果是TTL和CMOS电路混合系统,不 但要考虑电流,还要考虑电平。然后,根据指标要求,考虑 单片机是否能驱动所要扩展的所有外围电路,如果不行,则 需要进行驱动扩展。

单片机第八章 AT89系列单片机系统的扩展z1

单片机第八章 AT89系列单片机系统的扩展z1
#2存储器端口地址:A=1(P2.6=1),B=0(P2.7=0) ,C=0:选中#2存储器,所以#2存储器的端口地址为: 4000H~7FFFH。
8.2.3 数据存储器的扩展
1.数据存储器概述 数据存储器即随机存取存储器,用于存放可随时修改的
数据信息。它与ROM不同,对RAM可以进行读、写两种操作 。RAM为易失性存储器, 断电后所存信息立即消失。
2
2.片内无程序存储器的最小应用系统 片内无程序存储器的芯片构成最小应用系统时,必须 在片外扩展程序存储器。 由于一般用做程序存储器的 E2PROM芯片不能锁存地址,故扩展时还应加一个地址 锁存器,构成一个三片最小系统,如图8-1b所示。该 图中74LS373为地址锁存器,用于锁存低8位地址。
3
8.1.2 系统扩展的内容与方法
IN改数据指针
DJNZ R7, AGAIN ; 判断数据是否传送完成
RET
END
26
【C51程序】:
#include <AT89X51.h>
#include <absacc.h>
#define uchar unsigned char
#define uint unsigned int
11
图8-5 74LS138管脚图
图8-6 74LS138的译码关系
12
8.2存储器的扩展
8.2.1 存储器扩展概述 AT89S系列单片机具有64 KB的程序存储器空间, 其中 AT89S51单片机含有4 KB 的片内程序存储器。当单片机程 序超过4 KB时,就需要进行程序存储器的扩展。
AT89S系列单片机的数据存储器与程序存储器的地址空 间是互相独立的,其片外数据存储器的空间可达64 KB, 而片内的数据存储器空间只有128 B。如果片内的数据存 储器不够用时,则需进行数据存储器的扩展。

单片机课件8 单片机的存储器的扩展

单片机课件8 单片机的存储器的扩展
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 A15 A14 A13 A12 A11 A10 A9 A8 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 A7 A6 A5 A4 A3 A2 A1 A0
MCS-51单片机的地址总线为16位,它的存储器最大的 扩展容量为216,即64K个单元。
2013-6-27
单片机原理及其应用
20
8.3 程序存储器扩展
8.3.2 外部程序存储器扩展原理及时序
(一) 外部程序存储器扩展使用的控制信号
(1)EA——用于片内、片外程序存储器配置, 输入信号。当EA=0时,单片机的程序存储器全部为扩 展的片外程序存储器;当EA=1 时,单片机的程序存 储器可由片内程序存储器和片外程序存储器构成,当 访问的空间超过片内程序存储器的地址范围时,单片 机的CPU自动从片外程序存储器取指令。 (2)ALE——用于锁存P0口输出的低8位地址。 (3)PSEN ——单片机的输出信号,低电平时, 单片机从片外程序存储器取指令;在单片机访问片内 2013-6-27 单片机原理及其应用 程序存储器时,该引脚输出高电平。
2013-6-27 单片机原理及其应用 11
8.2 半导体存储器
8.2.2 只读存储器 只读存储器(Read Only Memory,ROM),ROM 一般用来存储程序和常数。ROM是采用特殊方式写入 的,一旦写入,在使用过程中不能随机地修改,只能从 其中读出信息。与RAM不同,当电源掉电时,ROM 仍 能保持内容不变。在读取该存储单元内容方面,ROM 和RAM相似。只读存储器有掩膜ROM、PROM、EPROM、 E2PROM(也称EEPROM)、Flash ROM等。它们的区 别在于写入信息和擦除存储信息的方式不同。

单片机原理与接口技术(第8章)

单片机原理与接口技术(第8章)

第8章 单片机的系统扩展
◆ 8282是一种带有三态输出缓冲的8位锁存器,其引脚说明 如下:
D0~D7:为8位数据输入端。 Q0~Q7:为8位数据输出端。 STB:数据输入锁存选通信号,高电平有效。当该信号 为高电平时,外部数据选通到内部锁存器,负跳变时,数据 锁存。 OE:数据输出允许信号,低电平有效。当该信号为低电 平时,锁存器中数据输出到数据输出线;当该信号为高电平 时,输出线为高阻态。
译码法可分为全部译码法、部分译码法。 全部译码法:是把P0口、P2口都接到译码器和芯片的地 址线上,其优点是可以充分利用单片机提供的扩展空间,连 接的存储器容量较大。
第8章 单片机的系统扩展
部分译码法:是将高位地址的一部分连接到译码器中进行 译码,高位地址的另外部分可以不连在译码器上,而作为通 用的I/O口使用。
简称DRAM(Dynamic RAM),具有容量大、功耗低、价 格便宜等优点,对外界环境、工艺结构、控制逻辑和电源质 量等的要求都很高。
存储器芯片有2816/2817(8KB×8),最大存取时间为 200ns,+5V供电,采用HMOS-D2工艺制造,其内部含有动态 刷新电路。
第8章 单片机的系统扩展
① P2口专门用于输出PCH的内容,因有锁存功能,可直 接与外部存储器的地址相连。
② P0口除了输出PCL中的地址外,还要传输从程序存储 器过来的指令代码,这就必须用ALE信号锁存PCL。
第8章 单片机的系统扩展
③ 在每个机器周期中,允许地址锁存信号ALE两次有效, 且在下降沿时锁存PCL。对来说,也是每个机器周期两次有效。 ◆所取指令是MOVX时
当ALE信号由高变低时,低8位地址被锁存到锁存器中并 向外部地址总线输出,该地址信号和P2口的高8位地址共同 组成16位地址。直到ALE信号再次变高,锁存器的地址才会 发生改变。

单片机应用和原理课件 AT89S51单片机外部存储器的扩展 演示文稿

单片机应用和原理课件 AT89S51单片机外部存储器的扩展 演示文稿
2.译码法 使用译码器对AT89S51单片机的高位地址进行译码,译码 输出作为存储器芯片的片选信号。此方法能有效地利用存储 器空间,适于多芯片的存储器扩展。常用译码器芯片有 74LS138(3-8译码器)、74LS139(双2-4译码器)和 74LS154(4-16译码器)。
12
若全部高位地址线都参加译码,称为全译码;若仅部分高 位地址线参加译码,称为部分译码。部分译码存在着部分存 储器地址空间相重叠的情况。
1.线选法 是直接利用系统的某一高位地址线作为存储器芯片(或I/O
接口芯片)的“片选”控制信号。为此,只需要把用到的 高位地址线与存储器芯片的“片选”端直接连接即可。
1. 线选法 优点:电路简单,不需另外增加地址译码器硬件电路,体 积小,成本低。
缺点:可寻址的芯片数目受限制。另外,地址空间不连续, 每个存储单元的地址不唯一,这会给程序设计带来不便,适 用于外扩芯片数目不多的系统。
2
8.1 系统扩展结构 AT89S51采用总线结构,使扩展易于实现,系统并行扩 展结构如图8-1所示。
图8-1 AT89S51单片机的系统并行扩展结构
3
由图8-1可看出,系统扩展主要包括存储器扩展和I/O接口 部件扩展。
AT89S51存储器扩展即包括程序存储器扩展又包括数据 存储器扩展。AT89S51采用程序存储器空间和数据存储器空 间截然分开的哈佛结构。扩展后,形成了两个并行的外部存 储器空间。
15
(2)74LS139 双2-4译码器。这两个译码器完全独立,分别有各自的数 据输入端、译码状态输出端以及数据输入允许端,引脚如图 8-4,真值表如表8-2(只给出其中的一组)。
图8-4 74LS139引脚
16
以74LS138为例,如何地址分配。 例如,要扩8片8KB的RAM 6264,如何通过74LS138把 64KB空间分配给各个芯片? 由74LS138真值表可知,把G1接到+5V,G2A* 、 G2B* 接地,P2.7、P2.6、P2.5(高3位地址线)分别接74LS138 的C、B、A端,对高3位地址译码,译码器8个输出Y7* ~ Y0* ,分别接到8片6264的各 “片选”端,实现8选1的片选。 低13位地址(P2.4~P2.0,P0.7~P0.0)完成对选中的 6264芯片中的各个存储单元的“单元选择”。这样就把 64KB存储器空间分成8个8KB空间了。

单片机基础(第3版——第8章

单片机基础(第3版——第8章
利用串行工作方式0, 加上“并入串出”或“串入并出” 芯片的配合, 80C51的串行口可实现数据的并行输入
/输出。 方式0实现数据并行输入/输出“并入串出”芯片 (74165)用于பைடு நூலகம்并行输入数据通过移位形成位串, 传送
给串行口;而“串入并出”芯片(74164)则接收串 行口的串行数据, 通过移位形成8位并行数据输 出。
80C51串行口寄存器结构
8.2.2 串行口控制机制
80C51串行口通过控制寄存器、中断功能和波特率设置实现串行通 信控制。
1.串行口控制寄存器(SCON)-98H
■ SM0、SM1——串行口工作方式选择位。其状态组合所对应的 工作方式为:
■ SM0SM1=00,工作方式0;SM0SM1=01,工作方式1; SM0SM1=10,工作方式2;SM0SM1=11,工作方式3。
工作方式0时, 移位操作(串入或串出)的波特率是固定的, 为单片机晶振频率的1/12, 若晶振频率用fosc表示, 则波特率=fosc/12。按此波特率的一个机器周期进行 一次移位, 若fosc=6 MHz, 则波特率为500 kb/s, 即 2 μs移位一次。
利用串行口方式0实现数据并行输入/输出
8.3.3 串行工作方式2 和3
串行工作方式2和3都是11位为一帧的串行通信方式, 即 1个起始位、9个数据位和1个停止位。
在这两种工作方式下, 字符还是8个数据位, 只不过增 加了一个第9数据位(D8), 它是一个可编程位, 其 功能由用户设定。
在发送数据时, 应予先在串行口控制寄存器SCON的 TB8 位中把第9个数据位的内容准备好。
单片机基础(第3版)
第8章 80C51单片机串行通信
1. 串行通信基础知识 2. 80C51串行口 3. 80C51串行口工作方式 4. 串行通信数据传输速率 5. 串行通信应用

(单片机完整课件PPT)第八章

(单片机完整课件PPT)第八章
ห้องสมุดไป่ตู้
8.2 存储器扩展
8.2.1 存储器介绍 1.非易失性存储器 ROM、EPROM、EEPROM、Flash Memory。 EPROM—Erasable Programmable Read Only Memory 紫外线可擦除只读存储器。 2.易失性存储器 SRAM静态随机存储器容量小,硬件电路设计简单。 DRAM动态随机存储器容量大,硬件电路设计复杂,成本 低。 3.特殊存储器 双端口RAM、先进先出RAM(FIFORAM)
8.2.4 程序存储器EPROM的扩展 采用只读存储器,非易失性。 (1)掩膜ROM 在制造过程中编程。成本较高,因此只适合于 大批量生产。 (2)可编程ROM(PROM) 用独立的编程器写入。但PROM只能写入一次, 且不能再修改。
(3)EPROM 电信号编程,紫外线擦除的只读存储器芯片。 (4)E2PROM( EEPROM) 电信号编程,电信号擦除的ROM芯片。读写操作与RAM 几乎没有什么差别,只是写入的速度慢一些。但断 电后能够保存信息。 (5)Flash ROM 又称闪烁存储器,简称闪存。大有取代E2PROM的趋势。 8.2.4.1 常用EPROM芯片介绍
8.2.2 存储器扩展方法
1、数据线与数据线相连:8根线直接连 2、地址线与地址线相连:地址空间分配问题 3、控制线与控制线相连
RAM芯片:读写控制引脚,记为OE和WE ,与 MCS-51的RD和WR相连。 EPROM芯片:只能读出,故只有读出引脚,记为 OE,该引脚与MCS-51的PSEN相连。
1. 线选法 直接利用系统的高位地址线作为存储器芯片(或I/O接 口芯片)的片选信号。 优点:电路简单,不需要地址译码器硬件,体积 小,成本低。 缺点:可寻址的器件数目受到限制,地址空间不连 续,地址重叠(不唯一)。 例 某一系统,需要外扩8KB的EPROM(2片2732),4KB 的RAM(2片6116),这些芯片与MCS-51单片机地址 分配有关的地址线连线,电路如下图。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(2)采用查询方式处理的程序 C语言程序: 语言程序: //包含特殊功能寄存器库 # include <reg51.h> //包含特殊功能寄存器库 sbit P1_0=P1^0; void main() { char i; TMOD=0x02; TH0=0x06;TL0=0x06; TR0=1; for(;;) { //查询计数溢出 if (TF0) { TF0=0;P1_0=! P1_0;} //查询计数溢出 } }
8051
RXD TXD P1.0
DATA CLK STB
C语言程序: 语言程序: # include <reg51.h> 特殊功能寄存器库 sbit P1_0=P1^0; void main() { unsigned char i,j; SCON=0x00; j=0x01;
//包含 //包含
for (; ;) { P1_0=0; SBUF=j; while (!TI) { ;} P1_0=1;TI=0; for (i=0;i<=254;i++) {;} j=j*2; if (j= =0x00) j=0x01; } }
系统监控通过外中断INT0来实现,这里就涉及多个中断源的处理, 系统监控通过外中断INT0来实现,这里就涉及多个中断源的处理,处 INT0来实现 理时往往通过中断加查询的方法来实现。多个中断源通过“线或” 理时往往通过中断加查询的方法来实现。多个中断源通过“线或”接于 INT0上 那么无论哪个中断源提出请求,系统都会响应中断,响应后, INT0上。那么无论哪个中断源提出请求,系统都会响应中断,响应后,进 入中断服务程序,在中断服务程序中通过对P1 P1口线的逐一检测来确定哪一 入中断服务程序,在中断服务程序中通过对P1口线的逐一检测来确定哪一 个中断源的提出了中断请求, 个中断源的提出了中断请求,进一步转到对应的中断服务程序入口位置执 行对应的处理程序。这里只针对PH<7 PH<7时的中断构造了相应的中断服务程序 行对应的处理程序。这里只针对PH<7时的中断构造了相应的中断服务程序 INT02,接通电磁阀延时1秒钟的延时子程序DELAY已经构造好了, DELAY已经构造好了 INT02,接通电磁阀延时1秒钟的延时子程序DELAY已经构造好了,只须调用 即可。 即可。
【例4】用8051单片机的串行口外接串入并出的芯片CD4094扩 8051单片机的串行口外接串入并出的芯片CD4094扩 单片机的串行口外接串入并出的芯片CD4094 展并行输出口控制一组发光二极管, 展并行输出口控制一组发光二极管,使发光二极管从左至右延 时轮流显示。 时轮流显示。 CD4094是一块8位的串入并出的芯片,带有一个控制端STB, CD4094是一块8位的串入并出的芯片,带有一个控制端STB,当 是一块 STB STB=0时,打开串行输入控制门,在时钟信号CLK的控制下,数据 STB=0时 打开串行输入控制门,在时钟信号CLK的控制下, CLK的控制下 从串行输入端DATA一个时钟周期一位依次输入; STB=1, 从串行输入端DATA一个时钟周期一位依次输入;当STB=1,打开 DATA一个时钟周期一位依次输入 并行输出控制门,CD4094中的8位数据并行输出。使用时, 并行输出控制门,CD4094中的8位数据并行输出。使用时,8051 中的 串行口工作于方式0 8051的TXD接CD4094的CLK,RXD接DATA, 串行口工作于方式0,8051的TXD接CD4094的CLK,RXD接DATA, STB用P1.0控制, 位并行输出端接8个发光二极管。如图所示。 STB用P1.0控制,8位并行输出端接8个发光二极管。如图所示。 控制
8051单片机的串行口外接并入串出的芯片 【例5】 用8051单片机的串行口外接并入串出的芯片 CD4014扩展并行输入口,输入一组开关的信息。 CD4014扩展并行输入口,输入一组开关的信息。 扩展并行输入口
CD4014是一块8位的并入串出的芯片, CD4014是一块8位的并入串出的芯片,带有一个控制端 是一块 P/S,当P/S=1时,8位并行数据置入到内部的寄存器;当 P/S, P/S=1时 位并行数据置入到内部的寄存器; P/S=0时,在时钟信号CLK的控制下,内部寄存器的内容按低 P/S=0时 在时钟信号CLK的控制下, CLK的控制下 位在前从QB串行输出端依次输出;使用时,8051串行口工作 位在前从QB串行输出端依次输出;使用时,8051串行口工作 QB串行输出端依次输出 于方式0 8051的TXD接CD4094的CLK,RXD接QB,P/S用 于方式0,8051的TXD接CD4094的CLK,RXD接QB,P/S用P1.0 控制,另外, P1.1控制8并行数据的置入。如图所示。 控制,另外,用P1.1控制8并行数据的置入。如图所示。 控制
8051 K0 RXD TXD P1.0 P1.1 QB CLK P/S K7 K
C语言程序: 语言程序: 语言程序 # include <reg51.h> //包含特殊功能 包含特殊功能 寄存器库 sbit P1_0=P1^0; sbit P1_1=P1^1; void main() { unsigned char i; P1_1=1;
电磁阀
P3.0
P3.2 INT0
温度1超限 温度2超限 Q D +5V
8051 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
R CLK PH值超限 压力超限
C语言程序: 语言程序: 语言程序 void int02() #include <reg51.h> { sbit P10=P1^0; unsigned char i; sbit P11=P1^1; P30=1; sbit P12=P1^2; for (i=0;i<255;i++) ; sbit P13=P1^3; P30=0; sbit P16=P1^6; P16=0;P16=1; sbit P30=P3^0; } void int0() interrupt 0 using1 void main() ( { { PX0=1; /*设置外部中断 为高 设置外部中断0为高 = 设置外部中断 void int00(); 优先级中断*/ 优先级中断 void int01(); EX0=1; /*开外部中断 允许 开外部中断0允许 = 开外部中断 允许*/ void int02(); EA=1; /*开中断 开中断*/ = ; 开中断 void int03(); if (P10= =1) {int00();} //查询调用对应的函数 P10=1; P11=1; P12=1; P13=1; 查询调用对应的函数 for(;;)} (;;) else if (P11= =1) {int01();} else if (P12= =1) {int02();} else if (P13= =1) {int03();} }

while (P1_1= =1) {;} P1_0=1; P1_0=0; SCON=0x10; while (!RI) {;} RI=0; i=SBUF; …… }
【例6】某工业监控系统,具有温度、压力、PH值等多路监控功 某工业监控系统,具有温度、压力、PH值等多路监控功 能,中断源的连接如图5.26所示。对于PH值,在小于7时向CPU申 中断源的连接如图5.26所示。对于PH值 在小于7时向CPU申 5.26所示 PH CPU 请中断,CPU响应中断后使P3.0引脚输出高电平,经驱动, 请中断,CPU响应中断后使P3.0引脚输出高电平,经驱动,使加 响应中断后使P3.0引脚输出高电平 碱管道电磁阀接通1秒钟,以调整PH值 碱管道电磁阀接通1秒钟,以调整PH值。 PH
设系统时钟频率为12MHZ 用定时/计数器T0 12MHZ, T0编程实 【例2】 设系统时钟频率为12MHZ,用定时/计数器T0编程实 现从P1.0输出周期为500μs的方波。 现从P1.0输出周期为500μs的方波。 P1.0输出周期为500μs的方波 分析:从P1.0输出周期为500μs的方波,只须P1.0每250μs 分析: P1.0输出周期为500μs的方波,只须P1.0每 输出周期为500μs的方波 P1.0 取反一次则可。当系统时钟为12MHZ,定时/计数器T0工作于 取反一次则可。当系统时钟为12MHZ,定时/计数器T0工作于 12MHZ T0 方式2 方式2时,最大的定时时间为256μs,满足250μs的定时要求, 最大的定时时间为256μs,满足250μs的定时要求, 256μs 250μs的定时要求 方式控制字应设定为00000010B(02H)。系统时钟为12MHZ, 方式控制字应设定为00000010B(02H)。系统时钟为12MHZ, 00000010B )。系统时钟为12MHZ 定时250μs,计数值N 250,初值X=256-250=6, 定时250μs,计数值N为250,初值X=256-250=6,则 250μs X=256 TH0=TL0=06H。 TH0=TL0=06H。
【例3】设系统时钟频率为12MHZ,编程实现从P1.1输出周期为 设系统时钟频率为12MHZ,编程实现从P1.1输出周期为 12MHZ P1.1 1s的方波 的方波。 1s的方波。 根据例2的处理过程,这时应产生500ms的周期性的定时, 500ms的周期性的定时 根据例2的处理过程,这时应产生500ms的周期性的定时, 定时到则对P1.1取反就可实现。由于定时时间较长, P1.1取反就可实现 定时到则对P1.1取反就可实现。由于定时时间较长,一个定时 计数器不能直接实现,可用定时/计数器T0产生周期性为10ms T0产生周期性为 /计数器不能直接实现,可用定时/计数器T0产生周期性为10ms 的定时,然后用一个寄存器R2 10ms计数50次或用定时 R2对 计数50次或用定时/ 的定时,然后用一个寄存器R2对10ms计数50次或用定时/计数 T1对10ms计数50次实现 系统时钟为12MHZ 定时/计数器T0 计数50次实现。 12MHZ, 器T1对10ms计数50次实现。系统时钟为12MHZ,定时/计数器T0 定时10ms 计数值N 10000,只能选方式1 10ms, 定时10ms,计数值N为10000,只能选方式1,方式控制字为 00000001B(01H), 00000001B(01H), 初值X 初值X: X=65536X=65536-10000=55536=1101100011110000B TH0=11011000B=D8H,TL0=11110000B=F0H。 则TH0=11011000B=D8H,TL0=11110000B=F0H。
相关文档
最新文档