单片机技术及应用(基于Proteus 的汇编和C语言版)项目8 并行IO口扩展控制
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
外部RAM。
注意:MCS-51系列单片机外部扩展I/O接口时, 其地址与外部RAM统一编址的。换句话说,外部 扩展的I/O接口要占用外部RAM的地址。
8.1.1 51单片机三总线分析
(1) 地址总线AB(Address Bus)
◆地址总线用于传送单片机
送出的地址信号,以便进行 存储单元和I/O端口的选择。
方法一
MOV DPTR , #7E02H ;建立外部地址指针7E02H MOVX A , @DPTR ;外存7E02H单元内容送A MOV 35H , A ;A内容送内部存储单元35H 方法二: MOV P2 , #7EH MOV R1 , #02H MOVX A , @R1 MOV 35H , A
A15 P2.7 A14 P2.6 A13 P2.5 A12 P2.4 A11 P2.3 A10 P2.2 A9 P2.1 A8 P2.0 A7 P0.7 A6 P0.6 A5 P0.5 A4 P0.4 A3 P0.3 A2 P0.2 A1 P0.1 A0 P0.0
8.1.1 51单片机三总线分析
8.1.2 并行I/O接口扩展认知
1、单片机I/O口扩展方法
(2)串行口扩展方法
MCS-51单片机串行口工作方式0时,提供一 种I/O扩展方法。串行口方式0是移位寄存器工作 方式,可借助外接串入并出的移位寄存器扩展并 行输出口,也可通过外接并入串出的移位寄存器 扩展并行输入口。由于采用串行输入输出的方法, 所以数据传输速度较慢。
(4)当执行指令MOVX A,@Ri和MOVX @Ri,A时,寄存 器Ri的内容操作数地址的低8位,将自动写入P0口并锁
存,操作数地址的高8位必须事先通过MOV P2,#data
指令写入P2口。
8.2.3 汇编语言程序分析与设计
1、任务相关汇编指令
使用示例:用两种方法将外部数据寄存器7E02H单元的 内容送入内部数据存储器35H单元。
P0口转换为数据线,以便传输数据,直到访问周期结束。
从而实现了对地址和数据的分离。
8.1.1 51单片机三总线分析
(2)P2口线第二功能用于进行高8位地址线的扩展
◆在访问片外存储器时,自动进入第二功能,不需要进行设 置。 ◆在一个片外存储器读写周期中,P2口线始终输出地址总线 的高8位,可直接与存储器或接口芯片的地址线相连,无需锁 存。 ◆ P2与P0共同提供了16根地址线,实现了MCS-51单片机系统 64KB的寻址范围。
任务8.1 单片机并行扩展分析 8.1.1 51单片机三总线分析 8.1.2 并行I/O接口扩展认知 任务8.2 简单并行I/O口扩展控制 8.2.1 控制要求与功能展示
2
8.2.2 硬件系统与控制流程分析
8.2.3 汇编语言程序分析与设计 8.2.4 C语言程序分析与设计 8.2.5 基于Proteus的调试与仿真
◆ 扩展芯片地址的确定
如图8-4所示为单片机与74LS245、74LS374接口电路,该电路 采用线选法进行I/O口扩展。
表8-4 芯片型号 74LS245 74LS245与74LS374的片地址 P2.1 0 P2.0 X P0.7~P0.0 X
P2.7~P2.2 X
74LS374
X
X
0
X
其中“X”表示与芯片地址无关的地址位,简称无关位,取0或1都可以。
(3)控制总线CB(Control Bus)
◆控制总线实际上就是一组控制信号线,包括由
单片机发出的控制信号以及从其他部件送给单片 机的请求信号和状态信号。 ◆每一条控制信号线的传送方向是单向的固定的, 但由不同方向的控制信号线组合的控制总线则表 示为双向。
8.1.1 51单片机三总线分析
2、MCS-51系列单片机三总线的形成
(4)并行扩展输入/输出口电路地址的确定及使用
◆ 扩展芯片地址的使用
在确定好每片芯片的地址后,单
片机就可对其进行读写操作,读写时 先发送芯片地址,选通芯片,接着进 行读写数据。
8.2.2 硬件系统与控制流程分析
2、任务控制流程分析
图8-7 简单并行I/O口扩展控制流程
8.2.3 汇编语言程序分析与设计
的值),即外部数据存储器16位地址是由P0口和 P2口向外部地址总线发出的。
8.2.3 汇编语言程序分析与设计
1、任务相关汇编指令
(3)当执行指令MOVX A,@DPTR和MOVX @DPTR,A时,寄 存器DPH(DPTR的高8位)的内容自动写入P2口,寄存器 DPL(DPTR的低8位)的内容自动写入P0口并锁存。
◆地址总线的数目决定着 可以直接访问的存储单元 的数目。N位地址可以产 生2 N 个连续地址编码,
N
◆地址总线是单向的,只能 由单片机向外发出。
可访问2 个存储单元。 ◆ MCS-51单元有16根地 址线,存储器或I/O接口 扩展最多可达64KB,即216 个地址单元。
8.1.1 51单片机三总线分析
◆译码法 当应用系统中扩展芯片较多时,单片机空余的
高位地址线不够用。这时常用译码器对空余的高位地
址线进行译码,而译码器的输出作为“片选”控制线。 常用的译码器有3/8译码器74LS138、4/16译码
器74LS154等。
8.2.2 硬件系统与控制流程分析
(4)并行扩展输入/输出口电路地址的确定及使用
8.1.2 并行I/O接口扩展认知
3、I/O扩展中应注意的几个问题
1
访问扩展I/O的方法与访问外部数据存储器完全
相同,使用相同的指令。
2
扩展的I/O与片外数据存储器统一编址,分配给
I/O端口的地址不能再分配给片外数据存储单元,且与 程序存储器无关。
3
展多片I/O芯片或多个I/O设备时,注意总线驱
动器的能力问题。
8.1.2 并行I/O接口扩展认知
2、并行I/O扩展常用芯片
1
TTL/CMOS锁存器/缓冲器芯片:如 74LS377、74LS374、74LS373、 74LS273、74LS244、74LS245等。
2
通用可编程I/O接口芯片:如8255、
8279等。
3
ቤተ መጻሕፍቲ ባይዱ
可编程阵列:如GAL16V8、GAL20V8 等。
74LS245 芯片
74HC32芯片
单片机 74LS374芯片
按键指示灯
实物运行视频
任务8.2 简单并行I/O口扩展控制
8.2.1 控制要求与功能展示
简单并行I/O口扩展控制电路原理图
8.2.2 硬件系统与控制流程分析
1、任务硬件系统分析
如电路原理图所示,该电路实际上是
通过单片机的三总线结构,外扩单片机的
8.2.2 硬件系统与控制流程分析
(4)并行扩展输入/输出口电路地址的确定及使用
如果与芯片地址无关的地址线引脚都 取0,那么74LS245与74LS374的地址都是
0000H。
如果与芯片地址无关的地址线引脚 都取1,那么74LS245与74LS374的地址分 别是FDFFH、FEFFH。
8.2.2 硬件系统与控制流程分析
8.2.3 汇编语言程序分析与设计
程序初始部分
汇编程序
主程序MAIN
汇编程序
8.2.4 C语言程序分析与设计
1. 绝对地址访问宏定义头文件absacc.h
例如:
XBYTE[0XFD3F]
XBYTE是一个地址指针,它在文 件absacc.h中由系统定义,指向外 部RAM的0000H单元,XBYTE后面中括 号[ ]中的数值是指偏离0000H的偏 移量,例中XBYTE[0XFD3F]表明访问 外部地址为0XFD3F的外部RAM。
的功能是外部数据存储器或扩展I/O口与累加器A之间的 数据传送。
8.2.3 汇编语言程序分析与设计
1、任务相关汇编指令
(1)在以上4条格式指令中,DPTR的取值范围是:
0000H~0FFFFH;Ri的取值范围是XX00H~XXFFH。
(2)由于MOVX类指令是专访外部数据存储器和外
部接口的指令,因此它的操作数地址(DPTR或Ri
并行I/O口扩展控制
项目8 并行I/O口扩展控制
知识与能力目标
1
2 3 4 5
理解单片机三总线结构及其扩展使用方法
理解并掌握单片机外部扩展单元地址的分析与确定
学会I/O口扩展控制程序的分析与设计 掌握串口与PC通信的接口电路及程序的分析与设计
熟练使用Proteus进行单片机应用程序开发与调试
项目8 并行I/O口扩展控制
8.1.2 并行I/O接口扩展认知
所有扩展的I/O口或相当于I/O口的外设以及通过I/O
口连接的外设,均与片外数据存储器统一编址,访问I/O
口的指令就是访问外部数据存储器的指令(MOVX)。
对于数据存储器来说,或者是单片机读取存储器的数 据,或者是单片机将数据写入存储器,而单片机与外设所 能进行的无非是数据的输入或输出,也就是说,单片机与 外设进行的只是数据的传输,所以,外设或I/O口可当作数 据存储器进行扩展。
8.1.2 并行I/O接口扩展认知
3、I/O扩展中应注意的几个问题
4
I/O扩展时必须考虑与之相连的外设硬件特 性,如驱动器功率、电平、干扰抑制及隔离等。
5
在软件设计时,I/O口对应初始状态设置、 工作方式选择要与外接设备相匹配。
任务8.2 简单并行I/O口扩展控制
8.2.1 控制要求与功能展示 按键
0
DIR 0 B端数据→A端数据
0
1
1
×
A端数据→B端数据
高阻
8.2.2 硬件系统与控制流程分析
(1)74LS245扩展芯片的介绍
表8-3 Dn H L ×
74LS374功能特性 CLK
OE
L L
Qn H L Z
×
H
8.2.2 硬件系统与控制流程分析
(3)单片机的片选方法
保证每次读或写时,只选中某一片存储器芯片或 I/O接口芯片。
8.1.1 51单片机三总线分析
1、51单片机的三总线
总线就是连接系统中各扩展部件的一组公共信号线。按照功 能可分为地址总线AB、数据总线DB和控制总线CB。
8.1.1 51单片机三总线分析
1、51单片机的三总线 整个扩展系统以单片机为核心,因为 扩展部件是在单片机芯片之外进行的,通 常称扩展的ROM为外部ROM,称扩展RAM为
(3)控制信号
构成系统的控制总线的控制信号包括: 1)ALE(30)是锁存信号,用于进行P0 口地址线和数据线的分离。 2) PSEN (29)是程序存储器读选通控制 信号。 3) RD (17)、WR (16)分别是外部数 据存储器的读、写选通控制信号。 4)EA (31)是程序存储器访问控制信号。
输入输出接口电路。输入采用三态门
74LS245,输出采用8D触发器(锁存器) 74LS374,因此,要分析理解以上的电路 设计,必须先学习74LS245与74LS374芯片 的部分知识。
8.2.2 硬件系统与控制流程分析
(1)74LS245扩展芯片的介绍
表8-2 74LS245功能特性
输入
功能
OE
(2)数据总线DB(Data Bus)
◆数据总线用于在单片机与存储器之间或单片机与 I/O端口之间传送数据。 ◆数据总线是双向的,可以进行两个方向的数据传 送。 ◆数据总线的位数与单片机处理数据的字长一致。 MCS-51单片机字长8位,所以它的数据总线位数也 是8位。
8.1.1 51单片机三总线分析
8.1.1 51单片机三总线分析
(1)P0口线用作数据线/低8位地址线
P0口线的第二功能是地址线/数据线分时复用功能。 在访问片外存储器时,自动进入第二功能,不需要进行 设置。
在一个片外存储器读写周期中,首先P0口输出低8
位地址,然后以ALE为所锁存控制信号,确保低8位地址
信息在消失前被送入锁存器暂存起来并输出,作为地址 总线的低8位,直到访问周期结束。地址信号被锁存之后,
8.1.2 并行I/O接口扩展认知
1、单片机I/O口扩展方法
(1)总线扩展方法
总线扩展的方法是将扩展的并行I/O口 芯片连接到MCS-51单片机的总线上,即数据总
线使用P0口,地址总线使用P2和P0口,控制总
线使用部分P3口。这种扩展方法基本上不影响 总线上其他扩展芯片的连接,在MCS-51系列单 片机应用系统的I/O扩展中被广泛应用。
线选法
片选 方法
常 用
地址译码法
8.2.2 硬件系统与控制流程分析
(3)单片机的片选方法
◆ 线选法
一般是利用单片机 的最高几位空余的 线选法常用于应用 系统中扩展芯片较 少的场合。
地址线中一根作为
某一片存储器芯片 或I/O接口芯片的 “片选”控制线。
8.2.2 硬件系统与控制流程分析
(3)单片机的片选方法
1、任务相关汇编指令
累加器A与外部RAM(或外部接口)数据传送指令:MOVX
使用格式:MOVX A,@DPTR MOVX A,@Ri 或 或 MOVX MOVX @DPTR,A @Ri,A
使用说明:MOVX是CPU与外部数据存储器的数据传送操作
指令,其中x为external(外部)的第二字母。这组指令