七章并行通信接口技术课件.ppt

上传人(卖家):晟晟文业 文档编号:5219587 上传时间:2023-02-17 格式:PPT 页数:90 大小:1.61MB
下载 相关 举报
七章并行通信接口技术课件.ppt_第1页
第1页 / 共90页
七章并行通信接口技术课件.ppt_第2页
第2页 / 共90页
七章并行通信接口技术课件.ppt_第3页
第3页 / 共90页
七章并行通信接口技术课件.ppt_第4页
第4页 / 共90页
七章并行通信接口技术课件.ppt_第5页
第5页 / 共90页
点击查看更多>>
资源描述

1、7.3 可编程并行接口可编程并行接口微型计算机与微型计算机与I/O设备的接口按照数据传设备的接口按照数据传送格式的不同,可分为并行接口和串行接送格式的不同,可分为并行接口和串行接口两种。口两种。实现并行通信的接口就是并行接口实现并行通信的接口就是并行接口实现串行通信的接口就是串行接口实现串行通信的接口就是串行接口并行通信与串行通信并行通信与串行通信 数据通信的基本方式可分为数据通信的基本方式可分为并行通信并行通信与与串行串行通信通信两种:两种:并行通信并行通信:是指利用多条数据传输线将一个:是指利用多条数据传输线将一个数据的各位同时传送。传输速度快,适用于数据的各位同时传送。传输速度快,适用于

2、短距离通信。短距离通信。串行通信串行通信:是指利用一条传输线将数据一位:是指利用一条传输线将数据一位位地顺序传送。位地顺序传送。通信线路简单,利用电话或通信线路简单,利用电话或电报线路就可实现通信,降低成本,适用于电报线路就可实现通信,降低成本,适用于远距离通信,但传输速度慢。远距离通信,但传输速度慢。n以计算机的字长,通常是以计算机的字长,通常是8位、位、16位或位或32位为传输单位,一次传送一个字长的数据位为传输单位,一次传送一个字长的数据n适合于外部设备与微机之间进行近距离、适合于外部设备与微机之间进行近距离、大量和快速的信息交换大量和快速的信息交换n例如:微机与并行接口打印机、磁盘驱动

3、器例如:微机与并行接口打印机、磁盘驱动器n微机系统中最基本的信息交换方法微机系统中最基本的信息交换方法n例如:系统板上各部件之间,接口电路板上例如:系统板上各部件之间,接口电路板上各部件之间各部件之间并行通信的特点并行通信的特点 串行通信的特点串行通信的特点n 将数据分解成二进制位用一条信号线,将数据分解成二进制位用一条信号线,既传送数据信息,又传送控制信息既传送数据信息,又传送控制信息n 要求数据格式固定,分为异步和同步数要求数据格式固定,分为异步和同步数据格式据格式n 串行通信中对信号的逻辑定义与串行通信中对信号的逻辑定义与TTL不不兼容,需进行逻辑关系和逻辑电平转换兼容,需进行逻辑关系和

4、逻辑电平转换n 串行传送信息的速率需要控制,要求双串行传送信息的速率需要控制,要求双方约定通信传输的波特率方约定通信传输的波特率可编程并行接口芯片可编程并行接口芯片8255A1 18255A8255A有两个有两个8 8位位(端口端口A A与端口与端口B)B)和两个和两个4 4位位(端口端口C C高高/低低4 4位位)的并行输入的并行输入/输出端口输出端口2 2端口端口A A有三种工作方式:方式有三种工作方式:方式0 0、方式、方式1 1、方式方式2 2;端口;端口B B口有两种工作方式:方式口有两种工作方式:方式0 0、方式方式1 1;可适应;可适应CPUCPU与与I/OI/O接口的多种数据传

5、接口的多种数据传送方式,如无条件传送、查询式传送和中断送方式,如无条件传送、查询式传送和中断方式传送等方式传送等3 3端口端口C C的使用较特殊,除工作在方式的使用较特殊,除工作在方式0 0作为作为数据端口之外,当工作在方式数据端口之外,当工作在方式1 1和方式和方式2 2时,时,它的大部分引脚被用作联络信号,端口它的大部分引脚被用作联络信号,端口C C还还可以进行按位置位可以进行按位置位/复位操作复位操作 8255A的内部结构的内部结构n1数据总线缓冲器数据总线缓冲器n28位端口位端口PA、PB和和PCn端口端口A:PA0PA7n1个个8位的数据输入锁存器和位的数据输入锁存器和1个个8位的数

