南邮微机原理课件第11章.ppt

上传人:本田雅阁 文档编号:2132892 上传时间:2019-02-20 格式:PPT 页数:74 大小:460.51KB
返回 下载 相关 举报
南邮微机原理课件第11章.ppt_第1页
第1页 / 共74页
南邮微机原理课件第11章.ppt_第2页
第2页 / 共74页
南邮微机原理课件第11章.ppt_第3页
第3页 / 共74页
亲,该文档总共74页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《南邮微机原理课件第11章.ppt》由会员分享,可在线阅读,更多相关《南邮微机原理课件第11章.ppt(74页珍藏版)》请在三一文库上搜索。

1、第十一章 并行接口芯片8255A,8255A是INTEL公司的产品,可编程的并行接口芯片,11.1 8255A的内部结构,一、 结构框图(见下页),结构框图,数据 总线 缓冲器,A组 A口,A组C口 上半部,A组 控制,B组C口 下半部,B组 B口,B组 控制,PA7PA0,PC7PC4,PB7PB0,PC3PC0,读/写 控制,A1,A0,RESET,内部总线,8,CPU DB,24根端口数据线接外设 PA7PA0为A口数据线 PB7PB0为B口数据线 PC7PC0为C口数据线,二、 8255A的外部引脚,8255A为双列直插式,40引脚,8根系统数据线接CPU D7D0,6根输入控制线 R

2、ESET:复位信号,RESET=1时,8255内部复位, 所有内部寄存器清零,A、B、C三个端口自动为输入口,电源线:+5V,地线,三、8255A的端口编址,端口:接口电路中能和CPU直接交换信息的寄存器 8255A有4个端口寄存器,CS:片选信号,CS=0时,该芯片被选中 RD:来自CPU的I/O读命令 WR:来自CPU的I/O写命令 A1、A0:通常接CPU的地址线A1、A0,如果系统产生片选信号的译码电路如图,则:,AEN,A9,A8,A7,A6,A5,A4,A3,A2,A1,A0,IOR,IOW,CS,A1,A0,RD,WR,8255A,A数据口地址=60H B数据口地址=61H C数

3、据口地址=62H 控制口地址=63H,控制口寄存初始化命令字,对控制寄存器不能进行读操作,11.2 8255的工作方式简介,A口可工作在方式0、1、2 B口可工作在方式0、1 C口可工作在方式0,什么是选通型输入?(以A口为例),A口定义为选通型输入时,端口和外设之间有两类信号线 数据线PA7PA0 联络线IBFA、STBA,IBF(Input Buffer Full)输入缓冲器满状态线,输入设备,PA70,IBFA,STBA,8255A口,STB(Strobe)选通信号输入, 当外设把数据放在端口线上时必须伴随一个选通信号。 当STB= 时完成数据锁存。 端口收到数据后,再通知CPU来取,

4、IBF=1,通知外设输入缓冲器已满,请不要再送数据 只有在IBF=0时,外设才能写入数据,输入设备,PA70,IBFA,STBA,8255A口,什么是选通型输出(以B口为例),当端口定义为选通型输出时,端口与外设之间也有两类信号 数据线PB7PB0 联络线OBFB、ACKB,OBF(Output Buffer Full)输出缓冲器满状态线 ACK(Acknowledge)确认应答,输出设备,PB70,OBFB,ACKB,8255B口,CPU对B口执行OUT指令,把一个数8255 OBFB= ,通知外设输出缓冲器已满(即数据线上信息可用了) 外设取走数据之后,使ACKB= ,通知CPU端口数据已

5、取走,可再送一个数,输出设备,PB70,OBFB,ACKB,8255B口,什么是基本型输入(以B口为例),当B口定义为基本型输入时,它相当于一个输入缓冲器,对B口执行一条IN指令,就把输入数据CPU,对B口执行一条IN指令打开控制门,PB7,PB0,至CPU,D7,D0,什么是基本型输出(以A口为例),当A口定义为基本型输出时,它为一个输出锁存器 CPU对A口执行一条OUT指令把数据锁存在端口,总之:基本型输入/出时,8255和外设之间没有联络信号,对A口执行一条OUT指令锁存数据,PA7,PA0,CPU,D7,D0,11.3 8255控制字与初始化编程,1. 8255控制字,8255有2个控

