微机原理与接口技术第89章.ppt

上传人:小飞机 文档编号:5975732 上传时间:2023-09-10 格式:PPT 页数:83 大小:7.64MB
返回 下载 相关 举报
微机原理与接口技术第89章.ppt_第1页
第1页 / 共83页
微机原理与接口技术第89章.ppt_第2页
第2页 / 共83页
微机原理与接口技术第89章.ppt_第3页
第3页 / 共83页
微机原理与接口技术第89章.ppt_第4页
第4页 / 共83页
微机原理与接口技术第89章.ppt_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《微机原理与接口技术第89章.ppt》由会员分享,可在线阅读,更多相关《微机原理与接口技术第89章.ppt(83页珍藏版)》请在三一办公上搜索。

1、第8章 可编程计数器/定时器,8253及其应用,8.0 计数/定时方法简介8.1 8253的工作原理8.2 8253的应用举例,8.0 计数/定时方法简介,软件定时(软件延时),CPU执行指令需要花费固定的时间,执行一段没有目的的指令可以达到定时的效果。灵活方便,节省费用。CPU利用率低。,不可编程硬件定时,以逻辑门配合RC组成定时电路,如555等。通过改变RC值,调整定时时间。定时精度不高。RC值容易随外部环境变化而变化,可编程硬件计数/定时,利用晶体振荡器产生高频时间基准,送至可编程硬件进行分频后,通过指令设定定时初值,到达预定时间后,自动形成一个输出信号到CPU的中断引脚,提出中断请求。

2、CPU占用率低,定时时间可设。,注:将晶体振荡器输出改为外部脉冲输出,则可实现计数功能。,8.1 8253的工作原理,数据总线缓冲器,控制寄存器,计数器2,O,O 读/写控制逻辑,O,计数器1,CLK1GATE1OUT1,CLK2GATE2OUT2,D0D7,RD,WRA0A1,CS,计数器0,CLK0GATE0OUT0,计数器 0,计数初值寄存器,低8,高8执行部件,输出锁存寄存器,D0,D7,8253基本原理图,8253内部结构及引脚,一、8253作用,定时,软件定时:让机器执行一段程序,安排循环来实现定时,容易实现,定时时间调整方便,定时不精确,占用了CPU资源,降低了CPU的利用率。,

3、硬件定时:可编程定时/计数硬件芯片,定时值、定时范围可以很容易的由软件改变,具有使用灵活、功能较强等特点。,外部事件计数,外部事件计数就是对外部脉冲信号计数。产生脉冲信号的外部原因就是外部事件。,如高速公路入口处一个专用计算机检测系统,它可以自动对进入高速公路的车辆进行计数,8253/8254定时计数器,3个独立的16位计数器通道每个计数器有6种工作方式,按二进制或十进制(BCD码)计数,8254是8253的改进型,OUT输出,计数脉冲,可预置初值计数器计数初值,8253定时/计数器的工作原理定时/计数器的核心部件为可预置初值计数器。预置初值后开始计数,CLK信号每输入一个脉冲,计数值减1,一

4、直减到0,并且OUT脚同时产生相应输出信号,该信号可用作中断请求。要注意定时器,的容量即位数,CLK输入,GATE门控信号,四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的16位的计数器通道。这三个计数器分别是计数器0通道、计数器1通道和计数器2通道。,(1)数据总线缓冲器:8位的双向三态缓冲器。用于暂存数据,,使用在以下几个方面:,CPU在初始化编程时,向8253写入控制字。CPU向某一通道写计数初值。CPU从某一通道读计数初值。,(2)读写控制逻辑电路:接受输入的RD、WR、CS、A1、A0等信,号组合产生出对8253要执行的操作,见操作表。,(3)控制字寄存器:只能写入

5、,不能读出。8初始化编程时,写,入控制字决定通道的工作方式。,(4)3个计数器:分别为0、1和2,是3个独立的计数定时通道,都可按不同的方式工作。每个计数器内部都包含一个16位的预置初始值寄存器。一个可预置数减法计数器和一个锁存器。,数据总线缓冲器,双向三态的8位数据缓冲器,实现8253和CPU之间的数据接口,读写控制电路,片选信号 CS,A1A0的组合:选择三个通道一个控制寄存器,共4个端口,读信号 RD 和写信号WR 由CPU提供,低电平有效。,计数器通道0、通道1和通道2CLK:计数器的脉冲输入端,GATE:计数器的门控信号,OUT:计数器的输出信号,一般与计数溢出有关。8253计数器工

