第20讲第7章并行接口及定时计数控制.讲述_第1页
第20讲第7章并行接口及定时计数控制.讲述_第2页
第20讲第7章并行接口及定时计数控制.讲述_第3页
第20讲第7章并行接口及定时计数控制.讲述_第4页
第20讲第7章并行接口及定时计数控制.讲述_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第7章(1) 认识并行接口微机原理与接口技术第7章 并行接口及定时计数控制 21 并行接口8255A2 计数器/定时器8253/8254【知识点】第7章 并行接口及定时计数控制 3回顾一下我们面对一个新芯片应该有的学习过程理清芯片的结构,知道其架构的背景查找其对应的学习资源了解其对应的编程环境及开发环境、调试方式动手实践,熟能生巧第7章 并行接口及定时计数控制 4【主要内容】8255并行接口电路8253计数器/定时器教学重点:学习目标熟练掌握8255A/8253A的工作方式和初始化编程 掌握8255A/8253A的应用第7章 并行接口及定时计数控制 5可编程接口概述可编程接口:用户可以通过指令

2、设置接口的工作模式,提高计算机硬件系统的灵活性。典型电路:简单的具有输入和输出功能的可编程接口电路配合8086常用的可编程芯片:8255A 并行I/O接口8253 计数器/定时器8251 串行I/O8259A 中断控制器8237DMA控制器 关键在这里第7章 并行接口及定时计数控制 6什么是并行通信? 把一个字符的各位用几条线同时进行传输。特点:传输速度快、信息率高 但成本高(使用电缆多)。应用范围:传输距离较短(几米至几十米)、数据传输率较高的场合。 7.1 可编程并行接口芯片8255A并行并行接口CPU接口外设.第7章 并行接口及定时计数控制 7并行数据传输方式以计算机的字长,通常是8位、

3、16位或32位为传输单位,一次传送一个字长的数据适合于外部设备与微机之间进行近距离、大量和快速的信息交换例如:微机与并行接口打印机、磁盘驱动器微机系统中最基本的信息交换方法例如:系统板上各部件之间,接口电路板上各部件之间7.1 可编程并行接口芯片8255A第7章 并行接口及定时计数控制 8并行输入输出接口的特点并行接口连接CPU与并行外设,实现 两者间的并行通信,在信息传送过程中,起到输出锁存或输入缓冲的作用。并行接口的典型硬件结构1、一个或一个以上具有锁存或缓冲的数据端口2、与CPU进行数据交换所必须的控制和状态信号3、与外设进行数据交换所必须的控制和状态信号4、端口译码电路5、控制电路 并

4、行输入输出接口为了达到以上功能第7章 并行接口及定时计数控制 97.1 可编程并行接口芯片8255A?8255A是一个什么芯片?8255A芯片的内部结构是怎样的?8255A芯片是如何工作的Intel 8255A是一个通用的可编程的并行接口芯片,它有三个并行I/O口,又可通过编程设置多种工作方式。价格低廉,使用方便,在中小系统中有着广泛的应用。 第7章 并行接口及定时计数控制 107.1 8255A并行接口电路具有多种功能的可编程并行接口电路芯片最基本的接口电路:三态缓冲器和锁存器与CPU间、与外设间的接口电路:状态寄存器和控制寄存器还有端口的译码和控制电路、中断控制电路有3个数据端口,共24个

5、外设引脚;还有一个控制端口共三种输入输出工作方式7.1.1 8255的内部结构这些功能电路都集成在里面第7章 并行接口及定时计数控制 11 8255A是一个40引脚的双列直插式集成电路芯片,其逻辑结构如下所示。按功能可把8255A分为三个逻辑电路部分,即:端口电路、总线接口电路和控制逻辑电路。(1)端口电路 8255A共有三个8位端口,其中A口和B口是单纯的数据口,供数据I/O使用。而C口则既可以作数据口,又可以作控制口使用,用于实现A口和B口的控制功能。 数据传送中A口所需的控制信号由C口高位部分(PC7PC4)提供,因此把A口和C口高位部分合在一起称之为A组;同样理由把B口和C口低位部分(

6、PC3PC0)合在一起称之为B组。7.1 8255并行接口电路第7章 并行接口及定时计数控制 12A组控制B组控制端口C(上半部)端口C下半部端口BOOO数据总线缓冲器读 / 写控制逻辑端口A数据总线RDWRA0A1RESETCSPA0 PA7PC4 PC7PC0 PC3PB0 PB7CPU接口外设接口内部逻辑7.1.1 8255A内部结构内部数据总线D0 D7第7章 并行接口及定时计数控制 13Intel 8255A的功能片内译码电路A1A0= 00 A口;01=B口; 10 C口;11 控制口5.5 并行输入输出接口注意这是8位总线8255的A1A0一定要接地址总线的A1A0吗?第7章 并