6、制字,方式选择控制字,C口按位置0/置1命令字,控制字必须写入控制口才能有效, 方式选择控制字,A口工作在方式1、方式2,B口工作在方式1时,D3、D0只能定义部分PC线的入/出 A口工作在方式2时,D4不起作用 C口上、下半部可以选择不同的入/出(都是方式0),注意:, C口按位置0/1命令字,注意:C口按位置0/1命令字必须写入控制口, 根据需要:把C口置0/置1命令字控制口,目的是禁止/允许某一口提中断,2. 8255初始化编程步骤, 方式选择命令字控制口,目的选择某一口的工作方式,例:要求置A口为方式0输出,B口为方式0输入,PC74为输出,PC30为输入,MOV AL,83H OUT

7、 控口地址,AL,11.4 8255工作方式及时序,一、 方式0与时序,数据有效,tAR,tIR,tHR,tRA,tRD,tDF,tRR,RD,输入,CS,A1,A0,D7D0,方式0 输入时序,数据有效,tAW,tDW,数据有效,tWD,tWA,tWB,tWW,输出(端口输出),CS,A1,A0,D7D0(CPU输出数据),方式0 输出时序,二、 方式1输入(选通型输入)及时序,1 0 1 1 1/0 X X X,A口方式1,1=PC7、6为入线 0=PC7、6为出线,方式选择命令字,输入,1. A口方式1输入的预置,当方式字=B0H写入控制口之后,A口即工作在选通型输入,,PC4,PC5,

8、PC3,INTEA,PC76,PA70,空闲,STBA,IBFA,INTRA,A口选通型输入,PC4,PC5,PC3,INTEA,PC76,PA70,空闲,STBA,IBFA,INTRA,A口选通型输入, 当INTEA=1之后,若IBFA=1,则A口提出中断请求,2. A口方式1输入时,A口的中断管理,PC2,PC1,PC0,INTEB,PB70,STBB,IBFB,INTRB,B口选通型输入,1 X X X X 1 1 X,B口方式1输入,方式选择命令字,3. B口方式1输入的预置,当方式字=86H写入控制口之后,B口即工作在选通型输入,,STBB,PC2,PC1,PC0,INTEB,PB7

9、0,B口选通型输入,IBFB,INTRB,PB7PB0即为输入线 PC2自动定义为入线,称为STBB PC1自动定义为出线,称为IBFB PC0自动定义为出线,称为INTRB,输出线?输入线?不再受方式字D0控制,此时:,4. B口方式1输入时的中断管理, INTEB=1之后,若IBFB=1,则INTRB=1,B口可提出中断请求,STBB,PC2,PC1,PC0,INTEB,PB70,B口选通型输入,IBFB,INTRB,5. 方式1输入的时序图,tSIT,tSIB,tRIT,tRIB,tPS,tPH,tST,STB,IBF,INTR,方式1 输入时序,RD,来自外设的 输入数据,IBF,IN

10、TR,来自外设的 输入数据,方式1输入操作是由STB=,引发的,STB =,后:, 外设数据8255, IBF=,IBF,INTR,来自外设的 输入数据, 满足下列条件,提中断请求: STB信号结束(STB脉宽可以很宽) IBF=1,(外设数据确已锁存) INTE=1(中断允许触发器置1), 服务程序执行IN指令之后: RD信号前沿使INTR= ,后沿使IBF=0 从而结束一次数据输入过程,IBF,INTR,来自外设的 输入数据,6. 方式1输入时,CPU8255信息交换的方式, 可以用中断方式 可以用查询方式,输入查询应查询IBF,不应该查询STB! STB脉冲是外设送来,它最小可小到500

11、ns,而在500ns的时间内正好运行CPU的查询指令是不可能的,三、 方式1输出(选通型输出)及时序,1 0 1 0 1/0 X X X,A口方式1输出,1=PC4、5为入线 0=PC4、5为出线,方式选择命令字,PC6,PC7,PC3,INTEA,PC4、5,PA70,空闲,ACKA,OBFA,INTRA,A口选通型输出,PC6,PC7,PC3,INTEA,PC4、5,PA70,空闲,ACKA,OBFA,INTRA,A口选通型输出,1. A口方式1输出的预置,当方式字=A0H写入控制口之后,A口即工作在选通型输出方式,,PC4、PC5空闲,出?入?受方式字D3控制,PA70为输出线 PC6自