6、作在减1状态,每输入一个计数脉冲,计数器值减l,,16位计数器,GATE,当计数器计数到零时,CLKOUT信号有效通知外设计数器产生溢出,OUT,计数器:将要计数的次数预置到该通道计数器中定时器:从CLK输入一固定频率的时钟脉冲,再根据要求定时的时间计算出定时所需的计数值或称时间常数,并预置到计数器中计数值定时时间/时钟脉冲周期,计数器的使用,.,.,写 8253的控制字,写入控制寄存器(A1,A0=11)写入计数值,写到相应的计数器。8253控制寄存器格式,D0,D1,D2,D3,D4,D5,D6,D7,BCD,M1,M2,M3,RW1 RW0,SC0,SC1,工作方式选择000:方式000

7、1:方式1010:方式2101:方式5,计数值写入顺序00:读计数值(锁存)01:写低8位,高8位为010:写高8位,低8位为011:先写低8位,后写高8位,计数器选择00:计数器001:计数器110:计数器211:*8254读回,计数值形式0:二进制1:BCD码,二、初始化编程步骤和门控信号的功能,8253初始化,通过8253的控制端口向控制字寄存器写入相应通道的控制字,控制字包括如下信息:指定通道的工作方式,对通道计数器的读写方式,通道计数器计数时所采用的数制;,通过8253的通道端口向相应的通道计数器写入初始计数值。如果在控制字中已确定16位的读写方式,则要对通道端口写操作两次,第一次写

8、初始计数值的低8位,第二次写高8位。,8253的编程控制字分为4部分,通道选择、计数器读/写方式、工作方式和计数码的选择。,计数器选择(SC1、SC0),计数器读/写方式(RLl、RL0),计数器的锁存操作8253一旦初始化后,就不需要CPU参与而自动计数。为了读出计数值时不干扰实际计数过程,同时读出的值又是稳定的,就要求对通道计数器中的计数值进行锁存。,硬件锁存暂停计数,GATE,暂停计数,软件控制命令锁存每一个通道都有一个输出锁存器(16位),平时它的值随通道计数器的值变化,当向通道写入锁存的控制命令时,它把计数器的现行值锁存而计数器的计数过程照样进行。这样,CPU读取的是锁存器中的值。当

9、重新写入一个命令字或CPU读取计数值后,计数通道会自动解除锁存状态。锁存控制字:0000XXXXB,先读低8位,后读取高8位(不锁存):1000H,0F00H,BCD计数制:写入初值范围为0000到9999,而0000是最大值,代表10000二进制计数制:写入初值范围为0000到FFFFH,其中0000为最大值,代表65536。,工作方式选择(M2、M1、M0)控制字的D5D4为00,表示的是锁存命令。这时控制字中的低4位无,效,8253的工作方式,方式0计数结束中断方式,方式1可编程序的单独负脉冲方式2速率发生器方式3方波发生器方式4软件触发方式方式5硬件触发方式,方式0计数结束中断方式,方

10、式0的作用,用户可以在设定时间上产生中断信号,工作方式0特点:,门控信号GATE必须为1,计数器才能计数;计数时通道输出端OUT一直为0;,通道计数器计数到0后,OUT由0到1,同时计数器停止工作。,OUT输出的从低到高的正跳变或高电平可作为中断请求信号INTR,向CPU发出中断请求。,在计数过程中,GATE信号为低电平时,停止计数,一旦GATE变高,则继续计数,INT8086,;置8255A方式控制字;8255A置位/复位控制字,使PC00;置8253通道0方式控制字;置8253通道0时间常数,MOV AL,10011010BOUT 8255控制口,ALMOV AL,00HOUT 8255控

11、制口,ALMOV AL,30HOUT 8253控制口,ALMOV AL,40HOUT 通道0端口,ALMOV AL,38HOUT 通道0端口,AL中断程序中有关程序段如下:,;8255置位/复位控制字,使PC01,MOV AL,00000001BOUT 8255控制口,AL,家庭厨房系统,方式1可编程序的单稳态输出方式,单稳电路,在输入的激励下产生固定宽度脉冲的电路,当输入端输入一个不低于规定的最小宽度的脉冲后,单稳电路就输出一个用户事先设定宽度的脉冲。,8253的方式1就是一个可编程单稳电路,方式1工作过程,门控信号GATE是触发信号,上升沿有效。即开始计数是由GATE的上升沿触发的;,触发

