第14讲:MCS-51单片机系统的并口IO扩展(8255)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8255A 74LS373
1D ~ 8D 2Q 1Q G /OC
8 8
微型打印机
P0
PA0~PA7
A1 A0 PC0 PC7
DB0~DB7
8031
ALE /RD /WR RST /EA
BUSY /STB
D0 ~D7 /RD /WR RESET
分析:因为PC0连接BUSY,所以,PC3~PC0为输入,又因PC7连接 /DATA
STROBE ,所以PC7~PC4为输出;STROBE表示重复的意思;/DATA STROBE 数据选通信号。作用是通知打印机,8255A要给它传数。 PA口输出,PB口未用。 故 8255A的控制字可设为:1000 0001B=81H 由电路图,得PA口地址:7FFCH(地址的无关位取“1”) PB口地址:7FFDH PC口地址:7FFEH 控制口 : 7FFFH
I/O
I/O INTRA /STBA IBFA × ×
I/O
I/O INTRA × × /ACKA / OBFA
(4)8255A的4个端口的地址
①8255各端口的地址如何确定?
CS
0 0 0 0 1
②对8255各端口的操作?
A1
0 0 1 1 ×
A0
0 1 0 1 ×
选中的端口
PA PB PC 控制寄存器 芯片未选中
C口:除了单独作为8位输入、输出口使用外, 还可以按控制命令被分成两个4位端使用, 分别作为A口和B口输出控制信号和输入 状态信号。
A组控制和B组控制:这两组控制电路由 工作方式控制字来设定两组端口的工作 方式和读/写操作。 A组的控制电路管理A口和C口的高5位 (PC7~PC3)的工作方式和读/写操作。 B组的控制电路管理B口和C口的低3位 (PC2~PC0)的工作方式和读/写操作。
8255A三个8位并行数据端口都有自己各自的特点。 A口:具有一个8位数据输出锁存/缓冲器和一个数据输入锁存器。在数据 输入或输出时,数据均受到锁存。可对PA7~PA0设定为三种工作方式: 8位输入、输出或双向。 B口:具有一个8位数据输出锁存/缓冲器和一个数据输入缓冲器。可编程 为两种工作方式:8位输入或输出。
ORG 1000H PRINT:MOV DPTR,#7FFFH MOV A,#81H ;控制口地址
;控制字
MOVX @DPTR,A ;写入 ;数据指针,指向源数据的首地址 ;64个数
NEXT: MOV DPTR,#7FFEH ;PC口地址 MOV A, #80H ;使PC7为高电平 MOVX @DPTR,A ;输出/DATA STR OBE为 ;高电平;无效,不准备送数
可编程如下: MOV R0,#03H ;R0←03H,8255A控制口地址 MOV A,#07H ;A←07H,将PC3置1控制字 MOVX @R0,A ;(03H)←07h,送控制字,置PC3=1 MOV A,#0AH ;A←0AH,将PC5置0控制字 MOVX @R0,A ;(03H)←0AH,送控制字,置PC5=0
(1)8255A可编程并行I/O接口的片内结构
8255A具有三个8位并行I/O口, 称为PA口、PB口和PC口,其中 PC口又分为高4位和低4位口。 通过控制字设定可以选择三种 工作方式:基本输入/输出、选 通输入/输出、PA口为双向总线。 8255A与单片机和外设连接时, 由不同的初始化编程可用于无 条件传送,查询或中断传送, 以完成单片机和外设的信息交 换。
(5)8255A的控制字(两个:工作方式选择、C口控制)
8255的控制
1)工作方式选择控制字
8255A的三个端口工作在什么方式, 是输入还是输出,都是由工作方 式控制字设定。 D2~D0控制B口和PC7~PC4; D6~D3控制A口和PC7~PC4。
注意:用户选择方式1或2时,对 C口的定义无效,C口作为特定的 控制联络线使用(但没有用于控 制联络线的各位,仍用D0、D3定 义。 )
3) 方式2:双向传送(只有A口可以选择方式2)
此时,A口为8位双向传送数据口,C 口的高5位PC7~PC3用来作为指定的A口 输入/输出的控制联络线。 A口工作在方式2时,B口可作为方式 0或者方式1工作,PC2~PC0用作I/O线。
C口在设定为方式1或2时,各 引脚分配的固定功能如右表示。 表中I/O,C口末用的这些线 可以设定为一般的输入/输出线 使用。
课后习题:
P153
控制字格式:
寄存器地址
A口有方式2
(5)8255A的控制字(两个:工作方式选择、C口控制)
2)C口“置0/置1”控制 字 端口C的各位可以单独置1/置0(以
实现用户要求的控制功能) 用D3D2D1 来选择对C口的哪一位 进行操作;用D0来决定对所选中位 置0还是置1。 每次设定只能对C口的一个位置0 或置1 。 D7=0是这个控制字的特征位,CPU 靠这个位来区别共用一个地址 (A1A0=11)的两个字
单片机与控制技术
电气学院:胡学军
第05章:存储器与并行I/O口的扩展
本章主要内容: MCS51单片机的扩展总线(3总线结构与驱动能力) 在总线上扩展程序存储器和数据存储器的方法实例 串行存储器的扩展 用8255扩展单片机的I/O口(硬件与编程)【本讲内 容】
4、用8255来扩展单片机的并行I/O端口
在上述控制引脚中:CS、A1、A0可决定8255A的4个端口寄 存器地址。RD、WR可以决定CPU对8255A的读/写操作方式选择。
(3)8255A的三种工作方式
用户可以通过CPU对8255A方式控制字的设定来选择三 种不同的工作方式。
1)方式0:基本输入/输出方式 这种方式不需要选通信号 (?)。PA、PB和PC中任何一 个端口都可以通过方式控制字 设定为输入或输出。用于无条 件数据传送或查询方式传送数 据。
(2)8255A芯片引脚功能
8255A为双列直插式40条引脚, 除了电源VCC和地GND以外, 其它引脚信号可分为两组。 1)和外部设备一边相连接的: PA7~PA0 为 A 组 数 据 信 号 线 ; PB7~PB0为B组数据信号线。 这两组线根据用户需要工作方式 与外部设备的对应端连接 2)和单片机一边相连接的:D7~D0 为8255A双向数据总线;CS为片 选端,低电平有效;RD和WR为 读/写有效控制端。当CS=0时, RD和WR才能对8255A有效。
A1、A0为端口地址选择端:确定8255A内部3个数据口和一个控制 寄存器地址。如下所示 A1 A2 选中端口地址 0 0 —— A端口 0 1 —— B端口 1 0 —— C端口 1 1 —— 控制寄存器地址 RESET:复位端,高电平有效。当RESET=1 时8255A复位,内部控 制寄存器被清除。所有端口被设定为输入。
与方式选择控制 字相区别
8255的控制 寄存器地址
对8255A进行初始化程序设计 例如: 要求A口工作在方式 0,输入;B口为方式1,输出;C口高4位
PC7~PC4为输入;C口低4位PC3~PC0为输出。设控制端口地址为F003H。
分析:控制方式寄存器各位含义得8255A对应的工作方式选择控 制字为10011100B=9CH。 实现上述要求的初始化程序为 MOV DPTR,#0F003H ;F003H为8255A控制寄存器地址 MOV A,#9CH ;8255A工作方式字为9CH MOVX @DPTR,A ;(R1)←A,方式字送入8255A控制口 ……
C口的 位 PC0
方式1(A口、B口) 输入 INTRB 输出 INTRB
方式2(仅用于A口) 输入 I/O 输出 I/O
PC1
PC2 PC3 PC4 PC5 PC6 PC7
IBFB
/STBB INTRA /STBA IBFA I/O I/O
/OBFB
/ACKB INTRA I/O I/O ACKA OBFA
(6)8255A与8051的接口实例
实例:硬件电路如图。用户需要将C口的PC3位置1,而将PC5置0 。
分析:根据A1、A0和/CS线与MCU 的连接关系,得8255A的 A、B、C 口和控制寄存器地址依次为00H、 01H、02H和03H。 如果用户需要将C口的PC3位置1, 而将PC5置0,则需要分两次写入置 1/置0控制字。将PC3置1的控制字为 0000 0111B=07H;将PC5置0的控制 字为00001010B=0AH。
在MCS51系列单片机中,提供给用户的I/O线只有P1 口和P3口的某些位线可作为输入、输出口线使用。因 此,在较复杂的应用中仅仅依靠单片机本身的这些端 口资源并不够用。为了解决这一问题,需要我们设计 人员来利用通用的接口芯片(8255、8155、8253等) 来并行I/O、定时器等外部接口。 本节以可编程并行接口芯片8255A为例来介绍接口 芯片与MCS51单片机的接口技术。
2)方式1:选通输入/输出方式 三个口被分成两组: A组包括A口和PC7~PC3,A口可由编程设定为输入或输出口;PC7~PC4作 为输入/输出操作的选通信号和应答信号。 B组包括B口和PC3~PC0,这时C口作为8255A和外设(或CPU)之间传送某 些状态信息及中断请求信号。这些联络信号与C口的数位之间有着固定关 系,不是由用户设定的。
WAIT: MOVX A,@DPTR ;查询打印机状态 JB ACC.0, WAIT ;若PC0即BUSY = 1忙,则等待
MOV DPTR , #7FFCH
MOV A , @R1 MOVX @DPTR , A
;若BUSY = 0空闲,则指向PA口
;输出数据
MOV DPTR , #7FFEH库 ;指向PC口 MOV A , #00H MOVX @DPTR , A ACALL PDELAY ;8255A输出/DATA STR OBE信号 ;通知打印机,给它传数。
在8255A C口的PC3置1和置0控制中,第二次写入的0AH置 PC5=0的操作不影响第一次写入的置PC3=1的状态。
实例2:设单片机8031与微型打印机之间的数据传送采用查询方式。要
求将存放在8031单片机内RAM中以30H为首地址的64个连续单元中的内容 打印输出,试编程。
P2.7 8
/CS
;调延时子程序,以形成一个宽度 ;的负脉冲
INC R1 DJNZ R2 , NEXT SJMP $ ………...
;判断打印输出完成否?
PDELAY:(延时程序略) END
本讲小结
1、8255A有几个并行I / O口?几种工作方式? 2、工作方式控制字、置位/复位控制字是如何定义 的? 3、掌握例程