第六章单片机系统的并行扩展c方案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8031扩展 8KB RAM Intel 6264
A15 A8# A12
A0# A7
MCS- 51# #
D0# D7 WR RD
# 5V
A0# A7 A8# A12 CE CS
6264
D0# D7
WE OE
四、程序与数据存储器扩展: 单片机连接 8KB EPROM 2764、8KB RAM 6264 各一片。
五、8255A编程规定
初始化编程:往控制口写入控制字,确定8255A工作方式。 方式控制字:D7=1;C口位置位/复位控制字:D7=0。
例:8255A的A口以方式0输出单片机的片内RAM数据,B口以方 式1输入…(设控制口的口地址为7F03H)
PIOS:
MOV DPTR,#7F03H ;控制口口地址AM指针加1
DEC 0FH
;长度减1
…
;执行其它任务
外部中断1服务程序:
PINT1:PUSH ACC
;现场保护(A、DPTR 等进栈)
PUSH DPH
PUSH DPL
PUSH PSW
MOV PSW,#8
;当前工作寄存器区切换到1区
MOV A,@R0
;从B口输出下一个数据打印
1
0
1
5#单元
0
1
1
X
…
X
1
1
0
6#单元
0
1
1
X
…
X
1
1
1
7#单元
0#芯片
全地址译码法
所有片选地
址线全部参加译 码。 1#芯片只有 A13
唯一的地址与其 A14 存储单元对应, 不存在地址重叠。 A15
常用地址译码器:
#
2-4译码器:74LS139 3-8译码器:74LS138 # 5V
4-16译码器:74LS154
实现数模转换的功能部件称为D/A转换器,衡量D/A转换器 性能的主要参数有:
•分辨率:即输出的模拟量的最小变化量,n位的D/A转 换器分辨率为2-n; •满刻度误差:即输入为全1时输出电压与其理想值之 间的误差,一般为2-(n+1); •输出范围; •转换时间:指从转换器的输入改变到输出稳定的时间 间隔; •是否容易和CPU连接。
A13 A8# A12
A0# A7
MCS- 51# #
A0# A12 CE
6264 CS
WE D7# D0 OE
A0# A12
+5V
CE
+5V
PGM 2764
D7# D0 OE
D0# D7
PSEN RD WR
# 6# 8 MCS# 51# # # # # 6264# # # 2764# # # # #
第六章 单片机系统扩展技术
1 51系统并行扩展原理 2 存储器的扩展 3 并行接口的扩展 4 D/A接口的扩展 5 A/D接口的扩展
6-1-1 并行扩展总线
P2口作为单片机的地址总线高八位A15~A8, P0为地址总线低八位A7~A0和数据总线 D7~D0复用。
地址锁存原理(图6-1)。
注意四个控制引脚的电平变化:ALE、PSEN、 RD 、WR。
B口:由一个8位数据输出锁存/缓冲器和一个8位数据输入 缓冲器(输入不锁存,不可工作在方式2)组成。可设定为8位输 入或输出方式,但不能设定为双向输入/输出方式。
C口:由一个8位数据输出锁存/缓冲器和一个8位数据输入 缓冲器(输入不锁存)组成。在方式1和方式2下,分为两个4位 口使用:高四位属于A口,传送A口上外设的控制/状态信息, 低四位属于B口,传送B口上所需的控制/状态信息。
一、8255A的引脚功能
1.数据总线(D7~D0) 传送CPU与8255A之间的数据、控制字和状态字。
2.控制总线(6条) CS:片选线 A1和A0:口选线,用于寻址A口、B口、C口以及控制口寄
存器中的一个。 RD和WR:二者必须相反,控制CPU与8255A之间数据的传
送和流向。 RESET:高电平复位,使内部寄存器全部清零。
主程序:
MAIN:MOV 8,#30H
;RAM首址→ 1区R0
MOV 0FH,#20H ;长度→1区R7
SETB SETB MOV MOV
EA
;开中断
EX1
;允许外中断,电平触发方式
DPTR,#7FFFH ;将8255A的PC2(即INTEB)置“1” A,#05H
MOVX @DPTR,A ;
MOV A,#0BCH ;写方式控制字(B口方式1输出) MOVX @DPTR,A MOV DPTR,#7FFDH ;从PB口输出第一个数据打印 MOV A,30H
01
寄存器B(B口)
10
寄存器C(C口)
11
控制字寄存器(控制口)
RESET:复位控制端。为1时,8255A复位。复位状态:控制
字寄存器被清零。
4.A组和B组控制块
每个控制块接收来自读/写控制逻辑的命令 和内部数据总线的控制字,并向对应口发出适当 的命令。
A组控制块控制A口及C口的高4位。 B组控制块控制B口及C口的低4位。
Y0
A
Y1
B
Y2
C
Y3
1G
Y4
2G
Y5
G
Y6
74LS138
Y7
CS
0# # #
A0 A1
A0 A1
( 1FF8H# 1FFFH) A2 A2
CS 1# # # A0 A0 A1 . . . A1
( 2000H# 3FFFH) A12 A12
. . .
CS 7# # # A0 A0 A1 A1
( 0FFFCH# 0FFFFH)
6-4 并行接口的扩展
单片机通常通过P0口和P2口构成数据、 地址总线,扩展EPROM、RAM或其它功 能芯片。这样一来,只有剩下的P1口和部 分P3口可提供给用户用作I/O口。因此,在 大部分的MCS-51单片机应用系统设计中都 需要进行I/O口的扩展。
并行接口的扩展
6-4-2 可编程并行I/O扩展接口8255A
部分地址译码法
片选线中 只有一部分参 与译码,其余 部分悬空。有 地址重叠。
Y0
A15
A0
Y1
A14
A1
A13# #
Y2
S
Y3 74LS138
0# # # A0 A0
CS
A1 A1
( 3FFCH# 3FFFH)
1# # # A0 A0
CS
A1 A1
( 7FFCH# 7FFFH)
2# # # A0 A0
方式1输出 OBF :输出锁存器满状态标志输出线。 表示CPU已将数
据输出到此端口。
ACK :设备响应信号输入线。表示外设已取走数据。
INTR:中断请求信号输出线,高电平有效。当 OBF 、ACK 和INTE都为”1”时,INTR被置“1”,发出中断请求 。
(3)方式2(双向选通I/O方式)
方式2仅对PA口有意义。方式2使PA口成为8位 双向三态数据总线口,既可发送数据又可接收 数据。PA口方式2工作时,PB口仍可作方式0 和方式1 I/O口,PC口高5位作状态控制线。
三、8255A的控制字
8255A有 两种控制字, 即方式控制 字和PC口位置 位/复位控制 字。
四、8255A的操作方式
(1)方式0(基本I/O方式)
PA、PB、PC可分别被定义为方式0输入或方式0输出。
–输出具有锁存功能,输入没有锁存。 –适用于无条件传输数据的设备,如读一组开关状态、控制
一组指示灯,不使用应答信号,CPU可以随时读出开关状 态,随时把一组数据送指示灯显示。
二、程序存储器(ROM)扩展: 常用EPROM芯片: Intel 2716(2K×8位)、2732(4KB)、2764(8KB)、
27128(16KB)、27256(32KB)、27512(64KB)。
8031扩展 32KB EPROM Intel 27256
三、数据存储器(RAM)扩展:
常用RAM芯片: Intel 6116(2KB)、6264(8KB)、62256(32KB)。
6-1-2 地址译码方法
CPU根据地址访问外部存储器,即根据地址线上 送 出的地址信息选中某一芯片的某个单元进行读写。逻辑 上,芯片的选择由高位地址译码实现、被选中芯片中单 元的选择则由低位地址信息确定。为了实现单片机与外 部存储器的连接,把单片机的地址线分为片内地址线和
片选地址线两部分。
片选地址线通常直接或通过地址译码器与存储器芯片的片选 端相连,也可以悬空不用。
3.读/写控制逻辑
CS:8255A的片选引脚端;
RD:读控制端。为0时,允许单片机从8255A读取数据或状态
字;
WR:写控制端。为0时,允许单片机将数据或控制字写入
8255A;
A1、A0:口地址选择线。通过A0、A1可选中8255A的四个寄
存器。口地址选择如下:
A1 A0
寄存器
00
寄存器A(A口)
方式1输入
STB:设备的选通信号输入线,低电平有效,通常是外设给 8255A的信号,表示外设给8255的数据已到达引脚。
IBF:端口锁存器满标志输出线,高电平有效。通知外设 数据已从引脚取入锁存器中。
INTE:8255A端口内部的中断允许触发器。 “1”表示中 断允许(手动设置)。
INTR:中断请求信号线,高电平有效。当STB、IBF、 INTE都为”1”时,INTR就置“1” 。
6-5-1 梯形电阻式D/A转换原理:“按权展开,然后相 加”
I I0 I1 I2 VREF 1 1 1
3.并行I/O总线(PA7~PA0、PB7~PB0、PC7~PC0) 传送8255A与外设之间的数据,其中的PC7~PC0还可用作
联络线。 4.电源线(2条)
二、8255A的芯片结构
1.数据总线驱动器(与单片机数据总线相连) 2.并行I/O端口(A口、B口和C口)
A口:由一个8位数据输出锁存/缓冲器和一个8位数据输入 锁存器组成。可设定为8位输入或输出,或双向输入/输出方式。
A14 CS 1# # # A0 A0 A1 . . . A1
( 0A000H# 0BFFFH)A12 A12
A13 CS 2# # # A0 A0 A1 A1
( 0C000H# 0DFFFH)
地址重叠:有两个及以上地址与存储单元对应。
对于0#芯片,X为无关项,即不论X取0或1,对单元的确定
都无影响,故0#芯片中每个单元都有210个重叠地址。当X由全
MOV A,#86H
;写工作方式控制字
MOVX @DPTR,A
MOV DPTR,#7F00H ;A口口地址
MOV A,@R0
;取片内RAM的数据
MOVX @DPTR,A ;由A口输出
…
例6-4 8255A采用方式1工作,CPU采用中断方式控制打印机 把内部RAM中30H开始的32个单元的内容经B口输出打印。
MOV DPTR,#7FFDH
MOVX @DPTR,A
INC R0
;修改指针
DJNZ R7,BACK CLR EX1 SETB F0 BACK:POP PSW
;长度为0,关中断返回 ;置打印结束标志位F0 ;现场恢复(DPTR、A等退栈)
POP DPL
POP DPH
POP ACC
RETI
6-5 D/A接口的扩展
片内地址线通常直接或通过地址锁存器与相应存储器地址线 相连。
按照片选地址线的不同连接方式,单片机
地址译码可分为:
线选法
用某一位地址线
A15 CS 0# # # A0 A0 A1 A1
( 6000H# 7FFFH) A2 A2
直接连到所扩展的芯 片的片选端。
A15、A14、A13 中不能有两根以上地 址线同时为低!!!
“0”
变到全“1”时,0#芯片的地址范围为6000H~7FFFH。
A15基本A地14 址范A1围3 :A610200H~… 6007A3H。 A2 A1 A0
0
1
1
X
…
X
0
0
0
0#单元
0
1
1
X
…
X
0
0
1
1#单元
0
1
1
X
…
X
0
1
0
2#单元
0
1
1
X
…
X
0
1
1
3#单元
0
1
1
X
…
X
0
0
0
4#单元
0
1
1
X
…
X
如:令A口和C口高四位工作在方式0输出方式, B口和C 口低四位工作在方式0输入方式。 MOV R0 , #0FBH ;控制字寄存器地址 MOV A , #83H ;方式控制字 MOVX @R0 , A
(2)方式1(应答I/O方式)
有选通输入和选通输出两种工作方式。
A口和B口皆可独立地设置成这种工作方 式,在方式1下,A口和B口通常用于传 送和它们相连外设的I/O数据,C口用作 A口和B口的握手联络线,以实现中断方 式传送I/O数据。
CS
A1 A1
( 0BFF8H# 0BFFFH) A2 A2
3# # # A0 A0
CS
A1 . . . A1
( 0E000H# 0FFFFH)A12 A12
6-2 存储器的扩展
一、MCS-51用于存储器扩展的外部总线信号: P0.0~0.7:8位数据和低8位地址信号复用; P2.0~2.7:高8位地址信号; ALE:地址锁存允许控制信号; PSEN:片外程序存储器读控制信号; RD:片外数据存储器读控制信号; WR:片外数据存储器写控制信号; EA:片内、外程序存储器选择信号。