12、后,通道计数器开始计数,输出端OUT由高变低;计数器计数到0,OUT再由低变高。,PWNTclk,PW:输出的负脉冲宽度;N:初始计数值,Tclk:CLK端的脉冲周期,方式2比率发生器方式2是一个可编程的分频电路,它把输入信号CLK分频后以脉冲的形式由OUT输出,而分频系数就是用户事先对通道计数器写入的初始计数值,工作方式,(OUT初始为高电平),GATE门为1,计数器才能工作,对CLK端上的脉冲进行计数;当计数器“减”计数到1时,输出端由高变低,再经过一个CLK周期,即计数器计数到0时,输出端OUT又跳变为高。所以方式2输出周期性负脉冲信,号,其宽度固定为一个CLK周期;当计数器的值减为0时

13、,自动重新装入计数初值,实现循环计数,方式2计数初值重载,在计数过程中,如果GATE信号为低电平,则停止计数,待GATE信号变为高电平后,从初始值开始重新计数。,方式2定时波形图,方式3方波发生器,工作方式:,当控制字写入控制寄存器后,输出端OUT变高。,当计数初值写入通道,且GATE为高电平时计数器开始计数,OUT保持高电平。若计数初值n为偶数,则当计数值减到n2时,输出端OUT变为低电平。然后此,低电平一直保持到计数值减为0,OUT再次变为高电平。,当计数值减到0时计数器重新装入计数值,实现循环计数。,当计数值N为偶数时,输出端OUT输出重复周期为NCLK,占空比为1:1的方波。,当计数初

14、值N为奇数,输出重复周期为NCLK,但占空比为(N+1)/2(N-1)/2,因而输出是近似方波。,方式4软件触发方式,软件触发方式:CPU通过指令触发一个选通信号给外部设备,选通信号在触发后设定时间点上发出。选通信号作用:锁存器STB,打印机STB,CPU通过触发8253的某个通道,定时启动一个事件或工作过程,或CPU启动某个事件的命令延迟了设定时间后才执行。,方式4中,当写入控制字后,输出端OUT变为高电平。当计数初值写入通道后,CPU就完成了对通道的触发。当计数器计数到0时,通道的OUT端就输出负脉冲。,方式4工作过程,门控信号GATE为高电平,计数器开始减1计数,OUT维持高电平;当计数

15、器减到0,输出端OUT变低,再经过一个CLK输入时钟周期,OUT输出又变高。,所以输出端OUT在计数器溢出时产生一个宽度为1个CLK周期的负脉冲。而这个负脉冲就可以做为外设的选通信号。,若在计数过程中,GATE信号变低,则停止计数;到GATE信号变高,重新开始从初值减1计数。,GATE0,5V,8253通 道 0CLK0OUT0,CP RD,D SD Q,送家用电器,+5V,220V,5V,C R方式4下的家庭厨房系统,早晨启动你的计算机,在8点钟执行对8253通道0的初始化程序,关掉CPU,方式5硬件触发方式,硬件触发方式,外部通过一个有效沿触发信号启动一个选通信号给外部设备,选通信号在触发

16、后设定时间点上发出。,工作过程,当控制字写入控制寄存器后,输出端OUT变高;当计数值写入通道计数器后,立即开始计数;,只有当GATE信号的上升沿触发通道后,通道计数器才开始计数(所以方式5称硬件触发);,当计数值减到0,输出端OUT变低,再经过一个CLK时钟周期,OUT端输出又变高。(输出端OUT输出的也是一个宽度固定为1个CLK周期的负脉冲),计数器的计数值减到0后,将自动重新装入计数值,但并不开始计数,待到再一次有GATE的上升沿触发才开始计数。,8253通道0,D SD QCP RD,送家用电器,+5V,220V,C R,CLK0 OUT0GATE05V,早晨8点前的任何一个时刻启动你的

17、计算机,对8253通道0的初始化程序,关掉CPU在8点时,按下开关,计数开始计数5V,8253的工作方式小节,与频率发生器有关的工作方式,方式2和发生3,对OUT端,方式2提供给用户的是负脉冲,方式3提,供给用户的是方波。GATE信号均要始终保持为高。,与计数器有关的工作方式,2161 0 0 0 0 0 0N=,例题:现有一个高精密晶体振荡电路,输出信号是脉冲波,频率为1MHz。要求利用8253做一个秒信号发生器,其输出接一发光二极管,以0.5秒点亮,0.5秒熄灭的方式闪烁指示。设8253的通道地址为80H86H(偶地址)解答:,(1)8253作一个分频电路,而且其输出应该是方波(2)分频系

