1 / 32

第八章 常用接口芯片

第八章 常用接口芯片. 并行接口芯片 8255A 定时器 / 计数器接口芯片 8253 串行接口芯片 8251A 模拟接口 多功能外围接口芯片 82380. 8.1 并行接口芯片 8255A. Intel 8255A 是一种通用的可编程并行 I / O 接口芯片,是为 Intel 8080 / 8085 系列微处理器设计的,也可用于其他系列的微机系统。 通过 8255A , CPU 可直接同外设相连接,是应用最广的并行 I / O 接口芯片。 8086/8088 系统中就采用 8255A 作为键盘、扬声器、打印机等外设的接口电路芯片。.

Download Presentation

第八章 常用接口芯片

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第八章 常用接口芯片 • 并行接口芯片8255A • 定时器/计数器接口芯片8253 • 串行接口芯片8251A • 模拟接口 • 多功能外围接口芯片82380

  2. 8.1 并行接口芯片8255A Intel 8255A是一种通用的可编程并行I/O接口芯片,是为Intel 8080/8085系列微处理器设计的,也可用于其他系列的微机系统。 通过8255A,CPU可直接同外设相连接,是应用最广的并行I/O接口芯片。 8086/8088系统中就采用8255A作为键盘、扬声器、打印机等外设的接口电路芯片。

  3. 8.1.1 8255A的内部结构(两部分组成:数据端口和控制寄存器)

  4. 1. 三个8位端口A、B和C (1)端口A(PA口)——可作为8位输入输出端口,输入输出数据可以锁存; (2)端口B(PB口)——可作为8位输入输出端口,输出数据可以锁存; (3)端口C(PC口)——可作为8位输入输出端口,输出数据可以锁存;也可以分为2个4位的输入输出端口,其中高4位分配给PA口,称为A组,低4位分配给PB口,称为B组。 2. 控制寄存器——用于接收CPU送来的控制命令字,以决定端口的工作方式。

  5. 1. 片选 及地址线A1,A0——用于芯片及内部端口和寄存器的寻址; 8.1.2 8255A的引脚说明

  6. 在IBM-PC机中,用A9A8A7A6A5=00011选中8255A(CS=0)A4A3A2未用,A1A0接8255A的A1A0,其功能及地址为:在IBM-PC机中,用A9A8A7A6A5=00011选中8255A(CS=0)A4A3A2未用,A1A0接8255A的A1A0,其功能及地址为: A9A8A7A6A5A4A3A2A1A0功能 基本地址 0 0 0 1 1 ××× 0 0 选中端口A 60H 0 0 0 1 1 ××× 0 1 选中端口B 61H 0 0 0 1 1 ××× 1 0 选中端口C 62H 0 0 0 1 1 ××× 1 1 选中控制寄存器 63H ( 其他) ××××× 芯片禁止,数据线高阻 • (说明:由于A4A3A2未用,8255A共有32个地址,即060H~07FH,其中060H~063H为基本地址,其余为影像地址)

  7. 2. 读写控制信号RD,WR 3. 复位信号RESET——当RESET=1(有效)时,8255A复位,内部寄存器被清除,三个端口自动置为输入方式; 4. 数据线D7~D0——双向、三态,用于8255A与CPU之间的数据传送; • 5.A口外设数据线PA7~PA0(双向) • B口外设数据线PB7~PB0(双向) • C口外设数据线PC7~PC0(双向)

  8. 8.1.3 8255A的工作方式(3种) • 1.方式0——基本输入输出方式 • 特点:适用于PA口、PB口和PC口作输入/输出端口, 2. 方式1——选通输入/输出方式(应答式输入/输出) 特点:适用于PA口和PB口作输入/输出端口,PC口主要作为联络线; 3. 方式2——双向选通输入输出方式 特点:仅适用于PA口作双向端口(可输入也可输出),PC口主要作为联络线;

  9. 1.方式0——基本输入输出方式 • A口、B口、C口均可以工作在方式0 ,无需用专用的应答联络信号; • 分成彼此独立的8位A口、B口及4位上C口、下C口四个并行口,由控制字可分别设置成输入或输出口使用,共有 16种不同的使用组态(每组只能同时设定为输入或输出); • 与CPU交换信息不能采用中断的方法,但可用应答查询方式:通常以A口和B口作为数据口,而用C口某些位作为控制与状态信号线使用(C口中哪条引线充当何种应答功能,可以由用户来指定); • 输出带锁存,但输入不带锁存

  10. 2. 方式1——选通输入/输出方式(应答式输入/输出) • 主要是为中断应答式数据传送而设计; • 端口 A和瑞口 B仍作为数据的输出口或输入口,同时固定C口的某些位作为联络信号(C口的其他位仍可作数据位使用); • 输出和输入方式不同

  11. PC7/PC1——输出缓冲器满信号OBFA/OBFB,低电平有效;当OBF=0时,表示CPU将新数据写入相应端口的数据缓冲器,外设可依此信号将数据取走,同时使OBF=1示空。PC7/PC1——输出缓冲器满信号OBFA/OBFB,低电平有效;当OBF=0时,表示CPU将新数据写入相应端口的数据缓冲器,外设可依此信号将数据取走,同时使OBF=1示空。 (1)方式1下的输出方式

  12. PC6/PC2——响应信号ACKA/ACKB,低电平有效;外设在OBF=0(缓冲器满)的条件下,用ACK=0将数据去走,同时使OBF=1(示空),在中断允许(INTE=1)时,使INTR=1产生中断请求。PC6/PC2——响应信号ACKA/ACKB,低电平有效;外设在OBF=0(缓冲器满)的条件下,用ACK=0将数据去走,同时使OBF=1(示空),在中断允许(INTE=1)时,使INTR=1产生中断请求。 PC3/PC0——中断请求信号输出INTRA/INTRB 当外设接收了由CPU送给8255A的数据后,8255A通过INTR向CPU发中断请求,请求再输出下一字节数据。 说明:PC6/PC2也是中断允许位INTEA/INTEB

  13. (2)方式1下的输入方式 PC5/PC1——输入缓冲器满信号IBFA/IBFB,高电平有效;当IBF=1时,表示外设已将数据输入相应端口的数据缓冲器,CPU可依此信号将数据取走,同时使IBF=0示空。

  14. PC4/PC2——选通信号STBA/STBB,低电平有效;外设在IBF=0(缓冲器空)的条件下,用STB=0将数据锁存于数据缓冲器,同时使IBF=1(示满),在中断允许(INTE=1)时,使INTR=1产生中断请求。PC4/PC2——选通信号STBA/STBB,低电平有效;外设在IBF=0(缓冲器空)的条件下,用STB=0将数据锁存于数据缓冲器,同时使IBF=1(示满),在中断允许(INTE=1)时,使INTR=1产生中断请求。 PC3/PC0——中断请求信号输出INTRA/INTRB 说明:PC4/PC2也是中断允许位INTEA/INTEB,要开放中断,就要用PC口置0/置1命令使相应位为1;例如,开放INTEA(PC4=1),操作: MOV AL,00001001B; OUT 63H,AL;

  15. 说明: • 当 8255A工作于方式1时,输入/输出过程通常采用中断控制; • 输入/输出过程也可采用查询方式,分别查询IBF和OBF是否有效; • 8255的端口A和端口B可以均为输入,均为输出,也可以一个输入一个输出,还可以其中一个端口工作于方式1,而另一个端口工作于方式0。

  16. 3. 方式2——双向选通输入输出方式 • 可以用中断方式,也可以用查询方式与CPU联系 ; • 方式2只有8255的A口才能采用 ; • 在A口工作于双向输入输出方式时,固定利用C口的5条线作为联络信号线。 • 此时,B口只能工作在方式0或方式1, • 而C口剩下的3条线可作为输入输出线使用或用作B口方式1之下的联络线。

  17. 8255A CS PC7 PC6 A1 PC5 A0 PC4 PC3 输出设备 OBFA ACKA A口 D7~D0 AB CPU DB 译 码 输入设备 IBFA STBA INTRA PC7——输出缓冲器满信号OBFA; 用于 PC6——响应信号ACKA 输出PC5——输入缓冲器满信号IBFA 用于PC4——选通信号STBA 输入 PC3——中断请求信号INTRA

  18. 8.l.4 8255A的控制字(要求记住) 1. 方式选择控制字——用于决定8255A三个端口的工作方式

  19. 例如:8255A的地址为60H~63H。若规定端口A工作于方式1输入,端口B工作于方式1输出,余下的PC7、PC6规定为输出,则方式选择控制字如右所示。例如:8255A的地址为60H~63H。若规定端口A工作于方式1输入,端口B工作于方式1输出,余下的PC7、PC6规定为输出,则方式选择控制字如右所示。 MOV AL,0B4H OUT 63H,AL

  20. 2. C口位操作控制字——设置端口C各位的值 • 例如,置端口C的D7位为1:MOV AL,00001111B; • OUT 63H,AL;

  21. 0 0 0 0 1 1 1 PC7 例:若要从8255A的PC7输出正脉冲,则可以用以下程序段(设原来的PC7=0): MOV AL,00001111B ;PC7置1 OUT 63H,AL MOV AL,00001110B ;PC7置0 OUT 63H,AL

  22. PA7~PA0 8255A CS PC6 PC2 A1 A0 打印机 STB BUSY D7~D0 AB CPU DB 驱动 译 码 8.1.5 8255A应用举例 例8.1 用8255A作为打印机的接口,工作于方式0,CPU用查询方式接打印机打印。 PA口方式0下输出,PC口的PC6作为选通输出信号STB PC2作为输入,接收打印机送来的忙/闲信号BUSY, 当BUSY为1时表忙,为0时表闲。

  23. 设输出字符放在寄存器CL中,则具体打印子程序如下:设输出字符放在寄存器CL中,则具体打印子程序如下: PRINT: PUSH AX ;保护现场 MOV AL,81H ;8255A初始化 OUT 0A3H,AL MOV AL,0DH ;1101用C口位操作控制字使PC6为1 OUT 0A3H,AL WAITO: IN AL,0A2H ;检测PC2的值 AND AL,04H JNZ WAITO ;打印机忙,继续等待 MOV AL,CL ;打印机不忙,字符送端口A OUT 0A0H,AL MOV AL,0CH ;1100PC6输出负脉冲,字符进入打印机 OUT 0A3H,AL INC AL OUT 0A3H,AL POP AX ;恢复现场 RET ;返回主程序

  24. PA7~PA0 8255A CS PC4 PC6 A1 PC7 A0 PC3 打印机 STB ACK D7~D0 AB CPU DB 驱动 译 码 OBF INTR送8259A的IRQ3 PA口方式1输出,PC口的PC4作选通信号STB PC6自动作响应信号ACK,PC7自动作输出缓冲信号OBF PC3自动作中断信号INTR送8259A管理 例8.2 用8255A作为打印机的接口,工作于方式1,CPU用中断方式接打印机打印。

  25. 主程序 中断子程序 INTR1 送1个字符 送选通信号 撤消选通信号 中断结束 返回 设置8255A方式 设置中断向量 SI←BUFF偏 CX←100 开8255A中断 关选通信号 开中断 等待HLT SI←SI+1 关中断 CX-1≠0? END

  26. ;主程序 MAIN: MOV AL,0A0H ;10100000,8255A初始化 OUT 0A3H,AL MOV AL,09H ;1001,使PC4为1 OUT 0A3H,AL PUSH DS ;设置中断向量 XOR AX,AX MOV DS,AX MOV AX,OFFSET INTP MOV [003CH],AX MOV AX,SEG INTP MOV [003EH],AX POP DS MOV AL,0DH ;1101,PC6置1,允许8255A中断 OUT 0A3H,AL STI ;开中断

  27. ;中断服务程序 INTP: MOV AL,CL ;打印字符送8255A OUT 0A0H,AL MOV AL,08H ;1000,选通打印机 OUT 0A3H,AL INC AL OUT 0A3H,AL … ;后继处理 IRET ;中断返回

  28. 8255A在IBM-PC机中的应用 (一)各端口的用途 1. PA口——工作于方式0,作为数据输入用,接受键盘扫描码。 2. PB口——工作于方式0,作为输出产生控制信号 PB0:控制扬声器的工作频率,该位为1时允许频率输出,为0关闭频率输出; PB1:控制扬声器数据开关,该位为1时允许输出,为0关闭;

  29. PB2:输出键盘测试数据,测试键盘; • PB3:控制读系统配置开关DIP的状态,为1则读DIP的高4位,为0读低4位; • PB4:控制RAM奇偶校验位的开启,为0时开启; • PB5:控制I/O奇偶校验位的开启,为0时开启; • PB6:控制键盘时钟,为1时产生键盘时钟; • PB7:控制键盘工作,为1时禁止键盘工作。 3. PC口——工作于方式0,作为输入数据用 PC3~PC0:接收系统配置开关DIP的高4位或低4位;

  30. PC4:接受已进入扬声器的数据,供CPU检测; • PC5:接受已进入扬声器的音调,供CPU检测; • PC6:接受I/O通道的校验结果,为高时则产生NMI中断; • PC7:接受RAM的校验结果,为高时则产生NMI中断; (二)8255A在IBM-PC机中的初始化编程: MOV AL,10011001B; OUT 63H,AL;

  31. (三)8255A在IBM-PC机中的使用: • 例1:对PB口编程使扬声器发音: • IN AL,61H; • OR AL,03H;使PB1,PB0=11,其他位不变 • OUT 61H,AL; 例2:允许RAM奇偶校验: IN AL,61H; AND AL,11101111B;使PB4=0开启,其余位不变 OUT 61H,AL;

More Related