6、据位的数据输出锁存输出锁存/缓冲器缓冲器n端口端口B:PB0PB7n1个个8位的数据输入缓冲器和位的数据输入缓冲器和1个个8位的输入位的输入/输出、锁存输出、锁存/缓冲器缓冲器n端口端口C:PC0PC7n1个个8位数据输入缓冲器和位数据输入缓冲器和1个个8位输出锁存位输出锁存/缓冲器,也可以分两个缓冲器,也可以分两个4位端口使用位端口使用n3A组和组和B组的控制电路组的控制电路nA组控制部件用来控制端口组控制部件用来控制端口PA和端口和端口PC的高的高4位位(PC7PC4),),nB组控制部件用来控制端口组控制部件用来控制端口PB和端口和端口PC的低的低4位位(PC3PC0)。)。n4读读/写

7、控制逻辑写控制逻辑8255A8255A芯片的引脚信号芯片的引脚信号8255A为双列直插式封装,除了电源和地线以外,其外部引脚信号可分为两组,一组是面向CPU的信号,一组是面向外设的信号。1.面向CPU一侧的引脚信号 D7D0:8位,双向,三态数据线位,双向,三态数据线 RESET:复位信号,复位后所有内部寄存器复位信号,复位后所有内部寄存器清零,三个数据端口自动设为输入方式清零,三个数据端口自动设为输入方式 CS*:片选信号片选信号RD*:读信号读信号WR*:写信号写信号 A1、A0:端口选择信号:端口选择信号 A1 A0RD*WR*CS*输入操作(输入操作(CPU读)读)0010100001

8、11000数据总线数据总线 端口端口A数据总线数据总线 端口端口B 数据总线数据总线 端口端口C 00110101111100000000输出操作输出操作(CPU写写)数据总线数据总线端口端口A 数据总线数据总线端口端口B 数据总线数据总线端口端口C数据总线数据总线控制端口控制端口8255A的读/写操作控制2.面向外设一侧的引脚信号 n端口端口A:PA0PA7nA组,支持工作方式组,支持工作方式0、1、2n端口端口B:PB0PB7nB组,支持工作方式组,支持工作方式0、1n端口端口C:PC0PC7n仅支持工作方式仅支持工作方式0nA组控制高组控制高4位位PC4PC7nB组控制低组控制低4位位P

9、C0PC38255A的工作方式的工作方式n方式方式0:基本输入输出方式基本输入输出方式n适用于无条件传送和查询方式的接口电路适用于无条件传送和查询方式的接口电路n方式方式1:选通输入输出方式选通输入输出方式n适用于查询和中断方式的接口电路适用于查询和中断方式的接口电路n方式方式2:双向选通传送方式双向选通传送方式n适用于与双向传送数据的外设适用于与双向传送数据的外设n适用于查询和中断方式的接口电路适用于查询和中断方式的接口电路1.方式方式0方式方式0的特点的特点n(1)A口、口、C口的高口的高4位、位、B口以及口以及C口的低口的低4位可分别定义为输入或输出,各端口互相独位可分别定义为输入或输出

10、,各端口互相独立,故共有立,故共有16种不同的组合。种不同的组合。n(2)定义为输出的口均有锁存数据的能力,)定义为输出的口均有锁存数据的能力,而定义为输入的口则无锁存能力。而定义为输入的口则无锁存能力。n(3)在方式)在方式0下,下,C口有按位进行置位和复口有按位进行置位和复位的能力位的能力n方式方式0适合于两种情况:一种是无条件传送,另一适合于两种情况:一种是无条件传送,另一种是查询方式传送种是查询方式传送2.方式方式1一种选通的输入一种选通的输入/输出工作方式输出工作方式三个端口分为两组,即三个端口分为两组,即A组和组和B组组 A组包括组包括8位数据端口位数据端口A和和PC7PC3五位控

11、制五位控制/状态端口,状态端口,B组为组为8位数据端口位数据端口B和和PC2PC0三位三位状态控制端口状态控制端口每一个每一个8位数据端口均可设置为输入位数据端口均可设置为输入/输出方式,输出方式,且两种工作方式均可锁存且两种工作方式均可锁存控制控制/状态口除了指示两组数据口的状态及选通状态口除了指示两组数据口的状态及选通信号外,还可用做信号外,还可用做I/O口,如口,如PC6和和PC7,用位控,用位控方式传送方式传送端口A方式1作输入:数据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据中断请求信号请求CPU接收数据PC4PC5PC3PA7PA0INTEAIBFAINTRA