18、数N:,1 S 1000000 S,1 S 1 S,N=1000000=1000 1000=N1 N 2,1MHz,8253通 道 0CLK 0 OUT 0GATE 0,1KHz,8253通 道 1CLK 1 OUT 1GATE 1,5V通道0首先把1MHz信号1000分频,产生1KHz的信号,通道1再把1KHz信号1000分频,结果就得到的1Hz信号(3)通道1要输出方波信号推动发光二极管,所以通道1应选工作方式3。对于通道0,只要能起分频作用就行,对输出波形不做要求,所以方式2和方式3都可以选用。(4)初始化:通道0:工作方式2,BCD计数;通道1:工作方式3,二进制计数,MOV AL,0

19、0110101BOUT 86H,ALMOV AL,00OUT 80H,ALMOV AL,10HOUT 80H,ALMOV AL,01110110B,;通道0控制字;通道0初始计数值;通道1控制字,OUT 86H,ALMOV AL,0E8H;通道1初始计数值,03E8H=1000BCDOUT 82H,ALMOV AL,03HOUT 82H,AL,第9章 可编程外围接口芯片,8255A及其应用,9.1 8255A的工作原理9.2 8255的应用举例,一、8255A的结构和功能,具有多种功能的可编程并行接口电路芯片最基本的接口电路:三态缓冲器和锁存器与CPU间、与外设间的接口电路:状态寄存器,和控制

20、寄存器,还有端口的译码和控制电路、中断控制电路,分3个端口,共24个外设引脚共三种输入输出工作方式,8255A的内部结构和引脚,A组控制,A组端口A,内部数据线B组控制内部控制线,A组端口C上部B组端口BB组端口C下部,数据总线缓冲器读写控制逻辑,PC4PC7PB0PB7PC0PC3,PA0PA7,D0D7RDWRA0A1CSRESET,外设数据端口,方式0,4位PC0PC3,端:7,端口A:PA0口 PA PA0PA7,A组,支持工作方式0端口,功能最强大,常作数据、1、2,端:7,端口B:PB0口 PB PB0PB7,B组,支持工作方式0端口,常作数据、1,端:7,端口C:PC0口 PCP

21、C0PC7,4位PC44位 7,,仅支持工作可作数据、状态和控制端口A组控制高 分两个 PC 每位可独立操作B组控制低 控制最灵活,最难掌握,与处理器接口,D0 D7数据线RD*读信号CS*片选信号,A0 A1地址线WR*写信号RESET复位信号,三、8255A的工作方式,方式0:基本输入输出方式,适用于无条件传送和查询方式的接口电路,方式1:选通输入输出方式,适用于查询和中断方式的接口电路,方式2:双向选通传送方式,适用于与双向传送数据的外设,适用于查询和中断方式的接口电路,data,data,方式0输入时序RD,输入端口CS,A1,A0D0D7,方式0输出时序WR,data,data,输出

22、端口CS,A1,A0D0D7,8255A对CPU通过它输出给外设的数据进行锁存,方式1输入引脚:A端口数据选通信号,表示外设已经准备好数据,输入缓冲器满信号,表示A口已经接收数据,中断请求信号请求CPU接收数据,PC4PC5,PC3,PA7PA0,INTEA,INTRA,STBAIBFA,中断允许触发器,PC2,PB7PB0,INTEB,STBB,方式1输入引脚:B端口数据选通信号,表示外设已经准备好数据,输入缓冲器满,中断请求信号请求CPU接收数据,中断允许触发器,PC同时还具有中断请求和屏蔽功能 信号表示A口已经接收数据PC0 INTRB,方式1输入联络信号,STB*选通信号,低电平有效,

23、由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器,IBF输入缓冲器满信号,高电平有效,8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器,INTR中断请求信号,高电平有效,8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据,data,data,输入端口D0D7,方式1输入时序STBIBF的一对应答联络信号,INTRRD,方式1中断控制,8255A的中断由中断允许触发器INTE控制,置位允许中断,复位禁止中断,对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输入信号的哪一位,只要对那一