7、行接口及定时计数控制 14外设数据端口端口A:PA0PA7A组,支持工作方式0、1、2端口B:PB0PB7B组,支持工作方式0、1端口C:PC0PC7仅支持工作方式0A组控制高4位PC4PC7B组控制低4位PC0PC3端口A:PA0PA7常作数据端口,功能最强大端口B:PB0PB7常作数据端口端口C:PC0PC7可作数据、状态和控制端口分两个4位,每位可独立操作控制最灵活,最难掌握从某种意义上说,掌握了C口的使用就掌握了8255的应用第7章 并行接口及定时计数控制 15(2)总线接口电路总线接口电路用于实现8255A和单片微机的信号连接。其中包括: (a)数据总线缓冲器数据总线缓冲器为8位双向

8、三态缓冲器,可直接和CPU的数据线相连,与I/O操作有关的数据、控制字和状态信息都是通过该缓冲器进行传送。(b)读/写控制逻辑与读写有关的控制信号有:CS片选信号(低电平有效)RD读信号(低电平有效)WR写信号(低电平有效)7.1 8255并行接口电路7.1.1 8255的内部结构第7章 并行接口及定时计数控制 16(3)控制逻辑电路 控制逻辑电路包括A组控制和B组控制,合在一起构成8位控制寄存器。用于存放各口的工作方式控制字。RESET复位信号(高电平有效)。复位之后,控制寄存器清除,各端口被置为输入方式。读写控制逻辑用于实现8255A的硬件管理:芯片的选择,口的寻址以及规定各端口和单片微机

9、之间的数据传送方向。详见表1 8255A接口工作状态选择表. 7.1.1 8255的内部结构第7章 并行接口及定时计数控制 17A1、A0端口选择信号。8255A共有四个可寻址的端口(即A口、B口、C口和控制寄存器),用二位地址编码即可实现选择。参见下表。表1 8255A接口工作状态选择表 7.1.1 8255的内部结构第7章 并行接口及定时计数控制 18(1)8255A的工作方式 8255A共有三种工作方式,即方式0、方式1、方式2.(a)方式0 基本输入/输出方式 方式0下,可供使用的是两个8位口(A口和B口)及两个4位口(C口高4位部分和低4位部分)。四个口可以是输入和输出的任何组合。

10、方式0适用于无条件数据传送。(也可以把C口的某一位作为状态位,实现查询方式的数据传送)7.1.2 8255A工作方式及数据I/O操作7.1 8255并行接口电路第7章 并行接口及定时计数控制 19(b)方式1 选通输入或输出方式单向 A口和B口分别用于数据的输入或输出。而C口则作为数据传送的联络信号。具体定义见表72。可见A口和B口的联络信号都是三个,如果A或B只有一个口按方式1使用,则剩下的另外13位口线仍然可按方式0使用。如果两个口都按方式1使用,则还剩下2位口线,这两位口线仍然可以进行位状态的输入输出。 方式1适用于查询或中断方式的数据输入/输出。 (c)方式2 双向数据传送方式只有A口

11、才能选择这种工作方式,这时A口既能输入数据又能输出数据。在这种方式下需使用C口的五位线作控制线,信号定义如表72所示。方式2适用于查询或中断方式的双向数据传送。如果把A口置于方式2下,则B口能工作于方式0或方式1.7.1.2 8255A工作方式及数据I/O操作所谓选通方式实质就是查询跟方式1差不多,由单向双向第7章 并行接口及定时计数控制 20学工作方式要特别注意工作过程的理解:异步通讯要注意CPU和8255如何进行Handshaking请大家思考:为什么B口没有工作方式2第7章 并行接口及定时计数控制 21*数据输入操作 用于输入操作的联络信号有: STB (Strobe)选通脉冲,输入,低