12、STBA中断允许触发器PC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB数据选通信号表示外设已经准备好数据输入缓冲器满信号表示B口已经接收数据中断请求信号请求CPU接收数据中断允许触发器端口B方式1作输入:方式1输入联络信号定义nSTB*选通信号,低电平有效选通信号,低电平有效由外设提供的输入信号,当其有效时,将输入设备送由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至来的数据锁存至8255A的输入锁存器的输入锁存器nIBF输入缓冲器满信号,高电平有效输入缓冲器满信号,高电平有效8255A输出的联络信号。当其有效时,表示数据已输出的联络信号。当其有效时,表示数据已锁

13、存在输入锁存器锁存在输入锁存器nINTR中断请求信号,高电平有效中断请求信号,高电平有效8255A输出的信号,可用于向输出的信号,可用于向CPU提出中断请求,要提出中断请求,要求求CPU读取外设数据读取外设数据nINTE 中断允许信号,高电平有效中断允许信号,高电平有效用用于于控制中断允许或中断屏蔽,控制中断允许或中断屏蔽,PC4PC4(PC2PC2)置)置1 1,允,允许中断,许中断,PC4PC4(PC2PC2)置)置0 0,禁止中断,禁止中断联络信号联络信号 端端口口A 端口端口C STB*对应对应PC4 对应对应PC2 IBF对应对应PC5 对应对应PC1 INTR对应对应PC3 对应对

14、应PC0 INTEPC4置位置位 PC2置位置位 8255A方式1作输入时的各联络信号对应关系 状态信号可以通过读取端口C得到(P287)8255A工作在方式1下的输入时序端口A方式1作输出:外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据PC6PC7PC3PA7PA0INTEAOBFAINTRAACKA中断允许触发器端口B方式1作输出:PC2PC1PC0PB7PB0INTEBOBFBINTRBACKB外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器方式1输出联

15、络信号nOBF*输出缓冲器满信号,低有效输出缓冲器满信号,低有效n8255A输出给外设的一个控制信号,当其有效时,表示输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走已把数据输出给指定的端口,外设可以取走nACK*响应信号,低有效响应信号,低有效n外设的响应信号,指示外设的响应信号,指示8255A的端口数据已由外设接受的端口数据已由外设接受nINTR中断请求信号,高有效中断请求信号,高有效n当输出设备已接受数据后,当输出设备已接受数据后,8255A输出此信号向输出此信号向CPU提出提出中断请求,要求中断请求,要求CPU继续提供数据继续提供数据nINTE 中

16、断允许信号,高电平有效中断允许信号,高电平有效n用于控制中断允许或中断屏蔽,用于控制中断允许或中断屏蔽,PC6(PC2)置)置1,允许中,允许中断,断,PC6(PC2)置)置0,禁止中断,禁止中断联络信号联络信号 端端口口A 端口端口B OBF*对应对应PC7对应对应PC1 ACK对应对应PC6 对应对应PC2 INTR对应对应PC3 对应对应PC0 INTEPC6置位置位 PC2置位置位 8255A方式1作输出时的各联络信号对应关系 状态信号可以通过读取端口C得到(P287)8255A工作在方式1下的输出时序3.3.方式方式2 2(双向选通方式)n(1)工作方式)工作方式2只适用于只适用于A

17、口,口,B口仍按方式口仍按方式0或或方式方式1工作工作n(2)A口可工作于双向方式,口可工作于双向方式,C口的口的PC7PC3位作为位作为A口的控制口的控制/状态信号端口,状态信号端口,PC2PC0用用于于B组组n(3)A口的输入口的输入/输出均有锁存功能。在方式输出均有锁存功能。在方式2工作状态下,工作状态下,A口既可工作于查询方式,又可工口既可工作于查询方式,又可工作于中断方式作于中断方式n(4)状态字可以通过读)状态字可以通过读C端口得到(端口得到(P288)方式2的信号定义PC6PC7PC3PA7PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6设

18、置INTE1(输出)用PC4设置INTE2(输入)输入和输出中断通过或门输出INTRA信号8255A工作在方式2下的工作时序 8255A的控制字的控制字n8255A有两种控制字:有两种控制字:n方式控制字方式控制字n端口端口C按位置位按位置位/复位控制字复位控制字n由于使用同一个控制端口,控制字采用特征由于使用同一个控制端口,控制字采用特征位的方法,控制字中最高位位的方法,控制字中最高位D7为特征位为特征位nD7=0:当前控制字是按位置位:当前控制字是按位置位/复位控制字复位控制字nD7=1,当前控制字是方式控制字。,当前控制字是方式控制字。工作方式选择控制字D7=1n方式控制字的作用是确定方

19、式控制字的作用是确定A、B、C 3个并行口的工个并行口的工作方式及端口功能,由方式控制字可知:作方式及端口功能,由方式控制字可知:n8255A有有3种基本工作方式:种基本工作方式:方式方式0基本的输入基本的输入/输出方式。输出方式。方式方式1选通输入选通输入/输出方式。输出方式。方式方式2双向传输方式。双向传输方式。n在方式在方式1工作时,方式控制字总是把工作时,方式控制字总是把A、B、C 3个端口分个端口分为两组来设定工作方式。其中,为两组来设定工作方式。其中,A组为端口组为端口A和端口和端口C的的高高4位(位(PC7PC4););B组为端口组为端口B和端口和端口C的低的低4位位(PC3PC

20、0)。)。n端口端口A可工作于可工作于3种方式中的任一种,端口种方式中的任一种,端口B只能工作于只能工作于方式方式0或方式或方式1。在方式。在方式0时,端口时,端口C可以分成可以分成2个个4位端口,位端口,用作数据输入用作数据输入/输出端口;还可以分别用来为输出端口;还可以分别用来为A端口、端口、B端端口输入口输入/输出时提供控制信号和状态信号输出时提供控制信号和状态信号例例如果把端口如果把端口A设定为方式设定为方式1,输出,端口,输出,端口B设定为方式设定为方式0,输入,端口,输入,端口C上半部设定为上半部设定为输入,下半部设定为输出,则方式选择控制输入,下半部设定为输出,则方式选择控制字应

