第八章常用可编程通用接口芯片.pptx
《第八章常用可编程通用接口芯片.pptx》由会员分享,可在线阅读,更多相关《第八章常用可编程通用接口芯片.pptx(95页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第八章第八章 常用可编程通用接口芯片常用可编程通用接口芯片 第六章介绍了一些基本的输入输出接口,是不可编程的.随着大规模集成技术的发展,接口电路常被集成在一块硅芯片上.可用编程方式设定其工作方式,以适用于多种功能的要求-可编程接口芯片. PC微机除CPU控制核心外,还有一些大规模可编程接口芯片(外围芯片)的支持: 8级中断优先权控制器8259以控制8个外部中断源(如时间基准8253的Ch0,键盘,硬磁盘,软磁盘,打印机). 三端口的并行接口8255以控制外部简单接口及DIP配置开关(如磁带机,扬声器). 16位三通道定时/计数器8253以控制时间基准、动态刷新、扬声器发声. 四通道DMA控制器
2、8237以控制动态RAM刷新、磁盘数据交换. 可编程异步通信接口8250以控制串行通信,完成发送时的并-串转换和接收时的串-并转换及相应的控制功能.8.1 可编程并行接口可编程并行接口8255A 8255是最通用的并行I/O接口芯片.可用程序改变功能,通用性强,使用灵活,通过它可直接将CPU总线接向外设.广泛用作各种并行外设的接口.一.8255的结构与接口信号 8255的结构框图P261、图81。因作为外设接口,既要与CPU打交道,又要和外设打交道,内部亦需控制,所以由三部分组成:1.外设接口部分外设接口部分-端口A,端口B,端口C.即三个输入输出通道,用来和外设相连,都是8位双向端口,所以有
3、口线:PA7PA0,PB7PB0,PC7PC0. A、B、C三个口都可以作为输入/输出口. 在A、B口作为选通方式操作时,C口作为状态控制信号. C口可分成两个4位口.2.内部控制逻辑电路-A组,B组控制电路. 根据CPU的命令控制8255的工作方式. A组控制端口A和端口C的上半部分(PC7PC4). B组控制端口B和端口C的下半部分(PC3PC0).3.CPU接口部分接口部分(1).数据总线缓冲器数据总线缓冲器-它是8位双向三态缓冲器,是与CPU数据总线的接口.8位数据线D7D0.所有数据的输入/输出,CPU发出的命令控制字及输入的外设状态,都是通过该缓冲器传送.(2).读写控制逻辑读写控
4、制逻辑-控制8255内部的各种操作.管理数据,控制字,状态的传送.接收CPU的地址,控制信号以控制各端口的工作状态.所以有6根控制线. A1,A0端口选择:00A口,01B口,10C口,11控制口. CS片选信号-以启动CPU与8255之间的通信. RD读信号-从8255中读数据或状态信号. WR写信号-向8255中写数据或状态信号. RESET复位信号-高电平有效,清除控制寄存器,置A、B、C三个口为输入方式.二、二、8255的工作方式与控制字的工作方式与控制字1、8255有三种工作方式有三种工作方式,方式由方式选择控制字来选择:(1)、方式0基本输入输出方式(基本IO)。A、B、C三口均可
5、工作于方式0。(2)、方式1选通输入输出方式(选通IO)。A、B二口可工作于方式1;此时C口作控制。(3)、方式2双向数据传送方式。仅有A口可工作于方式2。C口作控制。 A口可工作于方式0、1、2三种方式。 B口可工作于方式0、1二种方式。 C口只能工作于方式0。2、方式选择控制字、方式选择控制字 8255的工作方式,是由CPU用一条输出指令把控制字送到8255的控制寄存器来实现的。 方式选择选择控制字的格式P262、图82。由控制字可知: A口可工作于方式0、1、2三种方式; B口只有方式0、1二种方式; C口只能工作于方式0,但C口可分成两部分:上半部分随A口,下半部分随B口;A、B口要作
6、为一个整体确定工作方式,C口可分成两个4位口分别确定其工作方式(输入或输出)。如:控制字90H 1 0 0 1 0 0 0 0标志 A口 A口 C口上 B口 B口 C口下 方式0 输入 输出 方式0 输出 输出 即控制字90H,设定了8255的A口为方式0输入,B口为方式0输出,C口为方式0输出。 用下面程序段设定: MOV DX,PORT3 控制口 MOV AL,90H OUT DX,AL3、按位置位复位控制字、按位置位复位控制字指定指定C口的某一位为口的某一位为高电平或低电平,仅有高电平或低电平,仅有C口可按位置位复位。口可按位置位复位。 当通道A、B工作在方式1、2时,常用通道C的某些位
7、作为同外设的联络控制线,通道C的8位中的任一位都可用输出指令使其置位复位,从而人为控制联络线。 置位复位控制字格式P261、图83:.一般视无关位D6D5D4000,则通道C的每一位的置位复位控制字如下: PCi位 置位控制字 复位控制字 PC0 01 H 00H PC1 03H 02H PC2 05H 04H PC3 07H 06H PC4 09H 08H PC5 0BH 0AH PC6 0DH 0CH PC7 0FH 0EH如PC3置位: MOV DX,PORT3 ;控制端口 MOV AL,7 OUT DX,AL如PC3复位:MOV DX,PORT3 MOV AL,6 OUT DX,ALC
8、端口的按位置位复位字须跟在方式选择控制字之后,所以,仅使用C口的按位置位复位字时,也应先送一方式控制字。8255的两个控制字是以D7位作为区别标志:D71为方式控制字,D70为置位复位字;所以方式字80H,置位复位字80H。P263例:8255的C口接8只LED,用置位复位字,使8只LED轮流亮灭。设端口地址为380H383H。硬件如下:与系统总线的连接 MOV DX,383H MOV AL,80H OUT DX,AL MOV AL,1 ;PC0置位字AGN:OUT DX,AL;PC0灯亮 MOV AH,11 LOOP ;延时 INT 21H AND AL,0FEH;复位字 INC AL OU
9、T DX,AL ; 灯灭 POP AX ADD AL,3 ;指向下一位 JNZ AGN AND AL,0FH ;控制置位 复位字范围 PUSP AX 设方式控制字:C口方式0输出程序中,送置位字,则灯亮;送复位字,则灯灭。由前一位的复位字到后一位的置位字之差为3,加3则指向下一位。 思考:若将LED反接,程序如何修改: 送复位字,则灯亮;送置位字,则灯灭。由前一位的置位字到后一位的复位字之差为1,加1则指向下一位。 MOV DX,383H ;方式字 ADD AL,01H;指向下一位 MOV AL,80H AND AL,0FH;D7位为0 OUT DX,AL PUSH AX MOV AL,0 ;
10、PC0复位字 MOV AH,11AGN:OUT DX,AL ;灯亮 INT 21H LOOP INC AL XOR AL,1 ;置位字 POP AX OUT DX,AL ;灯灭 JNZ AGN作业: P311、 1、 2、三、三种方式的功能及应用、三种方式的功能及应用1、方式、方式0 基本功能基本单向IO方式。 A,B,C三个端口都可作8位输入输出端口。 C端口可作为两个4位端口(C口上,C口下)。 输出有锁存,使用时可理解为273;输入有三态缓冲,使用时可理解为244。 此方式下,只要用INOUT指令即可读写;一般用于无条件传送方式。 此方式下,也可用于查询方式,A,B口为数据口,C口的某些
11、位作控制和状态信息。但值得注意的是无固定联络线。244-273程序 8255程序 AG:MOV DX,380H MOV DX,383H IN AL,DX MOV AL,90H NOT AL OUT DX,AL OUT DX,AL NE:MOV DX,380H MOV AH,11 IN AL,DX ;A口输入 INT 21H NOT AL CMP AL,0 INC DX JZ AG OUT DX,AL ;B口输出 JZ NE 8255初始化A口方式0输入B口方式0输出注:凡是244可用8255的A,B,C三个口的方式0输入代替;273可用8255的A,B,C三个口的方式0输出代替。 8个开关可表
12、示8个不同的数字或8个不同的字符;LED也可以是7段LED显示器。 例:用一片8255实现8个7段LED显示器与64个按键的键盘显示器接口设计。 参见P212 显示器设计,段码输出用273,位码输出用273;参见P214 键盘设计,行扫描码输出用273,列读入值用244。因为都采用动态扫描方式显示和扫描键盘,所以显示器的位显和键的行扫描端口可以合并。即用2片273和1片244即可实现。可用8255的3个端口代替。如选用A,B口为方式0输出(代替273),C口方式0输入(代替244)即可。MOV DX,383HMOV AL,89HOUT DX,AL由于键盘和显示器做成一个接口电路,所以软件应合并
13、考虑键盘查询和动态显示。作业: P311. 4. 5. 第四题参见实验教材P149,只画出流程图。2.方式方式1 基本功能是选通IO方式,也是单向IO。 端口A,B作为数据口输入或输出,但同时规定C口的某些位作为控制或状态信息,用于联络和中断,提供中断逻辑,其C口各位的功能是固定的,不能由程序设定。(1)、方式1输入将三个端口分为A、B两组;端口A和端口C的PC3PC5为一组,端口B和端口C的PC0PC2为一组,端口C剩余的PC6PC7仍可作为一般IO。P265、图85 A口方式1输入 B口方式1输入 控制信号: STB选通信号,低电平有效;这是外设发来的输入信号,前沿(下降沿)把输入装置送来
14、的数据送入输入缓冲器;而后沿(上升沿)使INTR有效。 IBF输入缓冲器满信号,高电平有效;这是8255输出给外设的回答信号;外设将数据送入缓冲器后,该信号有效;RD信号的上升沿将数据送数据总线后,又使其复位。 INTR中断请求信号,高电平有效;这是8255的输出信号,可用作向CPU申请中断的请求信号,以要求CPU服务;当IBF为高和INTE中断允许为高时,STB为高时(即STB的后沿)使INTR为高;由RD信号清除。INTE中断允许信号: 端口A的INTEA可由用户对PC4的按位置位复位控制字来控制,PC41,允许A口中断; 端口B的INTEB可由用户对PC2的按位置位复位控制字来控制,PC
15、21,允许B口中断;操作时序:(1)外设把数据送给8255后,发STB信号,使IBF有效;(2)STB后沿引发INTR;(3)CPU响应中断;(4)CPU发RD信号,使INTR失效;(5)CPU取走数据,使IBF失效,可输入新的数据。P266例:用选通方式(中断方式)从A口输入100个8位二进制数IBF。 8255的使用步骤: 硬件连接将8255和CPU的有关信号连接,又要和 外设连接,此处的外设输入 装置 为8个开关,用发光二极管标志输入缓冲器满的状态,以作为外设回答信号,用去抖动开关作为外设的选通信号 。 软件中对8255进行初始化,以设定其工作方式。 在程序控制下实现数据的输入/输出操作
16、。 BUF DB 100 DUP(?) MOV ES, AX ;设置0段 . MOV DX, 38FH ;置控制口地址 MOV AL, 0B0H ;A口方式1输入 OUT DX, AL MOV AL, 9 PC4置1,允许A口中断 OUT DX, AL MOV AX, SEG IS8255 MOV ES:01C6H,AX 填写向量表 MOV AX, 0FFSET IS8255 MOV ES:01C4H, AXMOV CX, 100 ;计100次 MOV BX, 0 ;计缓冲偏移地址 MOV DX, 38CH ;A口地址 IN AL, 0A1H AND AL, 0FDH ;修改8259从片屏蔽字
17、OCW1 OUT 0A1H, AL ;允许IRQ9中断ROTT:JMP $ ;等待中断,等STB信号 LOOP ROTT ;中断100次 IN AL, 0A1H OR AL, 02H ;还原屏蔽字禁止IRQ9中断 OUT 0A1H, AL RETIS8255:IN AL, DX ; 读A囗数据BUF MOV BUFBX, AL ;产生RD,撤消INTR INC BX ;修改缓冲区地址 MOV AL, 61H OUT 0A0H, AL 主从8259均结束中断 MOV AL, 62H OUT 20H, AL POP AX INC AX INC AX 修改返回地址,跳过JMP $ PUSH AX I
18、RET 作业:P311. 3.(2)方式1输出将三端口分为A组,B组;端口A和C口的PC3,PC6PC7为一组,端口B和C口的PC0PC2为一组, C口剩余PC4PC5 可作一般I/O.控制信号:1) OBF(Output Buffer Full)-输出缓冲器满信号,高电平有效,这是8255给外设的一个联络信号.当CPU把数据 写入端口后,该信号有效.表示外设可以把数据取走。WR信号置成有效,由ACK 的有效(下降沿)使其恢复为高.2)ACK(Acknowledge)-外设响应回答信号,低电平有效;该信号的前沿取走数据,使OBF无效,表示数据已由外设取走;后沿使INTR有效.3)INTR-中断
19、请求信号,高电平有效;当输出装置已经接受了CPU输给的数据后,用来向CPU提出新的中断请求,要求再输出数据.当ACK为高(即后沿),INTE为高,OBF为高, 使其置高,WR的前沿(下降沿)使其复位.4)INTEA-由PC6的置位/复位控制;INTEB-由PC2的置位/复位控制. CPU 响应中断发出WR,使OBF有效. 外设取走数据,ACK使OBF无效. ACK的上升沿使INTR有效,再次中断. CPU响应中断,再次WR,使INTR失效,输出一个新数.P268例.设计接口电路,输入A口8个开关的状态,送B口发光二极管显示对应状态.要求A口为基本输入,B口为选通输出。 8个开关接A口,作为输入
20、装置;8个发光二极管接B口,作为输出装置;OBF接一发光二极管,以标示输出缓冲器满,ACK接一去抖动开关,板动开关表示外设发出响应信号.DA1 DB Wait Interrupt, 0AH,0DH,$MOV ES, AX ;置0段 .MOV DX, 383H ;控制口地址MOV AL, 94H ;方式字1001 X10XOUT DX,AL ;A口方式0输入,B口方式1输出MOV AL, 5 ;PC2置位,允许B口中断OUT DX, AL 将中断服务程序入口地址IO8255MOV AX, SEG IO8255 向量表MOV ES:01C6H, AX IRQ9中断中断矢量是71HMOV AX,OF
21、FSET IO8255MOV ES:01C4H,AXMOV DX,381HOUT DX,AL IN AL, 0A1H AND AL, 0FDH 修改8259从片的屏蔽字,允许IRQ9中断 OUT 0A1H, AL ROTT: LEA DX, DA1 MOV AH, 9 显示等待中断提示“Wait Interrupt” INT 21H MOV DX,380H 读A口,准备好数据 IN AL,DX JMP $ ;等待中断,即等待ACK, 板动开关即可 假输出,使OBF0MOV AH, 0BH INT 21H CMP AL, 0 JE ROTTIN AL, 0A1HOR AL,02H OUT 0A1
22、H, ALRET无键入,侧再次等待中断,改变开关状态,观察输出有键入,侧还原8259屏蔽字,禁止IRQ9中断IO8255:MOV DX, 381H OUT DX, AL 将A口开关状态B口显示 MOV AL, 61H OUT 0A0H, AL 主、从8259结束中断 MOV AL, 62H OUT 20H, AL POP AX INC AX 修改返回地址,跳过JMP $ INC AX PUSH AX IRET3.方式方式2 基本功能该方式使外设在单一8位总线上既能发送又能接收数据(双向I/O);工作时可用程序查询方式;也可用中断方式,必须使用联络线。(1)方式2只能用于端口A;因为A口内部有两
23、个锁存器,而B口,C口仅有一个锁存器。(2)占用一个8位的双向A端口作数据口和一个五位的控制口(C口的PC3PC7).(3)输入和输出都是锁存器的。(4)端口C的其他三位PC0PC2可作I/O或作B口的状态控制信号。 (5)B口可工作方式0或方式1。 控制信号的作用与意义同方式1,INTE1是输出的中断允许信号由PC6的置位/复位控制(A口方式1输出).INTE2是输入的中断允许信号,由PC4的的置位/复位控制(A口方式1输入) 。 方式2实际是方式1的输入与方式1的输出的组合,输入/输出请求都是PC3的INTR,四根联络信号都要连接,常用于需相互通信的地方。四.8255在IBMPC机中的应用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第八 常用 可编程 通用 接口 芯片
限制150内