可编程并行接口8255
- 格式:doc
- 大小:37.00 KB
- 文档页数:6
8255可编程并⾏接⼝知识点总结可编程并⾏接⼝8255知识点总结8255A 是INTEL系列的并⾏接⼝芯⽚,由于它是⼀种可编程的外部接⼝部件,通常作为微机系统总线与外部设备的接⼝控制部件,可通过软件来设置芯⽚的⼯作⽅式,⽤8255A 连接外部设备时,通常不需要附加外部电路,给使⽤带来很⼤的⽅便。
1、内部结构2、引脚说明8255作为主机与外设的连接芯⽚,必须提供与主机相连的3个总线接⼝,即数据线、地址线、控制线接⼝。
同时必须具有与外设连接的接⼝A、B、C⼝。
由于8255可编程,所以必须具有逻辑控制部分,因⽽8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。
(1)与CPU连接部分根据定义,8255能并⾏传送8位数据,所以其数据线为8根D0~D7。
由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C⼝及控制寄存器,故地址线为两根A0、A1。
此外CPU要对8255进⾏读、写与⽚选操作,所以控制线为⽚选、复位、读、写信号。
各信号的引脚编号如下:总线分类:(2)与外设接⼝部分8255有3个通道A、B、C与外设连接,每个通道⼜有8根线与外设连接,所以8255可以⽤24根线与外设连接,若进⾏开关量控制,则8255可同时控制24路开关。
①数据端⼝A、B、C端⼝A(PA0-PA7):对应了1个8位的数据输⼊锁存器和1个数据输出锁存/缓冲器。
所以A 作为输⼊或输出时,数据均受到锁存。
端⼝B(PB0-PB7):对应了1个8位的数据输⼊缓冲器和1个数据输出锁存器/缓冲器。
所以B 输⼊锁存,输出不受到锁存。
端⼝C(PC0-PB7):对应1个8位数据缓冲器和1个数据输出锁存/缓冲器,所以C输⼊不锁村,输出锁存。
当8255⼯作于应答I/O⽅式时,C⼝⽤于应答信号的通信。
A、B组的逻辑控制功能A组:组成:端⼝A(PA0-PA7)和端⼝C的⾼4位(PC4-PC7)这⼏个端⼝由A组统⼀进⾏逻辑控制。
可编程并行接口实验(8255A方式1)实验目的掌握8255A工作方式1的使用方法;进一步掌握编写中断服务程序的方法。
实验内容1.8255A选通行输出实验,具体要求:(1)设置8255A的A 口工作在方式1输出;(2)每按一次单脉冲按钮产生一个正脉冲使8255A产生一次中断;(3)设计中断服务程序:依次输出01H,02H,04H,08H,10H,20H,40H,80H。
使L0—L7依次发光。
2.8255A选通行输入实验,具体要求:(1)设置8255A的A 口工作在方式1输入;(2)每按一次单脉冲按钮产生一个正脉冲使8255A产生一次中断;(3)设计中断服务程序:读取开关表示的ASCII码,在屏幕上显示其对应的字符。
实验连线1实验内容1连线(1)8255A芯片的A口PA7~PA0连发光二极管L7~L0;(2)PC3连接IRQ;(3)PC6连接单脉冲发生器。
2实验内容2连线(1)8255A芯片的A口PA7~PA0连逻辑开关K7~K0;(2)PC3连接IRQ;(3)PC4连接单脉冲发生。
流程图这是试验2的流程图,实验1相似实验代码试验2的代码是在试验1的代码基础上稍作改动,这里只列出试验2的代码:ASSUME CS:CODE,DS:DATADATA SEGMENT ;数据段定义IOPORT EQU 5400H-280HIOPORT_CENT EQU 5000H ;9054芯片的I/O起始地址MASKZ EQU 0FBH ;8259A主片屏蔽码MASKC EQU 0F7H ;8259A从片屏蔽码INTNUM DW 0 ;保存ES的定义量INTNUMSE DW 0 ;保存BX的定义量DA TA ENDSSTACK1 SEGMENT STACK ‘STACK1’DB 50 DUP(?)STACK1 ENDSCODE SEGMENT ;代码段定义START:MOV DX,IOPORT+28BH ;根据实验连线,此次实验控制口为540BH MOV AL,0B0H ; 设置8255A的控制关键字(设置成方式1,端口A输入) OUT DX,ALCLI ;关中断MOV DX,IOPORT_CENT+68H ;设置9054芯片使能寄存器IN AX,DXOR AX,0900HOUT DX,AX;得到原中断向量并保存MOV AH,35H ;取中段向量MOV AL,73H ;针对本台计算机查表得出中断类型号为73HINT 21HMOV INTNUMSE,BX ;保存BXMOV AX, ES ;保存ESMOV INTNUM, AX;设置新中断向量MOV AX,CSMOV DS,AXMOV DX,OFFSET INTPROC ;设置新的中断向量MOV AL,073HMOV AH,25HINT 21H;设置中断屏蔽寄存器IN AL,21H ;8259A主片的中断屏蔽寄存器端口地址为21HAND AL,MASKZ ;中断屏蔽寄存器中主片相应位置1,本实验中第三位置1 OUT 21H,ALIN AL,0A1H ;8259A从片的中断屏蔽寄存器端口地址为0A1HAND AL,MASKCOUT 0A1H,AL ;中断屏蔽寄存器中从片相应位置1,本实验中第四位置1 STI ;开中断MOV AL,00001001B ;设置PC4为1MOV DX,IOPORT+28BHOUT DX,ALOUTER:MOV AH,01H ;判断是否有任意键按下INT 16HJZ OUTER ;没有键按下程序重复MOV AX, INTNUM ;恢复原中断向量MOV DS,AXMOV DX, INTNUMSEMOV AL,073HMOV AH,25HINT 21H;恢复中断屏蔽寄存器IN AL,21HOR AL,04HOUT 21H,ALIN AL,0A1HOR AL,08HOUT 0A1H,ALMOV DX,IOPORT_CENT+68H ;关闭9054IN AX,DXOR AX,0F6FFHOUT DX,AXMOV AH,4CH ;有键按下,程序结束,返回DOS界面INT 21H;中断服务子程序INTPROC:PUSH AX ;寄存器入栈保护PUSH BXPUSH CXPUSH DXPUSH DSSTI ;开中断MOV CX,0FFFFHH: LOOP HMOV DX,IOPORT+288H ;A口输入IN AL,DXMOV DL,AL ;输出开关所对应的字符MOV AH,02HINT 21HMOV AL,20H ;发出EOI结束中断OUT 20H,ALOUT 0A0H,ALCLI ;关中断POP DS ;寄存器出栈POP DXPOP CXPOP BXPOP AXIRET ;中断返回CODE ENDSEND START结果描述试验1:每按一次单脉冲,L0~L7依次发光。
第 6 章可编程并行I/O接口8255A案例6.1:8255读取并显示开关状态1)要求:正确设定8255A并行端口的工作方式,设计电路并编制程序,实现将PB口的开关状态通过PA口的发光二极管显示出来。
2)目的:通过了解8255A芯片引脚的内部结构,掌握输入输出的实验方法,正确应用8255A的各个端口。
案例6.1实现——8255读取并显示开关状态1.实现过程设定8255A的PA口和PB口为方式0,并指定PB口所连接的开关为输入,PA口所连接的发光二极管为输出,通过编写程序,由8086CPU将PB口的开关状态读入并通过PA口输出,以显示开关的状态。
2.电路原理图的设计利用Proteus对本案例仿真连接如图 6.1所示。
该仿真电路以错误!未找到引用源。
作为基本的原理图。
采用74LS373作为地址锁存器保存端口地址,对于8255A的片选信号CS直接接地使其处于有效状态。
在程序中设定PB 为输入端口,PA为输出端口。
电路将8个开关的状态通过8255A的PB口送入CPU,经过处理后,将数据从8255A的PA送出到发光二极管进行显示。
例如,若开关k0处于闭合状态,则发光二极管D1应处于发光状态。
图 6.1 8255A读取开关状态并显示仿真效果图3.案例汇编程序设计该案例中所使用的程序代码如下所示。
CODE SEGMENT 'code'ASSUME CS:CODESTART: ;假设A口、B口、C口及控制端口地址分别为:20H, 22H, 24H, 26H MOV AL,82H ;控制字,1 0000 010,A口输出(初始输出全为0),B口输入OUT 26H,AL ;送控制端口N: IN AL,22H ;从B口读入OUT 20H,AL ;从A口输出JMP NCODE ENDS案例6.2:8255A实现键盘接口1)要求:正确设定8255A并行端口的工作方式,设计电路并编制程序,利用PC口的高4位和低4位实现键盘的扫描,并利用数码管显示对应键值。
图一、产生500us方波图二、按键控制LED亮
图三、流水灯依次点亮4、实验程序流程框图和程序清单
程序一、
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP ZHP
ORG 0100H
MAIN: MOV DPTR, #03H
MOV A, #95H
MOVX @DPTR, A
MOV TMOD, #02H
SETB EA
SETB ET0
MOV TH0, #06H
图四、产生500us方波图五、按键控制LED亮
图六、流水灯依次点亮
6、实验总结
本次实验是使用8255扩展外部I/O口,在本次实验中,我认为最为重要的就是电路图的设计以及其地址的计算,在弄清楚该问题的情况下,本次实验就没有什么很大的问题了。
7、思考题
1、在8255PC口上外接8个发光二极管,利用8255PC口的置位/复位控制字控制其按某种规律变化。
程序三、
CJNE R1, #11H, ZHP。
常用可编程并行接口芯片8255A (82C55)功能(该内容可参考学习指导书或别的微机原理教材)一.芯片功能及引脚1.具有三个八位端口:PA 、PB 和PC 口,分为二组: A 组:PA7---PA0,PC7---PC4 B 组:PB7---PB0,PC3---PC0 具有三钟工作模式:方式0:基本输入输出方式。
方式1:选通输入/输出方式。
方式2:双向工作方式(A 组具有)。
2. 面向系统总线引脚D7---D0:数据线(双向) RESET :复位输入线,高有效。
/RD :读信号,低有效。
/WR :写信号,低有效。
/CS :片选信号,低有效。
A1、A0:地址输入,具有四个可以访问的端口: A 1 A 0 = 00 为PA 数据口。
A 1 A 0 = 01 为PB 数据口。
A 1 A 0 = 10 为PC 数据口。
A 1 A 0 = 11 为控制口。
3. 端口线(面向外设)具有三个八位端口PA7---PA0;PB7---PB0;PC7---PC0。
分为二组:A 组和B 组,在选通或双向工作方式下PC 口用作应答信号。
4.8255A 与系统总线的连接(将上图画完整) 设采用线性译码(A9,A8没参与),基本地址为: 40H PA 口(数据口) 注意:设总线为双体结构 42H PB 口(数据口) A 0 : 参与片选偶地址有效 44H PC 口(数据口) AEN :为PC 机的控制信号(执行IN/OUT 指令时为低) 46H 控制口A 组B 组A 7A 6A 5A 4A 3M/IO A 0AEN二. 8255A 的工作方式选择1.工作方式控制字(写入控制口,将选择8255A 的工作方式)2.位 复位/置位控制字(写入控制口,对选中的PC i 进行位操作)三.8255A 工作方式1.方式0:基本的输入/输出(可作为一般的输入/输出线使用)此方式下可获得多至24条端口线,分二大组四小组,每小组可通 过编程独立设置为输入或输出。
8255工作原理
8255是一种常用的并行输入/输出设备,它可以连接到微处理器系统并扩展其输入和输出的数量。
8255的工作原理如下:
1. 模式设置:8255有三个可编程的I/O模式,分别是模式0、模式1和模式2。
模式0是最简单的模式,它将所有的I/O端口设置为输出端口。
模式1将端口设置为输入或输出,而模式2将端口分为两个8位I/O端口。
2. 控制寄存器:8255有一个控制寄存器用于设置I/O模式和其他参数。
寄存器的位代表不同的控制功能,可以通过写入特定的二进制位组合来设置相应的功能。
3. 数据传输:当8255设置为输入模式时,它可以将外部设备的数据读取到内部存储器中。
当设置为输出模式时,它可以将内存中的数据传输到外部设备。
数据的传输是通过读取或写入指定的I/O端口地址来实现的。
4. 端口地址选择:8255有三个8位的端口地址寄存器,用于访问特定的I/O端口。
这些寄存器可以用来选择要读取或写入的端口。
总的来说,8255的工作原理是通过设置模式和控制寄存器来控制数据传输,然后通过读取或写入特定的I/O端口地址来实现与外部设备之间的通信。
8255芯片8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。
8255管脚编辑本段特性(1)一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口.(2)具有24个可编程设置的I/O口,即3组8位的I/O口为PA口,PB口和PC口.它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3).A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定.编辑本段引脚功能RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。
D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
可编程并行接口8255
8255是一种通用的可编程并行I/O接口芯片,有3个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。
CPU通过向8255内部的控制寄存器写入不同的控制字来选择不同的工作方式和位操作。
1)方式控制字
D7:特征位D6D5:A组方式00=方式0 ,01=方式1,1X=方式2
D4:A口0=输出,1=输入D3:C口C7~C4 0=输出,1=输入D2:B组方式0=方式0,1=方式1
D1: B口0=输出,1=输入D0:C口C3~C0 0=输出,1=输入
D7位为“1”时,为方式选择控制字的标识位。
D6、D5位决定A端口的工作方式。
D4位决定A端口工作在输入还是输出方式。
D3位决定C端口高4位PC7~PC4是作为输入端口,还是作为输出端口。
D2位用来选择B端口的工作方式。
D1位决定B端口作为输入还是输出端口。
D0位决定C端口低4位PC3~PC0作出为输入,还是输出
2)C口置位/复位控制字
在8255A芯片初始化时,C端口置1/置0控制字可以单独设置C端口的某一位为0或某一位为1。
控制字的D7位为“0”时,是C端口置1/置0控制字中的标识位,这个控制字只对C口起作
C口复位字
用,任何一位都可以通过按位置位/复位控制字来设置。
注意:对C口的置位/复位控制不是把控制字送到C口,而是由控制口决定各位的状态,是把控制字送到控制口8255提供三种基本的工作方式为:方式0-基本的输入输出,方式1-选通输入输出方式,方式2-双向传送方式。
功能:方式0不使用联络信号,也不使用中断,A口和B口可定义为输入或输出口,C口分成两个部分(高四位和低四位),C口的两个部分也可分别定义为输入或输出。
在方式0,所有口输出均有锁存,输入只有缓冲,无锁存,C口还具有按位将其各位清0或置1的功能。
常用于与外设无条件的数据传送或接收外设的数据。
2)工作方式1(选通输入输出方式)
A口借用C口的一些信号线用作控制和状态信号,组成A 组,B口借用C口的一些信号线用作控制和状态信号,组成B组。
在方式1下,C口的某些位被占用。
方式1的输出:当A口工作于方式1且用作输出口时,C口的PC7线用作输出缓冲器满OBF信号,PC6用作外设
B口输出
收到数据后的响应信号ACK,PC3用作中断请求输出信号线INTR。
当B口工作于方式l且用作输出口时,C口的PC1线用作输出缓冲器满OBF信号,PC2用作外设收到数据后的响应信号ACK,PC0用作中断请求输出信号线INTR。
功能:方式2是A组独有的工作方式。
外设既能在A口的8条引线上发送数据,又能接收数据。
此方式也是借用C口的5条信号线作控制和状态线,A口的输入和输出均带有锁存。
应用实例:
例. 用一片8255A循环检测K1、K2的状态,控制红、绿、黄三灯的点亮,连线如图所示。
;要求:K1闭合,K2闭合时,1,2亮;
;K1闭合,K2断开时,3,4亮;
;K1断开,K2闭合时,5,6亮;
;K1断开,K2断开时,7,8亮。
;已知8255A的端口地址为300H~303H,编制初始化程序以及控制程序(只写出主要的程序段)。
CODE SEGMENT
ASSUME CS:CODE
START: MOV AL,10010000B
MOV DX,303H
OUT DX,AL AGAIN: MOV DX,300H
IN AL,DX
AND AL,03H
CMP AL,00H
JZ L1
CMP AL,01H
JZ L2
CMP AL,02H
JZ L3
MOV AL,00111111B
JMP L4
L1: MOV AL,11111100B
JMP L4
L2: MOV AL,11110011B
JMP L4
L3: MOV AL,11001111B
JMP L4
L4: MOV DX,302H OUT DX,AL
JMP AGAIN
MOV AH,4CH
INT 21H CODE ENDS
END START。