21、为:字应为:10101010B=AAH。设控制口地址。设控制口地址为为303H,初始化的程序段为:,初始化的程序段为:MOV DX,303H ;8255A的控制口地址的控制口地址MOV AL,AAH;控制字;控制字,10101010OUT DX,AL ;控制字写入控制端口;控制字写入控制端口按位置位/复位控制字(D7=0)n按位置位按位置位/复位控制字的作用是使端口复位控制字的作用是使端口C的某一位输出的某一位输出为高电平或低电平,以用于控制或应答信号为高电平或低电平,以用于控制或应答信号。n例例 如果要使端口如果要使端口C的的PC4端输出高电平,端输出高电平,则 按 位 置 位则 按 位 置

22、 位/复 位 控 制 字 应 为复 位 控 制 字 应 为00001001B=09H,设控制口地址为,设控制口地址为63H,则程序段如下:则程序段如下:MOV AL,09H;控制字,;控制字,PC4置置1OUT 063H,AL;控制字写入控制端口;控制字写入控制端口8255A的编程的编程n初始化编程初始化编程n采用控制采用控制I/O地址:地址:A1A011n工作过程中通过数据端口对外设数据进工作过程中通过数据端口对外设数据进行读写行读写n数据读写利用端口数据读写利用端口A、B和和C的的I/O地址,地址,A1A0依次等于依次等于00、01、10nIBM PC/XT机上,端口机上,端口A、B、C和

23、控制和控制端口的端口的I/O地址为地址为60H、61H、62H和和63H(1)写入方式控制字:示例n要求:要求:nA端口:方式端口:方式1输入输入nC端口上半部:输出,端口上半部:输出,C口下半部:输入口下半部:输入nB端口:方式端口:方式0输出输出n方式控制字:方式控制字:10110001B或或B1Hn初始化的程序段:初始化的程序段:MOV DX,303H;假设控制端口为假设控制端口为303HMOV AL,0B1H;方式控制字方式控制字OUT DX,AL;送到控制端口送到控制端口(2)读写数据端口n初始化编程后:初始化编程后:n当数据端口作为输入接口时,执行输入当数据端口作为输入接口时,执行

24、输入IN指指令将从输入设备得到外设数据令将从输入设备得到外设数据n当数据端口作为输出接口时,执行输出当数据端口作为输出接口时,执行输出OUT指令将把指令将把CPU的数据送给输出设备的数据送给输出设备n8255A具有锁存输出数据的能力具有锁存输出数据的能力n对输出方式的端口同样可以输入,但不是读对输出方式的端口同样可以输入,但不是读取外设数据,读取的是上次取外设数据,读取的是上次CPU给外设的数给外设的数据据读写数据端口:示例n利用利用8255A的输出锁存能力,可实现按位的输出锁存能力,可实现按位输出控制输出控制 n对输出端口对输出端口B的的PB7位置位的程序段:位置位的程序段:MOV DX,3

25、01H;B端口假设为端口假设为301HIN AL,DX;读出读出B端口原输出内容端口原输出内容OR AL,80H;使使PB71OUT DX,AL;输出新的内容输出新的内容(3)读写端口CnC端口被分成端口被分成两个两个4位端口位端口,两个端口只,两个端口只能以方式能以方式0工作,可分别选择输入或输出工作,可分别选择输入或输出n在控制上,在控制上,C端口上半部和端口上半部和A端口编为端口编为A组,组,C端口下半部和端口下半部和B端口编为端口编为B组组n当当A和和B端口工作在方式端口工作在方式1或方式或方式2时,时,C端口的部分或全部引脚将被征用,其余引端口的部分或全部引脚将被征用,其余引脚仍可设