12、电平有效。当外设送来STB信号时,输入数据装入8255A的锁存器。 IBF(Input Buffer Full) 输入缓冲器满信号,输出,高电平有效。 IBF信号有效,表明数据已装入锁存器,因此它是一个状态信号,供CPU查询之用。 INTR(INTerrupt Request)中断请求信号,高电平有效。当IBF为高时,中断请求信号有效。向微机发出中断请求。7.1 8255并行接口电路要从8255的角度弄懂这些管脚的信号:从哪里来,到哪里去,起什么作用。上面讲了8255工作时需要那些信号,下面讲这些信号是如何配合工作的第7章 并行接口及定时计数控制 22数据输入过程:当外设准备好数据输入后,发出

13、STB信号,输入的数据送入缓冲器。然后IBF信号自动有效。如使用查询方式,则IBF即作为状态信号供CPU查询使用;如使用中断方式,当信号由低变高时,产生INTR信号,向微机发出中断请求。微机在响应中断后执行中断服务程序时读入数据,并使INTR信号变低,同时也使IBF信号同时变低。以通知外设准备下一次数据输入。7.1 8255并行接口电路这是CPU读数后自动进行的第7章 并行接口及定时计数控制 23*数据输出操作用于数据输出操作的联络信号有:ACK (ACKnowledge)外设响应信号输入,低电平有效。当外设取走输出数据,并处理完毕后向微机发回的响应信号,表示上一个数据已处理。OBF(Outp

14、ut Buffer Full)输出缓冲器满信号,输出,低电平有效。当微机把输出数据写入8255A锁存器后,该信号有效以通知外设,并送去启动外设以接收数据。INTR中断请求信号,输出,高电平有效。这个信号表示可以接受新数据了第7章 并行接口及定时计数控制 24 数据输出过程:外设接收并处理完一组数据后,发回ACK*信号。该信号使OBF*变高,表明输出缓冲器已空。如使用查询方式,则OBF*可作为CPU状态信号供查询使用;如使用中断方式,则当ACK*信号结束时,INTR有效,向微机发出中断请求。在中断服务过程中,把下一个输出数据写入8255A的输出缓冲器。写入后OBF*有效,表明输出数据已到,并以此

15、信号启动外设工作,取走并处理8255A中的输出数据。7.1 8255并行接口电路7.1.2 8255A工作方式及数据I/O操作第7章 并行接口及定时计数控制 25方式0输入时序(选读)datadata输入端口D0D7RD CS,A1,A0请体会这里8255A的数据缓冲作用第7章 并行接口及定时计数控制 26方式0输出时序(选读)WRdatadata输出端口D0D7 CS,A1,A08255A对CPU通过它输出给外设的数据进行锁存第7章 并行接口及定时计数控制 27方式1输入引脚:A端口数据选通信号:表示外设已经准备好数据方向: 外设-8255作用:锁存数据到8255,使IBF或INTR有效,通

16、知CPU取数据输入缓冲器满信号:表示A口已经接收数据.方向:8255-CPU及外设作用:通知CPU读数据,读完后会无效,通知外设可以送新数据中断请求信号请求CPU接收数据PC4PC5PC3PA7PA0INTEAIBFAINTRASTBA中断允许触发器注意这个信号有效的条件第7章 并行接口及定时计数控制 28方式1输入引脚:B端口PC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB数据选通信号表示外设已经准备好数据输入缓冲器满信号表示B口已经接收数据中断请求信号请求CPU接收数据中断允许触发器注意这个信号有效的条件第7章 并行接口及定时计数控制 29方式1输入联络信号(小结)STB

17、*选通信号,低电平有效由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器IBF输入缓冲器满信号,高电平有效8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器INTR中断请求信号,高电平有效8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据方式1需借用端口C用做联络信号同时还具有中断请求和屏蔽功能第7章 并行接口及定时计数控制 30方式1输入时序(选读)dataINTRIBF data输入端口D0D7STBRDSTB*和IBF是外设和8255A间的一对应答联络信号,为的是可靠地输入数据第7章 并行接口及定时计数控制 31方式1中

