第8章微型计算机常用接口与接口芯片_第1页
第8章微型计算机常用接口与接口芯片_第2页
第8章微型计算机常用接口与接口芯片_第3页
第8章微型计算机常用接口与接口芯片_第4页
第8章微型计算机常用接口与接口芯片_第5页
已阅读5页,还剩249页未读 继续免费阅读

下载本文档

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

文档简介

1、微机原理与接口技术微机原理与接口技术作者:徐建平作者:徐建平 成贵学成贵学 第第8 8章微型计算机常用接口和接口芯片章微型计算机常用接口和接口芯片n计算机接口是实现计算机与外部设备之间信计算机接口是实现计算机与外部设备之间信息交换的桥梁,在微机系统的设计和应用过程息交换的桥梁,在微机系统的设计和应用过程中起着极其重要的作用。中起着极其重要的作用。n本章从应用角度出发,首先介绍计算机接口本章从应用角度出发,首先介绍计算机接口的相关知识,然后重点讲述典型微型计算机接的相关知识,然后重点讲述典型微型计算机接口芯片口芯片8255A8255A、8251A8251A和和8253A8253A的外部引脚、内的

2、外部引脚、内部结构、工作方式及编程方式。部结构、工作方式及编程方式。【本章内容提要】【本章内容提要】 了解计算机接口的功能和结构了解计算机接口的功能和结构掌握并行接口技术和串行接口技术的相关知识,掌握并行接口技术和串行接口技术的相关知识,以及以及RS-232CRS-232C串行接口标准串行接口标准掌握可编程并行接口芯片掌握可编程并行接口芯片8255A8255A的结构、工作方式的结构、工作方式和编程方式和编程方式掌握可编程串行接口芯片掌握可编程串行接口芯片8251A8251A的结构和编程方式的结构和编程方式掌握可编程定时器掌握可编程定时器/ /计数器接口芯片计数器接口芯片8253A8253A的结

3、构、的结构、工作方式和编程方式工作方式和编程方式8.1 微型计算机接口概述微型计算机接口概述n计算机接口是主机与外部设备的连接部件,计算机接口是主机与外部设备的连接部件,是是CPUCPU与外部设备进行信息交换的桥梁。与外部设备进行信息交换的桥梁。n任何外部设备都必须通过接口电路与系统任何外部设备都必须通过接口电路与系统总线相连。总线相连。8.1.1 接口的功能与结构接口的功能与结构n接口的种类很多,接口的种类很多,n有专门用于输入设备的输入接口,有专门用于输入设备的输入接口,n有专门用于连接输出设备的输出接口,有专门用于连接输出设备的输出接口,n也有用于连接通信设备的通信接口,也有用于连接通信

4、设备的通信接口,等等,如图等等,如图8-1所示。所示。1 1接口的功能接口的功能n一般来说,接口都具有以下几方面的功能。一般来说,接口都具有以下几方面的功能。(1 1)数据缓冲功能)数据缓冲功能nCPU的速度很高,而外设的速度相对较慢,的速度很高,而外设的速度相对较慢,n为了解决为了解决CPU与外设速度不匹配的问题,与外设速度不匹配的问题,接口中一般都设置数据寄存器或锁存器,接口中一般都设置数据寄存器或锁存器,n将数据在输入将数据在输入/输出接口中缓存起来,从而输出接口中缓存起来,从而起到缓冲、隔离和锁存的作用,起到缓冲、隔离和锁存的作用,n避免因速度不一致而丢失数据。避免因速度不一致而丢失数

5、据。(2 2)设备选择功能)设备选择功能n微机系统中一般连有多种外设,每种外设也可微机系统中一般连有多种外设,每种外设也可能有多台,而能有多台,而CPUCPU在同一时间只能选择在同一时间只能选择一个接口进行数据传送,一个接口进行数据传送,n因此,只有被选中的设备才能与因此,只有被选中的设备才能与CPUCPU进行数据进行数据交换。交换。(3 3)信息转换功能)信息转换功能n由于计算机直接处理的信号形式和数据格式由于计算机直接处理的信号形式和数据格式等与外设使用的可能不相同,接口可以在它等与外设使用的可能不相同,接口可以在它们之间进行相互转换。们之间进行相互转换。n例如数字量与模拟量的转换、串行数

6、据与并例如数字量与模拟量的转换、串行数据与并行数据格式的转换等。行数据格式的转换等。(4 4)I/OI/O端口寻址功能端口寻址功能n外设的接口电路中可能包含有若干个可供外设的接口电路中可能包含有若干个可供CPUCPU直接访问的寄存器或功能电路,称为直接访问的寄存器或功能电路,称为端口端口,例如数据端口、状态端口等。例如数据端口、状态端口等。n每个端口都对应一个每个端口都对应一个端口地址端口地址,只有被选中,只有被选中的端口才能与的端口才能与CPUCPU进行信息交换。进行信息交换。n接口电路通过对端口地址进行译码,从而找接口电路通过对端口地址进行译码,从而找到相应的端口。到相应的端口。(5 5)

7、与)与CPUCPU和外设进行联络和外设进行联络CPUCPU与外设进行数据传送时,接口电路:与外设进行数据传送时,接口电路:n一方面接收和执行一方面接收和执行CPUCPU送来的命令,实施对送来的命令,实施对外设的控制和管理;外设的控制和管理;n另一方面将外设的状态信号或应答信号等工另一方面将外设的状态信号或应答信号等工作状况反映给作状况反映给CPUCPU。(6 6)中断管理功能)中断管理功能n在接口中可设置中断控制器,专门处理有关在接口中可设置中断控制器,专门处理有关中断事务,使中断事务,使CPUCPU与外设并行工作,以提高与外设并行工作,以提高CPUCPU的利用率。的利用率。(7 7)可编程功