26、定工作在方式脚仍可设定工作在方式0对端口对端口C的数据输出有两种办法的数据输出有两种办法:n通过端口通过端口C的的I/O地址:地址:向向C端口直接端口直接写入写入字节数据字节数据。这一数据被写进。这一数据被写进C端口的输出端口的输出锁存器,并从输出引脚输出,但对设置为锁存器,并从输出引脚输出,但对设置为输入的引脚无效输入的引脚无效n通过控制端口:通过控制端口:向向C端口端口写入位控字写入位控字,使,使C端口的某个引脚输出端口的某个引脚输出1或或0,或置位复位,或置位复位内部的中断允许触发器内部的中断允许触发器读取的读取的C端口数据有两种情况:端口数据有两种情况:n未被未被A和和B端口征用的引脚

27、端口征用的引脚:将从定义为:将从定义为输入的端口读到引脚输入信息;将从定义输入的端口读到引脚输入信息;将从定义为输出的端口读到输出锁存器中的信息为输出的端口读到输出锁存器中的信息n被被A和和B端口征用作为联络线的引脚端口征用作为联络线的引脚:将:将读到反映读到反映8255A状态的状态的状态字状态字8255A的应用的应用1.1.开关量的检测开关量的检测例:在工业控制过程中,经常需要检测某些开例:在工业控制过程中,经常需要检测某些开关的状态。例如,在某一系统中,有关的状态。例如,在某一系统中,有8 8个开关个开关K K7 7K K0 0,要求不断地检测它们的通断状态,并要求不断地检测它们的通断状态

28、,并随时在发光二极管上显示。通过随时在发光二极管上显示。通过8255A8255A的端口的端口A A读入开关状态信息,使端口读入开关状态信息,使端口B B、端口端口C C连接的发连接的发光二极管的状态与端口光二极管的状态与端口A A开关状态相呼应,并重开关状态相呼应,并重复执行。假设复执行。假设8255A8255A在系统中端口在系统中端口A A、B B、C C及及控制口的地址分别为控制口的地址分别为100H100H,101H101H,102H102H,103H103H,试设计出硬件电路图,并编写程序。试设计出硬件电路图,并编写程序。(1)硬件电路如图硬件电路如图8-11所示所示 MOV DX,1

29、03H;控制寄存器的地址送给控制寄存器的地址送给DX MOV AL,90H;控制字控制字,10010000 OUT DX,AL;写入控制字写入控制字L1:MOV DX,100H;端口端口A 地址的送给地址的送给DX IN AL,DX ;从端口从端口A读入开关状态读入开关状态 MOV DX,101H;指向端口指向端口B端口端口 OUT DX,AL;从端口从端口B输出,控制输出,控制LED XORAL,0FFH;AL AL取反取反 MOVDX,102H;端口端口C 的地址送给的地址送给DX OUTDX,AL;从端口从端口C输出输出 JMP L1 ;循环循环(2)相应的相应的8255A初始化程序为:

30、初始化程序为:例:甲乙两台微机之间并行传送例:甲乙两台微机之间并行传送1KB1KB数据。甲机发送,数据。甲机发送,乙机接收。甲机的乙机接收。甲机的8255A8255A采用方式采用方式1 1工作,乙机的工作,乙机的8255A8255A采用方式采用方式0 0工作。两台微机的工作。两台微机的CPUCPU与接口之间都与接口之间都采用查询方式交换数据采用查询方式交换数据(1 1)接口电路设计。)接口电路设计。n甲机的甲机的8255A8255A用方式用方式1 1发送,端口发送,端口PAPA指定为输出,发指定为输出,发送数据,而送数据,而PC7PC7和和PC6PC6引脚分别固定作联络线引脚分别固定作联络线n

31、乙机的乙机的8255A8255A用方式用方式0 0接收数据,端口接收数据,端口PAPA定义为输入定义为输入,选用引脚,选用引脚PC7PC7和和PC0PC0作为联络线作为联络线2.2.查询方式的双机并行通信查询方式的双机并行通信(2 2)接口软件编程。接口驱动程序包括发送程序和)接口软件编程。接口驱动程序包括发送程序和接收程序。接收程序。甲机发送如下程序段:甲机发送如下程序段:MOV DXMOV DX,303H 303H ;8255A8255A命令端口命令端口MOV ALMOV AL,l0100000B l0100000B;初始化工作方式字;初始化工作方式字OUT DXOUT DX,AL AL