18、断控制8255A的中断由中断允许触发器INTE控制置位允许中断,复位禁止中断对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输入信号的那一位,只要对那一位置位/复位就可以控制INTE触发器选通输入方式下端口A的INTEA对应PC4端口B的INTEB对应PC2第7章 并行接口及定时计数控制 32方式1输出引脚:A端口外设响应信号:表示外设已经接收到数据方向:外设-8255作用:通知8255数据已处理,使OBF*变高供CPU查询或使CPU中断,送新数据输出缓冲器满信号表示CPU已经输出了数据:方向:由8255-CPU作用:启动读外设数据中断请求信号请求CP

19、U再次输出数据PC6PC7PC3PA7PA0INTEAOBFAINTRAACKA中断允许触发器第7章 并行接口及定时计数控制 33方式1输出引脚:B端口PC2PC1PC0PB7PB0INTEBOBFBINTRBACKB外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器第7章 并行接口及定时计数控制 34方式1输出联络信号OBF*输出缓冲器满信号,低有效8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走ACK*响应信号,低有效外设的响应信号,指示8255A的端口数据已由外设接受I

20、NTR中断请求信号,高有效当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据端口A的INTEA对应PC6端口B的INTEB对应PC2第7章 并行接口及定时计数控制 35方式1输出时序(选读) INTR datadata输出端口D0D7WROBFACK OBF*和ACK*是外设和8255A间的一对应答联络信号,为的是可靠地输出数据第7章 并行接口及定时计数控制 36方式2双向方式方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同方式2的数据输入过程与方式1的

21、输入方式一样方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF*有效时向外设输出数据,而是在外设提供响应信号ACK*时才送出数据第7章 并行接口及定时计数控制 37方式2双向引脚PC6PC7PC3PA7PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6设置INTE1(输出)用PC4设置INTE2(输入)输入和输出中断通过或门输出INTRA信号可以看出为什么只能A口工作在双向方式而B口不能。方式2双向时序(选读)data-out INTR data-outdata-indata-inPA0PA7D0D7IBF WROBFACK

22、STBRD第7章 并行接口及定时计数控制 39(1)8255的方式字(写入 A1A0 = 11)D0D1D2D3D4D5D6D7PC3 PC01:输入0:输出B口 1:输入 0:输出B组工作方式 0:方式0 1:方式1PC7 PC4 1:输入 0:输出A口 1:输入 0:输出A组工作方式00:方式001:方式11:方式2D7 = 1特征位B组A组7.1 8255并行接口电路7.1.3 8255的编程下面的内容是告诉大家前面讲的功能如何通过编程实现第7章 并行接口及定时计数控制 40(2) C口的置位/复位字 (写入 A1A0 = 11) D0D1D2D3D4D5D6D71:置位0:复位C口选择

23、000:PC0001:PC1010:PC2011:PC3100:PC4101:PC5110:PC6111:PC7任选(可1可0)D7 = 0(特征位)方式0:基本 I/O 方式 (查询时,任选C口做连络信号)方式1:选通I/O 方式(可查询或中断,固定C口做连络信号)方式2:双向I/O方式(只用于A口,PC3 PC7做连络信号)7.1 8255并行接口电路7.1.3 8255的编程第7章 并行接口及定时计数控制 418255A的编程初始化编程:一个方式控制字采用控制I/O地址:A1A011工作过程中:通过数据端口对外设数据进行读写数据读写利用端口A、B和C的I/O地址,A1A0依次等于00、0

24、1、10IBM PC/XT机上:端口A、B、C和控制端口的I/O地址为60H、61H、62H和63H第7章 并行接口及定时计数控制 421. 写入方式控制字:示例要求:A端口:方式1输入C端口上半部:输出,C口下半部:输入B端口:方式0输出方式控制字:10110001B或B1H初始化的程序段:mov dx,63h;控制端口mov al,0b1h;方式控制字out dx,al;送到控制端口第7章 并行接口及定时计数控制 432. 读写数据端口初始化编程后:当数据端口作为输入接口时,执行输入IN指令将从输入设备得到外设数据当数据端口作为输出接口时,执行输出OUT指令将把CPU的数据送给输出设备第7

25、章 并行接口及定时计数控制 442. 读写数据端口:示例利用8255A的输出锁存能力,可实现按位输出控制 对输出端口B的PB7位,置位的程序段:mov dx,61h ;B端口in al,dx ;读出B端口原输出内容or al,80h ;使PB71out dx,al ;输出新的内容编程要养成一个习惯:当改写某位时,其它的位应保持不变。 MOV AL,80HOUT 61H,AL第7章 并行接口及定时计数控制 453. 读写端口C:归纳1C端口被分成两个4位端口,两个端口只能以方式0工作,可分别选择输入或输出在控制上,C端口上半部和A端口编为A组,C端口下半部和B端口编为B组第7章 并行接口及定时计