8、能)可编程功能n现在的接口芯片基本上都是可编程的,现在的接口芯片基本上都是可编程的,n这样不需要改变硬件,只需修改相应的程序这样不需要改变硬件,只需修改相应的程序就可以改变接口的工作方式,就可以改变接口的工作方式,n大大增加了接口的灵活性和可扩充性。大大增加了接口的灵活性和可扩充性。2 2接口的结构接口的结构n接口电路的内部通常是由接口电路的内部通常是由数据寄存器数据寄存器、状态状态寄存器寄存器和和控制寄存器控制寄存器构成的,如图构成的,如图8-28-2所示。所示。 n数据寄存器数据寄存器:可以读出可以写入,用来存:可以读出可以写入,用来存放放CPUCPU与外设之间进行交换的数据信息。与外设之

9、间进行交换的数据信息。n状态寄存器状态寄存器:只能读出不能写入,用来存:只能读出不能写入,用来存放外设当前的工作状态信息。放外设当前的工作状态信息。n控制寄存器控制寄存器:只能写入不能读出,用来存:只能写入不能读出,用来存放放CPUCPU向外设发送的控制命令信息。向外设发送的控制命令信息。可编程接口概述可编程接口概述 一个简单的具有输入功能和输出功能的可编程接一个简单的具有输入功能和输出功能的可编程接口电路如下图:口电路如下图:n它包括一个它包括一个输入接口输入接口,其组成主要是八位的三态门;,其组成主要是八位的三态门;n一个一个输出接口输出接口,其组成主要是八位的锁存器;,其组成主要是八位的

10、锁存器;n另外还有八位的另外还有八位的多路转换开关多路转换开关及控制这个开关的及控制这个开关的寄寄存器存器FFFF。8.1.2 并行接口技术并行接口技术n按照与外部设备之间数据传输形式的不同,按照与外部设备之间数据传输形式的不同,接口可以分为接口可以分为并行接口并行接口和和串行接口串行接口两类。两类。n并行接口中有并行接口中有多条多条数据线,并且数据线的长数据线,并且数据线的长度必须相同,每次可同时在两个设备之间并度必须相同,每次可同时在两个设备之间并行传输行传输多位多位数据。数据。n并行传输方式主要用于实现并行传输方式主要用于实现CPUCPU与并行外设之与并行外设之间的近距离通信。间的近距离

11、通信。n计算机内的总线结构、并行打印机、计算机内的总线结构、并行打印机、LEDLED显示显示器等都是采用并行传输方式。器等都是采用并行传输方式。并行接口一般具有以下几个特点:并行接口一般具有以下几个特点: 在并行接口中,数据通道的宽度就是传输的位数。在并行接口中,数据通道的宽度就是传输的位数。n微型计算机中最常见的数据通道的宽度为微型计算机中最常见的数据通道的宽度为8 8位,当位,当采用并行接口与外设交换数据时,采用并行接口与外设交换数据时,8 8位数据是同时位数据是同时传输的,称为传输的,称为8 8位并行接口。位并行接口。n例如打印机的接口有例如打印机的接口有8 8条数据线,每次可同时传送条

12、数据线,每次可同时传送一个字符的一个字符的ASCIIASCII码。码。n数据通道的宽度也可以为数据通道的宽度也可以为1616位、位、3232位或更高位或更高。 并行接口中除了有数据通道以外,还应有并行接口中除了有数据通道以外,还应有握手联络信号,以实现接口和外设之间的联握手联络信号,以实现接口和外设之间的联络。络。 并行数据的传送格式不固定。并行数据的传送格式不固定。 并行通信的优点是传输速度快、处理简并行通信的优点是传输速度快、处理简单;但是,当距离较远时,成本会大大增加。单;但是,当距离较远时,成本会大大增加。8.1.3 串行接口技术串行接口技术 计算机与外部信息交换方式有两种计算机与外部

13、信息交换方式有两种: :n一种是并行通信。并行通信时,数据各位一种是并行通信。并行通信时,数据各位同时传送。同时传送。n另一种是串行通信。串行通信时,数据和另一种是串行通信。串行通信时,数据和控制信息是一位接一位串行地传送下去。控制信息是一位接一位串行地传送下去。这样,虽然速度会慢一些,但传送距离比这样,虽然速度会慢一些,但传送距离比并行通信长,硬件电路也相应简单些。并行通信长,硬件电路也相应简单些。1 1串行接口的特点串行接口的特点n串行接口中一般只需要一条数据线,在串行串行接口中一般只需要一条数据线,在串行通信传输时,数据一位一位按一定顺序进行通信传输时,数据一位一位按一定顺序进行传送,经

14、过传送,经过8 8个时间单位才能传送一个字节个时间单位才能传送一个字节的数据。的数据。n如果是双向串行接口,需要两条数据线,每如果是双向串行接口,需要两条数据线,每个方向使用一条,如图个方向使用一条,如图8-48-4所示。所示。串行通信的硬件条件串行通信的硬件条件n在硬件上,串行通信系统的核心部件是在硬件上,串行通信系统的核心部件是移位寄存器移位寄存器n在发端要有一个在发端要有一个并入串出移位寄存器并入串出移位寄存器,n在收端要有一个在收端要有一个串入并出移位寄存器串入并出移位寄存器。 n在实际传送过程中,发送端按固定的时间间在实际传送过程中,发送端按固定的时间间隔依次向数据线发送高低不同的电