12、动定义为入线,称ACKA PC7自动定义为出线,称OBFA PC3自动定义为出线,称INTRA,输出?输入?不再受方式字D3、D0控制,此时:,2. 方式1输出时A口的中断管理,PC6,PC7,PC3,INTEA,PC4、5,PA70,空闲,ACKA,OBFA,INTRA,A口选通型输出,ACKB,OBFB,INTRB,1 X X X X 1 0 X,B口方式1输出,方式选择命令字,PC2,PC1,PC0,INTEB,PB70,B口选通型输出,OBFB,PC2,PC1,PC0,INTEB,PB70,B口选通型输出,ACKB,INTRB,3. 口方式输出的设置,当方式字=84H控制口之后,B口即

13、工作在选通型输出方式,,入线?出线?不再受方式字D0控制,PB7PB0定义为输出线 PC2自动定义为入线,称为ACKB PC1自动定义为出线,称为OBFB PC0自动定义为出线,称为INTRB,此时:,4. 方式1输出时,B口的中断管理, INTEB为B口的中断允许触发器,当B口工作在方式1输出时:,用C口置0/1命令字使PC2=1,则INTEB=1,允许B口中断 用C口置0/1命令字使PC2=0,则INTEB=0,禁止B口中断, INTEB置1后,OBFB=1,则INTRB=1,B口提出中断, 同样,ACKB不能改变INTEB的状态,它只受CPU控制,OBFB,PC2,PC1,PC0,INT

14、EB,PB70,B口选通型输出,ACKB,INTRB,5. 方式1输出的时序图,tAX,tWOB,tAOB,tAIT,tWB,tWIT,OBF,INTR,方式1 输出时序,WR,输出,ACK,方式1输出时 CPU针对8255数据口执行OUT指令 WR信号结束后,数据出现在外设数据线上 OBF有效(向外设通报其数据线信息可用) 使INTR无效,撤销中断请求,INTR,输出, 外设取走数据后,发来ACK,ACK信号前沿使OBF无效,后沿提中断。,INTR,输出,工作在方式1输出时端口提中断的条件: 外设发出ACK信号且使OBF=1 中断允许触发器置1,INTR,输出,6. 方式1输出时,CPU82

15、55交换信息的方式, 中断方式 查询方式:查询OBF,当OBF=1(不满)时可送下一个数据,方式选择命令字,1 1 X X X D2 D1 D0,A口双向,1=PC20为入线 0=PC20为出线,1.双向方式的设置,PC7,PC6,PC3,INTE1,PC20,PA70,PC4,PC5,空闲,INTRA,ACKA,OBFA,IBFA,STBA,INTE2,A口定义为双向方式之后: PA70是双向的数据线,可以分时完成数据输入/出 PC3自动定义为出线:INTRA PC7自动定义为出线:OBFA PC6自动定义为入线:ACKA PC4自动定义为入线:STBA PC5自动定义为出线:IBFA PC

16、20空闲,入/出线?不再受方式字D3、D0的控制,IBFA、STBA是双向方式中的一对输入联络线 OBFA、ACKA是双向方式中的一对输出联络线,数据输入过程,数据输出过程与方式1类似,PC7,PC6,PC3,INTE1,PC20,PA70,PC4,PC5,空闲,INTRA,ACKA,OBFA,IBFA,STBA,INTE2,2. A口双向方式的中断管理,A口定义为双向方式之后:, INTE2为双向方式中的输入中断允许触发器 用C口置0/1命令字使PC4置0,则INTE2=0 用C口置0/1命令字使PC4置1,则INTE2=1 INTE2置1后,若IBFA=1,则INTRA=1,提出中断请求,

17、PC7,PC6,PC3,INTE1,PC20,PA70,PC4,PC5,空闲,INTRA,ACKA,OBFA,IBFA,STBA,INTE2,INTE1:双向方式中的输出中断允许触发器 INTE2:双向方式中的输入中断允许触发器,在IBFA=0时表示输入缓冲器空闲 输入设备把数据PA70,随后使STBA= 完成数据输入,在INTE2=1的前提下向CPU提中断 CPU响应后对A口执行IN指令取走数据CPU,输入:,CPU对A口执行OUT指令,数据写入A口 OBFA=0表示PA70有数据了 外设取走数据后,向ACKA送 在INTE1=1的前提下向CPU提出中断 CPU响应后再次执行OUT指令又送一