26、数控制 463. 读写端口C:归纳2当A和B端口工作在方式1或方式2时,C端口的部分或全部引脚将被征用其余引脚仍设定工作在方式0第7章 并行接口及定时计数控制 473. 读写端口C:归纳3对端口C的数据输出有两种办法通过端口C的I/O地址:向C端口直接写入字节数据。这一数据被写进C端口的输出锁存器,并从输出引脚输出,但对设置为输入的引脚无效通过控制端口:向C端口写入位控字,使C端口的某个引脚输出1或0,或置位复位内部的中断允许触发器这才是使用C口位控的目的这比前面的方法简单得多。第7章 并行接口及定时计数控制 48端口C的位控制字位控制字写入控制端口特别便于置位/复位内部中断允许触发器INTE

27、第7章 并行接口及定时计数控制 49例:若A口工作于方式1作输入,要使用中断传送方式,则应当写PC4的按位的控制方式置位字: MOVAL,00001001B OUT63H,AL 注意:这样写了后,PC4的管脚不受影响虽然是对C口操作,但这是位控方式,所以要送到控制端口第7章 并行接口及定时计数控制 503. 读写端口C:归纳4读取的C端口数据有两种情况未被A和B端口征用的引脚:将从定义为输入的端口读到引脚输入信息;将从定义为输出的端口读到输出锁存器中的信息被A和B端口征用作为联络线的引脚:将读到反映8255A状态的状态字告诉我们在A口或B口工作在方式1或方式2时,如何查询它的握手信号:读C口,

28、判断相应的状态第7章 并行接口及定时计数控制 51方式1输入INTRAINTE2IBFAINTE1OBFAINTRBOBFBINTEBINTRAI/OI/OINTEAOBFA方式2双向方式1输出INTRBIBFBINTEBINTRAINTEAIBFAI/OI/OD0D1D2D3D4D5D6D7端口C的状态字A组B组参考图7-2,便于理解第7章 并行接口及定时计数控制 52C端口未借用位的使用小结A端口方式 0、B端口方式 0 C端口所有位未被借用,PC0 PC7 可用A端口方式 0、B端口方式 1 PC0 PC2被借用,PC3 PC7可用A端口方式 1输入、B端口方式 0 PC3、PC4、PC

29、5被借用,PC0 PC2、PC6、PC7 可用A端口方式 1输出、B端口方式 0 PC3、PC6、PC7 被借用,PC0 PC2、PC4、PC5 可用A端口方式 1输入、B端口方式 1 PC6、PC7 可用A端口方式 1输出、B端口方式 1 PC4、PC5 可用A端口方式2、B端口方式1;都不可用第7章 并行接口及定时计数控制 53例1:对8255A各口作如下设置:A口方式0,B口方式0,从A口输入,从B口、C口输出。(8255A CONTROL口的地址为63H)工作方式控制字10010000,即90H。初始化程序段为:MOV AL,90H;设B口、 C口输出, A口输入 ; A口、B口为方式

30、0OUT63H,ALINAL,60H;从A口输入 OUT61H,AL;从B口输出 OUT 62H,AL ;从C口输出7.1 8255并行接口电路7.1.3 8255的编程第7章 并行接口及定时计数控制 54例2:PC-XT把C口的第六位PC5置为1。MOV AL,00001011;PC5置位OUT 63H,AL;NOTE:This address is 63H, not 62H.7.1 8255并行接口电路7.1.3 8255的编程第7章 并行接口及定时计数控制 55例题(位操作控制字)已知8255A的端口地址为02E0H02E3H,请实现对端口C的PC2置位和PC4复位。解:MOVDX,02

31、E3H;大于8位的端口地址送DXMOVAL,05H;位操作控制字0000 0101OUTDX,AL;置位PC2MOVAL,08H;位操作控制字0000 1000 OUTDX,AL;复位PC4 第7章 并行接口及定时计数控制 56例题(位操作控制字)(2)请在8255A的C端口的PC7位输出一个正脉冲。解:程序段如下MOV AL, 0FH ;置位PC7,操作控制字00001111OUT CTRL_PORT, AL ;写入控制端口MOV AL, 0EH ;复位PC7,操作控制字00001110OUT CTRL_PORT, AL; 写入控制端口第7章 并行接口及定时计数控制 57例8255A与系统的