15、平,隔依次向数据线发送高低不同的电平,n接收端按照与发送端相同的时间间隔识别出接收端按照与发送端相同的时间间隔识别出相应的数据信息,相应的数据信息,n并通过相应的联络线以保证数据传输的可靠并通过相应的联络线以保证数据传输的可靠性。性。 串行通信的同步串行通信的同步n为了可靠的串行通信,同步信号起到至关重要为了可靠的串行通信,同步信号起到至关重要的作用。的作用。n在理想情况下,同步信号应该在数据信号线上在理想情况下,同步信号应该在数据信号线上出现有效数据期间的中心点有效,因为这时数出现有效数据期间的中心点有效,因为这时数据线上的数据是最稳定的。据线上的数据是最稳定的。n但在典型的串行通信系统中,

16、是不存在但在典型的串行通信系统中,是不存在同步信号线的!同步信号线的!n如何实现串行通信的中数据传送的同步如何实现串行通信的中数据传送的同步呢?呢?n系统从软件和硬件两方面采取了后面提系统从软件和硬件两方面采取了后面提到的措施:设置波特率、设置数据的传到的措施:设置波特率、设置数据的传送格式、设置波特率因子。送格式、设置波特率因子。n串行通信的优点是通信线路简单,且只需串行通信的优点是通信线路简单,且只需一对数据线,可以是电话线,这样大大降一对数据线,可以是电话线,这样大大降低了成本,特别适用于远距离通信。低了成本,特别适用于远距离通信。n串行通信的抗干扰能力十分强。串行通信的抗干扰能力十分强

17、。n但是,串行通信的传送速度慢,若并行通但是,串行通信的传送速度慢,若并行通信所需时间为信所需时间为T T,则串行通信的时间至少为,则串行通信的时间至少为NTNT(其中(其中N N为位数)。为位数)。 现在的台式现在的台式PCPC机一般至少有两个机一般至少有两个RSRS232232串串行口行口COM1COM1和和COM2COM2,通常,通常COM1COM1使用的是使用的是9 9针针D D形连形连接器,而接器,而COM2COM2使用的是老式的使用的是老式的DB25DB25针连接器针连接器。 9 9针串口(针串口(DB9DB9) 2525针串口针串口(DB25DB25)针号针号功能说明功能说明缩写

18、缩写针号针号功能说明功能说明缩写缩写1 1数据载波检测数据载波检测DCDDCD8 8数据载波检测数据载波检测DCDDCD2 2接收数据接收数据RXDRXD3 3接收数据接收数据RXDRXD3 3发送数据发送数据TXDTXD2 2发送数据发送数据TXDTXD4 4数据终端准备数据终端准备DTRDTR2020数据终端准备数据终端准备DTRDTR5 5信号地信号地GNDGND7 7信号地信号地GNDGND6 6数据设备准备好数据设备准备好DSRDSR6 6数据准备好数据准备好DSRDSR7 7请求发送请求发送RTSRTS4 4请求发送请求发送RTSRTS8 8清除发送清除发送CTSCTS5 5清除发

19、送清除发送CTSCTS9 9振铃指示振铃指示DELLDELL2222振铃指示振铃指示DELLDELL2 2数据传送速率数据传送速率n串行通信中反映数据传送速率主要有数据串行通信中反映数据传送速率主要有数据传输率和波特率两个指标。传输率和波特率两个指标。(1 1)数据传输率)数据传输率n数据传输率数据传输率是指单位时间内传输二进制代码是指单位时间内传输二进制代码的有效位数,其单位为的有效位数,其单位为bit/s或或bps(位(位/秒)。数据传输率越高,要求传输通道的频秒)。数据传输率越高,要求传输通道的频带越宽。带越宽。n例如,在某串行通信中,每秒可以传送例如,在某串行通信中,每秒可以传送600

20、个字符,每传送一个字符需要个字符,每传送一个字符需要8位,位,n则数据传输率为:则数据传输率为: 600字符字符/秒秒8位位/字符字符4800位位/秒。秒。(2 2)波特率)波特率n波特率波特率是指单位时间内信号电平变化的次数,是指单位时间内信号电平变化的次数,它反映的是数据信号对载波的调制速率。它反映的是数据信号对载波的调制速率。n常用的标准波特率为常用的标准波特率为110110、300300、600600、12001200、18001800、24002400、48004800、96009600和和1920019200。n其中,其中,如果数据未进行压缩如果数据未进行压缩,由于传送数据时,由于

21、传送数据时除传送数据信息外,还需传送校验位等信息,除传送数据信息外,还需传送校验位等信息,故波特率要高于数据传输率;故波特率要高于数据传输率;n如果数据进行了压缩如果数据进行了压缩,则数据传输率要高于波,则数据传输率要高于波特率。特率。 3 3数据传送方式数据传送方式n串行通信中,数据通常是在两个设备之间进串行通信中,数据通常是在两个设备之间进行传送,按照数据传送方式的不同而不同行传送,按照数据传送方式的不同而不同n串行通信有单工、半双工和全双工三种传送串行通信有单工、半双工和全双工三种传送方式。方式。 (1 1)单工方式)单工方式n仅使用一条数据线,数据只能沿一个固定的仅使用一条数据线,数据

22、只能沿一个固定的方向传送,这种数据传送方式为单工方式,方向传送,这种数据传送方式为单工方式,如图如图8-58-5(a a)所示。)所示。n例如计算机与打印机之间只能是计算机向打例如计算机与打印机之间只能是计算机向打印机传送数据,故为单工传送方式印机传送数据,故为单工传送方式。(2 2)半双工方式)半双工方式n可以使用一条或两条数据线,通信双方既可可以使用一条或两条数据线,通信双方既可发送数据又可接收数据,但不能同时收发数发送数据又可接收数据,但不能同时收发数据,这种数据传送方式为半双工方式,如图据,这种数据传送方式为半双工方式,如图8-58-5(b b)所示。)所示。n在这种方式下,同一时刻只