32、MOV ALMOV AL,00001101B00001101B;PC6=1PC6=1,允许中断,允许中断OUT DXOUT DX,ALALMOV SIMOV SI,OFFSET BUFS OFFSET BUFS;设置发送数据区的指针;设置发送数据区的指针MOV CXMOV CX,3FFH 3FFH ;发送字节数;发送字节数MOV DXMOV DX,300H 300H ;向端口;向端口A A写第写第1 1个数,产生第个数,产生第1 1个个OBFOBF信号信号MOV ALMOV AL,SI SI ;送给乙方,以便获取乙方的;送给乙方,以便获取乙方的ACKACK信号信号 OUT DXOUT DX,A

33、LAL INC SI INC SI ;内存地址加;内存地址加1 1 DEC CX DEC CX ;传送字节数减;传送字节数减1 1L L:M0V DXM0V DX,302H 302H ;8255A8255A状态端口(端口状态端口(端口C C)IN ALIN AL,DX DX ;查看中断标志位;查看中断标志位INTRA=1INTRA=1 AND AL AND AL,00001000B 00001000B ;是否;是否PC3=1PC3=1 JZ L JZ L ;若无中断请求,则等待;若无中断请求,则等待;若有中断请求,则向端口;若有中断请求,则向端口A A写数写数 M0V DXM0V DX,300

34、H 300H ;8255A8255A端口端口 PAPA地址地址 M0V ALM0V AL,SI SI ;从内存取数;从内存取数 0UT DX0UT DX,AL AL ;通过端口;通过端口A A向乙机发送第向乙机发送第2 2个数据个数据 INC SI INC SI ;内存地址加;内存地址加1 1 DEC CX DEC CX ;字节数减;字节数减1 1 JNZ L JNZ L ;字节未完,继续;字节未完,继续 M0V AXM0V AX,4COOH 4COOH ;己完,退出;己完,退出 INT 21H INT 21H ;返回;返回DOSDOS BUFS DB.BUFS DB.;定义;定义102410

35、24个数据个数据 乙机接收如下程序段:乙机接收如下程序段:MOV DXMOV DX,303H 303H ;8255A8255A命令端口命令端口MOV ALMOV AL,10011000B 10011000B;初始化工作方式字;初始化工作方式字OUT DXOUT DX,ALALMOV ALMOV AL,00000111B 00000111B;置;置=1=1(PC3=1PC3=1)OUT DXOUT DX,ALALMOV DIMOV DI,OFFSETBUFR OFFSETBUFR;设置接收数据区的指针;设置接收数据区的指针MOV CXMOV CX,3FFH 3FFH ;接收字节数;接收字节数L1

36、L1:MOV DXMOV DX,302H 302H ;8255A8255A端口端口PCPCIN ALIN AL,DX DX ;查甲机的;查甲机的PC7=OPC7=O?AND ALAND AL,80H 80H ;即查甲机是否有数据发;即查甲机是否有数据发来来JNZ L1 JNZ L1 ;若无数据发来,则等待;若无数据发来,则等待;若有数据,则从端口;若有数据,则从端口A A读数读数MOV DXMOV DX,300H 300H ;8255A8255A端口端口PAPA地址地址IN ALIN AL,DX DX ;从端口;从端口A A读入数据读入数据M0V DIM0V DI,AL AL ;存入内存;存入

37、内存MOV DXMOV DX,303H 303H ;产生信号,并发回给甲机;产生信号,并发回给甲机MOV DXMOV DX,OO000110B OO000110B;PC3PC3置置“O”O”OUT DXOUT DX,ALALNOPNOPNOPNOPMOV ALMOV AL,00000111B 00000111B;PC3PC3置置“1”1”OUT DXOUT DX,ALALINC DI INC DI ;内存地址加;内存地址加1 1DEC CX DEC CX ;字节数减;字节数减1 1JNZ L1 JNZ L1 ;字节未完,则继续;字节未完,则继续MOV AXMOV AX,4COOH4COOH;已

38、完,退出;已完,退出INT 2lH INT 2lH ;返回;返回DOSDOSBUFR DB l024 DUPBUFR DB l024 DUP(?)(?)并行打印接口并行打印接口n打印机的主要接口信号和时序打印机的主要接口信号和时序nSTB*:数据选通,打印机在其上升沿读数据:数据选通,打印机在其上升沿读数据(输输入入)nACK*:应答脉冲,低表示数据已被打印机接:应答脉冲,低表示数据已被打印机接收,可以传输下一数据收,可以传输下一数据(输出输出)nBUSY:打印机忙:打印机忙(输出输出)nD0-D7:数据:数据(输入输入)n查询方式打印字符查询方式打印字符当当CPU准备输出打印的数据时,先查询

39、准备输出打印的数据时,先查询打印机忙信号打印机忙信号(BUSY),如果打印机正在打,如果打印机正在打印字符时,忙信号为印字符时,忙信号为1(BUSY=1),不能接,不能接收数据。当打印机不忙后,收数据。当打印机不忙后,CPU对打印机对打印机接口输出接口输出8位二进制数,并使选通信号为负位二进制数,并使选通信号为负脉冲,将数据送入打印机中的数据端口脉冲,将数据送入打印机中的数据端口分析:分析:u8255A8255A工作在方式工作在方式0 0,端口端口A A输出,端口输出,端口C C高高4 4位输出,低位输出,低4 4位位输入,控制字为:输入,控制字为:10000001B=81H10000001B

40、=81Hu8255A8255A端口地址:端口地址:244H244H,245H245H,246H246H,247H247Hu待打印字符在内存的首地址为待打印字符在内存的首地址为2000H2000H,字节数,字节数100H100H编写打印机驱动程序如下:编写打印机驱动程序如下:MOV DXMOV DX,247H 247H ;8255A8255A控制端口地址控制端口地址 MOV ALMOV AL,81H 81H ;8255A8255A控制字控制字 OUT DXOUT DX,AL AL MOV ALMOV AL,0DH0DH OUT DXOUT DX,AL AL ;使;使PCPC6 6置置“1 1”,

41、即,即STBSTB*1 1 MOV MOVSISI,2000H2000H;数据段内偏移地址送给数据段内偏移地址送给SISI MOV MOVCXCX,0FFH0FFH;打印字节数打印字节数NEXTNEXT:MOVMOVDXDX,246H 246H;8255A8255A的的PCPC口地址口地址 ININALAL,DXDX ;读端口;读端口C C数据,查询数据,查询PCPC3 30 0?ANDANDALAL,08H08H JNZ NEXTJNZ NEXT;打印机忙,则等待打印机忙,则等待 MOVMOVDXDX,244H244H ;端口端口A A地址送给地址送给DXDXMOVMOVALAL,SISI

42、;从内存取出一个字节从内存取出一个字节OUTOUTDXDX,ALAL MOVMOVDXDX,247H247H ;端口端口C C地址送给地址送给DXDX MOVMOV ALAL,0CH 0CH ;设置设置PCPC6 6为为“0 0”,OUTOUTDXDX,ALAL;使;使STBSTB*选通信号为低电选通信号为低电平平NOPNOPNOPNOPNOPNOP;适当延时适当延时MOVMOVALAL,0DH0DHOUTOUTDXDX,ALAL ;STBSTB*1 1INCINCSI SI ;内存地址加内存地址加1 1LOOPLOOPNEXTNEXT n中断方式打印中断方式打印n8255A的端口的端口A工作

43、在方式工作在方式1输出,外加一片中输出,外加一片中断控制器断控制器8259AnPC6为为ACK*信号输入端,信号输入端,PC3为中断请求输出为中断请求输出端,端,PC0用于产生打印机需要的用于产生打印机需要的STB信号信号(P290,图,图7-30)键盘的工作原理:键盘的工作原理:n最简单的键盘中每个键对应最简单的键盘中每个键对应I/O端口的一位,没有端口的一位,没有键闭合时,各位均处于高电平;当有一个键按下时,键闭合时,各位均处于高电平;当有一个键按下时,就使对应位接地而成为低电平。就使对应位接地而成为低电平。CPU只要检测到某只要检测到某一位为一位为“0”,便可判别对应键已经按下。,便可判

44、别对应键已经按下。n这种键盘的缺点是当键盘上的键较多时,占用的这种键盘的缺点是当键盘上的键较多时,占用的I/O端口太多。如一个有端口太多。如一个有64键的键盘,就需要键的键盘,就需要64条条连线,需占用连线,需占用8个个8位端口,所以,这种简单结构只位端口,所以,这种简单结构只用在仅有几个键的系统中。用在仅有几个键的系统中。键盘接口键盘接口n通 常 使 用 的 键 盘 采 用 矩 阵 结 构,对 于通 常 使 用 的 键 盘 采 用 矩 阵 结 构,对 于88=64个键的键盘,采用矩阵方式就只要个键的键盘,采用矩阵方式就只要用用16条引线(条引线(2个个8位端口)。以位端口)。以33=9个个键

45、为例,这个矩阵分为键为例,这个矩阵分为3行行3列,如果键列,如果键4按按下,则第下,则第1行和第行和第1列线接通而形成通路。如列线接通而形成通路。如果第果第1行线接地电位,则由于键行线接地电位,则由于键4的闭合,会的闭合,会使第使第1列线也输出地电位。矩阵式键盘工作时,列线也输出地电位。矩阵式键盘工作时,就是按行线和列线的电平来识别闭合键的。就是按行线和列线的电平来识别闭合键的。键的识别方法键的识别方法n为了识别键盘上的闭合键,通常可以采用两为了识别键盘上的闭合键,通常可以采用两种方式:逐行扫描法和行列反转法种方式:逐行扫描法和行列反转法n1逐行扫描法逐行扫描法图为一个图为一个8行行8列组成的

46、键盘。行线与列组成的键盘。行线与8255的的A端口相连,列线与端口相连,列线与8255的的B端口相端口相连。连。CPU使使8255的的A端口某一位为端口某一位为0,相当,相当于将该行线接地;某位为于将该行线接地;某位为1,相当于将该行线,相当于将该行线接高电平接高电平n行扫描法识别按键的原理如下:行扫描法识别按键的原理如下:(1)使所有行线为低电平,然后读入列线值并进)使所有行线为低电平,然后读入列线值并进行检查。如果列线有一位为低,则说明必有键被按行检查。如果列线有一位为低,则说明必有键被按下。下。(2)使第)使第0行输出低电平,然后读入列线值并进行行输出低电平,然后读入列线值并进行检查。如