32、连线如下, 片选译码地址为0F00F3H1) 确定各端口地址?2) 编程设置8255A : A口方式 0 输入,PC7PC4输出 B口方式 0 输出,PC3PC0输入resetD7D0A7A2A1A0IORIOW片选译码数据缓冲器读写控制片内译码RESETA1A0PC7PC0PB7PB0控制口D端口A端口C端口B +5VGNDD7D0外设RDWRCSPA7PA0F0F3H第7章 并行接口及定时计数控制 58最后得出结论: A口地址为 F0 H B口地址为 F1 H C口地址为 F2 H D口地址为 F3 H由8255A编程结构知:由8255A的CS与系统总线的连线知, 地址在F0F3H可使CS

33、有效,故: 4个端口的地址在0F00F3H中。结合8255A与系统总线的连线: A7 A6 A5 A4 A3 A2 A1 A0 F0H 1 1 1 1 0 0 0 0 A口F1H 1 1 1 1 0 0 0 1 B口F2H 1 1 1 1 0 0 1 0 C口F3H 1 1 1 1 0 0 1 1 D口 CSA1 A0 8255A总线解:1)端口地址A1A0选中端口00端口A01端口B10端口C11控制端口第7章 并行接口及定时计数控制 591特征位00A口方式 01A口输入0PC7PC4输出0B口方式 00B口输出1PC3PC0输入所以,方式控制字为 1001 0001B,即91H 要求设置

34、: A口方式0输入,PC7PC4输出 B口方式0输出,PC3PC0输入 2)确定方式控制字D7D6D5D4D3D2D1D0第7章 并行接口及定时计数控制 60MOV DX, 0F3H ;控制口地址MOV AL, 91H ;方式控制字OUT DX, AL或 MOV AL, 91H ; 方式控制字OUT 0F3H, AL初始化程序第7章 并行接口及定时计数控制 61问题1:8255A哪种工作方式具有中断请求的功能?该中断请求能否屏蔽?如何设置?解:8255A的方式1、方式2具有中断请求功能,均可屏蔽。 A口:方式1输入时,PC4置位允许中断、 PC4复位禁止中断; 方式1输出时,PC6置位允许中断

35、、 PC6复位禁止中断;方式2时,即为方式1输入、输出的组合。B口:工作于方式1时,PC2置位允许中断、 PC2复位禁止中断。第7章 并行接口及定时计数控制 62问题2设8255A的端口地址为0260H0263H,试编写下列各种情况的初始化程序:(1)A口、B口设置为方式0,端口A和C作为输入口,端口B作为输出。解:初始化程序段:MOV AL,99H;方式选择控制字10011001MOV DX,0263H;端口地址大于8位送DXOUT DX,AL第7章 并行接口及定时计数控制 63问题3(2)A口设置为方式2,禁止中断,B口设置为方式1输出,允许中断。 8255A的端口地址为0260H0263

36、H解:初始化程序段:MOV AL,0C4H ;方式选择控制字11xx x10 xMOV DX,0263HOUT DX,AL ;初始化完成MOV AL,0CH ;位操作控制字0000 1100, PC6复位, A口输出中断禁止OUT DX,ALMOV AL,08H ;位操作控制字0000 1000, PC4复位, A口输入中断禁止OUT DX,AL ;A口方式2,禁止中断MOV AL,05H ;位操作控制字0000 0101, PC2置位,B口中断允许OUT DX,AL第7章 并行接口及定时计数控制 64问题4(3)A口设置为方式1输入,PC7和PC6作为输出,B口方式1输入,A口和B口允许中断

37、。解:初始化程序段:MOV AL,0B6H;方式选择控制字1011 011xMOV DX,0263HOUT DX,AL ;初始化完成MOV AL,09H ;位操作控制字0000 1001, PC4置位OUT DX,AL;A口输入允许中断MOV AL,05H;位操作控制字0000 0101, PC2置位 OUT DX,AL;B口允许中断第7章 并行接口及定时计数控制 65例 试画出8255A与8086CPU连接图,并说明8255A的A0、A1地址线与8086CPU的A1、A2地址线连接的原因。答: 8086系统有16根数据线,而8255只有8根数据线,为了软件读写方便,一般将8255的8条数据线