23、能由一方发送数在这种方式下,同一时刻只能由一方发送数据,另一方接收数据,并通过收据,另一方接收数据,并通过收/ /发开关进行发开关进行方向转换。方向转换。(3 3)全双工方式)全双工方式n通信双方在同一时刻既可以发送数据又可以通信双方在同一时刻既可以发送数据又可以接收数据,使用两条数据线进行传输,这种接收数据,使用两条数据线进行传输,这种数据传送方式为全双工方式,如图数据传送方式为全双工方式,如图8-58-5(c c)所示。所示。n在这种方式下,无需转换方向,数据能同时在这种方式下,无需转换方向,数据能同时在两个方向上进行传送。在两个方向上进行传送。4 4通信控制方式通信控制方式n按照收发双方

24、同步的方式,串行通信可分按照收发双方同步的方式,串行通信可分为异步通信和同步通信两类。为异步通信和同步通信两类。(1 1)异步通信)异步通信n异步通信是指,数据以字符为单位按照约异步通信是指,数据以字符为单位按照约定的波特率进行传送,通信双方不需要专定的波特率进行传送,通信双方不需要专门的同步信号,分别用各自的时钟信号来门的同步信号,分别用各自的时钟信号来控制发送和接收。控制发送和接收。 异步通信中数据的格式如图异步通信中数据的格式如图8-68-6所示,包括所示,包括以下以下4 4个部分:个部分:n起始位:起始位:字符开始的标志,占用一位,发送端字符开始的标志,占用一位,发送端开始传送数据时,

25、在要发送的字符前加上低电开始传送数据时,在要发送的字符前加上低电平。平。n数据位:数据位:位数可以是位数可以是5858位,字符编码为位,字符编码为7 7位。位。n奇偶校验位:奇偶校验位:用来校验所传送数据的正确性。用来校验所传送数据的正确性。如果是奇校验传输,使数据位和校验位中如果是奇校验传输,使数据位和校验位中1 1的的个数为奇数个;如果是偶校验传输,使数据位个数为奇数个;如果是偶校验传输,使数据位和校验位中和校验位中1 1的个数为偶数个。的个数为偶数个。n停止位:停止位:字符结束的标志,位数可以是字符结束的标志,位数可以是1 1位、位、1.51.5位或位或2 2位,发送端在要发送的字符后加

26、上高位,发送端在要发送的字符后加上高电平。电平。n这四部分将构成一个这四部分将构成一个数据帧数据帧,它被作为异步,它被作为异步通信传送数据时的基本单位。通信传送数据时的基本单位。n每一个字符以起始位和停止位作为字符开始每一个字符以起始位和停止位作为字符开始和结束的标志。传送时,各个字符可以连续和结束的标志。传送时,各个字符可以连续传送,也可以随机传送。传送,也可以随机传送。n在一个字符的停止位之后,立即发送下一个在一个字符的停止位之后,立即发送下一个字符的起始位,开始一个新字符的传输,称字符的起始位,开始一个新字符的传输,称为为连续的串行数据传送连续的串行数据传送;n一个字符的停止位之后维持数

27、据线的空闲状一个字符的停止位之后维持数据线的空闲状态,称为态,称为断续的串行数据传送断续的串行数据传送。波特率因子波特率因子n在异步通信方式进行通信时,发送端需在异步通信方式进行通信时,发送端需要用时钟来决定每要用时钟来决定每1 1位对应的时间长度,位对应的时间长度,n接收端也需要用一个时钟来测定每接收端也需要用一个时钟来测定每1 1位的位的时间长度时间长度n前一个时钟叫发送时钟,后一个时钟叫前一个时钟叫发送时钟,后一个时钟叫接收时钟。接收时钟。n这两个时钟的频率可以是波特率的数倍,这两个时钟的频率可以是波特率的数倍,一般取一般取1616倍、倍、3232倍或倍或6464倍。倍。n这个倍数就称为

28、这个倍数就称为波特率因子波特率因子。(2 2)同步通信)同步通信n在同步通信方式中,去掉异步通信时每个在同步通信方式中,去掉异步通信时每个字符的起始位和停止位,在数据块之前加字符的起始位和停止位,在数据块之前加上同步字符,如下图所示。上同步字符,如下图所示。n这样,在发送数据信号的同时发送一个时这样,在发送数据信号的同时发送一个时钟信号,使发送端和接收端在约定的波特钟信号,使发送端和接收端在约定的波特率下保持同步。率下保持同步。5 5误码率和差错控制误码率和差错控制n在进行远距离通信时,由于线路本身特性在进行远距离通信时,由于线路本身特性的影响导致的随机噪声、信号衰减或畸变的影响导致的随机噪声

