资源描述
串行通讯基础并行通讯基础可编程并行接口芯片8255A8255A的应用举例n计算机与外设交换信息的过程中:n并行通信:多位数据通过多条数据线同时传送。n串行通信:多位数据通过同一条数据线按位传送。与串行通信(一位一位传输)相比,在相同传输率下,并行通信的信息实际传输速度快、信息率高。但并行通信比串行通信所用电缆多,随着距离的增加,电缆的开销会成为突出的问题。所以,并行通信总是用在数据传输率要求较高,而传输距离较短的场合。第一节第一节 串行通讯基础串行通讯基础1、概念:、概念:所谓串行通信是指外设和计算机间使用一根数据信号线一位一位地传输数据,每一位数据都占据一个固定的时间长度。“串行”是指外设与接口电路之间的信息传送方式,CPU与接口之间仍按并行方式工作。2 2、一个典型的串行接口的结构、一个典型的串行接口的结构 主要有:控制寄存器 状态寄存器 数据输入/输出寄存器 串入/并出移位寄存器 并入/串出移位寄存器 结构图如下:常用的可编程串行接口芯片:intel 8251、INS 8250、Z80SIO等。3 3、串行通信中需解决的问题串行通信中需解决的问题 1、首要问题:如何识别在一根线上既传送数据又 传送联络信号。2、传送信号的格式要有固定要求。3、传送过程中的电平转换。4、通信双方必须约定传输速率。4、串行口的基本任务、串行口的基本任务 (1)进行串,并转换 (2)实现串行数据格式化 (3)可靠性检验 (4)实施接口与DCE之间联络控制 串行数据在传输过程中,由于干扰可能引起信息的出错 如何发现传输中的错误,叫检错发现错误后,如何消除错误,叫纠错 最简单的检错方法是奇偶校验,即在传送字符的各位之外,再传送1位奇/偶校验位。可采用奇校验或偶校验。奇校验:所有传送的数位(含字符的各数位和校验位)中,1的个数为奇数偶校验:所有传送的数位(含字符的各数位和校验位)中,1的个数为偶数1 1、全双工、全双工(Full DuplexFull Duplex)数据的发送和接收分别由两根可以在两个不同的站点同时发送和接收的传输线进行传送,通信双方都能在同一时刻进行发送和接收操作,选择的传送方式称为全双工制。发送器接收器接收器发送器A站B站图5.1 全双工方式示意图特点:每一端都有发送器和接收器 有二条传送线应用:交互式应用,远程监测控制2 2、半双工(、半双工(Half DuplexHalf Duplex)使用同一根传输线,既可发送数据又可接收数据,但不能同时收送数据,这样的传送方式就是半双工(Half Duplex)制,如图5.2所示发送器接收器发送器接收器A站B站图5.2 半双工方式示意图特点:每端需有一个收/发切换电子开关 因有切换,会产生时间延迟应用:打印机串口,单向传送设备,发送器接收器 发送接收特点:信息只能沿一个方向传送,使用一根传 输线。应用:电视发射台 1、波特率、波特率 在串行通讯中,用波特率来描述数据的传输速率。波特率,即每秒钟传送的二进制位数,简写为bps。收、发双方的波特率必须一致。接收时钟/发送时钟频率是波特率的倍数,称为波特率因子。如常用的有:1、16、32、64。例:波特率=9600bps,波特率因子=16,则接收时钟和发送时钟频率=960016=153600Hz 常用的标准波特率:110,300,1K,1.2K,2.4K,4.8K,9.6K,19.2K,56K2 2、字符速率:字符速率:是指每秒所传输的字符数,这个概念使用少。字符速率与波特率的关系:1个字符:1个起始位+8个数据位+1个偶数位+2个终止位=12位 如果波特率:12000 则字符速率:12000/12=1000字符/s五、信号的调制和解调五、信号的调制和解调 计算机的通信是要求传送数字信号,而在进行远程数据通信时,线路往往是借用现有的公用电话网,但是,电话网是为音频模拟信号的设计的。一般为3003400Hz,不适合于数字信号。因此需要对二进制信号进行调制,以适合在电话网上传输相应的音频信号,在接收时,需要进行解调,还原成数字信号。计算机MODEMMODEM模拟信号数字信号数字信号CRT1 0 1 010 10 10 10 调制电话线1 1、什么叫调制什么叫调制?所调调制就是进行波形变换。或者说进行频谱变换,就是将基带数字信号的频谱变换成适合于在模拟信道中传输的频谱。2 2、作用作用:调制器(Modulator)是一个波形变换器,它将基带数字的波形变换成适合于模拟信道传输的波形。解调器是一个波形识别器,将模拟信号恢复成原来的数字信号。调制器解调器0100100100103.3.调制方法调制方法:最基本的调制方法有以下几种:(1)调幅(AM)即载波的振幅随基带数字信号而变化.“1”对应有载波 “0”对应无载波(2)调频(FM)即载波频率随数字信号而变化 “0”对应”f1”“1”对应“f2”(3)调相(PM)即载波初始相位随基带数字信号而变化.“0”对应相位0度 “1”对应相位180度f1f2FMAM0 1 0 0 1 10度180度PM六、六、按信息格式的不同约定将串行通信分为两种类型:同步通信、异步通信。1 1、异步通讯:、异步通讯:以字符为单位进行传输,每个字符一位一位地传输,传输一个字符时,以起始位开始,然后传输字符本身的各位,接着可传输校验位,最后以停止位结束该字符的传输。一次传输的起始位、字符各位、校验位、停止位构成一组完整的信息,称为帧(Frame)。帧与帧之间可有任意个空闲位。起始位之后是数据的最低位。异步通信可以采用正逻辑或负逻辑。异步通信的信息格式:起始位逻辑01位 数据位逻辑0或15位、6位、7位、8位 校验位逻辑0或11位或无 停止位逻辑11位、1.5位或2位 空闲位逻辑1任意数量最低位最低位最高位最高位奇偶位奇偶位停止位停止位起始位起始位数据位数据位例:传送8位数据45H(0100,0101B),奇校验,1个停止位,则信号线上的波形为2 2、同步通讯、同步通讯 同步通信是靠同步字符完成收发双方同步的。多个字符成组传送,在每组信息的开始,加上同步字符,字符组和同步字符以及需要的其他字符构成一个信息帧。不允许字符数据间有空隙,没有数据时可填充同步字符。同步字符同步字符 字符字符1 字符字符2 字符字符n 校验字符校验字符数据块数据块总结特点:总结特点:以数据流为单位进行传送,每个数据流(即 每帧)中有成百上千个字符。以同步字符作为传送的开始,同步字符 可由用户确定。每位占用时间相等。数据流不允许有空隙,当来不及准备数据 而无数据可发时,发送同步字符填充。收/发时钟频率=收/发波特率。3 3、两者比较、两者比较 同步通信的数据传输效率高。同步通信的硬件电路复杂。说明:“同步同步“通信过程中,要求字符与字符之间以及字符内部的位与位之间都必须同步。为达到这一目的,要求收、发双方必须使用同一时钟对被传输信息定位。“异步异步”主要体现在通信过程中字符与字符之间没有严格的定时要求,通信双方是 通过收/发双方事先约定的收/发波特率和字符格式、在收/发端各自的时钟信号作用下,实现被传送字符的位同步的。因此,要求收发端使用相同(相近)的时钟。七、七、数据通信的整个过程可视作是通过一系列串行接口和传输信道将信息传送到目的地的过程。为使现这一过程的规范化及准确无误,有了许多接口的“标准”和接口信号的“推荐做法。接口标准主要有:RS232、RS422、RS485、X21、X25 它们都是根据不同的推荐标准而设计出来的接口标准。各接口标准均包含4个方面内容:接口的机械性能 接口间的电气特性 接口各信号的功能 具体应用时接口信号的连接 计算机通信中使用最普遍的是RS-232C标准,PC机上的COM1、COM2接口,就是RS-232C接口,使用9针和25针连接器。EIA-RS-232接口标准 RS-232标准是美国EIA(电子工业联合会)与BELL等公司一起开发的,1969年公布的通信协议,适合的数传率:020Kbps。RS232的确切定义是:“数据DTE终端设备与数据通信设备采用串行二进制数据交换的接口。”RS232标准接口的电气特性定义了有关电压、电流一些特殊的电气信号以及接口间的信号类型等标准。RS-232C采用负逻辑,且信号电平与TTL不兼容,规定逻辑“1”在-3V-15V之间,逻辑“0”在+3V+15V之间。RS-232C不是TTL电平的接口标准,当计算机与外设进行通信时,必须有相应的电平转换电路。通常采用的是MC1488和MC1489电平转换器。串行接口芯片8250、8251均使用TTL电平,应使用电平转换电路与RS-232C连接器连接。MC1488:TTL电平RS232电平(用于发送方)MC1489:TTL电平RS232电平(用于接收方)第二节第二节 并行通讯基础并行通讯基础n实现并行通信的接口就是并行接口。一个并行接口可以设计为只用来作为输出接口,也可以只用来作为输入接口,此外,还可以把它设计成既作为输入又作为输出的接口。n并行接口是在多根数据线上,以字节/字为单位与I/O设备交换数据。n在计算机内部数据是并行传送的。因此,并行接口电路相对简单,串行接口电路由于要进行串并行转换相对复杂。n并行接口电路芯片常用的有两类:n普通的8位锁存器及缓冲器n可编程设置工作方式的并行接口n下面看一个典型的并行接口电路图:CPU数据总线读出信号写入信号复位准备好中断请求地址译码地址控制寄存器输入缓冲寄存器输出缓冲寄存器状态寄存器片选A0A1输入设备输出设备数据输入准备好数据输出准备好数据输入回答数据输出回答数据输入数据输出第三节第三节 可编程并行接口芯片可编程并行接口芯片82558255A Au8255A 是INTEL系列的并行接口芯片,由于它是一种可编程的外部接口部件,通常作为微机系统总线与外部设备的接口控制部件,可通过软件来设置芯片的工作方式,用8255A连接外部设备时,通常不需要附加外部电路,给使用带来很大的方便。uIBM PC就是采用8255A与键盘、扬声器等其他外设进行接口。u40PIN、DIP封装,芯片体积大,设计简单的系统通常不用。u在目前的主板中,功能已经集成在芯片组中,但使用和编程与8255A完全一致。一、一、8255A内部结构内部结构A组控制数据总线缓冲器读/写控制逻辑B组控制A组A口(8位)A组C口高位(4位)B组C口低位(4位)B组B口(8位)D0D7WRRDA1A0RESETCSPA0PA7PC4PC7PC0PC3PB0PB78255A内部框图8255A内部组成(内部组成(1):):n数据端口数据端口A,B,CA,B,C 82558255有有3 3个个8 8位的位的I/OI/O端口,可分别作为输入端口或输端口,可分别作为输入端口或输出端口。出端口。n端口A:对应了1个8位的数据输入锁存器和1个8位的数据输出锁存/缓冲器。所以口A作为输入或输出时,数据均受到锁存。n端口B:对应了1个8位的数据输入缓冲器和1个8位的数据输出锁存器/缓冲器。所以口B作为输入端口时,不会对数据进行锁存,而作为输出端口时,数据会受到锁存。n 端口C:与口B基本一致。n 在使用中,端口端口A A和和B B通常作为独立的输入端口或输通常作为独立的输入端口或输出端口,端口出端口,端口C C则配合端口则配合端口A A和和B B的工作。的工作。具体讲,就是口C通过控制命令被分成2个4位端口,每个4位端口包含1个4位的输入缓冲器和1个4位的输出缓冲器,他们分别用来为端口A和B输出控制信号和输入状态信号。8255A内部组成(内部组成(2):):nA组控制和组控制和B组控制组控制 这两组控制电路:一方面接收芯片内部总线上的控制字,一方面接收来自读/写控制逻辑电路的读/写命令,由此决定两组端口的工作方式和读写操作决定两组端口的工作方式和读写操作。nA组控制电路控制端口A和口C的高4位(PC7PC4)的工作方式和读/写操作。nB组控制电路控制端口B和口C的低4位(PC3PC0)的工作方式和读/写操作。8255A内部组成(内部组成(3):):n读读/写控制逻辑电路写控制逻辑电路 读/写控制逻辑电路负责管理负责管理82558255的数据传输过程的数据传输过程。它接收CS及来自系统地址总线A1,A0(8086系统中为A2,A1)和控制总线的输入信号RESET,WR,RD,将这些信号组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令发送给这两个部件,以完成对数据、状态信息和控制信息的传输。n 数据总线缓冲器数据总线缓冲器 8255的数据总线缓冲器是双向三态的8位数据缓冲器,通过它直接与系统的数据总线相连通过它直接与系统的数据总线相连。输入数据、输出数据、CPU发给8255的控制字都是通过这个缓冲器传送的。说明:说明:(1)A1A0 端口口线 00端口APA7PA001端口BPB7PB0 10端口CPC7PC011 对控制端口写控制字(2)端口C又可以分成“上C口”和“下C口”2个部分,用作A口和B口的控制信号线,所以把A口+上C口称为A组,B口+下C口称为B组。(3)PA口:输入有锁存器,输出有锁存器和缓冲器,PB和PC口:输入有缓冲器,输出有锁存器和缓冲器。二、二、8255A的引脚框图的引脚框图 8255A是一个单+5V电源供电,40个引脚的双列直插式组件,其外部引线如图所示:与系统总线的连接信号与系统总线的连接信号n面向数据总线的有:D0D7:双向数据线,用于CPU向8255A发送命令、数据和8255A向CPU回送状态、数据和8255A向CPU回送状态、数据。n面向地址总线的有:12345678910111213141516171819204039383736353433323130292827262524232221PA4PA5PA6PA7PB7PB5PB4PB3PB8D1D2D3D4D0D5D6D7VCCRESETWRRDCSPA3PA2PA1PA0GNDA1A0PC7PC6PC4PC0PC1PC2PC5PB0PB1PB2PC38255ARD:读信号,低电平有效。WR:写信号,低电平有效。RESET:复位信号,高电平有效。它清除控制寄存器并将8255A的A、B、C三个端口均置为输入方式;输入寄存器和状态寄存器被复位,并且屏蔽中断请求;24条面向外设信号线呈现高阻悬浮状态。与外部设备的连接信号与外部设备的连接信号 PA0PA7:端口A的输入/输出线。PB0PB7:端口B的输入/输出线。PC0PC7:端口C的输入/输出线。这24根信号线均可用来连接I/O设备和传送信息。其中,A口和B口只作输入/输出的数据口用,尽管有时也利用它们从I/O设备读取一些状态信号,如打印机的“忙”(Busy)状态信号、A/D转换器的“转换结束”(EOC)状态信号,但对A口和B口来说,都是作8255A的数据口读入,而不是作8255A的状态口读入的。C口的作用与8255A的工作方式有关,它除了作数据口以外,还有其他用途,故C口的使用比较特殊,单独介绍如下:a.作数据口。b.作状态口。c.作专用(固定)联络(握手)信号线。d.作按位控制用。三、三、8255A控制字控制字 8255A可通过指令在控制端口中设置控制字来决定它的工作。其控制字可分为两类:n芯片各端口的方式选择控制字芯片各端口的方式选择控制字n它可使8255A的3个数据端口工作在不同的工作方式。n方式选择控制字总是将3个数据端口分为两组来决定工作方式,即端口A和端口C的高4位为1组,端口B和端口C的低4位为1组。n端口端口C按位置按位置1/置置0控制字控制字n它可使端口C中的任何一位进行置位或复位。这两类控制字通过最高位即D7位为0或1来区别。方式选择控制字的最高位为1,而端口C置1/置0的控制字最高位为0。1D6D5D4D3D2D1D0特征位A组方式00=0方式01=1方式10=2方式11=不用PA0=输出1=输入PC470=输出1=输入B组方式0=0方式1=1方式PB0=输出1=输入PC030=输出1=输入1、方式选择控制字:、方式选择控制字:格式如下:例1:要把A口指定为方式1,输入,C口上半部为输出;B组指定为方式0,输出,C口下半部定为输入,则工作方式命令代码是:10110001B或B1H。若将此命令代码写到8255A的命令寄存器,即实现了对8255A工作方式及端口功能的指定,或者说完成了对8255A的初始化。初始化的程序段为:MOV DX,303H ;8255A命令口地址 MOV AL,0B1H ;初始化命令 OUT DX,AL ;送到命令口0D6D5D4D3D2D1D0特征位 不 用(写0)位 选 择000=C口0位001=C口1位111=C口7位1=置位(高电平)0=复位(低电平)2、端口端口C置置1/置置0控制字:控制字:格式如下:例2:若要把C口的PC2引脚置成高电平输出,则命令字应该为00000101B或05H。将该命令的代码写入8255A的命令寄存器,就会使得从PC口的PC2引脚输出高电平,其程序段为:MOV DX,303H ;8255A命令口地址 MOV AL,05H ;使PC2=1的命令字 OUT DX,AL ;送到命令口 如果要使引脚PC2输出低电位,则程序段为:MOV DX,303H ;8255A命令口地址 MOV AL,04H ;使PC2=0的命令字 OUT DX,AL ;送到命令口 利用C口的按位控制特性还可以产生、负脉冲或方波输出,对外设进行控制。例3:利用8255A的PC7产生负脉冲,作打印机接口电路的数据选通信号,其程序段为:MOV DX,303H ;8255A命令口 MOV AL,00001110B ;置PC7=0 OUT DX,AL NOP ;维持低电平 NOP MOV AL,00001111B ;置PC7=1 OUT DX,AL3 3、关于两个命令的讨论、关于两个命令的讨论 方式命令是对8255A的3个端口的工作方式及功能进行指定,即进行初始化,初始工作要在使用8255A之前做。按位置位/复位命令只是对PC口的输出进行控制,使用它并不破坏已经建立的3种工作方式,而是对它们实现动态控制的一种支持。它可放在初始化程序以后的任何地方。两个命令的最高位(D7)都分配作了特征位,之所以要设置特征位,是为了识别两个不同的命令。按位置位按位置位/复位的命令代码只能写入命令口复位的命令代码只能写入命令口。这个问题常有人弄错。四、四、8255A的工作方式的工作方式 1 1、工作方式工作方式0 0:基本的输入:基本的输入/输出方式输出方式 A口、B口、上C口、下C口都可以独立设置可以独立设置作为输入或输出使用;通常不用联络信号,或不使用固定的联络信号,需要联络时,可由用户任意指定C口中的哪根线完成某种联络功能,这与后面要讨论的在1方式、2方式下设置固定的专用联络信号线不同。是单向I/O,一次初始化只能指定端口(PA、PB和PC)作输入或输出,不能指定端口同时既作输入又作输出。适合用于无条件或查询式传送。2 2、工作方式、工作方式1 1:选通的输入输出方式。:选通的输入输出方式。A口、B口可以分别作为数据口工作在方式1。需要使用C口中特定的引脚作为选通和应答信号,而这些信号与端口C中的数位之间有着固定的对应关系,这种关系不是程序可以改变的,除非改变工作方式。C C口中其余的引脚仍可工口中其余的引脚仍可工作在方式作在方式0 0,定义为输入或输出使用。适合用于中断式传送和程序查询方式I/O传送。下面分别对A口和B口在输入输出的情况作讨论:方式方式1 1下的输入下的输入 输入输入是从I/O设备向8255A送数据进来,所以I/O设备应先把数据准备好,并送到8255A,然后CPU再从8255A读取数据。这个传递过程中需要使用一些联络信号线。所以当A口和B口为输入时,各指定了C口的3根线作为8255A与外设及CPU之间应答信号,如下图所示:STBSTB:外设给8255A的“输入选通”信号,低电平有效。IBFIBF:8255A给外设的回答信号“输入缓冲器满”,高电平有效。INTRINTR:8255A给CPU的“中断请求”信号,高电平有效。INTE:INTE:中断允许信号,无外端引脚,通过软件设置。&PC4PC5PC3INTEAPA70PC6,7RDI/O2INTRAIBFASTBA81方式输入(端口A)&PC2PC1CP0INTEBPB70RD2INTRBIBFBSTBB81方式输入(端口B)输入时序:数据输入时,外设处于主动地位,当外设准备好数据并放到数据线上后,首先发STB信号,由它把数据输入到8255A。在STB的下降沿约300ns,数据已锁存到8255A的缓冲器后,引起IBF变高,表示8255A的“输入缓冲器满”,禁止输入新数据 在STB的上升沿约300ns后,在中断允许(INTE=1)的情况下IBF的高电平产生中断请求,使INTR上升变高,通右CPU,接口中已有数据,请求CPU读取。CPU得知INTR信号有效之后,执行读操作时,RD信号的下降沿使INTR复位,撤消中断请求,为下一次中断请求作好准备。从上述分析,可知在1方式下,数据从I/O设备发出,通过8255A,送到CPU的整个过程有如下4步:CPU8255AI/O设备 IBF RD STB INTR 方式方式1 1下的输出下的输出 输出时使用的联络信号为:OBF OBF:是8255A送给外设,用来通知外设取走数据的信号。ACK ACK:外设响应信号,是由外设送给8255A的。INTR INTR:中断请求信号。INTE INTE:中断允许信号。C口联络信号对应关系如图下:WR&PC7PC6PC3INTEAPA70PC4,5I/O2INTRAACKAOBFA8&PC1PC2PC0INTEBPA70WRINTRBACKBOBFB81方式输出(端口A)1方式输出(端口B)方式1输出时联络信号线定义输出时序:数据输出时,CPU应先准备好数据,并把数据写到8255A输出数据寄存器中。当CPU向8255A写完一个数据后,WR的上升沿使OBF有效,表示8255A的输出缓冲器已满,通知外设读取数据。并且WR使中断请求INTR变低,封锁中断请求。外设得到OBF有效的通知后,开始读数。当外设读取数据后,用ACK回答8255A,表示数据已收到。ACK的下降沿将OBF置高,使OBF无效,表示输出缓冲器变空,为下一次输出作准备,在中断允许(INTE=1)的情况下ACK上升沿使INTR变高,产生中断请求。CPU响应中断后,在中断服务程序中,执行OUT指令,向8255A写下一个数据。从上述分析,在方式1下,数据从CPU,通过8255A送到I/O设备有4步:CPU8255AI/O设备 WR ACK OBF INTR3 3、工作方式、工作方式2 2:双向应答式输入输出方式:双向应答式输入输出方式A口可以作为数据口工作在方式2。相当于是A口工作在方式1的输入和输出的叠加。PC3PC7PA70PC6PC4PC5PC201&INTE1INTE2&WRRDINTRA8OBFAACKASTBAIBFAI/O3方式2的联络信号线定义 方式2是一种双向选通输入输出方式,它把A口作为双向输入/输出口,把C口的5根线(PC3PC7)作为专用应答线,所以,8255A只有A口才有方式2。其引脚定义如左图所示。1 1、82558255A A在在PC/XTPC/XT机中的应用机中的应用nPC/XT机中有一片8255A,用作键盘输入和系统设置开关输入的并行接口,同时提供扬声器发声和其他控制信号。n端口地址是60H63H。正常工作时A A、B B、C C三个口都是方式三个口都是方式0 0,其中,其中A A口、口、C C口输入,口输入,B B口输出。口输出。工作方式控制字是:99H。D7D6D5D4D3D2D1D011000011第四节第四节 8255 8255A A的应用举例的应用举例 说明:在PC机中,主板上产生接口电路芯片片选信号的电路:74LS138G1G2AG2BCBAY0Y1Y2Y38237.CS(00H1FH)8259A.CS(20H3FH)8253.CS(40H5FH)8255A.CS(60H7FH)AENA9A8A7A6A5 由于A4、A3、A2既没有作为片选地址线,也没有作为片内地址线使用,所以是不完全译码。端口地址会有重叠。例如:70H73H、64H67H等都同于60H63H。2 2、用、用82558255A A方式方式0 0与打印机接口与打印机接口 例例1 1:82558255A A作为连接打印机的接口,工作在方式作为连接打印机的接口,工作在方式0 0,输出,采用查询方式。,输出,采用查询方式。分析:工作过程:需要打印时,查询打印机是否忙?不忙时通过8255A发送一个字符给打印机。为使打印机接收数据,要生成一个选通脉冲(初始值是1,置0,再置1 )。8086打印机8255AD7D0PAPC6PC2STBBUSY为增强驱动能力,可加门电路驱动例题1 题解:查询式打印机接口示意图 A口:方式0、输出数据下C口:方式0、PC2输入状态信号上C口:方式0、PC6输出选通信号方式控制字为:10000001B。设端口地址是:0D0H0D3H,要打印的字符放在BL中。程序如下:Setup:MOVAL,81H ;设置工作方式 OUT0D3H,AL MOV AL,0DH;PC6置置1,0DH=0000,1101 OUT0D3H,ALReady:IN AL,0D2H ;读读PC口口 TEST AL,04H;打印机忙否(打印机忙否(PC2=BUSY=?)?)JNZ Ready ;PC2=1,打印机忙,等待打印机忙,等待 MOV AL,BL;打印的字符送AL中 OUT 0D0H,AL ;BL中的字符送中的字符送PA口口 MOV AL,0CH;置PC6为0 OUT 0D3H,AL ;置置PC6=0,即即=0;00001100=0CH INC AL;置PC6为1 OUT 0D3H,AL;置置PC6=1,即即=1,00001101=0DH 0.5ms 3 3、用、用82558255A A方式方式1 1与打印机接口与打印机接口 在方式1下8255A有固定的状态字。状态字为查询查询方式提供了状态标志位,如IBF和OBF,同时,由于8255A不能直接中断矢量,因此当8255A采用中断方式时,CPU也要通过读状态字来确定中断源,实现查询中断。例例1 1:使用:使用82558255A A的工作方式的工作方式1 1作为打字机接口作为打字机接口,采采用查询方式,输入。用查询方式,输入。设端口地址是:0D0H0D3H,连接图:8086打字机8255AD7D0PAPC4PC5STBIBFPC7据分析控制字为:据分析控制字为:10111000B=0B8H mov dx,0D3H mov al,0B8H out dx,al l:mov dx,0D2H in al,dx and al,80H jz l mov dx,0D0H in al,dx例例2 2:82558255A A作为连接打机的接口,工作在方式作为连接打机的接口,工作在方式1 1,输出,采用中断方式。输出,采用中断方式。工作过程:在主程序中设置中断向量,开放中断(IF标志、8259A的IMR、8255A的INTE)。在中断服务程序中,发送打印字符、选通脉冲。PC6PC38255A8088打印机STBACKINTRINTAD7D0PAPC28259AIR2例题2 题解:A口:方式1、输出数据 PC6输入外设响应信号 下C口:方式0、PC2输出选通信号方式控制字为:10100000B。n 设端口地址是:0D0H0D3H,用DI指示字符在n 缓冲区的位置。n程序如下:1、中断服务程序:(假设开始位置是2000H:1000H)PRNDRV:MOVAL,DI ;打印的字符送AL中OUT0D0H,ALINC DIMOV AL,4;置PC2为0OUT0D3H,ALMOV AL,5;置PC2为1OUT0D3H,ALMOV AL,20H;向8259A发EOI命令OUT 20H,ALIRET ;(该程序省略了保护及恢复现场。)2、主程序INIT8259A:MOV AL,13H ;初始化8259A OUT 20H,AL MOV AL,8 OUT 21H,AL MOV AL,9 OUT 21H,ALINIT8255A:MOV AL,0A0H ;设置8255A工作方式 OUT 0D3H,AL MOV AL,5 ;置PC2为1 OUT 0D3H,ALINSTDRV:MOV AX,0;安装中断向量MOV DS,AX;IR2的中断类型是0AHMOV Word Ptr 0AH*4,1000HMOV Word Ptr 0AH*4+2,2000HSETUPIF:MOV AL,0DH;设置8255A的INTEAOUT0D3H,ALIN AL,21H;设置8259A的IMR,允许IR2AND AL,0FBHOUT 21H,ALSTI;开中断123 习题 (以下1秒钟用软件延时。)1、用8255控制8个发光二极管,间隔1秒依次亮一个灯,每次亮1秒钟。2、用8 个开关K1-K8 控制8个等L1-L8的亮灭,每秒钟检测依次开关状态。n当8255A工作在方式1和方式2时,哪些引脚是联络线?这些联络信号有效时代表什么物理意义?n当CPU用查询方式和8255A交换信息时,应查询哪些信号?n8255A的方式选择控制字和口C置0/置1控制字都是写入控制端口的,8255A是怎样识别的?
展开阅读全文