47、果有某列线变为低电平,则表示第检查。如果有某列线变为低电平,则表示第0行和行和此列线相交的位置上的键被按下。如果没有任何一此列线相交的位置上的键被按下。如果没有任何一条列线为低电平,则说明第条列线为低电平,则说明第0行没有任何键被按下。行没有任何键被按下。(3)将第)将第1行接低电平,然后读入列线值并进行检行接低电平,然后读入列线值并进行检查。检测列线是否有变为低电位的线。如此往下一查。检测列线是否有变为低电位的线。如此往下一行一行地扫描,直到最后一行。在扫描过程中,当行一行地扫描,直到最后一行。在扫描过程中,当发现某一行有键闭合时,也就是读入的列线值中有发现某一行有键闭合时,也就是读入的列线

48、值中有一位为低时,即可识别出此刻是哪一键被按下一位为低时,即可识别出此刻是哪一键被按下例:例:n第一步是判断是否有键按下。为了消除键的抖动,所以调用第一步是判断是否有键按下。为了消除键的抖动,所以调用了延迟程序。这段程序如下:了延迟程序。这段程序如下:KY1:MOV AL,00MOV DX,ROWPORT;ROWPORT为行线端口地址为行线端口地址OUT DX,AL ;使所有行线为低;使所有行线为低MOV DX,COLPORT;COLPORT为列线端口地址为列线端口地址IN AL,DX ;读取列值;读取列值CMP AL,0FFH ;判定是否有列线为低电平;判定是否有列线为低电平JZ KY1 ;