29、、信号衰减或畸变以及各种外界因素,都会造成信号在传输以及各种外界因素,都会造成信号在传输过程中失真,过程中失真,n即接收端接收到的二进制数与发送端实际即接收端接收到的二进制数与发送端实际发送的二进制数发送的二进制数不一致不一致。n在数据通信过程中,一般用误码率(在数据通信过程中,一般用误码率(PePe)来衡量信道数据传输的质量。来衡量信道数据传输的质量。n所谓误码率是指,二进制数据在传输过程所谓误码率是指,二进制数据在传输过程中出现差错的概率,计算公式为:中出现差错的概率,计算公式为: PePe发生差错的位数传输的总位数发生差错的位数传输的总位数 n串行接口的基本结构主要是异步接串行接口的基本

30、结构主要是异步接收收/ /发送器(发送器(UARTUART)n它不仅包括并行数据和串行数据之它不仅包括并行数据和串行数据之间的相互转换,还有检测串行通信间的相互转换,还有检测串行通信在传送过程中可能发生错误的逻辑在传送过程中可能发生错误的逻辑部件。部件。6 6、异步接收、异步接收/ /发送器(发送器(UARTUART)nTBETBE为发送数据缓冲寄存器空标志位为发送数据缓冲寄存器空标志位n由于模拟信号的传输比数字信号传由于模拟信号的传输比数字信号传输更为有效,因而可将数字信号调输更为有效,因而可将数字信号调制成模拟信号进行传输;制成模拟信号进行传输;n接收时用解调器把接收的模拟信号接收时用解调

31、器把接收的模拟信号再转换成数字信号。再转换成数字信号。7 7、信号的调制和解调、信号的调制和解调8.1.4 RS-232C串行接口标准串行接口标准nRSRS(Recommended StandardRecommended Standard)-232C-232C是目前最是目前最常用的一种串行接口标准,由美国电子工业常用的一种串行接口标准,由美国电子工业协会协会EIAEIA和国际电报电话咨询委员会和国际电报电话咨询委员会CCITTCCITT联联合制定。合制定。nRS-232CRS-232C中的信号电平与通常并行接口中使用中的信号电平与通常并行接口中使用的的TTLTTL电平是不同的:规定电平是不同的

32、:规定5V5V15V15V为逻为逻辑辑“1”1”,5V5V15V15V为逻辑为逻辑“0”0”。n设有一个微机化仪器,其内部的设有一个微机化仪器,其内部的8086 CPU8086 CPU要通过要通过8255A8255A实现与实现与PCPC的串行通信。的串行通信。n设数据的传输格式为设数据的传输格式为1 1个起始位,个起始位,8 8个数据个数据位,位,1 1个停止位。个停止位。n要求传送波特率为要求传送波特率为12001200,8255A8255A的地址分布的地址分布为为88H88H8EH8EH,C C口的第口的第0 0位作为发送数据线位作为发送数据线TxDTxD,C C口的第口的第4 4位线作为

33、接收数据线位线作为接收数据线RxDRxD。 【例子例子】n每一位所占用的时间。每一位所占用的时间。 Td= ls/1200 = 1000ms /1200 = 0.833ms Td= ls/1200 = 1000ms /1200 = 0.833ms n假设程序库中己有两个重要的延时程序假设程序库中己有两个重要的延时程序: :n一个是一个是delay1delay1,其功能是延时,其功能是延时0.833ms0.833ms;n另一个是另一个是delay2delay2,其功能是延时,其功能是延时0.417ms0.417ms,即大约为,即大约为delay 1delay 1延时时间延时时间的一半。的一半。

34、n相应软件分相应软件分3 3个程序段个程序段: 8255A: 8255A的初始化,的初始化,串行发送程序段和串行接收程序段。串行发送程序段和串行接收程序段。 8255A8255A初始化初始化-根据上述要求,根据上述要求,C C口的低口的低4 4位为位为输出,高输出,高4 4位为输入。位为输入。A A口、口、B B口未用,设为方口未用,设为方式式0 0的输入方式。的输入方式。 8255INIT PROC FAR;8255初始化程序段初始化程序段MOV AL, 10011010B;8255A方式控制字方式控制字 OUT 8EH, AL MOV AL, 00000001B OUT 8EH, ALRE

35、T 8255INIT ENDP送数据程序段送数据程序段-其功能是把其功能是把DLDL中的数据按中的数据按照传输的格式发送出去。具体过程如下照传输的格式发送出去。具体过程如下: : (1)(1)发送起始位发送起始位; ; (2)(2)通过寄存器通过寄存器DLDL右移发送数据位右移发送数据位, ,过程如下过程如下: :n令令i=0i=0。 n发送发送DLDL中的第中的第i i位。位。 ni+1i+1i i。 n重复上两步重复上两步8 8次。次。(3)(3)发送停止位。发送停止位。 (4)(4)结束。结束。 SIO_SEND PROC FAR;把把DL中的数据通过中的数据通过PC0发送发送 PUSH

36、 AX ;保护现场保护现场 PUSH CX PUSH DX PUSHF CALL SEND0 ;送起始位送起始位(发送数据发送数据0) MOV CX,8;循环送循环送8位位 SIO_SEND3:SHR DL,1;第第i位进位进CF标志标志 JC SIO_SEND1 ;判断第判断第i位是否为位是否为1 CALL SEND0 ;第第i位为位为0,则发送数据,则发送数据0 JMP SIO_SEND2 SIO_SENDl: CALL SEND1;第第i位为位为1则发送数据则发送数据1SIO_SEND2: LOOP SIO_SEND3 ;循环循环8次次CALL SEND1;送停止位;送停止位(发送数据发

37、送数据1)POPF ;恢复现场;恢复现场 POP DX POP CX POP AX RET ;返回;返回SIO_SEND ENDPSEND0 PROC FAR MOV AL,00000000B ;发送数据发送数据0 OUT 8EH,AL ;复位复位PC0, PC0=0CALL DELAY1 ;延时延时0.833MS RET ;返回返回SEND0 ENDP SEND1 PROC FAR ;发送数据发送数据1 MOV AL,00000001B ;置位置位PC0,PC0=1 OUT 8EH,ALCALL DELAY1 RET SEND1 ENDP 接收数据程序段接收数据程序段 n其功能是把接收的数据

38、存入寄存器其功能是把接收的数据存入寄存器DLDL中。中。n这段程序比发送程序要稍微复杂些,它这段程序比发送程序要稍微复杂些,它包括检测发送端是否有数据发送过来包括检测发送端是否有数据发送过来n以及如何实现在数据有效期间的中点对以及如何实现在数据有效期间的中点对接收信号线进行采样。接收信号线进行采样。具体算法如下具体算法如下: : (1)(1)检测检测RxDRxD线上是否是低电平:否,则重复本步骤;线上是否是低电平:否,则重复本步骤;是,则执行下一步。是,则执行下一步。 (2)(2)延时延时0.417ms0.417ms对数据再采样,检测是否是低电平:对数据再采样,检测是否是低电平:否,则重复上一

39、步;是,则认为是起始位,执行否,则重复上一步;是,则认为是起始位,执行下一步。下一步。 (3)(3)通过寄存器通过寄存器DLDL移位采集数据。移位采集数据。 (4)(4)判断最后判断最后1 1位是否是停止位位是否是停止位( (即逻辑即逻辑1 )1 )。若是,。若是,表示正确接收数据,置表示正确接收数据,置CFCF有效。有效。 注意,步骤注意,步骤(1)(1)、(2)(2)的功能就是启动一次接收的功能就是启动一次接收数据过程,同时使数据过程,同时使CPUCPU在数据位的中心点进行采样。在数据位的中心点进行采样。;如果正确接收,如果正确接收,CF=1CF=1,数据放在,数据放在DLDL中中 SIO

40、_REV PROC FAR PUSH AX PUSH CX PUSH DX SIO_REV1: IN AL,8CH TEST AL,00010000BJNZ SIO_REV1 CALL DELAY2;延时延时0.417毫秒毫秒 IN AL,8CH;在数据中心点再取样在数据中心点再取样 TEST AL,00010000B ;再一次确认是否是起始位再一次确认是否是起始位 JNZ SIO_REV1 ;不是起始位,转移不是起始位,转移 MOV CX,8;置循环次数,开始采集置循环次数,开始采集8位数据位数据 SIO_REV2: CALL DELAY1 ;延时延时0.833毫秒毫秒 IN AL,8CH;

41、采样;采样TEST AL,00010000B ;判断数据位是否是判断数据位是否是0 CLC ;CF清清0 JZ SIO_REV3;数据位为数据位为0,CF=0STC ;数据位为数据位为1, CF=1 SIO_REV3: RCR DL,1 ;把把CF右移到寄存器右移到寄存器DL LOOP SIO_REV2 ;重复采集重复采集8次次 CALL DELAY1;延时延时0.833毫秒毫秒 IN AL,8CH;取停止数据位取停止数据位 TEST AL,00010000B CLC JZ SIO_REV4 ;数据位为数据位为0,CF=0,数据不正,数据不正确确STC ;数据位为数据位为1,CF=1,数据正确

42、,数据正确SIO_REV4: POP DX;恢复现场;恢复现场 POP CX POP AX RET ;返回返回SIO_REV ENDP 8.2 可编程并行接口芯片可编程并行接口芯片8255An8255A8255A是是IntelIntel公司生产的一种高性能可编公司生产的一种高性能可编程输入程输入/ /输出并行接口芯片,可以通过编程输出并行接口芯片,可以通过编程的方法来设定各种功能。的方法来设定各种功能。n由于它通用性强,使用灵活,可以方便地由于它通用性强,使用灵活,可以方便地连接在连接在IntelIntel系列的微处理器系统中,所以系列的微处理器系统中,所以应用较为普遍。应用较为普遍。8.2.

43、1 8255A的引脚及功能的引脚及功能n8255A8255A是是4040引脚的双列直插式芯片,其引脚引脚的双列直插式芯片,其引脚如图如图8-108-10所示。下面分别介绍各个引脚的所示。下面分别介绍各个引脚的功能。功能。 D D7 7D D0 0:三态、双向数据线,与:三态、双向数据线,与CPUCPU数据总线相连,数据总线相连,用于传送数据。用于传送数据。CSCS:片选信号,由:片选信号,由CPUCPU输入,低电平有效。该信号有输入,低电平有效。该信号有效时,表示效时,表示8255A8255A被选中,允许与被选中,允许与CPUCPU交换信息。交换信息。RDRD:读信号,输入,用于控制数据流的读

44、出,低电:读信号,输入,用于控制数据流的读出,低电平有效。该信号有效时,表示允许平有效。该信号有效时,表示允许CPUCPU从从8255A8255A端口端口中读取数据或状态信息。中读取数据或状态信息。WRWR:写信号,输入,用于控制数据的写入。该信号:写信号,输入,用于控制数据的写入。该信号有效时,表示允许有效时,表示允许CPUCPU向向8255A8255A中写入数据。中写入数据。A A1 1和和A A0 0:端口选择信号,输入信号。:端口选择信号,输入信号。8255A8255A有有3 3个独立的个独立的8 8位并行位并行I/OI/O端口端口A A、B B、C C和一个和一个控制寄存器,具有数据

45、控制和锁存功能,利用该信控制寄存器,具有数据控制和锁存功能,利用该信号可以寻址各端口,号可以寻址各端口,如下如下表所示表所示。RESETRESET:复位信号,输入信号,高电平有效。:复位信号,输入信号,高电平有效。当该信号有效时,当该信号有效时,8255A8255A复位,所有控制寄存复位,所有控制寄存器内容被清零,所有端口被置为输入方式。器内容被清零,所有端口被置为输入方式。PAPA7 7PAPA0 0:端口:端口A A的输入的输入/ /输出信号。输出信号。PBPB7 7PBPB0 0:端口:端口B B的输入的输入/ /输出信号。输出信号。nPCPC7 7PCPC0 0:端口:端口C C的输入

46、的输入/ /输出信号。输出信号。8.2.2 8255A的内部结构的内部结构n8255A的内部结构如图的内部结构如图8-11所示,它由以所示,它由以下四部分组成:下四部分组成:输入输入/ /输出端口输出端口:3 3个个8 8位的并行端口位的并行端口A A、B B、C C,其中,端口其中,端口A A和端口和端口B B分别有一个分别有一个8 8位数据输出位数据输出锁存锁存/ /缓冲器和一个缓冲器和一个8 8位数据输入锁存器,端位数据输入锁存器,端口口C C有一个有一个8 8位数据输出锁存位数据输出锁存/ /缓冲器和一个缓冲器和一个8 8位数据输入缓冲器。位数据输入缓冲器。端口端口C C被分成高被分成

47、高4 4位和低位和低4 4位,可作为基本输入位,可作为基本输入/ /输出端口、状态或控制信息传送端口,分别输出端口、状态或控制信息传送端口,分别与端口与端口A A和端口和端口B B配合工作配合工作控制寄存器控制寄存器:包括:包括A A组控制电路和组控制电路和B B组控制电组控制电路,用于控制接收来自路,用于控制接收来自CPUCPU的控制命令,控制的控制命令,控制端口端口A A、B B、C C的工作方式。的工作方式。其中,其中,A A组控制电路用来控制端口组控制电路用来控制端口A A和端口和端口C C的的高高4 4位(位(PCPC7 7PCPC4 4),),B B组控制电路用来控制端组控制电路用

48、来控制端口口B B和端口和端口C C的低的低4 4位(位(PCPC3 3PCPC0 0)。)。数据总线缓冲器数据总线缓冲器:三态、双向、:三态、双向、8 8位寄存器,位寄存器,用于与系统数据总线相连用于与系统数据总线相连是是8255A8255A与与CPUCPU进行信息传送的通道,可用来进行信息传送的通道,可用来传送数据、控制命令和状态信息。传送数据、控制命令和状态信息。n读读/ /写控制逻辑写控制逻辑:包括读出信号:包括读出信号RDRD、写入信、写入信号号WRWR、片选信号、片选信号CSCS和端口选择信号和端口选择信号A A1 1、A A0 0n用于控制用于控制8255A8255A内部寄存器的

49、读内部寄存器的读/ /写操作,如写操作,如表表8-48-4所示。所示。+8.2.3 8255A的工作方式的工作方式1 1方式方式0 0n方式方式0 0是是8255A8255A的基本输入的基本输入/ /输出方式,其特点是无输出方式,其特点是无需设置联络信号,需设置联络信号,8255A8255A就可以直接与外设进行简就可以直接与外设进行简单的无条件数据传送。单的无条件数据传送。n方式方式0 0适用于无条件数据传送或查询式数据传送。适用于无条件数据传送或查询式数据传送。n在这种方式下,在这种方式下,3 3个端口都可以设置为输入个端口都可以设置为输入/ /输出端输出端口,但不能同时既作为输入又作为输出

50、。口,但不能同时既作为输入又作为输出。n其中,端口其中,端口A A和和B B为为8 8位端口,输入、输出均有锁存位端口,输入、输出均有锁存能力;能力;n端口端口C C可分为两个可分为两个4 4位端口(高位端口(高4 4位和低位和低4 4位),仅对位),仅对输出有锁存能力。输出有锁存能力。例例1 1:8255A工作在方式工作在方式0n8255A8255A的的A A口和口和B B口工作在方式口工作在方式0 0,A A口为输入口为输入端口,接有四个开关。端口,接有四个开关。nB B口为输出端,接有一个七段发光二极管,口为输出端,接有一个七段发光二极管,连接电路如图所示。连接电路如图所示。n试编一程序

51、要求七段发光二班管显示开关所试编一程序要求七段发光二班管显示开关所拨通的数字。拨通的数字。 agDPfedbc电路LED数码管段码表 mov al,90h;设置;设置8255方式字方式字mov dx,ctrl_portout dx , almov dx,a_portin al,dx;取键盘信息取键盘信息and al,0fh;屏蔽高;屏蔽高4位位mov bx,offset tab1;取段码表首地址;取段码表首地址xlat;查表得段码;查表得段码mov dx,b_port ;输出显示;输出显示out dx,almov cx, 0600hadd2:loop add22方式方式1n方式方式1 1是一种

52、选通式输入是一种选通式输入/ /输出工作方式,其输出工作方式,其特点是与外设传送数据时,需要设置联络信特点是与外设传送数据时,需要设置联络信号。号。n在这种方式下,端口在这种方式下,端口C C的部分位用作选通控制的部分位用作选通控制信号,控制端口信号,控制端口A A和和B B的数据输入输出。的数据输入输出。8255A8255A在方式在方式1 1时的输入信号时的输入信号 A口的选通信号,当其有效时,外设把数据打入A口的输入缓冲器 A口的输入缓冲器“满”信号,当其有效时表示A口的输入缓冲器已暂存一个有效数据。 A口的中断请求信号。当其有效时,8255A的A口向CPU申请中断,要求CPU从A口取数

53、中断允许信号。 方式方式1的输入状态字的输入状态字 nSTB (Strobe 选通,闸门选通,闸门);nIBF (Input Buffer Full); nINTR (Interrupt Request); nINTE (Interrupt Enable);nSTBSTB:选通信号,由外设输入,低电平有:选通信号,由外设输入,低电平有效。效。n当该信号有效时,将外设输入的数据锁当该信号有效时,将外设输入的数据锁存到端口存到端口A A或或B B的输入锁存器中。的输入锁存器中。n对于端口对于端口A A来说,由端口来说,由端口C C的的PCPC4 4来接收来接收STBSTB信号;对于端口信号;对于端

54、口B B来说,由端口来说,由端口C C的的PCPC2 2来接收来接收STBSTB信号。信号。nIBFIBF:输入缓冲器满信号,向外设输出,是:输入缓冲器满信号,向外设输出,是对对STBSTB的响应信号,高电平有效。的响应信号,高电平有效。n当该信号有效时,表示由外设输入的数据当该信号有效时,表示由外设输入的数据已送到该端口的输入锁存器中。已送到该端口的输入锁存器中。nINTRINTR:中断请求信号,向:中断请求信号,向CPUCPU输出,用于请输出,用于请求以中断方式传送数据,高电平有效。求以中断方式传送数据,高电平有效。nINTEINTE:中断允许信号。:中断允许信号。n由于由于INTEINT

55、E没有外部引出端,但可通过软件对没有外部引出端,但可通过软件对C C口置口置1 1或清或清0 0实现对中断的控制。实现对中断的控制。n若若PCPC4 41 1,则端口,则端口A A的中断允许信号的中断允许信号INTEINTE1 1;若若PCPC4 40 0,则端口,则端口A A的的INTEINTE0 0。n如果如果PCPC2 21 1,则端口,则端口B B的中断允许信号的中断允许信号INTEINTE1 1;若;若PCPC2 20 0,则端口,则端口B B的的INTEINTE0 0。n当当INTEINTE为为1 1时,表示允许中断;为时,表示允许中断;为0 0时,表示时,表示禁止中断。禁止中断。

56、例例2 2:n8255A8255A的的A A口和口和B B口分别工作在方式口分别工作在方式1 1和方和方式式0 0;nA A口为输入端口,接有口为输入端口,接有8 8个开关;个开关;nB B口为输出端,接有口为输出端,接有8 8个发光二极管;个发光二极管;n连接电路如图所示。现要求用方式连接电路如图所示。现要求用方式1 1把改把改变后的键信息输入到变后的键信息输入到CPUCPU并通过并通过B B口显示。口显示。 例题例题2电路图电路图这个系统的工作过程如下:这个系统的工作过程如下:1 1、用户通过改变、用户通过改变K K0 0K K7 7,产生新的键信息;,产生新的键信息;2 2、按下开关、按

57、下开关K K,产生选通信号,数据进入,产生选通信号,数据进入A A口的口的缓冲器。此步骤实际上告诉缓冲器。此步骤实际上告诉CPUCPU,82558255的的A A口口来了一个新数据;来了一个新数据;3 3、IBFAIBFA有效使有效使LEDLED点亮。这里含有两个信息:点亮。这里含有两个信息:n一个是一个是8255A8255A通知通知CPUCPU其其A A口来了一个新数据;口来了一个新数据;n另一个是告诉用户另一个是告诉用户CPUCPU尚未取走这个数据,用户尚未取走这个数据,用户不得再送其他数据;不得再送其他数据;4 4、CPUCPU取走这个数据,取走这个数据,LEDLED熄灭;熄灭;5 5、

58、转步骤、转步骤1 1。设设8255的的I/O地址分布为地址分布为88H8EH,相应的程序段如,相应的程序段如下:下:mov al,10111001b;设置;设置A口为方式口为方式1的输入,的输入,Out 8eh,alloop1:in al,8ch;取;取C口的状态线口的状态线test al, 00100000b;测试;测试IBFA信息,即信息,即PC5jz loop1;等待用户设定新的键值,;等待用户设定新的键值,PC5=0转转loop1mov cx,0ffffh;延时,;延时,LED灯亮(相对于步骤灯亮(相对于步骤3)loop2:loop loop2in al,88h;取数。;取数。LED灯

59、灭(相对于步骤灯灭(相对于步骤4)out 8Ah,al;更新;更新B口的显示口的显示jmp loop1;重复;重复8255A8255A在方式在方式1 1时的输出信号时的输出信号 外设回答信号。由外设发出。当其有效时,表示外设已接收数据。 A口的输出缓冲器“满”信号,当其有效时表示A口的输出缓冲器已暂存一个有效数据。 A口的中断请求信号。当其有效时,8255A的A口向CPU申请中断,要求CPU送数给A口 中断允许信号。 nOBFOBF:输出缓冲器满信号,向外设输出,:输出缓冲器满信号,向外设输出,低电平有效。低电平有效。n此信号有效时,表示此信号有效时,表示CPUCPU已将数据写入数已将数据写入

60、数据端口。据端口。nPCPC7 7用作从端口用作从端口A A输出的输出的OBFOBF信号;信号;PCPC1 1用作用作从端口从端口B B输出的输出的OBFOBF信号。信号。nACKACK:应答信号,由外设输入,是对:应答信号,由外设输入,是对OBFOBF的响应信号,低电平有效。的响应信号,低电平有效。n此信号有效时,表示外设已接收到由此信号有效时,表示外设已接收到由8255A8255A输出的数据。输出的数据。INTRINTR:中断请求信号,输出信号,用于:中断请求信号,输出信号,用于请求以中断方式传送数据,高电平有效。请求以中断方式传送数据,高电平有效。INTEINTE:中断允许信号。这里也是

温馨提示

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

评论

0/150

提交评论