38、与8086的低8位数据线相连。而8086在进行数据传送时总是将总线低8位对应偶地址端口,因此8086CPU要求8255的4个端口地址必须为偶地址,即8086在寻址8255时A0脚必须为低。实际使用时,我们总是将8255的A0、A1脚分别接8086的A1、A2脚,而将8086的A0脚空出不接,并使8086访问8255时总是使用偶地址。2接口应用举例8255可以接8086的高8位数据总线?第7章 并行接口及定时计数控制 66 例7-18255A的A口和B口工作在方式0,A口为输入端口,接有四个开关。B口为输出端,接有一个七段发光二极管,连接电路如图所示。试编一程序要求七段发光二班管显示开关所拨通的

39、数字。电路A0=0,偶地址8位的8255A与16位的CPU可以通过数据总线D7D0传送8位信息.其实A0参加译码完全是多此一举。WHY?注意:8255的A1A0连接的是地址线的A2A1D0D7可参考上一章例题这个电阻应该是多大?第7章 并行接口及定时计数控制 67LED数码管段码表 由图可知,七段发光二极管为共阳极LED器件。要让a段点亮,要求从PB0输出高电平;要让b段熄灭,要求从PB1输出低电平。8255A的A口接有开关,4位开关的组合可为0FH。为此,可将在LED上显示0FH各字符的段码列表。第7章 并行接口及定时计数控制 68微型计算机原理与应用第7章 输入输出方法及常用的接口电路 6

40、8tab1 db 3fh,06h,5bh,4fh,31h mov al,90h;设置方式字,A输入,BC输出mov dx,8026h;控制口out dx , aladd1: mov dx,8020h;A口in al,dx;取开关信息and al,0fh;屏蔽高4位mov bx,offset tab1;取段码表首地址xlat;查表得段码mov dx,8022h;输出显示,B口out dx,almov cx,0600hadd2: loop add2;循环延时显示jmp add1Note: 各个地址的表示可以用字符第7章 并行接口及定时计数控制 69例7-28255A的A口和B口分别工作在方式1和方

41、式0,A口为输入端口,接有8个开关。B口为输出端,接有8个发光二极管,连接电路如图所示。现要求用方式1把改变后的键信息输入到CPU并通过B口显示。工作过程:1、用户通过改变K0K7,产生新的键信息;2、按下开关K,产生选通信号,数据进入A口的缓冲器,此步骤实际上告诉CPU,8255的A口来了一个新数据;3、IBFA有效使LED点亮。这里含有两个信息,一个是8255A通知CPU其A口来了一个新数据,另一个是告诉用户CPU尚未取走这个这个数据,用户不得再送其他数据;4、CPU取走这个数据,LED熄灭;5、转步骤1。 本例要求把改变后的开关值通过B口的发光二极管显示出来。这和上面的例题不同,无条件传

42、输方式CPU每次 从A口输入的信息不一定是开关改变后的值。 本例成功传输数据依赖于2个条件:1)CPU知道用户何时把数据送入8255A的A口2)用户知道CPU何时把数据取走第7章 并行接口及定时计数控制 70例7-28255A的A口和B口分别工作在方式1和方式0,A口为输入端口,接有8个开关。B口为输出端,接有8个发光二极管,连接电路如图所示。现要求用方式1把改变后的键信息输入到CPU并通过B口显示。mov al,10111001b ;设置工作方式 out 8eh,alloop1: in al,8ch;取C口的状态线test al,00100000b;测试IBFA信息jz loop1 ;等待用户设定新的键值mov cx,0ffffh;延时,LED灯亮loop2:loop loop2in al,88h;取数。LED灯灭out 8ah,al;更新B口的显示jmp loop1;重复为什么这个程序中要延时第7章 并行接口及定时计数控制 71例7-38255A的A口工作在方式1的输出,接有8个发光二极管,现要求把内存中的10个数,通过A口发送给发光二极管以二进制的形式供用户抄录。工作过程:1、CPU把内存中的一个数据写入A口;2、LED灯亮,告诉用户LED显示的是新数据;3、用户抄录数据;4、用户按下开关K,发ACK信号,告诉CPU数据已取走; 5、转步骤1。此系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论