49、没有,无闭合键,则循环等待;没有,无闭合键,则循环等待CALL DELAY ;有,则延迟;有,则延迟20ms清除抖动清除抖动 n第二步是判断哪一个键被按下了第二步是判断哪一个键被按下了MOV AH,0FEH ;扫描初值送;扫描初值送AHMOV CX,8 ;行数送;行数送CXKEY2:MOV AL,AHMOV DX,ROWPORTOUT DX,AL ;输出行值(扫描值);输出行值(扫描值)MOV DX,COLPORTIN AL,DX ;读进列值;读进列值CMP AL,0FFH ;判断有无接地线;判断有无接地线JNZ KEY3 ;有,则转下一步处理;有,则转下一步处理ROL AH,1 ;无,则移位

50、扫描值;无,则移位扫描值LOOP KEY2 ;准备下一行扫描;准备下一行扫描JMP KEY1 ;所有行都没有键按下,则返回继续检测;所有行都没有键按下,则返回继续检测KEY3:;此时,;此时,AL=列值,列值,AH=行值,进行后续处理行值,进行后续处理n2行列反转法行列反转法行列反转法也是识别按键的常用方法。它的行列反转法也是识别按键的常用方法。它的原理为:原理为:(1)判断是否有键按下(同行扫描法)。)判断是否有键按下(同行扫描法)。(2)将行线工作在输出方式,将列线工作在)将行线工作在输出方式,将列线工作在输入方式,输入方式,CPU通过通过8255的的A端口往各行线端口往各行线上全部送低电

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(七章并行通信接口技术课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|