24、位置位/复位就可以控制INTE触发器选通输入方式下,端口A的INTEA对应PC4端口B的INTEB对应PC2,方式1输出引脚:A端口外设响应信号,表示外设已经接收到数据,输出缓冲器满信号表示CPU已经输出了数据,PC6,PC7,PA7PA0,INTEA,OBFA,INTRA中断请求信号请求CPU再次输出数据,ACKA,PC3中断允许触发器,PC2,PC1,PB7PB0,INTEB,OBFB,ACKB,方式1输出引脚:B端口外设响应信号,表示外设已经接收到数据,输出缓冲器满信号表示CPU已经输出了数据,INTRB中断请求信号请求CPU再次输出数据,PC0中断允许触发器,ACK*响端口A的INTE

25、A对应PC6,方式1输出联络信号,OBF*输出缓冲器满信号,低有效,8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走,应信号,低有效,INTR中断请求信号,高有效,当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据,外设的响应信号,指示INTEB的端口数据已由外设接受,端口B 8255A 对应PC2,INTR,data,data,输出端口D0D7,方式1输出时序WROBF,ACK,OBF*和ACK*是外设和8255A间的一对应答联络信号,为的是可靠地输出数据,方式2双向方式,方式2将方式1的选通输入输出功能组

26、合成一个双向数据端口,可以发送数据和接收数据,只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同,方式2的数据输入过程与方式1的输入方式一样方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF*有效时向外设输出数据,而是在外设提供响应信号ACK*时才送出数据,PC6,方式2双向引脚PA7PA0,INTE1,ACKA,OBFASTBAIBFAINTRA,PC7INTE2 PC4PC5PC3,用PC6设置INTE1(输出),用PC4设置INTE2(输入)输入和输出中断通过或门输出INTRA信号,data-out,data-in,data-ind

27、ata-out,PA0PA7D0D7,方式2双向时序WROBFINTRACKSTBIBFRD,8255A的编程,初始化编程:一个方式控制字,采用控制I/O地址:A1A011,工作过程中:通过数据端口对外设数据进行读写,数据读写利用端口A、B和C的I/O地址,,A1A0依次等于00、01、10,IBM PC/XT机上,端口A、B、C和控制端口的I/O地址为60H、61H、62H和63H,1.写入方式控制字:控制字格式,写入方式控制字:示例要求:A端口:方式1输入C端口上半部:输出,C口下半部:输入B端口:方式0输出方式控制字:10110001B或B1H初始化的程序段:,mov dx,0fffeh

28、mov al,0b1hout dx,al,;假设控制端口为FFFEH;方式控制字;送到控制端口,2.读写数据端口,初始化编程后:,当数据端口作为输入接口时,执行输入IN指,令将从输入设备得到外设数据,当数据端口作为输出接口时,执行输出OUT,指令将把CPU的数据送给输出设备,8255A具有锁存输出数据的能力,对输出方式的端口同样可以输入不是读取外设数据,读取的是上次CPU给外设的数据,2.读写数据端口:示例利用8255A的输出锁存能力,可实现按位输出控制对输出端口B的PB7位置位的程序段:,mov dx,0fffahin al,dxor al,80hout dx,al,;B端口假设为FFFAH

29、;读出B端口原输出内容;使PB71;输出新的内容,3.读写端口C:归纳1,C端口被分成两个4位端口,两个端口只能以方式0工作,可分别选择输入或输出,在控制上,C端口上半部和A端口编为A组,C端口下半部和B端口编为B组,3.读写端口C:归纳2,当A和B端口工作在方式1或方式2时,C端口的部分或全部引脚将被征用,其余引脚仍可设定工作在方式0,3.读写端口C:归纳3,对端口C的数据输出有两种办法,通过端口C的I/O地址:向C端口直接写入字节数据。这一数据被写进C端口的输出锁存器,并从输出引脚输出,但对设置为输入的引脚无效,通过控制端口:向C端口写入位控字,使C端口的某个引脚输出1或0,或置位复位内部

30、的中断允许触发器,端口C的位控制字,位控制字写入控制端口特别便于置位复位内部中断允许触发器INTE,3.读写端口C:归纳4,读取的C端口数据有两种情况,未被A和B端口征用的引脚:将从定义为输入的端口读到引脚输入信息;将从定义为输出的端口读到输出锁存器中的信息,被A和B端口征用作为联络线的引脚:将读到反映8255A状态的状态字,方式1输入,INTRA,INTE2,IBFA,INTE1,OBFA,INTRB,OBFB,INTRA INTEB,I/O,I/O,INTEA,OBFA,方式2双向,方式1输出,INTRB,IBFB,INTEA INTRA INTEB,IBFA,I/O,I/O,D0,D1,

