可编程并行接口芯片8255A有哪几种工作方式
- 格式:doc
- 大小:21.50 KB
- 文档页数:5
8255a的应用原理图1. 简介8255a是一种常用的并行接口芯片,具有广泛的应用领域。
本文将介绍8255a 的应用原理图及其基本工作原理。
2. 原理图下面是8255a的应用原理图:_______| |Port A ---| || 8255a |Port B ---| || |Port C ---|_______|3. 工作原理8255a是一个可编程的并行接口,它具有3个I/O端口(Port A、Port B、Port C)和多种工作模式。
下面是8255a的工作原理的详细描述:3.1 Port APort A是一个8位的双向端口,可以用于输入和输出。
当将Port A设置为输入模式时,可以通过读取Port A来获取外部输入信号;当Port A设置为输出模式时,可以通过向Port A写入数据来向外部设备发送信号。
3.2 Port BPort B也是一个8位的双向端口,并且可以作为一组控制信号进行使用。
在输出模式下,可以通过向Port B写入数据来控制外部设备的各种功能;在输入模式下,可以通过读取Port B来获取外部设备的状态。
3.3 Port CPort C是一个8位的端口,既可以作为一组数字输入/输出端口,也可以作为一组控制信号端口。
Port C的具体功能取决于模式控制寄存器(Mode Control Register)的设置。
4. 工作模式8255a提供了多种工作模式,可以根据具体的应用需求进行配置。
下面是常用的工作模式介绍:4.1 单工模式在单工模式下,Port A、Port B和Port C分别用作输入或输出。
这种模式适用于只需进行一方向数据传输的场合。
4.2 双工模式在双工模式下,Port A和Port B既可以作为输入,也可以作为输出。
这种模式适用于需要双向数据传输的场合。
4.3 脉冲输出模式在脉冲输出模式下,Port A和Port B可以作为脉冲输出端口。
这种模式适用于需要生成特定频率或脉冲序列的场合。
可编程并行接口实验(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依次发光。
可编程并行接口芯片8255A有哪几种工作方式?每种工作方式有何特点?【解答】方式0:没有固定的用于应答式传送的联络信号线,CPU可以采用无条件传送方式与8255A交换数据。
方式1:有专用的中断请求和联络信号线,因此,方式1通常用于查询传送或中断传送方式。
方式2:PA口为双向选通输入/输出或叫双向应答式输入/输出。
9.2 8255A的方式选择控制字和C口按位控制字的端口地址是否一样?8255A怎样区分这两种控制字?写出端口A作为基本输入,端口B作为基本输出的初始化程序。
【解答】8255A的方式选择控制字和C口按位控制字的端口地址是一样的,通过控制字的最高位D7进行区分:D7=1时,为方式选择控制字;D7=0时,为C口按位控制字。
初始化程序段如下:MOV DX,PORT ;PORT为端口地址MOV AL,10010000BOUT DX,AL9.3 某8255A的端口地址范围为03F8H~03FBH,A组和B组均工作在方式0,A口作为数据输出端口,C口低4位作为状态信号输入口,其它端口未用。
试画出该片8255A与系统的连接图,并编写初始化程序。
【解答】连接图如下:图9-1 8255A与系统的连接图程序如下:MOV AL,81HMOV DX,03FBHOUT DX,AL9.4 试按以下要求对8255A进行初始化编程:(1)设端口A、端口B和端口C均为基本输入/输出方式,且不允许中断。
请分别考虑输入/输出。
(2)设端口A为选通输出方式,端口B为基本输入方式,端口C剩余位为输出方式,允许端口A中断。
(3)设端口A为双向方式,端口B为选通输出方式,且不允许中断。
【解答】(1)端口A、端口B和端口C均为基本输入/输出方式,则为方式0,任何一个口都可用于输入或输出,可出现16种组合,这里只举出2种组合。
若端口A、B为数据输入口;C口的低4位为控制信号输出口,高4位为状态信号输入口,程序段如下:MOV AL,10011010BMOV DX,PORT ;PORT为端口地址OUT DX,ALMOV AL,00001100B ;设PC6为中断信号控制引脚,PC6=0,禁止中断OUT DX,AL若端口A、B为数据输出口;C口的高4位为控制信号输出口,低4位为状态信号输入口,程序段如下:MOV AL,10000000BMOV DX,PORT ;PORT为端口地址OUT DX,ALMOV AL,00001100B ;设PC6为中断信号控制引脚,PC6=0,禁止中断OUT DX,AL(2)端口A为选通输出方式,方式1;端口B为基本输入方式,程序段如下:MOV AL,10100010BMOV DX,PORT ;PORT为端口地址OUT DX,ALMOV AL,00001101B ;设PC6为中断信号控制引脚,PC6=1,允许中断OUT DX,AL(3)端口A为双向方式,方式2;端口B为选通输出方式,程序段如下:MOV AL,11000100BMOV DX,PORT ;PORT为端口地址OUT DX,ALMOV AL,00001100B ;设PC6为中断信号控制引脚,PC6=0,禁止中断OUT DX,AL9.5 采用8255A作为两台计算机并行通信的接口电路,请画出查询式输入/输出方式工作的接口电路,并写出查询式输入/输出方式的程序。
一、知识点:基本概念1.一片8255A端口A有( 3 )种工作方式,端口B有( 2 )种工作方式。
2. 在8255可编程并行接口芯片中,可用于双向选通I/O方式(即方式2)的端口为( A )A. PA口B. PB口C. PC口D. PA和PB3、8255A控制字的最高位D7 = 0 时,表示该控制字为C口按位控制字。
4. 在8255可编程并行接口芯片中,可用于双向选通I/O方式(即方式2)的端口为( A )。
A. PA口B. PB口C. PC口D. PA和PB5.8255A控制字的最高位D7 =(1)时,表示该控制字为方式控制字。
6. 8255A的每个端口的数据寄存器长度为(8)位。
7、8255A的工作方式的三种工作方式分别为:方式0:基本输入输出方式;方式1:选通输入输出方式;方式2:双向选通传送方式。
8.如果CPU通过8255A端口C的某一条线向外部输出连续的方波信号,请:说出两种实现方法;并具体说明怎样实现。
(不必编程)(8分)答:可用2种方法实现:①8255A工作于方式O时,端口C可以指定为输出。
每隔1/2方波周期改变其中一位的状态,其它位不变。
就可以通过端口C的某一条线输出连续的方波。
②用对端口C某一位置位/复位的方法实现。
即每隔1/2方波周期时间,对端口C 的某一位交替进行置位、复位,即可从端口C的某一条线输出连续的方波。
二、知识点应用题1、接口电路如图所示:已知8255A控制字寄存器的端口地址为10EH,编写8255A初始化程序和循环彩灯控制程序。
初始时D0亮,其余不亮,D0亮一秒后移位一次,D1亮,其余不亮,以此类推每隔一秒移位一次,每移位8次为一个循环,共循环8次。
要求用汇编语言写出满足上述要求的程序段(已知一个延时1秒的子程序入口地址为DELAY1S)。
分析8255的控制字:80H(D7=1,D2、D0=0)程序如下:CODE SEGMENTASSUME CS:CODEST:MOV AL,80HMOV DX,10EHOUT DX,ALMOV CX,64MOV AL,1MOV DX,10AHNEXT1:OUT DX,ALCALL DELAY1SDEC CX,JZ NEXT2ROL AL,1JMP NEXT1DELAY1S:。
常用可编程并行接口芯片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条端口线,分二大组四小组,每小组可通 过编程独立设置为输入或输出。
在8255a中的工作方式控制字8255A是一种通用并行输入输出端口芯片,它具有多种工作方式,其中通过控制字来选择不同的工作方式。
本文将详细介绍8255A的工作方式控制字,帮助读者深入了解该芯片及其应用。
8255A芯片具有三种工作方式:模式0、模式1和模式2。
每种工作方式都可以通过控制字来进行设置。
首先,我们来看模式0。
模式0是最简单的工作方式,它将8255A 芯片配置为三个8位输入/输出端口。
通过控制字的位设置,我们可以分别将三个端口配置为输入或输出。
例如,将控制字的位0设置为1,则相应的端口A将被配置为输出端口;同样地,如果位0设置为0,则端口A将被配置为输入端口。
通过这种方式,我们可以轻松地控制芯片的输入和输出状态。
接下来是模式1。
模式1将8255A芯片配置为两个8位输入/输出端口和一个4位双向输入/输出端口。
与模式0类似,我们可以通过控制字的位设置来选择每个端口是输入还是输出。
与模式0的不同之处在于,模式1包含一个双向端口,可以通过控制字的位来选择该端口的输入或输出模式。
例如,将控制字的位4设置为1,该双向端口将被配置为输出模式;同样地,如果位4设置为0,则该端口将被配置为输入模式。
最后,是模式2。
模式2将8255A芯片配置为一个8位输入/输出端口和两个4位双向输入/输出端口。
通过控制字的位设置,我们可以选择每个端口是输入还是输出,并且选择双向端口的输入或输出模式,与模式1相似。
总结一下,8255A芯片的工作方式控制字对于配置芯片的输入和输出端口非常重要。
通过合理设置控制字的位,我们可以选择不同的工作模式,并灵活地控制芯片的输入和输出状态。
掌握8255A芯片的工作方式控制字,将有助于我们更好地应用该芯片,满足各种实际需求。
可编程并行接口芯片8255A有哪几种工作方式?每种工作方式有何特点?【解答】方式0:没有固定的用于应答式传送的联络信号线,CPU可以采用无条件传送方式与8255A交换数据。
方式1:有专用的中断请求和联络信号线,因此,方式1通常用于查询传送或中断传送方式。
方式2:PA口为双向选通输入/输出或叫双向应答式输入/输出。
9.2 8255A的方式选择控制字和C口按位控制字的端口地址是否一样?8255A怎样区分这两种控制字?写出端口A作为基本输入,端口B作为基本输出的初始化程序。
【解答】8255A的方式选择控制字和C口按位控制字的端口地址是一样的,通过控制字的最高位D7进行区分:D7=1时,为方式选择控制字;D7=0时,为C口按位控制字。
初始化程序段如下:MOV DX,PORT ;PORT为端口地址MOV AL,10010000BOUT DX,AL9.3 某8255A的端口地址范围为03F8H~03FBH,A组和B组均工作在方式0,A口作为数据输出端口,C口低4位作为状态信号输入口,其它端口未用。
试画出该片8255A与系统的连接图,并编写初始化程序。
【解答】连接图如下:图9-1 8255A与系统的连接图程序如下:MOV AL,81HMOV DX,03FBHOUT DX,AL9.4 试按以下要求对8255A进行初始化编程:(1)设端口A、端口B和端口C均为基本输入/输出方式,且不允许中断。
请分别考虑输入/输出。
(2)设端口A为选通输出方式,端口B为基本输入方式,端口C剩余位为输出方式,允许端口A中断。
(3)设端口A为双向方式,端口B为选通输出方式,且不允许中断。
【解答】(1)端口A、端口B和端口C均为基本输入/输出方式,则为方式0,任何一个口都可用于输入或输出,可出现16种组合,这里只举出2种组合。
若端口A、B为数据输入口;C口的低4位为控制信号输出口,高4位为状态信号输入口,程序段如下:MOV AL,10011010BMOV DX,PORT ;PORT为端口地址OUT DX,ALMOV AL,00001100B ;设PC6为中断信号控制引脚,PC6=0,禁止中断OUT DX,AL若端口A、B为数据输出口;C口的高4位为控制信号输出口,低4位为状态信号输入口,程序段如下:MOV AL,10000000BMOV DX,PORT ;PORT为端口地址OUT DX,ALMOV AL,00001100B ;设PC6为中断信号控制引脚,PC6=0,禁止中断OUT DX,AL(2)端口A为选通输出方式,方式1;端口B为基本输入方式,程序段如下:MOV AL,10100010BMOV DX,PORT ;PORT为端口地址OUT DX,ALMOV AL,00001101B ;设PC6为中断信号控制引脚,PC6=1,允许中断OUT DX,AL(3)端口A为双向方式,方式2;端口B为选通输出方式,程序段如下:MOV AL,11000100BMOV DX,PORT ;PORT为端口地址OUT DX,ALMOV AL,00001100B ;设PC6为中断信号控制引脚,PC6=0,禁止中断OUT DX,AL9.5 采用8255A作为两台计算机并行通信的接口电路,请画出查询式输入/输出方式工作的接口电路,并写出查询式输入/输出方式的程序。
【解答】甲机的8255A是方式1发送,端口PA为输出,发送数据,而PC7和PC6引脚分别固定作联络线和。
乙机的8255A是方式0接收数据,故把端口PA定义为输入,另外,选用引脚PC7和PC3作为联络线。
接口电路如图9-2:图9-2 查询方式的双机通信查询式输入/输出方式的程序如下:;甲机发送的程序段MOV DX,303H ; 8255A命令端口MOV AL,l010000B ; 初始化工作方式字OUT DX,ALMOV AL,0DH ;置发送允许INTEA=1OUT DX,ALMOV SI,OFFSET BUFS ; 设置发送数据区的指针OUT CX,3FFH ; 发送字节数MOV DX,300H ; 向端口A写第1个数,产生第1个信号MOV AL,[SI] ; 送给乙机,以便获取乙机的信号OUT DX,ALINC SI ; 内存地址加1DEC CX ; 传送字节数减1LOP:MOV DX,302H ; 8255A状态端口(端口C)IN AL,DX ; 查发送中断请求INTRSA=1AND AL,08H ; 是否PC3=lJZ LOP ; 若无中断请求则等待;若有向端口A写数MOV DX,300H ; 8255A端口PA地址MOV AL,[SI] ; 从内存取数OUT DX,AL ; 通过端口A向乙机发送第2个数据INC SI ; 内存地址加1DEC CX ; 字节数减1JNZ LOP ; 字节未完,继续MOV AH,4CH ; 己完,退出INT 21H ;返回DOSBUFS DB … ; 定义1024个数据;乙机接收的程序段MOV DX,303H ; 8255A命令端口MOV AL,l0011000B ; 初始化工作方式字OUT DX,ALMOV AL,00000111B ; 置=1(PC3=1)OUT DX,ALMOV DI,OFFSET BUFR ; 设置接收数据区的指针MOV CX,3FFH ; 接收字节数L1: MOV DX,302H ; 8255A端口PCIN AL,DX ; 查甲机的 =0?(乙机的PC7=0)AND AL,80H ; 查甲机是否有数据发来JNZ L1 ; 若无数据发来,则等待;若有数据,则从端口A读数MOV DX,300H ; 8255A端口PA地址IN AL,DX ; 从端口A读入数据MOV [DI],AL ; 存入内存MOV DX,303H ; 产生信号,并发回给甲机MOV DX,00000110B ; PC3置“0”OUT DX,ALINC DI ; 内存地址加1DEC CX ; 字节数减1JNZ L1 ; 字节未完,则继续MOV AX,4C00H ; 己完,退出INT 21H ; 返回DOSBUFR DB l024 DUP(?) ; 接收数据缓冲区10.7 以图10-10所示的连接形式为例,设系统工作过程中以查询方式发送数据,而以中断方式接收数据,数据位8位,偶校验,2位停止位,波特率为4800HZ,请编写程序段对8250的初始化,并编写相应的中断服务子程序。
【解答】时钟频率为1.8432MHz,波特率为4800bps,故除数波特率因子为0018H,8250的初始化如下:;设置波特率MOV AL,10000000B ;DLAB=1MOV DX,3FBH ;通信控制寄存器地址OUT DX,AL ;写入通信控制寄存器MOV AL,18H ;置4800波特率除数低位MOV DX,3F8HOUT DX,AL ;写入除数锁存器低位MOV AL,00 ;置4800波特率除数高位MOV DX,3F9HOUT DX,AL ;写入除数锁存器的高位;设置字符数据格式MOV AL,00011111B ;设置数据格式MOV DX,3F8HOUT DX,AL ;写入通信控制寄存器MOV DX, 3FCHMOV AL,0BHOUT DX,AL ;初始化MODEM寄存器MOV DX,3F9H ;初始化中断允许寄存器MOV AL,01H ;允许接收数据寄存器满产生中断OUT DX,ALSTI中断服务子程序如下:RECEIVE:PUSH AXPUSH BXPUSH DXPUSH DSMOV DX,3FDHIN AL,DXTEST AL,DXTEST AL,IEHJNZ ERRORMOV DX,3F8HIN AL,DXAND AL,7FHMOV BX,OFFSET REVBUFMOV [BX],ALMOV DX,INTRRMOV AL,20H ;发中断结束命令EOI给8259OUT 0A0H,ALOUT 20H,ALJMP QUITERROR:……QUIT: POP DSPOP DXPOP BXPOP AXSTIIRET【解答】目前计算机中使用的键盘分为编码键盘和非编码键盘。
PC系列键盘具有两个基本特点:第一是按键均为无触点的电容开关第二是PC系列键盘属于非编码键盘。
11.3 说明键盘接口电路的种类和基本工作原理,试设计一个键盘中断调用程序,从键盘输入10个连续的字符。
【解答】目前PC机上常用的键盘接口有3种,一种是老式的直径13mm的PC键盘接口;第二种是最常用的直径8mm的PS/2键盘接口;第三种是USB接口的键盘。
PC系列键盘不是由硬件电路向CPU输出按键所对应的ASCII码值,而是由单片机扫描程序识别按键的当前位置,然后向键盘接口输出该键的扫描码。
按键的识别、键值的确定以及键代码存入缓冲区等工作全部由软件完成。
设输入的字符存入620H内存单元,键盘中断调用程序如下:MOV CX,10MOV SI,620HNEXT:MOV AH,0INT 16HMOV [SI],ALINC SILOOP NEXT11.4 与PC键盘发生关联的是哪两类键盘中断程序?它们各自的特点是什么?【解答】计算机系统与键盘发生联系通过硬件中断09H或软件中断16H。
特点:硬件中断09H是由按键动作引发的中断。
在此中断中对所有键盘进行了扫描码定义。
软件中断16H 是BIOS中断调用的一个功能。