首页 微机原理8255A

微机原理8255A

举报
开通vip

微机原理8255Anullnull5.5 可编程并行输入/输出接口芯片8255A并行接口的特点 可编程并行通信接口芯片8255 null一、并行接口的特点并行接口是在多根数据线上,以字节/字为单位与I/O设备交换数据null二、可编程并行通信接口芯片82558255芯片引脚定义与功能Intel系列的8位并行接口芯片 通用性强,使用灵活 可用程序设置和改变芯片的工作方式 是一种典型的可编程并行接口芯片40个引脚,双列直插式null二、可编程并行通信接口芯片8255null二、可编程并行通信接口芯片82558255芯片引脚定义与功能1....

微机原理8255A
nullnull5.5 可编程并行输入/输出接口芯片8255A并行接口的特点 可编程并行通信接口芯片8255 null一、并行接口的特点并行接口是在多根数据线上,以字节/字为单位与I/O设备交换数据null二、可编程并行通信接口芯片82558255芯片引脚定义与功能Intel系列的8位并行接口芯片 通用性强,使用灵活 可用程序设置和改变芯片的工作方式 是一种典型的可编程并行接口芯片40个引脚,双列直插式null二、可编程并行通信接口芯片8255null二、可编程并行通信接口芯片82558255芯片引脚定义与功能1. 数据端口 A、B、C每个端口8位,通过编程设定其为输入口或输出口 可用来和外设传送信息 端口A 有 3 种工作方式( 方式 0、方式 1、方式 2) 对外 8 根引脚 PA7 ~ PA0 null二、可编程并行通信接口芯片82558255芯片引脚定义与功能1. 数据端口 A、B、C端口B 有 2 种工作方式:方式 0、方式 1 对外 8 根引脚 PB7 ~ PB0端口C对外引脚PC0 ~ PC7null二、可编程并行通信接口芯片82558255芯片引脚定义与功能1. 数据端口 A、B、C ★当端口 A 在方式 1 或方式 2、端口 B 在方式 1 时, 端口 C 的某些位用于传送联络信号, 以适应CPU与外设间的各种数据传送方式的要求, 如查询传送的应答信号、中断传送的中断申请信 号等; ★C口未被用作联络信号的其它位可工作在方式 0下。null二、可编程并行通信接口芯片82558255芯片引脚定义与功能2. 控制端口D (A组和B组控制电路) 8位端口,无对外引脚可用来和外设传送信息 控制端口的内容决定A口、B口、C口的工作状态(输入或输出) 和工作方式(方式 0、1、2), 起控制作用。 null二、可编程并行通信接口芯片82558255芯片引脚定义与功能3. 数据总线缓冲器(引脚D0~D7)由1个8位双向三态缓冲器构成 8255A内各端口通过数据缓冲器与系统总线相连。 CPU与端口A、B、C间传送的数据, 以及CPU写入控制端口D中的控制字均通过数据缓冲器传送。null二、可编程并行通信接口芯片82558255芯片引脚定义与功能4. 读写控制电路 (引脚CS、 RD、 WR)控制数据总线缓冲器的状态。 数据总线缓冲器有3种状态:输入、输出、高阻态 null二、可编程并行通信接口芯片82558255芯片引脚定义与功能5. 片内译码电路 (引脚A1、 A0)选择被操作的端口null二、可编程并行通信接口芯片82558255芯片引脚定义与功能由CS、A1、A0、RD、WR引脚的不同组合,实现各种不同的功能。     null在8255A内部硬件结构中: A口和B口之间没有硬件关系, 即可分别作为独立的输入或输出端口; C口和A口,C口和B口之间有硬件联系, 通过向控制口设置控制字可以改变这种联系。三、 三种工作方式null三、 三种工作方式根据A口和C口、B口和C口之间硬件关系的不同, 可以有三种不同的工作方式, 分别称为方式 0、方式 1、方式 2。A口或B口工作在方式 0: 与C口之间没有硬件联系。 A口或B口工作在方式 1: C口的某3根引脚作为端口与外设的联络信号。 A口工作在方式 2: C口的某5根引脚作为端口与外设的联络信号。 null三、 三种工作方式1. 方式0(基本输入输出方式) A口工作在方式 0 时,A口和C口之间没有硬件联系 B口工作在方式 0 时,B口和C口之间没有硬件联系null三、 三种工作方式1. 方式0(基本输入输出方式) 工作在方式 0 的端口,为单向传送端口, 输入或输出 作为输入口相当于普通的三态门 作为输出口相当于普通的锁存器 CPU可利用工作在方式 0 的端口,直接对端口进行读写操作,实现CPU与外设间的数据传送。null三、 三种工作方式 2. 方式1(选通输入输出方式) A口工作在方式1时,C口的某3根引脚作为A口的联络信号。 B口工作在方式1时, C口的某3根引脚作为B口的联络信号。工作在方式 1 的端口,为单向传送端口。 在方式 1 下,C口作为A口、B口联络信号的引脚,其动作关系在芯片设计和制造时已固定, 不由用户自己安排,也不能编程改变。null三、 三种工作方式3.方式2 (双向传送方式)端口工作在方式 2时,C口的某5根引脚作为端口的 联络信号 8255A 只有A口可以工作在方式 2 下。 与方式0和方式1不同的是: 工作在方式 2 的端口,为双向传送端口,既可输入又可输出。null方式选择控制字四、8255A的控制字null所以, 方式控制字为 1000 0010B, 即82H 由于对 C口无要求, 控制C口的相应位D4, D0可为任意值,假设取0例 假设8255A 控制端口的地址为203h,编程设置控制字,使A口方式0输出; B口方式0输入null设置控制字的程序段如下: MOV DX,203h ;置DX为控制口地址 MOV AL,82h ;置控制字于AL中 OUT DX, AL ;将控制字写入控制口例 假设8255A 控制端口的地址为203h,编程设置控制字,使A口方式0输出; B口方式0输入null端口C置位/复位控制字注意:C口控制字虽然是对端口C操作,但应写入到控制口地址,而不是写入到C数据口null例 假设8255A的控制口地址为203h, 通过控制口置 PC2 为 0,置 PC4 为 1 MOV DX,203H ;置DX为控制口地址 MOV AL,0000 0100B ;置PC2为0 OUT DX, AL MOV AL,0000 1001B ;置PC4为1 OUT DX, AL null例:设 A、B、C数据口地址分别位60H、 61H、 62H、控制口端口地址 63H1:A口方式0,输出、B口方式0,输入,C口高4位输出,C口低4位入 MOV AL,10000011B OUT 63H,AL 2:PC7置1,PC3置0 MOV DX,63H MOV AL,0000,1111B;PC7置1 OUT DX,AL MOV AL,0000,0110B;PC3置0 OUT DX,ALnull8255的工作方式08255作为打印机接口,工作于方式01. 方式0(基本输入输出方式,单向传送端口, 输入或输出 )null程序设计:设PA、PB、PC口地址分别为0D0H、0D2H、0D4H控制口地址:0D6H MOV AL,81H; OUT 0D6H,AL MOV AL,0DH;① PC6置1,0DH=0000,1101 OUT 0D6H, AL LPST: IN AL,0D4H;读PC口 AND AL,04D;② 打印机忙否(PC2 =BUSY=?) JNZ LPST ;PC2=1,打印机忙,等待 MOV AL, CL OUT 0D0H, AL;③ CL中的字符送PA口 MOV AL, 0CH OUT 0D6H, AL;④ 置PC6=0,即=0;00001100=0CH INC AL OUT 0D6H, AL;置PC6=1,即=1,00001101=0DH ┆null8255的工作方式1——选通输入输出方式 A口工作在方式1时,C口的某3根引脚作为A口的联络信号 B口工作在方式1时, C口的某3根引脚作为B口的联络信号。 工作在方式 1 的端口,为单向传送端口。由方式控制字决定是输入还是输出。 C口作为联络信号的引脚,不受方式控制字的控制。该出则出,该入则入, 不受C口按位置位/复位控制字控制。null8255的工作方式1——选通输入输出方式 利用方式 1 下的联络信号, 可方便地实现查询或中断方式的硬件设计, 使CPU能够有效、可靠地与外设进行数据传送。 A口、B口在输入或输出不同的工作状态时, C口联络信号的引脚和意义也不同。null8255的工作方式1——选通输入输出方式null8255的工作方式1——选通输入输出方式对方式1输入的端口,C口提供与外部联络的信号有: ① STB 选通信号(低电平有效) 由外设发出,送给8255A,作用是将外设送来的数据锁存到8255A的输入端口。 ② IBF 输入缓冲器满信号(高电平有效) 8255A 发出,表示外设送来的数据已进入输入端口。 当外设送来的数据送入输入端口后,8255A自动发出。 ③ INTR 中断申请信号(高电平或上升沿有效) 8255A 发出,用来向CPU发出中断申请。STB、IBF、INTE均为1时,8255A自动发出INTR。null8255的工作方式1——选通输入输出方式对方式1输入的端口,8255A内部的控制信号有: INTE 中断允许控制信号, 作用是控制是否允许8255A的中断申请信号INTR发出。 此信号无引出,通过控制口对C口相应位的置位/复位设置允许或不允许。 A口,对PC4置位, 使INTEA=1, 允许中断 对PC4复位, 使INTEA=0, 不允许中断 B口,对PC2置位, 使INTEB=1, 允许中断 对PC2复位, 使INTEB=0, 不允许中断null8255的工作方式1——选通输入输出方式方式1的输入时序:从工作在方式1下的输入端口输入数据时,有关信号的变化关系。外设送来数据②③当INTE=1时 ①null8255的工作方式1——选通输入输出方式① 当外设准备好数据,将数据送至端口线PA7~PA0或PB7~PB0 ② 外设发出选通信号STB: (1) 将数据锁存在输入端口内。 (2) 使IBF变高,表示输入端口满,可用于阻止外设输入新数据。(3) 如果INTE=1, STB的上升沿使INTR变高,发出中断请求。 ③ 转中断处理程序,执行IN指令,CPU 读取数据,发出RD信号: (1) RD 的下降沿清除INTR (2) RD 的上升沿清除IBF (3) 端口内的数据进入CPUnull8255的工作方式1——选通输入输出方式null8255的工作方式1——选通输入输出方式对方式1输出的端口,C口提供与外部联络的信号有: ① OBF 输出缓冲器满信号(低电平有效)  当数据送至8255A输出缓冲器后,8255A自动发出。 表示CPU送来的数据已进入8255A输出端口,可用来通知外设把数据取走。 ② ACK 外设响应信号(低电平有效)   由外设发出,送给8255A。作用是通知 8255A输出端口的数据已被外设取走,可以传送下一个数据。null8255的工作方式1——选通输入输出方式③ INTR 中断申请信号(高电平或上升沿有效)   8255A 发出, 用来向CPU发出中断申请。  当OBF 、ACK、INTE均为1时,8255A自动发出INTR。null8255的工作方式1——选通输入输出方式对方式1输出的端口,8255A内部的控制信号有: INTE 中断允许控制信号,作用是控制是否允许中断申请信号INTR发出。 此信号无引出,通过控制口对C口相应位的置位/复位设置允许或不允许。 A口,对PC6置位, 使INTEA=1, 允许中断 对PC6复位, 使INTEA=0, 不允许中断 B口,对PC2置位, 使INTEB=1, 允许中断 对PC2复位, 使INTEB=0, 不允许中断null8255的工作方式1——选通输入输出方式方式1的输出时序:向工作在方式1下的输出端口输出数据时,有关信号的变化关系。null8255的工作方式1——选通输入输出方式① CPU执行OUT指令,输出数据 ② CPU发出WR (1) 数据写到 8255A的端口 (2) 使OBF有效(OBF=0) ,表示输出端口满,可作为外设的选通信号,通知外设取数据。 (3) 清除中断请求信号INTR ③ 外设接受到数据后,发出ACK信号 (1) ACK的下降沿使OBF变高, (2) 当INTE=1, ACK的上降沿使INTR变高,发出中断请求,请求CPU输出新的数据。null8255的工作方式1——选通输入输出方式null主程序: MAIN:MOV AL,0A0H ;方式选择控制字 OUT 0C6H,AL MOV AL,01H ; OUT 0C6H,AL CLI ;替换中断向量前关中断 MOV AH,25H ;替换中断向量的典型方式 MOV AL,0BH ;IR3的类型码为0BH MOV DX,OFFSET ROUTINTR PUSH DS MOV AX,SEG ROUTINTR MOV DS,AX INT 21H POP DS MOV AL,0DH ;PA方式1输出,“置PC6=1的操作” OUT 0C6H,AL ;使8255允许中断(INTEA=1) STI ;CPU开中断 ┆假 设: A口地址 0C0H B口地址 0C2H C口地址 0C4H 控制口 0C6Hnull中断处理程序 ROUTINTR: MOV AL,[DI] ;DI为打印字符缓冲区地址 OUT 0C0H,AL MOV AL,00H ;置PC0=0 OUT 0C6H,AL INC AL ;置PC0=1 ┆ IRETnull8255的工作方式2——选通双向传输方式 端口工作在方式 2时,C口的某5根引脚作为端口的联络信号 8255A 只有A口可以工作在方式 2 下。 与方式 0、方式 1的单向传送不同,工作在方式 2下的端口,具有双向传送功能。 A口工作在方式 2 下,C口未做联络信号的3条引脚 可作为B口在方式1下的联络线,也可和B口一样工作在方式0下。 由方式控制字决定其输入/输出。null8255的工作方式2——选通双向传输方式工作在方式2时,C口有5根引脚作为A口的联络信号,是方式1下A口输入、输出联络信号的组合。null8255A在IBM PC/XT主板上的应用 键 盘 接 口 键 盘 键盘 中断申请 8259A IR1 INTA INT 8 0 8 8 INTR INTA 60H端口 61H端口 8255A应答信号扫描码 辅 助 电 路 IR0 18.2Hz方 波 扬声器 null8255A与系统的连接8255A在IBM PC/XT主板上的应用null各端口的地址分别为: A口:60H B口: 61H C口:62H 控制口: 63H 正常工作时,A、B、C三个端口均工作在方式0, A口输入、B口输出、C口输入 , 方式控制字为:1001 1001 B(99H) ( 8255A的控制字在系统初始化中已设置 ) 8255A在IBM PC/XT主板上的应用null 8255A在IBM PC/XT主板上的应用发声程序中 通过61H端口控制发声 键盘中断子程中 通过60H端口读入键盘扫描码执行:OUT 61H, ALnull执行:OUT 61H, AL8255A在IBM PC/XT主板上的应用null*例9.1 某系统要求使用8255的A口工作于方式1作输入,B口工作于方式0作输出,C口上半部输入,下半部输出。8255端口地址为60H-63H。 控制字为:10111000B=0B8H  初始化程序为: MOV AL,0B8H OUT 63H,AL null*2.C口按位置/复位控制字(写,A1A0=11 ) C口按位置/复位控制字例9.2 如上例,若A口工作于方式1作输入,要使用中断传送方式,则应当写PC4的按位置位字: MOV AL,00001001B OUT 63H,AL null* 方式1下8255状态字中INTE位的置位和复位⊙ 若禁止PA口输入中断请求 MOV DX,303H ;8255命令口 MOV AL,00001000B ;置PC4=0,禁止中断请求 OUT DX,AL⊙ 若允许PA口输入中断请求 MOV DX,303H ;8255命令口 MOV AL,00001001B ;置PC4=1,允许中断请求 OUT DX,AL⊙ 若允许PA口输出中断请求 MOV DX,303H ;8255命令口 MOV AL,00001101B ;置PC6=1,允许中断请求 OUT DX,ALnull*⊙ 若允许PB口输入中断请求 MOV DX,303H ;8255命令口 MOV AL,00000101B ;置PC2=1,允许中断请求 OUT DX,AL⊙ 若禁止PB口输入中断请求 MOV DX,303H ;8255命令口 MOV AL,00000100B ;置PC2=0,禁止中断请求 OUT DX,AL⊙ 若允许PB口输出中断请求 MOV DX,303H ;8255命令口 MOV AL,00000101B ;置PC2=1,允许中断请求 OUT DX,ALnull*例9.3 下图采用一个8255芯片和软盘控制器相连,箭头标明了I/O的方向,根据该图,试写出8255的初始化程序。设8255端口地址为0300-0303H。 8255用作软盘基本接口null* A口工作在方式2,PC4-PC7作应答联络信号线,PC3用作A组中断请求,B口和PC0-PC2作输出,工作在方式0。  工作方式控制字为:11XXX000B 初始化程序为: MOV DX,303H MOV AL,0C0H OUT DX,AL MOV AL,00001001B OUT DX,AL ;PC4置位,开放输入中断 MOV AL,00001101B OUT DX,AL ;PC6置位,开放输出中断null*例9.4 某应用系统以8255A作为接口,采集一组开关S7~S0 的状态,然后通过一组发光二极管LED7~LED0显示开关状态,(Si闭合,则对应LEDi亮,Si断开,则对应的LEDi灭)电路连接如下图,已知8255A、B两组均工作在方式0。写出8255四个端口的地址。 写出8255工作方式控制字。 写出实现给定功能的汇编语言程序。null*LED7LED0S7S0PB7PB0PA7PA08255AD7~D0D7~D0WR#RD#IOW#IOR#Y0 #G1G2A#G2B#CBA74LS138CS#A9AEN&A8A7A6A5A4A3A2A1A0A1A0null*答:A口、B口、C口和控制口的地址分别是 320H、321H、322H和323H。 A口工作在方式0输出,B口工作在方式0输入,C口空闲,所以其控制字是10000010b=82H 程序如下: MOV AL, 82H ;置方式字 MOV DX, 323H ;置控制端口地址 OUT DX, AL L1: MOV DX, 321H ;置B口地址 IN AL, DX ;读开关状态(1断,0通) NOT AL ;状态取反 MOV DX, 320H ;置A口地址 OUT DX, AL ;输出(1亮,0灭) JMP L1null*思考题: 如果上题要求修改成:不用查询方式,而是每50ms来一次中断,在中断中读B口,输出A口,请问电路和程序要怎么改动?假设系统提供一个2KHz的脉冲。null*例9.5 假设利用8255的A口方式0与打印机相连,将内存缓冲区BUFF中的字符打印输出。 null*打印机时序返回null*8255与打印机接口null*DATA SEGMENT BUFF DB ‘HELLO,WORLD!’,13,10,‘$’ PORTA EQU 60H PORTB EQU 61H PORTC EQU 62H PORTCN EQU 63H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUFF MOV AL,88H ;8255初始化,A口方式0输出,C口上半部输入null* OUT PORTCN,AL ;C口下半部输出 MOV AL,01H ;置位PC0,STB无效 OUT PORTCN,AL WAIT:IN AL,PORTC ;读打印机状态,若“忙”则等待 TEST AL,80H JNZ WAIT MOV AL,[SI] CMP AL,‘$’ JZ PRINT_OVERnull* OUT PORTA, AL ;数据送出 MOV AL, 00H ;产生选通信号,打印机接收数据,开始打印。 OUT PORTCN ,AL MOV AL,01H OUT PORTCN ,AL INC SI JMP WAIT PRINT_OVER: MOV AH,4CH INT 21H CODE ENDS END START 看图
本文档为【微机原理8255A】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_181941
暂无简介~
格式:ppt
大小:659KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2010-10-30
浏览量:50