31、D2,D3,D4,D5,D6,D7,端口C的状态字,A组,B组,9.2 8255A的应用,作为通用的并行接口电路芯片,,825A具有广泛的应用,应用在IBM PC/XT微机上应用于打印机接口电路连接简易键盘,驱动LED数码管,11.2.1 8255A在IBM PC/XT上的应用工作在基本输入/输出方式0端口A为方式0输入,用来读取键盘扫描码端口B工作于方式0输出,例如控制扬声器等端口C为方式0输入,读取系统状态和配置系统的初始化编程:,;方式控制字99H,mov al,10011001bout 63h,al,同时送出数据选通信号STROBE*,BUSY 忙信号,打印机接口的信号与时序,DATA

32、07,ACK,主机把数据送给引脚DATA0DATA7,打印机,STROBE 在BUSY信号线上发出忙信号,打印机处理好输入的数据时,撤消,同时又送出一个响应信号ACK*,用8255A方式0与打印机接口,8255APA0PA7PC7PC2,打印机DATA07STROBEBUSY,8255A的初始化mov dx,0fffeh,;控制端口地址:FFFEH,mov al,10000001B,;方式控制字:91H,out dx,al,;A端口方式0输出,C端口上输出、下输入,mov al,00001111B,;端口C的复位置位控制字,使PC71,out dx,al,打印子程序:查询,printcprn:

33、,procpush axpush dxmov dx,0fffch;读取端口C,in al,dxand al,04h,;查询打印机状态;PC2BUSY0?,jnz prn;PC21,打印机忙,则循环等待,打印子程序:输出mov dx,0fff8h;PC20,打印机不忙,则输出数据mov al,ah,out dx,al,;将打印数据从端口A输出,打印子程序:打印,mov dx,0fffeh;从PC7送出控制低脉冲,mov al,00001110B;置STROBE*0,out dx,al,nop;产生一定宽度的低电平,nop,mov al,00001111B;置=1,out dx,al,;最终,ST

34、ROBE*产生低脉冲信号,打印子程序:返回pop dxpop axret,printc,endp,11.2.3 用8255A方式1与打印机接口,1000pf,2K,15,3,14,42,电路,+5V,PC6,INTR,PC3,8255APA0PA7,打印机DATA07,ACK,ACK,PC7 OBF 1 LS123单稳,STROBE,8255A方式1与打印机接口时序配合PA0PA7(DATA07)OBFSTROBEACK,方式1时序,打印机时序,8255A的初始化mov dx,0fffehmov al,0a0hout dx,al,mov al,0ch,;使INTEA(PC6)为0,禁止中断,o

35、ut dx,al,mov cx,counter;打印字节数送CXmov bx,offset buffer;取字符串首地址call prints;调用打印子程序,打印子程序:输出,prints,procpush ax;保护寄存器push dx,print1:,mov al,bxmov dx,0fff8hout dx,al,;取一个数据;从端口A输出,打印子程序:查询mov dx,0fffch,print2:,in al,dx,test al,80h;检测(PC7)为1否?jz print2;为0,说明打印机没有响应,继续检测,打印子程序:返回,inc bx,;为1,说明打印机已接受数据,loop

36、 print1,;准备取下一个数据输出,pop dx;打印结束,恢复寄存器,pop ax,ret;返回,prints endp,双机并行通信接口,甲方(发送)8255APA0PA7PC7PC6,已方(接收)8255APA0PA7PC4PC0,甲机的初始化,mov dx,0fffehmov al,0a0hout dx,al,;工作方式字:端口A方式1输出,mov al,0dh,;使PC6(INTEA)1,允许中断,out dx,al,甲机发送程序,trsmt:mov dx,0fffch,in al,dx,;查询PC3(INTRA)1?,and al,08hjz trsmt,mov dx,0fff

37、8h;发送数据,mov al,ahout dx,al,乙机的初始化,mov dx,0fffehmov al,98hout dx,al,;工作方式字:端口A方式0输入,mov al,01h,;使PC0(ACK*)1,因尚未收到数据,out dx,al,乙机:查询接收,receive:mov dx,0fffch,in al,dx,;查询PC4(OBF*)0?,and al,10hjnz receive,mov dx,0fff8h;接收数据,in al,dx,mov ah,al,乙机:接收响应mov dx,0fffeh,mov al,00h,;使PC0(ACK*)0,out dx,alnop;适当延时,产生一定宽度的低脉冲nop,mov al,01hout dx,al,;使PC0(ACK*)1;产生低脉冲ACK*信号,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号