8255工作方式
- 格式:ppt
- 大小:526.00 KB
- 文档页数:29


8255试题及答案1. 简述8255芯片的三种工作模式。
- 模式0:基本输入/输出模式。
- 模式1:带握手的输入/输出模式。
- 模式2:双向总线模式。
2. 8255芯片的控制字如何设置?- 控制字的格式为D7 D6 D5 D4 D3 D2 D1 D0。
- D7 D6:选择工作模式(00为模式0,01为模式1,10为模式2,11为模式3)。
- D5 D4:选择端口A工作方式(00为输出,01为输入)。
- D3 D2:选择端口B工作方式(00为输出,01为输入)。
- D1 D0:选择端口C工作方式(00为输出,01为输入)。
3. 8255芯片的端口C可以分成几个部分?- 端口C可以分成两个8位的端口(C上半部和C下半部)或者一个8位的端口。
4. 在模式2下,8255芯片的端口A和端口B分别是什么功能?- 端口A:作为输入端口。
- 端口B:作为输出端口。
5. 8255芯片的端口C的上半部和下半部如何使用?- 端口C的上半部可以作为输入或输出。
- 端口C的下半部可以作为输入或输出。
6. 8255芯片的端口A和端口B在模式1下如何工作?- 端口A和端口B在模式1下可以分别设置为输入或输出。
7. 8255芯片的端口C在模式1下如何工作?- 端口C的上半部和下半部都可以作为输入或输出。
8. 在模式0下,8255芯片的端口A和端口B是否可以同时作为输入或输出?- 是的,在模式0下,端口A和端口B可以同时作为输入或输出。
9. 8255芯片的端口C在模式0下如何工作?- 端口C的上半部和下半部可以单独设置为输入或输出。
10. 8255芯片的端口C在模式2下如何工作?- 在模式2下,端口C的上半部和下半部可以分别设置为输入或输出。
11. 8255芯片的端口C在模式3下如何工作?- 在模式3下,端口C的上半部和下半部可以分别设置为输入或输出。
12. 8255芯片的端口A和端口B在模式3下如何工作?- 在模式3下,端口A和端口B可以分别设置为输入或输出。
可编程并行接口芯片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作为两台计算机并行通信的接口电路,请画出查询式输入/输出方式工作的接口电路,并写出查询式输入/输出方式的程序。
而灯的亮与灭以及闪烁是用8255的A口和B口控制的,工作在方式0,A口和B口均为输出。
1、芯片初始化,写8255的方式字MOV DX,MY8255_MODE ;定义8255工作方式MOV AL,80H ;工作方式0,A口和B口为输出OUT DX,AL2、延时,延时是通过设置指令的循环次数实现的DALLY PROC NEAR ;软件延时子程序PUSH CXPUSH AXMOV CX,0FFFH ;循环次数D1: MOV AX,0FFFFHD2: DEC AXJNZ D2LOOP D1POP AXPOP CXRETDALLY ENDPDALLY1 PROC NEAR ;软件延时子程序,延时20秒PUSH CXPUSH AXMOV CX,1EH ;循环次数D3: CALL DALLYLOOP D3POP AXPOP CXRETDALLY1 ENDPDALLY2 PROC NEAR ;软件延时子程序,黄灯闪烁(即亮与灭)的时间间隔, PUSH CXPUSH AXMOV CX,02H ;循环次数D4: CALL DALLYLOOP D4POP AXPOP CXRETDALLY2 ENDPLOOP1:MOV DX,MY8255_A ;写A口发出的数据,东方向绿灯亮,南方向红灯亮 MOV AL,3CHOUT DX,ALMOV DX,MY8255_B ;写B口发出的数据,西方向绿灯亮,北方向红灯亮 MOV AL,3CHOUT DX,ALCALL DALLY1 ;延时20秒4、东西方向黄灯闪烁,南北方向红灯亮5秒MOV CX,08H ;黄灯闪烁的次数L1: MOV DX,MY8255_A ;写A口发出的数据,东方向黄灯亮,南方向红灯亮 MOV AL,0FCHOUT DX,ALMOV DX,MY8255_B ;写A口发出的数据,西方向黄灯亮, 北方向红灯亮 MOV AL,0FCHOUT DX,ALCALL DALLY2MOV DX,MY8255_A ;写A口发出的数据,东方向黄灯灭,南北方向红灯亮 MOV AL,30HOUT DX,ALMOV DX,MY8255_B ;写B口发出的数据,西方向黄灯灭,南北方向红灯亮 MOV AL,30HOUT DX,ALCALL DALLY2LOOP L1MOV DX,MY8255_A ;写A口发出的数据,东方向红灯亮,南方向绿灯亮MOV AL,0C3HOUT DX,ALMOV DX,MY8255_B ;写B口发出的数据,西方向红灯亮,北方向绿灯亮 MOV AL,0C3HOUT DX,ALCALL DALLY16、东西方向红灯亮,南北方向黄灯闪烁5秒MOV CX,08H ;黄灯闪烁的次数L2: MOV DX,MY8255_A ;写A口发出的数据,南方向黄灯亮,东方向红灯亮 MOV AL,0F3HOUT DX,ALMOV DX,MY8255_B ;写B口发出的数据,北方向黄灯亮,西方向红灯亮 MOV AL,0F3HOUT DX,ALCALL DALLY2MOV DX,MY8255_A ;写A口发出的数据,南北方向黄灯灭,东方向红灯亮 MOV AL,0C0HOUT DX,ALMOV DX,MY8255_B ;写B口发出的数据,南北方向黄灯灭,西方向红灯亮 MOV AL,0C0HOUT DX,ALCALL DALLY2LOOP L27、判断是否有键按下MOV AH,1 ;1号功能调用INT 16H ;ROM BIOS 功能调用JZ LOOP1 ;无按键则跳回继续循环,有则退出,8 、返回到DOSMOV AX,4C00H ;结束程序退出INT 21H ;DOS 系统功能调用IOY0 EQU 0DA00H ;片选IOY0对应的端口始地址;***************************************************************** MY8255_A EQU IOY0+00H*4 ;8255的A口地址MY8255_B EQU IOY0+01H*4 ;8255的B口地址MY8255_C EQU IOY0+02H*4 ;8255的C口地址MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENTLA DB ? ;定义数据变量LB DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,MY8255_MODE ;定义8255工作方式MOV AL,80H ;工作方式0,A口和B口为输出OUT DX,ALLOOP1: MOV DX,MY8255_A ;写A口发出的数据,东方向绿灯亮,南方向红灯亮 MOV AL,3CHOUT DX,ALMOV DX,MY8255_B ;写B口发出的数据,西方向绿灯亮,北方向红灯亮 MOV AL,3CHOUT DX,ALCALL DALLY1MOV CX,08HL1: MOV DX,MY8255_A ;写A口发出的数据,东方向黄灯亮,南方向红灯亮 MOV AL,0FCHOUT DX,ALMOV DX,MY8255_B ;写A口发出的数据,西方向黄灯亮, 北方向红灯亮 MOV AL,0FCHOUT DX,ALCALL DALLY2MOV DX,MY8255_A ;写A口发出的数据,东方向黄灯灭,南北方向红灯亮 MOV AL,30HOUT DX,ALMOV DX,MY8255_B ;写B口发出的数据,西方向黄灯灭,南北方向红灯亮 MOV AL,30HOUT DX,ALCALL DALLY2LOOP L1MOV DX,MY8255_A ;写A口发出的数据,东方向红灯亮,南方向绿灯亮 MOV AL,0C3HOUT DX,ALMOV DX,MY8255_B ;写B口发出的数据,西方向红灯亮,北方向绿灯亮 MOV AL,0C3HOUT DX,ALCALL DALLY1MOV CX,08HL2: MOV DX,MY8255_A ;写A口发出的数据,南方向黄灯亮,东方向红灯亮 MOV AL,0F3HOUT DX,ALMOV DX,MY8255_B ;写B口发出的数据,北方向黄灯亮,西方向红灯亮 MOV AL,0F3HOUT DX,ALCALL DALLY2MOV DX,MY8255_A ;写A口发出的数据,南北方向黄灯灭,东方向红灯亮 MOV AL,0C0HOUT DX,ALMOV DX,MY8255_B ;写B口发出的数据,南北方向黄灯灭,西方向红灯亮 MOV AL,0C0HOUT DX,ALCALL DALLY2LOOP L2MOV AH,1 ;判断是否有按键按下,调用功能号1INT 16H ;ROM BIOS 功能调用JZ LOOP1 ;无按键则跳回继续循环,有则退出QUIT: MOV AX,4C00H ;结束程序退出INT 21H ;DOS 系统功能调用DALLY PROC NEAR ;软件延时子程序PUSH CXPUSH AXMOV CX,0FFFHD1: MOV AX,0FFFFHD2: DEC AXJNZ D2LOOP D1POP AXPOP CXRETDALLY ENDPDALLY1 PROC NEAR ;软件延时子程序,东西方向红灯亮,南北方向绿灯亮 PUSH CXPUSH AXMOV CX,1EHD3: CALL DALLYLOOP D3POP AXPOP CXRETDALLY1 ENDPDALLY2 PROC NEAR ;软件延时子程序,黄灯闪烁(即亮与灭)的时间间隔, PUSH CXPUSH AXMOV CX,02HD4: CALL DALLYLOOP D4POP AXPOP CXRETDALLY2 ENDPCODE ENDSEND START。