《微机原理chapter7》由会员分享,可在线阅读,更多相关《微机原理chapter7(55页珍藏版)》请在金锄头文库上搜索。
1、第七章 可编程并行接口8255A7.17.1并行接口的概述并行接口的概述7.2 7.2 可编程并行接口可编程并行接口8255A8255A7.3 8255A7.3 8255A的的0 0方式及其应用方式及其应用7.4 8255A7.4 8255A的的1 1方式及其应用方式及其应用7.5 8255A7.5 8255A的的2 2方式及其应用方式及其应用wCPUCPU与外设之间的信息传送都是通过接口电路来进行的。与外设之间的信息传送都是通过接口电路来进行的。w计计算算机机与与外外部部设设备备、计计算算机机与与计计算算机机之之间间交交换换信信息息称称之之为为计计算机通信算机通信, ,计算机通信可分为两大类
2、:计算机通信可分为两大类:并行通信:并行通信:8 8位或位或1616位或位或3232位数据同时传输,位数据同时传输, 速度快,信息速度快,信息 率高,成本高率高,成本高串行通信:串行通信:一位一位数据传送一位一位数据传送( (在一条线上顺序传送在一条线上顺序传送) ),成本低,成本低 实现并行通信的接口就是并行接口。实现并行通信的接口就是并行接口。 7.1并行接口的概述一、串行与并行通信一、串行与并行通信并行接口最基本的特点是在多根据数据线上以数据字节(字)并行接口最基本的特点是在多根据数据线上以数据字节(字)为单位与为单位与I/OI/O设备或被控对象传送信息。设备或被控对象传送信息。如如:
3、: 打印机接口,打印机接口,A/DA/D、D/AD/A转换器接口,转换器接口,IEEE-488IEEE-488接口,接口,开关量接口,控制设备接口等。开关量接口,控制设备接口等。在并行接口中,除了少数据场合之外,一般都要求在接口与在并行接口中,除了少数据场合之外,一般都要求在接口与外设之间设置并行数据线的同时,外设之间设置并行数据线的同时,至少还要设置两根握手至少还要设置两根握手(联线)信号线(联线)信号线,以便进行互锁异步握手方式(即查询方式)以便进行互锁异步握手方式(即查询方式)的通信的通信。在并行接口中,在并行接口中,8 8位或位或1616位是一起行动的,因此,当采用并位是一起行动的,因
4、此,当采用并行接口与外设交换数据时,即使是只用到其中的一位,也是行接口与外设交换数据时,即使是只用到其中的一位,也是一次输入一次输入/ /输出输出8 8位或位或1616位。位。并行传送信息,不要求固定的格式,这与串行传送的数据格并行传送信息,不要求固定的格式,这与串行传送的数据格式的要求不同。式的要求不同。二、并行接口的特点二、并行接口的特点 对于各种型号的对于各种型号的CPUCPU都有与其配套的并行接口芯片。如都有与其配套的并行接口芯片。如IntelIntel公司公司8255A8255A(PPIPPI),),ZilogZilog公司公司Z-80PIOZ-80PIO,MC6820MC6820(
5、PIOPIO)等,它们的功能虽有差异,但工作原理基等,它们的功能虽有差异,但工作原理基本相同。本相同。7.2 7.2 可编程并行接口可编程并行接口8255A8255A一、一、一、一、8255A8255A8255A8255A的外部特性和内部结构的外部特性和内部结构的外部特性和内部结构的外部特性和内部结构1.8255A1.8255A的基本特性的基本特性u具有两个具有两个8 8位(位(A A口和口和B B口)和两个口)和两个4 4位(位(C C口高口高/ /低低4 4位)并位)并行行I/OI/O端口的接口芯片。端口的接口芯片。u能适应能适应CPUCPU与与I/OI/O接口之间的多种数据传送方式的要求
6、。接口之间的多种数据传送方式的要求。uPCPC口的使用比较特殊,除作数据口外,当工作在口的使用比较特殊,除作数据口外,当工作在1 1方式和方式和2 2方式时,它的大部分引脚被分配作专用联络信号;方式时,它的大部分引脚被分配作专用联络信号;PCPC口口可以进行按位控制;在可以进行按位控制;在CPUCPU读取读取8255A8255A状态时,状态时,PCPC口又口又作作1 1,2 2方式的状态口用,等等。方式的状态口用,等等。u可执行功能很强,内容丰富的命令(方式字和控制字)为可执行功能很强,内容丰富的命令(方式字和控制字)为用户如何根据外界条件(用户如何根据外界条件(I/OI/O设备需要哪些信号线
7、以及它设备需要哪些信号线以及它能提供哪些状态线)来使用能提供哪些状态线)来使用8255A8255A构成多种接口电路,组构成多种接口电路,组成微机应用系统提供了灵活方便的编程环境。成微机应用系统提供了灵活方便的编程环境。u82558255芯片内部主要由控制寄存器、状态寄存器和数据寄芯片内部主要由控制寄存器、状态寄存器和数据寄器组成。器组成。2.8255A2.8255A的外部引线与内部结构的外部引线与内部结构 8255A8255A是一个单是一个单+5V+5V电源供电,电源供电,4040个引脚的双列直插式组件,个引脚的双列直插式组件,其外部引线如图所示。其外部引线如图所示。(1 1)外部引脚)外部引
8、脚与系统总线的连接信号与系统总线的连接信号w面向数据总线的有:面向数据总线的有: D D0 0D D7 7:双向数据线,用于双向数据线,用于CPUCPU向向8255A8255A发送命令、数据和发送命令、数据和8255A8255A向向CPUCPU回送状态、数据和回送状态、数据和8255A8255A向向CPUCPU回送状态、数回送状态、数据。据。w面向地址总线的有:面向地址总线的有:8255A引脚 RDRD:读信号,低电平有效。读信号,低电平有效。WRWR:写信号,低电平有效。写信号,低电平有效。RESETRESET:复位信号,高电平复位信号,高电平有效。它清除控制寄存器有效。它清除控制寄存器并将
9、并将8255A8255A的的A A、B B、C C三三个端口均置为输入方式;个端口均置为输入方式;输入寄存器和状态寄存器输入寄存器和状态寄存器被复位,并且屏蔽中断请被复位,并且屏蔽中断请求;求;2424条面向外设信号线条面向外设信号线呈现高阻悬浮状态。呈现高阻悬浮状态。12345678910111213141516171819204039383736353433323130292827262524232221PA4PA5PA6PA7PB6PB5PB4PB3PB7D1D2D3D4D0D5D6D7VCCRESETWRRDCSPA3PA2PA1PA0GNDA1A0PC7PC6PC4PC0PC1PC2
10、PC5PB0PB1PB2PC38255A与与外部设备的连接信号外部设备的连接信号 PAPA0 0PAPA7 7:端口端口A A的输入的输入/ /输出线。输出线。 PBPB0 0PBPB7 7:端口端口B B的输入的输入/ /输出线。输出线。 PCPC0 0PCPC7 7:端口端口C C的输入的输入/ /输出线。输出线。 这这2424根信号线均可用来连接根信号线均可用来连接I/OI/O设备和传送信息。其中,设备和传送信息。其中,A A口和口和B B口只作输入口只作输入/ /输出的数据口用,尽管有时也利用它输出的数据口用,尽管有时也利用它们从们从I/OI/O设备读取一些状态信号,如打印机的设备读取
11、一些状态信号,如打印机的“忙忙”(BusyBusy)状态信号、状态信号、A/DA/D转换器的转换器的“转换结束转换结束”(EOCEOC)状态信号,但对状态信号,但对A A口和口和B B口来说,都是作口来说,都是作8255A8255A的数据口读入,而不是作的数据口读入,而不是作8255A8255A的状态口读入的。的状态口读入的。 C C口的作用与口的作用与8255A8255A的工作方式有关,它除了作数据口的工作方式有关,它除了作数据口以外,还有其他用途,故以外,还有其他用途,故C C口的使用比较特殊,单独介绍口的使用比较特殊,单独介绍如下:如下: a.a.作数据口。作数据口。 b.b.作状态口。
12、作状态口。 c.c.作专用(固定)联络(握手)信号线。作专用(固定)联络(握手)信号线。 d.d.作按位控制用。作按位控制用。(2 2)内部结构)内部结构8255A8255A的内部结构如图所示。它由以下的内部结构如图所示。它由以下4 4个部分组成。个部分组成。A组控制数据总线缓冲器读/写控制逻辑B组控制A组A口(8位)A组C口高位(4位)B组C口低位(4位)B组B口(8位)D0D7CSWRA1A0RESETRDPA0PA7PC4PC7PC0PC3PB0PB78255A内部框图 数据总线缓冲器。数据总线缓冲器。这是一个三态双向这是一个三态双向8 8位缓冲器,它是位缓冲器,它是8255A8255A
13、与与CPUCPU系统数据总线的接口。系统数据总线的接口。 读读/ /写控制逻辑。写控制逻辑。读读/ /写控制逻辑由读信号写控制逻辑由读信号RDRD、写信号写信号WRWR、选片信号选片信号CSCS以及端口选择信号以及端口选择信号A1A0A1A0等组成。等组成。 输入输入/ /输出端口输出端口A A、B B、C C。8255A8255A包括包括3 3个个8 8位输入输出端位输入输出端口(口(portport)。)。每个端口都有一个数据输入寄存器和一个数据每个端口都有一个数据输入寄存器和一个数据输出寄存器。输出寄存器。 A A组和组和B B组控制电路。组控制电路。控制控制A A、B B和和C C三个
14、端口的工作方式。三个端口的工作方式。CS A1A0RDWR读读操作操作内容内容PC系统系统实验平台实验平台00001PA口口数据总线(数据总线( CPU)数据数据60H200H00101PB口口数据总线(数据总线( CPU)数据数据61H201H01001PC口口数据总线(数据总线( CPU)数据数据62H202H写操作写操作00010PA口口 数据总线(数据总线( CPU)数据数据60H200H00110PB口口数据总线(数据总线( CPU)数据数据61H201H01010PC口口数据总线(数据总线( CPU)数据数据62H202H01110控制寄存器控制寄存器数据总线数据总线控制字控制字6
15、3H203H无操作情况无操作情况1总线悬浮(三态)总线悬浮(三态)011总线悬浮总线悬浮01101控制口不能读控制口不能读63H203H表表7.1 8255A基本操作与端口地址基本操作与端口地址二、二、8255A的编程命令的编程命令1.方式命令方式命令作用:作用:指定指定8255A8255A的工作方式及其方式下的工作方式及其方式下3 3个并行端口(个并行端口(PAPA、PBPB、PCPC)的功能,是作输入还是作输出。的功能,是作输入还是作输出。格式:格式:8 8位,其中最高位是特征位,一定要写位,其中最高位是特征位,一定要写1 1,其余各位定,其余各位定义如下,应根据用户的设计要求填写义如下,
16、应根据用户的设计要求填写1 1或或0 0。PC030=输出1=输入PB0=输出1=输入B组方式0=0方式1=1方式PC470=输出1=输入PA0=输出1=输入A组方式00=0方式01=1方式10=2方式11=不用特征位D0D1D2D3D4D5D61例例1 1: 要把要把A A口指定为口指定为1 1方式,输入,方式,输入,C C口上半部为输口上半部为输出;出;B B组组指定为指定为0 0方式,输出,方式,输出,C C口下半部定为口下半部定为输入,则工作方式命令代码是:输入,则工作方式命令代码是:10110001B10110001B或或B1HB1H。 若将此若将此命令代码写到命令代码写到8255A
17、8255A的命令寄存器,即实现了的命令寄存器,即实现了对对8255A8255A工作方式及端口功能的指定,或者说完成了对工作方式及端口功能的指定,或者说完成了对8255A8255A的初始化。初始化的程序段为:的初始化。初始化的程序段为: MOV DXMOV DX,203H 203H ;8255A8255A命令口地址命令口地址 MOV ALMOV AL,0B1H 0B1H ;初始化命令初始化命令 OUT DXOUT DX,AL AL ;送到命令口送到命令口2.2.按位置位按位置位/ /复位命令复位命令作用:作用:指定指定PCPC口的某一位(某一个引脚)输出高平或低电平口的某一位(某一个引脚)输出高
18、平或低电平。格式:格式:8 8位,其中最高位是特征位,一定要写位,其中最高位是特征位,一定要写0 0,其余各位的定,其余各位的定义如下,应根据用户的设计要求填写义如下,应根据用户的设计要求填写1 1或或0.0.1=置位(高电平)0=复位(低电平)位 选 择000=C口0位001=C口1位111=C口7位 不 用(写0)特征位D0D1D2D3D4D5D60例例2 2:若要把若要把C C口的口的PCPC2 2引脚置成高电平输出,则命令字引脚置成高电平输出,则命令字应该为应该为00000101B00000101B或或05H05H。 将该命令的代码写入将该命令的代码写入8255A8255A的命令寄存器
19、,就会使的命令寄存器,就会使得从得从PCPC口的口的PCPC2 2引脚输出高电平,其程序段为:引脚输出高电平,其程序段为: MOV DXMOV DX,203H 203H ;8255A8255A命令口地址命令口地址 MOV ALMOV AL,05H 05H ;使;使PCPC2 2=1=1的命令字的命令字 OUT DXOUT DX,AL AL ;送到命令口送到命令口 如果要使引脚如果要使引脚PC2PC2输出低电位,则程序段为:输出低电位,则程序段为: MOV DXMOV DX,203H 203H ;8255A8255A命令口地址命令口地址 MOV ALMOV AL,04H 04H ;使;使PCPC
20、2 2=0=0的命令字的命令字 OUT DXOUT DX,AL AL ;送到命令口送到命令口 利用利用C C口的按位控制特性还可以产生、负脉冲或方口的按位控制特性还可以产生、负脉冲或方波输出,对外设进行控制。波输出,对外设进行控制。例例3 3:利用利用8255A8255A的的PCPC7 7产生负脉冲,作打印机接口电路产生负脉冲,作打印机接口电路的数据选通信号,其程序段为:的数据选通信号,其程序段为: MOV DXMOV DX,203H 203H ;8255A8255A命令口命令口 MOV ALMOV AL,00001110B 00001110B ;置;置PCPC7 7=0=0 OUT DX O
21、UT DX,ALAL NOP NOP ;维持低电平维持低电平 NOP NOP MOV AL MOV AL,00001111B 00001111B ;置;置PCPC7 7=1=1 OUT DX OUT DX,ALAL3.3.关于两个命令的讨论关于两个命令的讨论 方式命令是对方式命令是对8255A8255A的的3 3个端口的工作方式及功能进个端口的工作方式及功能进行指定,即进行初始化,初始工作要在使用行指定,即进行初始化,初始工作要在使用8255A8255A之之前做。前做。 按位置位按位置位/ /复位命令只是对复位命令只是对PCPC口的输出进行控制,使口的输出进行控制,使用它产不破坏已经建立的用它
22、产不破坏已经建立的3 3种工作方式,而是对它们实种工作方式,而是对它们实现动态控制的一种支持。它可放在初始化程序以后的现动态控制的一种支持。它可放在初始化程序以后的任何地方。任何地方。 两个命令的最高位(两个命令的最高位(D7D7)都分配作了特征位,之所以都分配作了特征位,之所以要设置特征位,是为了识别两个不同的命令。要设置特征位,是为了识别两个不同的命令。 按位置位按位置位/ /复位的命令代码只能写入命令口。复位的命令代码只能写入命令口。4.A4.A口和口和B B口另一个使用方法口另一个使用方法 A A口、口、B B口也可以按位输出高低电平,但是,它与前面的按口也可以按位输出高低电平,但是,
23、它与前面的按位置位位置位/ /复位命令有本质的差别,并且实现的方法也不同,。复位命令有本质的差别,并且实现的方法也不同,。C C口按位输出是以送数据到口按位输出是以送数据到A A口、口、B B口来实现的。其具体作法口来实现的。其具体作法是:若要使某一位置高电平,则先对端口进行读操作,将读是:若要使某一位置高电平,则先对端口进行读操作,将读入的原输出值,入的原输出值,“或或”上一个字节,字节中使该位为上一个字节,字节中使该位为1 1,其,其他位为他位为0 0,然后再送到同一端口,即可使该位为,然后再送到同一端口,即可使该位为0 0,然后再送,然后再送到同一端口,即可使该位置位。到同一端口,即可使
24、该位置位。 1 0 1 0 1 0 1 0OR 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1AND 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0例例4 4:若要使若要使PA7PA7位输出高位输出高/ /低电平,则用下列程序段:低电平,则用下列程序段:使使PA7PA7输出高电平输出高电平. . MOV DX MOV DX,200H 200H ;PAPA数据口地址数据口地址 IN ALIN AL,DX DX ;读入读入A A口原输出内容口原输出内容 MOV AHMOV AH,AL AL ;保存原输出内容保存原输出内容 OR ALO
25、R AL,80H 80H ;使;使PA7=1PA7=1 OUT DX OUT DX,AL AL ;输出输出PA7PA7 MOV AL MOV AL,AH AH ;恢复原输出内容恢复原输出内容 OUT DXOUT DX,ALAL使使PAPA7 7输出低电平输出低电平MOV DXMOV DX,200H 200H ; A A口地址口地址IN ALIN AL,DX DX ;读入端口原输出值;读入端口原输出值MOV AHMOV AH,AL AL ;保存原输出值保存原输出值AND ALAND AL,7FH 7FH ;使使PAPA7 7=0=0OUT DXOUT DX,AL AL ;输出;输出PAPA7 7
26、 MOV ALMOV AL,AH AH ;恢复原输出内容;恢复原输出内容OUT DXOUT DX,AL AL 三、三、8255A8255A的工作方式的工作方式 8255A8255A的工作方式与端口有关,的工作方式与端口有关,PAPA口有三种口有三种方式(方式(0 0方式、方式、1 1方式、方式、2 2方式),方式),PBPB口和口和PCPC口只有两种方式(口只有两种方式(0 0方式、方式、1 1方式方式) )。7.3 8255A的0方式及其应用一、特点一、特点w0 0方式方式是一种基本输入是一种基本输入/ /输出工作方式。通常不用联络信输出工作方式。通常不用联络信号,或不使用固定的联络信号。号
27、,或不使用固定的联络信号。 基本基本I/OI/O方式是指查询方式传送,也包括无条件传送。方式是指查询方式传送,也包括无条件传送。w在在0 0方式下,彼此独立的两个方式下,彼此独立的两个8 8位和两个位和两个4 4位并行口,都位并行口,都能被指定作为输入或者输出用,共有能被指定作为输入或者输出用,共有1616种不同的使用状种不同的使用状态。态。w在在0 0方式下不设置专用联络信号线,需要联络时,可由用户任方式下不设置专用联络信号线,需要联络时,可由用户任意指定意指定C C口中的哪口中的哪 根线完成某种联络功能,这与后面要讨论根线完成某种联络功能,这与后面要讨论的在的在1 1方式、方式、2 2方式
28、下设置固定的专用联络信号线不同。方式下设置固定的专用联络信号线不同。w是单向是单向I/OI/O,一次初始化只能指定端口(一次初始化只能指定端口(PAPA、PBPB和和PCPC)作作输入或输出,不能指定端口同时既作输入又作输出。输入或输出,不能指定端口同时既作输入又作输出。二、并行打印机接口设计二、并行打印机接口设计1.1.要求要求 为某应用系统配置一个并行打印机接口,并且通过接口为某应用系统配置一个并行打印机接口,并且通过接口CPUCPU采用查询方式把存放在采用查询方式把存放在BUFBUF缓冲区的缓冲区的256256个字(个字(ASCIIASCII码)码)送去打印。送去打印。 2.2.分析分析
29、 由于打印接口直接面向的对象是打印机接口标由于打印接口直接面向的对象是打印机接口标准,而不是打印机本身,因此打印机接口要按照准,而不是打印机本身,因此打印机接口要按照接口标准的要求进行设计。有关打印机接口标准接口标准的要求进行设计。有关打印机接口标准CentronicsCentronics的信号线定义和工作时序如下的信号线定义和工作时序如下 。DATA0DATA7STROBEBUSYACK并行打印机接口数据传送时序过程过程: :采用查询方式时,打印机与采用查询方式时,打印机与CPUCPU之间传送数据的过程是:之间传送数据的过程是: 首先查询首先查询BUSYBUSY。若。若BUSY=1BUSY=
30、1,打印机忙,则等待;若打印机忙,则等待;若BUSY=0BUSY=0,打印机不忙,则送数据。打印机不忙,则送数据。 通过并行接口把数据送给标准插座通过并行接口把数据送给标准插座DATA BITDATA BIT1 1DATA BITDATA BIT8 8 数据线上,此时数据并未送入打印机。数据线上,此时数据并未送入打印机。 再送出一个数据选通信号再送出一个数据选通信号DATA STROBE-DATA STROBE-(负脉冲)给负脉冲)给 标准标准插座的插座的1 1号引脚,把数据线上的数据打入到打印机的内部缓冲号引脚,把数据线上的数据打入到打印机的内部缓冲器。器。 打印机在收到数据后,通过插座的打
31、印机在收到数据后,通过插座的1111号引肢发出号引肢发出“忙忙”(BUSY=1BUSY=1)信号,表明打印机正在处理输入的数据。信号,表明打印机正在处理输入的数据。 最后在最后在1010号引脚上送出一个回答信号号引脚上送出一个回答信号ACK-ACK-给主机,表示上一给主机,表示上一个字符已经处理完毕。个字符已经处理完毕。3.3.设计设计接口电路的设计包括硬件接口电路和软件驱动程序两部分。接口电路的设计包括硬件接口电路和软件驱动程序两部分。 打印机接口电路。打印机接口电路。打印机接口电路原理框图如图所示。该打印机接口电路原理框图如图所示。该电路的设计思路是:按照电路的设计思路是:按照Centro
32、nicssCentronicss标准对打印机接口信标准对打印机接口信号线的定义,最基本的信号线需要号线的定义,最基本的信号线需要8 8根数据线(根数据线(DATABITDATABIT1 18 8)CPU PA07PC7PC2地 地BUSYSTBDATA07111298255A打印机插座8255A并行打印机接口电路框图 1 1根控制线(根控制线(STBSTB),),1 1根状态线(根状态线(BUSYBUSY)和和1 1根地线。选用根地线。选用8255A8255A的的PAPA口作数据口输出口作数据口输出8 8位打印数据,工作方式位打印数据,工作方式为为0 0方式。方式。接口驱动程序。接口驱动程序。
33、其程序其程序流程图如右图所示。驱流程图如右图所示。驱动程序的程序段如下:动程序的程序段如下:结 束8255A 初始化BUSY=0?送 数送 STB内存+1字节数-1送完?开始YNYNCODE SEGMENTCODE SEGMENTASSUME CSASSUME CS:CODECODE,DSDS:CODECODEORG100HORG100HSTARTSTART: MOV AXMOV AX,CODECODE MOV CS MOV CS,AXAX MOV DS MOV DS,AXAX MOV DX MOV DX,203H 203H ;8255A8255A命令口命令口 MOV ALMOV AL,100
34、00001B 10000001B ;工作方式字工作方式字 OUT DXOUT DX,AL AL ;(;(A A口口0 0方式,输出,方式,输出, C C4 4C C7 7 输出,输出,C C0 0C C3 3输入)输入)MOV ALMOV AL,00001111B 00001111B ;PCPC7 7位置高,使位置高,使STB-=1STB-=1OUT DXOUT DX,ALALMOV SI, OFFSET BUF MOV SI, OFFSET BUF ;打印字符内存首地址打印字符内存首地址MOV CXMOV CX,OFFH OFFH ;打印字符个数打印字符个数MOV DXMOV DX,202H
35、 202H ;PCPC口地址口地址IN ALIN AL,DX DX ;查;查BUSY=0BUSY=0?(?(PC2=0PC2=0)AND ALAND AL,04H ;0000004H ;000001 100B 00B JNZ L JNZ L ;忙,则等待;不忙,则向忙,则等待;不忙,则向A A口送数口送数MOV DXMOV DX,200H 200H ;PAPA口地址口地址MOV ALMOV AL,SI SI ;从内存取数从内存取数OUT DXOUT DX,AL AL ;送;送数据到数据到A A口口MOV ALMOV AL,203H 203H ;8255A8255A命令口命令口MOV ALMOV
36、 AL,00001110B 00001110B ;置;置STB-STB-信号为低(信号为低(PCPC7 7=0=0)L:OUT DXOUT DX,ALALNOPNOP ;负脉冲宽度(延时)负脉冲宽度(延时)NOPNOPMOV ALMOV AL,00001111B 00001111B ;置;置STB-STB-为高(为高(PCPC7 7=1=1)OUT DXOUT DX,ALALINC SI INC SI ;内存地址加内存地址加1 1DEC CX DEC CX ;字符数减字符数减1 1JNZ L JNZ L ;未完,继续未完,继续MOV AXMOV AX,4C00H 4C00H ;已完,退出已完,
37、退出INT 21H INT 21H BUF DB 256BUF DB 256个个ASCIIASCII字符代码字符代码CODE ENDSCODE ENDSEND STARTEND START7.4 8255A的1方式及其应用一、特点一、特点 1 1方式是一种选通输入方式是一种选通输入/ /输出方式或叫应答方式,因此,需输出方式或叫应答方式,因此,需设置专用的联络信号线或应答信号线,以便对设置专用的联络信号线或应答信号线,以便对I/OI/O设备和设备和CPUCPU两侧两侧 进行联络。这种方式通常用于查询(条件)传送进行联络。这种方式通常用于查询(条件)传送或中断传送。数据的输入输出都有锁存功能。或
38、中断传送。数据的输入输出都有锁存功能。 PAPA和和PBPB为数据口,而为数据口,而PCPC口的大部分引脚分配作专用(固口的大部分引脚分配作专用(固定)的联络信号的定)的联络信号的C C口引脚,用户不能再指定作其他作用。口引脚,用户不能再指定作其他作用。 各联络信号线之间有固定的时序关系,传送数据时,要严各联络信号线之间有固定的时序关系,传送数据时,要严格按照时序进行。格按照时序进行。输入输入/ /输出操作过程中,产生固定的状态字,这些状态信息输出操作过程中,产生固定的状态字,这些状态信息可作为查询或中断请求之用。状态字从可作为查询或中断请求之用。状态字从PCPC口读取。口读取。单向传送。一次
39、初始化只能设置在一个方向上传送,不能同单向传送。一次初始化只能设置在一个方向上传送,不能同时作两个方向的传送。时作两个方向的传送。二、二、1 1方式下联络信号线的定义及其时序方式下联络信号线的定义及其时序1.1.1 1方式下输入的联络信号线定义及时序方式下输入的联络信号线定义及时序(1 1)联络信号的定义)联络信号的定义 因为输入是从因为输入是从I/OI/O设备向设备向8255A8255A送送数据进来,所以数据进来,所以I/OI/O设设备应先把数据准备好,并送到备应先把数据准备好,并送到8255A8255A,然后然后CPUCPU再从再从8255A8255A读取数据。这个传递过程中需要使用一些联
40、络信号读取数据。这个传递过程中需要使用一些联络信号线。所以当线。所以当A A口和口和B B口为输入时,各指定口为输入时,各指定了了C C口的口的3 3根线作根线作为为8255A8255A与外设及与外设及CPUCPU之间应答信号,如图所示。之间应答信号,如图所示。 STBSTB:外设给:外设给8255A8255A的的“输入选通输入选通”信号,低电平有效。信号,低电平有效。1方式输入时联络信号线定义IBFIBF:8255A8255A给外设的回答信号给外设的回答信号“输入缓冲器满输入缓冲器满”,高电平有效。,高电平有效。INTRINTR:8255A8255A给给CPUCPU的的“中断请求中断请求”信
41、号,高电平有效。信号,高电平有效。&PC4PC5PC3INTEAPA70PC6,7RDI/O2INTRAIBFASTBA81方式输入(端口A)&PC2PC1PC0INTEBPB70RD2INTRBIBFBSTBB81方式输入(端口B)(2 2)1 1方式输入的工作时序方式输入的工作时序 1 1方式的工作时序如图和表方式的工作时序如图和表7.37.3所示。其信号交接过程如下:所示。其信号交接过程如下:tpstSTtSTBtSITtRITtRIBtPHSTBRDIBFINTR来自外设的输入数据1方式输入时工作时序图 数据输入时,外设处于主动地位,当外设准备好数据并放到数据线上后,首先发STB信号,
42、由它把数据输入到8255A。 在STB的下降沿约300ns,数据已锁存到8255A的缓冲器后,引起IBF变高,表示8255A的“输入缓冲器满”,禁止输入新数据。 符号参数8255A单位MINMAXtSTSTB脉冲宽度500nstSTBSTB=0至IBF=1300nstSITSTB=1到INTR=1300ns tRIBRD=1到IBF=0300nstRITRD=0到INTR=0400nsTPS数据提前STB无效的时间0nstPH数据保持时间180ns 表7.3 1方式输入工作时序表 在在STBSTB的上升沿约的上升沿约300ns300ns后,在中断允许(后,在中断允许(INTE=1INTE=1)
43、的的情况下情况下IBFIBF的高电平产生中断请求,使的高电平产生中断请求,使INTRINTR上升变高,上升变高,通右通右CPUCPU,接口中已有数据,请求接口中已有数据,请求CPUCPU读取。读取。 CPUCPU得知得知INTRINTR信号有效之后,执行读操作时,信号有效之后,执行读操作时,RDRD信号信号的下降沿使的下降沿使INTRINTR复位,撤消中断请求,为下一次中断请复位,撤消中断请求,为下一次中断请求作好准备。求作好准备。 从上述分析,可知在从上述分析,可知在1 1方式下,数据从方式下,数据从I/OI/O设备发出,设备发出,通过通过8255A8255A,送到送到CPUCPU的整个过程
44、有如下的整个过程有如下4 4步:步:CPU8255AI/O设备 STB INTR IBF RD2. 12. 1方式下输出的联络信号线定义及时序方式下输出的联络信号线定义及时序(1 1)联络信号的定义联络信号的定义WR&PC7PC6PC3INTEAPA70PC4,5I/O2INTRAACKAOBFA8&PC1PC2PC0INTEAPA70WRINTRBACKBOBFB81方式输出(端口A)1方式输出(端口B)1方式输出时联络信号线定义(2 2)1 1方式输出的工作时序方式输出的工作时序1 1 方式输出的工作时序,如图所示。方式输出的工作时序,如图所示。tWOBtWITtAOBtAKtAITtWB
45、WRINTROBFACK输出1方式输出时工作时序其信号交接的过程如下:其信号交接的过程如下:数据输出时,数据输出时,CPUCPU应先准备如数据,并把数据写到应先准备如数据,并把数据写到8255A8255A输出数据寄存器。当输出数据寄存器。当CPUCPU向向8255A8255A写完一个数据写完一个数据后,后,WRWR的上升沿使的上升沿使OBFOBF有效,表示有效,表示8255A8255A的输出缓冲的输出缓冲器已满,通知外设读取数据。并且器已满,通知外设读取数据。并且WRWR使中断请求使中断请求INTRINTR变低,封锁中断请求。变低,封锁中断请求。外设得到外设得到OBFOBF有效的通知后,开始读
46、数。当外设读取数有效的通知后,开始读数。当外设读取数据后,用据后,用ACKACK回答回答8255A8255A,表示数据已收到。表示数据已收到。ACKACK的下降沿将的下降沿将OBFOBF置高,使置高,使OBFOBF无效,表示输出缓冲无效,表示输出缓冲器变空,为下一次输出作准备,在中断允许(器变空,为下一次输出作准备,在中断允许(INTE=1INTE=1)的的情况下情况下ACKACK上升沿使上升沿使INTRINTR变高,产生中断请求。变高,产生中断请求。CPUCPU响应中断后,在中断服务程序中,执行响应中断后,在中断服务程序中,执行OUTOUT指令,向指令,向8255A8255A写下一个数据。写
47、下一个数据。 从上述分析,在1方式下,数据从CPU,通过8255A送到I/O设备有4步:CPU8255AI/O设备 WR ACK OBF INTR三、三、1方式的状态字方式的状态字1.状态字的作用状态字的作用 在在1 1方式下方式下8255A8255A有固定的状态字。状态字为查询方有固定的状态字。状态字为查询方式提供了状态标志位,如式提供了状态标志位,如IBFIBF和和OBFOBF,同时,由于同时,由于8255A8255A不能直接中断矢量,因此当不能直接中断矢量,因此当8255A8255A采用中断方式时,采用中断方式时,CPUCPU也要通过读状态字来确定中断源,实现查询中断。也要通过读状态字来
48、确定中断源,实现查询中断。2.2.状态字的格式状态字的格式状态字的格式如图所示。状态字的格式如图所示。D7D6D5D4D3D2D1D0A组状态B组状态I/OI/OIBFA INTEA INTRAPC7PC6PC5PC4PC3OBFA INTEAI/O I/O INTRAPC7PC6PC5PC4PC3 INTEB IBFB INTRBPC2PC1PC0 输入时 输出时 INTEB OBFB INTRBPC2PC1PC01方式的状态字状态字有状态字有8 8位,分位,分A A和和B B两组,两组,A A组状态位占高组状态位占高5 5位,位,B B组状位组状位占低占低3 3位,并且输入和输出时的状态字
49、不相同。位,并且输入和输出时的状态字不相同。3.3.使用状态字时要注意的几个问题使用状态字时要注意的几个问题状态字是在状态字是在8255A8255A输入输入/ /输出操作过程中由内部产生,从输出操作过程中由内部产生,从C C口读取的,因此从口读取的,因此从C C口读出的状态字是独立于口读出的状态字是独立于C C口的外部口的外部引脚的,或者说与引脚的,或者说与C C口的外部引脚口的外部引脚 无关。无关。状态字中供状态字中供CPUCPU查询的状态位有:输入时查询的状态位有:输入时-IBF-IBF位和位和INTRINTR位;输出位;输出-OBF-OBF位和位和INTRINTR位。位。状态字中的状态字
50、中的INTEINTE位,是控制标志位,是控制标志位,控位,是控制标志位,是控制标志位,控制制8255A8255A能否提出中断请求,因此它不是能否提出中断请求,因此它不是I/OI/O操作过程中自操作过程中自动产生的状态,而是由程序通过按位置位动产生的状态,而是由程序通过按位置位/ /复位命令来设置复位命令来设置或清除的。或清除的。例:例:若允许若允许PAPA口输入时,产生中断请求,则必须设置口输入时,产生中断请求,则必须设置INTEA=1INTEA=1,即置即置PCPC4 4=1=1;若禁止它产生中断请求,则置若禁止它产生中断请求,则置INTEA=0INTEA=0,即置即置PCPC4 4=0=0
51、,其程序段为:其程序段为: MOV DXMOV DX,203H 203H ;8255A8255A命令口命令口 MOV ALMOV AL,00001001B 00001001B ;置;置PCPC4 4=1=1,允许中断请求允许中断请求 OUT DXOUT DX,AL AL MOV AL MOV AL,00001000B 00001000B ;置;置PCPC4 4=0=0,禁止中断请求禁止中断请求 OUT DXOUT DX,ALAL五、两种方式并行传送接口设计五、两种方式并行传送接口设计1 .1 .要求要求 在甲乙两台微机之间并行传送在甲乙两台微机之间并行传送1K1K字节数据。甲机发送,字节数据。
52、甲机发送, 乙机接收。甲机一侧的乙机接收。甲机一侧的8255A8255A采用采用1 1方式工作,乙机一侧的方式工作,乙机一侧的8255A8255A采用采用0 0方式工作。两机的方式工作。两机的CPUCPU与接口之间都采用查询与接口之间都采用查询方方式交换数据。式交换数据。2.2.分析分析 双机均采用可编程并行接口芯片双机均采用可编程并行接口芯片8255A8255A构构成接口电路,只是成接口电路,只是8255A8255A的工作方式不同。的工作方式不同。此时,双方的此时,双方的8255A8255A把对方视为把对方视为I/OI/O设备。设备。3.3.设计设计(1 1)硬件连接)硬件连接 根据上述要求
53、,接口电路的连接如图所示。根据上述要求,接口电路的连接如图所示。(2 2)软件编程)软件编程 接口驱动程序包含发送与接收两个程序。接口驱动程序包含发送与接收两个程序。0方式1方式8255APA07PC7PC3PC46PC02PB07PA07PC7PC6PC3PC02、45PB07未用8255A甲(发送)CPU乙(接收)CPUACKOBF两种方式的并行传送接口电路框图甲机甲机发送程序段:发送程序段:MOV DXMOV DX,203H 203H ;8255A8255A命令口命令口MOV ALMOV AL,10100000B 10100000B ;初始化工作方式字初始化工作方式字OUT DXOUT
54、DX,AL AL MOV ALMOV AL,00001101B 00001101B ;置发送中断允许置发送中断允许INTEA=1INTEA=1OUT DXOUT DX,AL AL ;PCPC6 6=1=1MOV SIMOV SI,OFFSET BUFS OFFSET BUFS ;设置发送数据区的指针设置发送数据区的指针MOV CXMOV CX,3FFH 3FFH ;发送字节数发送字节数MOV DXMOV DX,200H 200H ;向;向A A口写口写第一个数,产生第一第一个数,产生第一 ; ;个个 OBF-OBF-信号信号MOV ALMOV AL,SI SI ;送给乙方,以便获取乙方的送给乙
55、方,以便获取乙方的ACK-ACK-信号信号OUT DX OUT DX ,ALAL INC SI INC SI ;内存地址加内存地址加1 1 DEC CX DEC CX ;传送字节数减;传送字节数减1 1L L: MOV DXMOV DX,202H 202H ;8255A8255A状态口状态口 IN ALIN AL, DX DX ;查发送断请求查发送断请求INTRINTRA A=1=1? AND ALAND AL,08H 08H ;PCPC3 3=1=1? JZ L JZ L ;若无中断请求,则等待;若无中断请求,则等待; ;若有中断请求,则向;若有中断请求,则向A A口写数口写数 MOV DX
56、MOV DX,200H 200H ;8255APA8255APA口地址口地址 MOV ALMOV AL,SI SI ;从内存取数从内存取数 OUT DXOUT DX,AL AL ;通过通过A A口向乙机发送第二个数据口向乙机发送第二个数据 INC SI INC SI ;内存地址加内存地址加1 1 DEC CX DEC CX ;字节数减字节数减1 1 JNZ L JNZ L ;字节未完,继续字节未完,继续 MOV AHMOV AH,4CH 4CH ;已完,退出已完,退出 INT 21H INT 21H ;返回返回 BUFS DB 1024BUFS DB 1024个数据个数据乙机接收程序段:(略)
57、乙机接收程序段:(略)7.5 8255A7.5 8255A的的2 2方式及其应用方式及其应用w一、特点一、特点wPAPA口为双向选通输入口为双向选通输入/ /输出或叫双向应答式输入输出或叫双向应答式输入/ /输输出。一次初始化可指定出。一次初始化可指定PAPA口既作输入口又作输出口。口既作输入口又作输出口。w设置专用的联络信号线和中断请求号信线,因此,设置专用的联络信号线和中断请求号信线,因此,2 2方式下可采用中断方式和查询方式与方式下可采用中断方式和查询方式与CPUCPU交换数据。交换数据。w各联络线的定义及其时序关系和壮态基本上是在各联络线的定义及其时序关系和壮态基本上是在1 1方方式下
58、输入和输出两种操作的组合。式下输入和输出两种操作的组合。二、二、2 2方式下联络信号线的定义及其时序方式下联络信号线的定义及其时序1.1.联络信号线的定义联络信号线的定义 2 2方式是一种双向选通输方式是一种双向选通输入输出方式,它把入输出方式,它把A A口作为口作为双向输入双向输入/ /输出口,把输出口,把C C口的口的5 5根线(根线(PCPC3 3PCPC7 7)作为专作为专用应答线,所以,用应答线,所以,8255A8255A只只有有A A口才有口才有2 2方式。其引脚定方式。其引脚定义如图所示。义如图所示。PC3PC7PA70PC6PC4PC5PC201&INTE1INTE2&WRRD
59、INTRA8OBFAACKASTBAIBFAI/O32方式的联络信号线定义2.2.工作时序工作时序 2 2方式的时序关系如图所示方式的时序关系如图所示。外设数据线tWOBtAOBtSTtSIBtPStADtKDtPHtRIBINTRIBFWROBFACKSTBRD2方式时序关系数据从外设到8255A数据从8255A到外设数据从8255A到CPU数据从CPU到8255A三、三、2 2方式的状态字方式的状态字 2 2方式的状态字的含义是在方式的状态字的含义是在1 1方式下输入和输出状态位的组方式下输入和输出状态位的组合,不再述。合,不再述。四、中断方式的双向并行接口设计四、中断方式的双向并行接口设
60、计1.1.要求要求 主从两个微机进行并行传送,共传送主从两个微机进行并行传送,共传送256256个字节。主机一侧个字节。主机一侧的的8255A8255A采用采用2 2方式并且用中断方式传送数据。从机一侧方式并且用中断方式传送数据。从机一侧8255A8255A工作在工作在0 0方式,采用查询方式传送数据。方式,采用查询方式传送数据。3.3.设计设计(1 1)硬件设计)硬件设计 由图可知主机一侧的由图可知主机一侧的8255A8255A的的PAPA口作双向传送,既输出口作双向传送,既输出又输入,它的中断请示线接到又输入,它的中断请示线接到8259A8259A的的IRIR2 2上。从机一侧的上。从机一侧的8255A8255A的的PAPA和和PBPB口是单向传送,分别作输出和输入。口是单向传送,分别作输出和输入。(2 2)软件设计)软件设计主机INTAINTRINTAINTRIR0IR2IR7系统总线2方式接口电路框图8259APB07PC3PC7PC4PC6PC5PC02PA07PA07PB07PC1PC7PC6PC0PC25OBFSTBACKIBF从机 8255A8255A本本 章章 结结 束,束,谢谢您的合作!谢谢您的合作!