18、个新的数据A口,输出:, 方式0的特点:8255和外设交换信息时,不需要联络线;方式1、2的特点:8255和外设交换信息时,需要联络线,五、 8255小结,1. 8255工作方式, A口可以工作在方式0、1、2,B口可以工作在方式0、1,不能工作在方式2,C口可以工作在方式0, C口分为PC74、PC30二部分,但程序员对C口的读写是按字节操作的, A口工作在方式2时,B口只能工作在方式0、1(限制:CPU只能用查询而不能用中断和B口交换数据), 数据口工作在方式1、2时,CPU用:,2. CPU与8255交换信息的方式, 数据口工作在方式0时,CPU采用无条件传送,(b) 中断方式:由于82

19、55本身不能向CPU回送中断向量,所以必须用8259管理。在系统外扩8255时,8255的INTR应接到系统机从8259的IR1,作为用户中断来处理,3. 中断允许触发器的置0、置1,对程序员来讲:工作在方式1、方式2时,8255内部有4个中断允许触发器,用“C口专用的置0/1命令字”可以使它们置0/1,方 式,控制位,中断允 许触发器,4. 8255的初始化编程, 工作在方式0时:方式选择命令字控制口 工作在方式1、2时:,a) 方式选择命令字控制口 b) 允许中断(或禁止中断)的命令字控制口,六、 8255应用举例,例:设系统机外扩了一片8255、以及相应的实验电路,如后页图所示。要求:先

20、预置开关K3K1为一组状态,然后按下自复按钮K 产生一个负脉冲信号输入到PC4。用发光二极管LEDi亮来显示K3K1的状态。主机键盘有任意键按下时结束演示。,K3 K2 K1000 时,LED1 亮 K3 K2 K1001 时,LED2 亮 K3 K2 K1010 时,LED3 亮 K3 K2 K1011 时,LED4 亮 K3 K2 K1100 时,LED5 亮 K3 K2 K1101 时,LED6 亮 K3 K2 K1110 时,LED7 亮 K3 K2 K1111 时,LED8 亮 K3K1闭合为0,断开为1。,要求:,D7D0,D7D0,5V,RESET,IOR,IOW,RD,WR,口

21、地址译码,218H21FH,A1,A1,A0,A0,8255,5V,LED8,LED7,LED1,PB7,PB6,PB0,PA2,PA1,PA0,K3,K2,K1,5V,单脉冲发生器,PC4,K,PC5,IBFA,INTRA,PC3,INTEA,CS,实验电路图(教材P347),STBA,D7D0,D7D0,5V,RESET,IOR,IOW,RD,WR,口地址译码,218H21FH,A1,A1,A0,A0,8255,5V,LED8,LED7,LED1,PB7,PB6,PB0,PA2,PA1,PA0,K3,K2,K1,5V,单脉冲发生器,PC4,K,PC5,IBFA,INTRA,PC3,INTE

22、A,CS,STBA,D7D0,D7D0,5V,RESET,IOR,IOW,RD,WR,口地址译码,218H21FH,A1,A1,A0,A0,8255,5V,LED8,LED7,LED1,PB7,PB6,PB0,PA2,PA1,PA0,K3,K2,K1,5V,单脉冲发生器,PC4,K,PC5,IBFA,INTRA,PC3,INTEA,CS,STBA,十 四,D7D0,D7D0,5V,RESET,IOR,IOW,RD,WR,口地址译码,218H21FH,A1,A1,A0,A0,8255,5V,LED8,LED7,LED1,PB7,PB6,PB0,PA2,PA1,PA0,K3,K2,K1,5V,单脉

23、冲发生器,PC4,K,PC5,IBFA,INTRA,PC3,INTEA,CS,STBA,设计思路 CPU8255A口交换信息 解法1:查询方式,当PC5=1时,表示K3K2K1的值已写入A口了 解法2:中断方式,PC3接系统从8259 IR1,按用户中断处理,D7D0,8255,LED8,LED7,LED1,K,十 四,D7D0,RESET,RD,WR,A1,A0,8255,5V,LED8,LED7,LED1,PB7,PB6,PB0,PA2,PA1,PA0,K3,K2,K1,5V,单脉冲发生器,PC4,K,PC5,IBFA,INTRA,PC3,INTEA,CS,STBA,A口禁止中断命令字,0

24、 X X X 1 0 0 0,=08H, 用查询方式编程:,方式选择命令字:,1 0 1 1 X 0 0 X,=B0H,A口方式1,A口输入,B口方式0,B口输出,B口方式0输出,A口选通型输入查询,查询方式程序清单 ;FILENAME:1021_1.ASM DATA SEGMENT MESG DB 8255A READY.,0DH,0AH,$ TAB DB 11111110B DB 11111101B DB 11111011B DB 11110111B DB 11101111B DB 11011111B DB 10111111B DB 01111111B DATA ENDS CODE SEG

25、MENT ASSUME CS:CODE,DS:DATA,BEG: MOV AX,DATA MOV DS,AX CALL I8255A ;8255A初始化 MOV AH,9 MOV DX,OFFSET MESG INT 21H ;给出操作提示 SCAN: MOV AH,1 INT 16H ;有键入 ? JNZ RETURN ;有 MOV DX,21AH IN AL,DX ;读8255A C口 TEST AL,00100000B ;PC5=1 ? JZ SCAN ;NO MOV DX,218H IN AL,DX ;读8255A A口,AND AL,07H MOV BX,OFFSET TAB XLA

26、T TAB ;查表 MOV DX,219H OUT DX,AL ;表项输出到B口 JMP SCAN RETURN: MOV AH,4CH INT 21H ;返回 DOS I8255A PROC MOV DX,21BH MOV AL,0B0H OUT DX,AL ;写入工作方式字 MOV AL,08H OUT DX,AL ;令PC4=0 (INTE A =0) MOV DX,219H,MOV AL,0FFH OUT DX,AL ;熄灭LED RET I8255A ENDP CODE ENDS END BEG, 用中断方式编程,A口允许中断命令字,0 X X X 1 0 0 1,=09H,把实验电

27、路8255PC3接ISA总线B4端子以便向系统机提出用户中断请求 B口方式0输出,A口方式1输入,中断方式,方式选择命令字:,1 0 1 1 X 0 0 X,=B0H,A口方式1输入,B口方式0输出,中断方式程序清单 ;FILENAME:1021_2.ASM DATA SEGMENT MESG DB 8255A READY.,0DH,0AH,$ TAB DB 11111110B DB 11111101B DB 11111011B DB 11110111B DB 11101111B DB 11011111B DB 10111111B DB 01111111B DATA ENDS,CODE SEG

28、MENT ASSUME CS:CODE,DS:DATA BEG: MOV AX,DATA MOV DS,AX CLI CALL I8255A ;8255A初始化 CALL WRITE0A ;置换0AH型中断向量 CALL I8259 ;开放用户中断 MOV AH,9 MOV DX,OFFSET MESG INT 21H ;给出操作提示 STI ;开中断 SCAN: MOV AH,1 INT 16H ;有键入 ? JZ SCAN ;无转,IN AL,0A1H OR AL,000000010B OUT 0A1H,AL ;屏蔽用户中断 MOV AH,4CH INT 21H ;返回 DOS SERVI

29、CE PROC PUSH AX PUSH DS MOV AX,DATA MOV DS,AX MOV DX,218H IN AL,DX ;读8255A A口 AND AL,07H MOV BX,OFFSET TAB XLAT TAB ;查表,MOV DX,219H OUT DX,AL ;表项送8255A B口 MOV AL,20H ;中断结束命令 OUT 20H,AL ;主8259 POP DS POP AX IRET ;中断返回 SERVICE ENDP I8255A PROC MOV DX,21BH MOV AL,0B0H OUT DX,AL ;写入方式字 MOV AL,09H OUT DX

30、,AL ;PC4=1,(INTE A=1),MOV DX,219H MOV AL,0FFH OUT DX,AL ;熄灭LED RET I8255A ENDP WRITE0A PROC PUSH DS MOV AX,CODE MOV DS,AX MOV DX,OFFSET SERVICE MOV AX,250AH INT 21H POP DS RET WRITE0A ENDP,十 四,I8259 PROC IN AL,21H AND AL,11111011B OUT 21H,AL ;开放从8259中断 IN AL,0A1H AND AL,11111101B OUT 0A1H,AL ;开放用户中断 RET I8259 ENDP CODE ENDS END BEG,十 四,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1