1、微型计算机技术教 学 指 导(六)太原广播电视大学 郭建勇 第6章 常用可编程外围接口芯片 内容提要:本章主要介绍微处理器常用的外围接口芯片,定时器8253,并行的外围接口芯片8255和串行的通讯接口芯片8251A。介绍每种芯片的结构框图,各个部件的功能和用途,以及它们的使用方式。学习目标:通过学习这些接口芯片,要求掌握不同外围接口芯片在使用时的工作方式。熟练掌握它们在微机接口中的运用环境和使用时的方式控制,以及不同芯片的编程命令字的设置。进一步了解每种芯片的基本的编程步骤及各种方式命令字的使用。6.1 定时器计数器8253的结构与编程 在微机及一些控制系统中,经常要用到定时信号。如系统的日历
2、时钟,动态存储器刷新。对外部执行机构控制时也需要定时中断、定时检测、定时查询等。定时的方法主要是两种:软件定时:利用指令的执行时间设计循环程序,使软件定时:利用指令的执行时间设计循环程序,使CPUCPU执行延执行延迟子程迟子程 序的时间就是定时时间。缺点:执行延迟时,序的时间就是定时时间。缺点:执行延迟时,CPUCPU一直被一直被占用,降低了占用,降低了CPUCPU的效率。的效率。硬件定时:用计数器硬件定时:用计数器/定时器作为主要硬件,在软件简单指令定时器作为主要硬件,在软件简单指令的控制下产生精确的时间延迟。突出优点为计数时不占用的控制下产生精确的时间延迟。突出优点为计数时不占用CPUCP
3、U时时间,如利用定时器间,如利用定时器/计数器产生中断信号,可建立多作业环境,计数器产生中断信号,可建立多作业环境,故提故提 高了高了CPUCPU效率效率。1.计数:计数:对事件的个数进行计数。对事件的个数进行计数。正计数:关心记录事件的次数。正计数:关心记录事件的次数。倒计数:关心预先设定事件次数发生完的时刻。倒计数:关心预先设定事件次数发生完的时刻。可由硬件计数器实现,事件作为计数器的时钟,此可由硬件计数器实现,事件作为计数器的时钟,此时事件的出现频率不一定一成不变。时事件的出现频率不一定一成不变。2.定时:定时:取得给定的时间间隔。取得给定的时间间隔。延时:求锝某事件发生后间隔一定时间的
4、时刻。延时:求锝某事件发生后间隔一定时间的时刻。时标:求得给定时间间隔的连续脉冲。时标:求得给定时间间隔的连续脉冲。可由硬件计数器来实现,一定频率的信号作为计数器的时钟,可由硬件计数器来实现,一定频率的信号作为计数器的时钟,如果只计数到就终止,即为延时。如果连续不断的计数即可输如果只计数到就终止,即为延时。如果连续不断的计数即可输出时标。出时标。可编程计数器可编程计数器/定时器的用途定时器的用途 计数功能计数功能 作为计数个数到中断信号。作为计数个数到中断信号。记录外部特定时间发生的个数。记录外部特定时间发生的个数。定时功能定时功能 作为周期性定时中断信号。作为周期性定时中断信号。用于分时性操
5、作系统。用于分时性操作系统。用作系统时钟基准。用作系统时钟基准。作为一个可编程波特率发生器。用于异步串行通讯。作为一个可编程波特率发生器。用于异步串行通讯。作为作为I/OI/O设备输出定时信号。实现外设与设备输出定时信号。实现外设与CPUCPU的同步。的同步。实现节约实现节约CPUCPU的时间延时。的时间延时。作为音源。作为音源。6118253功能及结构框图 18253的主要功能 (1)每片上有3个独立的16位的计数器通道。(2)对于每个计数器,都可以单独作为定时器或计数器使用,并且都可以按照二进制或十进制来计数。(3)每个通道都有6种工作方式,都可以通过程序设置或改变。(4)每个计数器的速率
6、可高达2MH2。最高的计数时钟频率为26MHz。(5)所有的输入、输出都是TTL电平,便于与外围接口电路相连接。(6)单一的+5V电源 28253的结构框图CLOCK0D7 D0 计数器0计数器1计数器2GATE0OUT0数据总线缓冲器读/写逻辑控制寄存器A1A0RDWR 四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的16位的计数器通道。这三个计数器分别是计数器0通道、计数器1通道和计数器2通道。(1)数据总线缓冲器:8位的双向三态缓冲器。用于暂存数据,使用在以下几个方面:CPU在初始化编程时,向8253写入控制字。CPU向某一通道写计数初值。CPU从某一通道读计数初值。(
7、2)读写控制逻辑电路:接受输入的RD、WR、CS、A1、A0等信号组合产生出对8253要执行的操作,见操作表。(3)控制字寄存器:只能写入,不能读出。8初始化编程时,写入控制字决定通道的工作方式。(4)3个计数器:分别为0、1和2,是3个独立的计数定时通道,都可按不同的方式工作。每个计数器内部都包含一个16位的预置初始值寄存器。一个可预置数减法计数器和一个锁存器。信号名 引 脚 信号方向 功 能 定 义D7D0 18 双向8位 三态的数据线 CLK0 9 输入 计数器0的时钟输入OUT0 10 输出 计数器0的输出GATE0 11 输入 计数器0的门控输入CLK1 15 输入 计数器1的时钟输
8、入OUT1 13 输出 计数器1的输出GATE2 14 输入 计数器1的门控输入CLK2 18 输入 计数器2的时钟输入OUT2 17 输出 计数器2的输出GATE2 16 输入 计数器2的门控输入,CS 21 输入 片选信号,RD 22 输入 读信号,低电平有效。CS=0,RD=0时,读取某个计数器当前的计数值。WR 23 输入 写信号,低电平有效。CS=0、WR=0时,写入控制字或计数器置初值。A1,A0 20,19 输入 A1,A0的组合对3个计数 和控制器寄存 器进行寻址。6138253编程命令字和工作方式 1初始化编程的原则 8253的控制字寄存器和3个计数器分别具有独立的编程地址,
9、由控制字的内容确定使用的是哪个寄存器以及执行什么操作。因此8253在初始化编程时并没有严格的顺序规定,但是在编程时,必须遵守两条原则:在对某个计数器设置韧始值之前,必须先写入控制字。在设计初始值时,要符合在控制字中规定的格式。作定时器时初值的确定:当计数器装入初值后,在GATE端由低变高时,由CLK脉冲触发开始,自动计数,当汁数变到0时,由OUT端发定时时间到信号。计数器的计数初值n(时间常数)与定时时间t及时钟周期TCK之间的关系是:n=tTCK 28253的初始化编程 (1)(1)设置控制命令字:用来选择计数器,设置工作方式和计数格式。D7D6位(SC1,SC0):用于选择计数器,根据这2
10、位的编码来确定使用的是哪一个计数器。D5D4(RW1,RW0):用于确定读写的格式。D3D1位(M2,M1,M0):这三位用来指定计数器的工作方式,8253的计数器共有6种工作方式。D0位(BCD):用来选择计数的类型,确定计数器是采用二进制计数还是采用二十进制计数。(2)(2)设置初始值命令。设置初始值命令。(3)(3)锁存命令:读计数器的值时必须先用锁存命令将当前计锁存命令:读计数器的值时必须先用锁存命令将当前计数值在输出锁存器中锁定。否则,计数器的数值有可能正处在改数值在输出锁存器中锁定。否则,计数器的数值有可能正处在改变过程中。这样输入可能得到一个不确定的结果。变过程中。这样输入可能得
11、到一个不确定的结果。D7SC1D6SC0D5RW1D4RW0D3M2D2M1D1M0D0BCD00:计数器0 01:计数器1 10:计数器211:无定义 00:锁存计数值 000:方式0 01:读/写低八位 001:方式1 10:读/写高八位 10:方式2 11:先读/写低八位 11:方式3 后读/写高八位 100:方式4 101:方式5 8253控制字的格式00:计数器001:计数器110:计数器211:无定义 0:二进制1:BCD码 6.1.4 8253工作方式与工作时序 8253有6种工作方式,对它们的操作都遵守以下3条基本原则:(1)当控制字写入8253时,所有的控制逻辑电路自动复位,
12、这时输出端OUT进入初始态。(2)当初始值写入计数器以后,要经过一个时钟周期,减法计数器才开始工作,时钟脉冲的下降沿使计数器进行减1计数。计数器的最大初始值是0,用二进制计数时0相当于216,用BCD码时,0相当于104。(3)对于一般情况下,在时钟脉冲CLK的上升沿时,采样门控信号。对门控信号(GATE)的触发方式是有具体规定的:门控信号为电平触发的有:方式0,方式4。门控信号为上升沿触发的有:方式1,方式5。门控信号可为电平触发也可为上升沿触发的有:方式2,方式3。计数方式的有:方式0,方式1,方式4,方式5 定时方式的有:方式2,方式3。8253门控信号(GATE)的控制功能 方式 信号
13、状态 低电平或负跳变 正跳变 高电平 0 禁止记数 允许记数 1 1.初始化,启动记数 2.下一个脉冲输出变低 2 1.禁止记数 初始化,启动记数 允许记数 2.输出变高 3 1.禁止记数 初始化,启动记数 允许记数 2.输出变高 4 禁止记数 允许记数 5 初始化,启动记数 1方式0(计数结束产生中断的计数器)写入方式控制字后,输出端OUT为低电平;写入计数常数后,开始计数。计数器减为0之前,输出端OUT维持低电平。当计数值为0时,输出端OUT才变为高电平,向CPU发出中断请求,直到CPU写入新的控制字或者写入新的计数值为止。WRCWn=4CLKGATEOUT1432 方式0可由门控信号控制
14、暂停,GATE为低电平时,计数器暂停,GATE信号变高后,就接着计数。WRCLKGATEOUTCWn=33221 2方式1(可重复编程的单脉冲)设定工作方式和写入计数值后,OUT输出高电平,GATE(触发信号)变为高电平后,OUT变为低电平,开始计数。当计数器减到0时,OUT才输出高电平。输出低电平期间,写入新计数值,不会影响原记数过程。只有第一次计数完,GATE再来一个正跳变时才使用新的计数值计数WRCLKGATEOUTCWn=3321记数结束开始记数开始记数n=55 若在第一次计数末完成之前,GATE又产生正跳变(即下一个脉冲信号又到来)时,则从新的GATE的上升沿以后,开始重新计数,OU
15、T端输出的低电平保持不变,2次的计数过程合在一起,因此使输出的负脉冲宽度加宽了321321WRCWn=3CLKGATEOUT 3方式2 (分频器)写入方式2的控制字后,OUT变高,设GATE为高先到,计数器对CLK计数,设计数初值为N。当计数器计到(N一1)个CLK信号时,OUT输出变低,计数器的值为l。最后一个CLK信号输入后,计数器减到0,OUT回到高,计数器又自动从初值开始计数。因此OUT端在每N个CLK信号中输出一个宽度等于CLK信号周期的负脉冲。负脉冲的周期=计数值N时钟CLK的周期T。WRCLKGATEOUTCWn=3记数结束记数结束重新记数重新记数321321重新记数重新记数 计
16、数过程中要求门控脉冲计数过程中要求门控脉冲GATGAT置保持为高,当置保持为高,当GATEGATE为低电平为低电平时,则计数被中止暂停,在时,则计数被中止暂停,在GATEGATE再变高后,计数器又被置入初值,再变高后,计数器又被置入初值,重新计数。重新计数。方式2输出负脉冲的周期为CLK周期的N倍,频率是1/N。称为分频器,可以用来给自动控称为分频器,可以用来给自动控制中的实时检测,实时控制提供时钟信号。制中的实时检测,实时控制提供时钟信号。WRCLKGATEOUTCWn=33222321重新记数重新记数 4方式3(方波发生器)采用方式3工作时,计数器输出为方波信号(GATE始终为高电平)。当
17、计数值为偶数时,在前N2计数期间,OUT输出高电平,而后N2个计数期间,OUT输出为低电平,对称方波。42424242CWn=4WRCLKGATEOUT 记数值为N奇数时的波形 当计数值为奇数时,在前(N+1)2计数期间,OUT输出高电平,而后(N-1)2个计数期间,OUT输出为低电平。42042420CWn=5WRCLKGATEOUT 高电平宽度比低电平宽度大一个时钟周期的近似方波。高电平宽度比低电平宽度大一个时钟周期的近似方波。实际上由于时钟周期很小,几乎没什么差别实际上由于时钟周期很小,几乎没什么差别。方式3计数时要求GATE为高电平,当GATE为低电平时,停止计数。若OUT为低电平,G
18、ATE变为低电平时,OUT立即变高,计数器将重新装入初始值,重新计数。42424242CWn=4WRCLKGATEOUT22 5方式4(软件触发选通)当方式4的控制字写入8253后,计数器输出OUT为高电平。在写入计数初值后,而且GATE为高电平时,开始计数,计数到0后输出一个时钟周期的低电平脉冲。门控信号GATE1时允许计数,GATE0禁止计数。3210CWn=3WRCLKGATEOUT 软件触发选通体现在当GATE为高电平时,写为高电平时,写入计数初值后开始计数。入计数初值后开始计数。6方式5硬件触发选通)当写入方式当写入方式5 5的控制字及计数常数后,输出的控制字及计数常数后,输出OUT
19、OUT为高电平。只为高电平。只有在门控信号有在门控信号GATEGATE上升沿到来时才开始作减上升沿到来时才开始作减1 1计数,计数到达计数,计数到达0 0时时输出一个时钟周期宽度的负脉冲。输出一个时钟周期宽度的负脉冲。32103CWn=4WRCLKGATEOUT硬件触发选通:GATEGATE信号一般由硬件产生。信号一般由硬件产生。计数器一旦开始计数以后,将不受计数器一旦开始计数以后,将不受GATEGATE信号变成低电平的影信号变成低电平的影响,但如果响,但如果GATEGATE信号又产生了正跳变的话,则不论计数是否完成,信号又产生了正跳变的话,则不论计数是否完成,又将给计数器置人初值,重新开始新
20、一轮计数。又将给计数器置人初值,重新开始新一轮计数。323210CWn=3WRCLKGATEOUT新计数新计数 6.1.5 82536.1.5 8253初始化编程初始化编程 要使用要使用82538253首先要对它进行初始化编程,编程时主要是写首先要对它进行初始化编程,编程时主要是写入每个计数器的控制字和计数初值,初始化的步骤是:入每个计数器的控制字和计数初值,初始化的步骤是:(1)(1)写入控制字:选择计数器和规定计数器的工作模式。写入控制字:选择计数器和规定计数器的工作模式。(2)(2)写入计数初值。若规定只写低写入计数初值。若规定只写低8 8位,高位,高8 8位自动置位自动置0 0。若。若
21、规定写规定写1616位,则先写低位,则先写低8 8位,后写高位,后写高8 8位。位。例:设置计数器例:设置计数器0 0,工作在方式,工作在方式3 3,按二进制计数,计数值,按二进制计数,计数值200200。计数器计数器0 0 先写低先写低8 8位,后写高位,后写高8 8位位 方式方式3 3 二进制计数二进制计数 程序段如下:程序段如下:MOV ALMOV AL,36H 36H ;控制字送;控制字送ALAL MOV DX MOV DX,CRLP CRLP ;控制口地址送;控制口地址送DXDX OUT DX OUT DX,AL AL ;控制字送控制寄存器;控制字送控制寄存器0011011036H控
22、制字控制字设设控制口地控制口地址为址为CRLPCRLP。CPU CPU在读取任一通道的随机计数值时,需将当前的计数值锁存。在读取任一通道的随机计数值时,需将当前的计数值锁存。实现锁存的方法有实现锁存的方法有2 2种:种:(1)(1)利用利用GATEGATE信号的变化使计数过程暂停。信号的变化使计数过程暂停。(2)(2)向向82538253输出一个通道控制字(输出一个通道控制字(D5D4D5D400)00),命令,命令82538253计数计数器中的锁存器锁存。器中的锁存器锁存。其程序如下:其程序如下:MOV ALMOV AL,00H 00H ;O O号通道,号通道,D5D4D5D40000锁存命
23、令。锁存命令。MOV DXMOV DX,CRLP CRLP;控制口地址送;控制口地址送DXDX OUT DX OUT DX,AL AL ;控制字送控制口;控制字送控制口 IN ALIN AL,PRTPRT0 ;读计数器;读计数器0 0的低的低8 8位位 当前计数值当前计数值 XCHG ALXCHG AL,AH AH ;低;低8 8位当前计数值暂存位当前计数值暂存AHAH IN AL IN AL,PRTPRT0 ;读高位当前计数值;读高位当前计数值 XCHG ALXCHG AL,AH AH ;利用交换指令使计数值的低;利用交换指令使计数值的低8 8位送位送ALAL,高高8 8位送位送AHAH设设
24、PRT0为计数为计数器器0的口地址。的口地址。6.1.6 82536.1.6 8253编程应用举例编程应用举例 在一个实际的数据采集系统中,要求在一个实际的数据采集系统中,要求5s5s钟采一个数,现场钟采一个数,现场的主时钟的振荡频率为的主时钟的振荡频率为2 25MHz5MHz。分析:选择工作方式分析:选择工作方式3 3(方波发生器),连续工作对(方波发生器),连续工作对2 25M5M的脉冲分频。的脉冲分频。时钟周期时钟周期TckTckl l2 25 510106 6 计数初值计数初值n=T/Tckn=T/Tck=5=5(l(l2 25 510106 6)=1.25)=1.2510107 7
25、一个计数器最多的分频次数是一个计数器最多的分频次数是6553665536,是不够用的。采用两级,是不够用的。采用两级计数器,用计数器计数器,用计数器0 0的输出的输出OUTOUT0 0作为计数器作为计数器1 1的输入的输入CLKCLK1 1。计数器计数器0 0的计数值为的计数值为5000050000;C350HC350H计数器计数器1 1的的250250;FAHFAH。则有:。则有:总的计数值总的计数值=50000=50000250=1.25 250=1.25 10107 7 计数器计数器0 0:方式:方式3 3(方波发生器)控制宇(方波发生器)控制宇36H36H 计数器计数器1 1:方式:方
26、式2 2(分频器)控制字(分频器)控制字54H54H 设:控制口地址:设:控制口地址:CRPTCRPT;0 0号计数器:号计数器:PRT0PRT0;1 1号计数器:号计数器:PRT1PRT1 实现上述过程的程序如下:MOV AL,36H MOV DX,CRPT OUT DX,AL ;0号计数器方式3 MOV AL,50H MOV DX,PRT0 OUT DX,AL ;计数值低8位 MOV AL,C3H OUT DX,AL ;计数值高8位 MOV AL,54H MOV DX,CRPT OUT DX,AL ;1号计数器方式2 MOV AL,FAH MOV DX,PRT1 OUT DX,AL ;计数
27、值低8位8253CLK0GATE0OUT0CLK1GATE0OUT02.5MHZ+5V+5V5S脉冲 6.2 6.2 并行外围接口并行外围接口8255A8255A的结构与编程的结构与编程 6.2.1 6.2.1 并行通信的简单原理并行通信的简单原理 中央处理器中央处理器(CPU)(CPU)和外部设备进行数据传输,都采用接口电路和外部设备进行数据传输,都采用接口电路和和CPUCPU相连。相连。接口方式:串行通信接口和并行通信接口。接口方式:串行通信接口和并行通信接口。状态端口:状态信息表示外设当前所处的工作状态。状态端口:状态信息表示外设当前所处的工作状态。接口:接口:数据端口:数据信息进行数据
28、传输。数据端口:数据信息进行数据传输。地址端口:控制信息控制外设接口的工作方式等。地址端口:控制信息控制外设接口的工作方式等。典型的并行接口:有一个控制寄存器,典型的并行接口:有一个控制寄存器,CPUCPU对外设的操作命对外设的操作命令都寄存在控制寄存器中。一个状态寄存器,主要是用来提供外令都寄存在控制寄存器中。一个状态寄存器,主要是用来提供外设的各种状态位,以供设的各种状态位,以供CPUCPU来查询。另外在并行接口中还设置了来查询。另外在并行接口中还设置了输入缓冲寄存器和输出缓冲寄存器,缓冲器的作用是用来暂存数输入缓冲寄存器和输出缓冲寄存器,缓冲器的作用是用来暂存数据。主要是用来匹配据。主要
29、是用来匹配CPUCPU和外设的数据处理速度的。和外设的数据处理速度的。控制寄存器控制寄存器状态寄存器状态寄存器输入缓冲寄存器输入缓冲寄存器输出缓冲寄存器输出缓冲寄存器输输入入设设备备输输出出设设备备地址地址译码器译码器CSA0A1数据总线数据总线准备好输出准备好输出准备好输入准备好输入中断请求中断请求复位复位RDWR地址总线地址总线M/IO输入数据输入数据输入数据准备好输入数据准备好输入回答输入回答输出数据输出数据输出数据准备好输出数据准备好输出回答输出回答并行接口原理结构图并行接口原理结构图CPU 数据输入:数据输入:(1 1)外设先使状态线)外设先使状态线“输入数据准备好输入数据准备好”为
30、高电平(有效);为高电平(有效);(2 2)数据接收到输入缓冲寄存器中;)数据接收到输入缓冲寄存器中;(3 3)把)把“输入回答输入回答”信号置成高电平(有效),并发给外设;信号置成高电平(有效),并发给外设;(4 4)外设接到回答信号后,将撤消)外设接到回答信号后,将撤消“输入数据准备好输入数据准备好”的信的信号。号。(5 5)当接口收到数据后,会在状态寄存器中设置)当接口收到数据后,会在状态寄存器中设置“准备好输准备好输入入”状态位,以便状态位,以便CPUCPU对其进行查询或中断输入。对其进行查询或中断输入。数据输出:数据输出:(1 1)当外设从接口接收到一个数据后,接口的输出缓冲寄存)当
31、外设从接口接收到一个数据后,接口的输出缓冲寄存器器“空空”,使状态寄存器,使状态寄存器“输出数据准备好输出数据准备好”状态位为高电平有状态位为高电平有效;效;(2 2)CPUCPU将输出数据送到接口的输出缓冲寄存器;将输出数据送到接口的输出缓冲寄存器;(3 3)接口向外设发送一个启动信号,启动外设接收数据;)接口向外设发送一个启动信号,启动外设接收数据;(4 4)外设接收到数据后,向接口回送一个)外设接收到数据后,向接口回送一个“输出回答输出回答”信号;信号;(5 5)接口电路收到该信号后,自动将接口状态寄存器中的)接口电路收到该信号后,自动将接口状态寄存器中的“准备好输出准备好输出”状态位重
32、新置为高电平状态位重新置为高电平“l”l”。6.2.2 8255A6.2.2 8255A结构框图及功能部件说明结构框图及功能部件说明 8255A8255A是为是为IntelIntel公司的微处理机配套的通用可编公司的微处理机配套的通用可编程并行接口芯片,可编程的程并行接口芯片,可编程的I IO O引脚有引脚有2424条,分为条,分为2 2组,组,每组每组1212条,并有三种工作方式。条,并有三种工作方式。芯片的主要技术特性是:芯片的主要技术特性是:输入、输出电平与输入、输出电平与TTLTTL电平完全兼容;电平完全兼容;改善了时序特性;改善了时序特性;直接位的置直接位的置1 1置置0 0功能,便
33、于实现控制性接口功能,便于实现控制性接口使用;使用;单一的单一的+5V+5V电源。电源。8255A8255A的内部结构:的内部结构:端口端口A(8)端口端口C上半部上半部(4)端口端口C下半部下半部(4)端口端口B(8)B组组控制控制A组组控制控制数据数据总线总线 缓冲器缓冲器读读/写写控制控制逻辑逻辑DBRDWRA0A1RESTCS8位内部位内部数据总线数据总线PA7-PA0PC7-PC4PC3-PC0PB7-PB0CPU接口接口内部逻辑内部逻辑外设接口外设接口8253A内部结构内部结构 1 1三个独立的数据端口三个独立的数据端口 A A端口:端口:A A端口对应一个端口对应一个8 8位的数
34、据输入锁存器和一个位的数据输入锁存器和一个8 8位的位的数据输出锁存和缓冲器。用于双向的数据传输,有锁存功能。数据输出锁存和缓冲器。用于双向的数据传输,有锁存功能。B B端口和端口和C C端口:这两个端口分别是由一个端口:这两个端口分别是由一个8 8位的数据输入位的数据输入缓冲器和一个缓冲器和一个8 8位的数据输出锁存和缓冲器组成。输出有锁存功位的数据输出锁存和缓冲器组成。输出有锁存功能;输入无锁存。能;输入无锁存。2 2。A A组控制电路和组控制电路和B B组控制电路组控制电路 A A组控制电路控制组控制电路控制A A端口和端口和C C端口的高端口的高4 4位位(PC(PC4 4一一PCPC
35、7 7)。B B组控制电路控制组控制电路控制B B端口和端口和C C端口的低端口的低4 4位位(PC(PC0 0一一PCPC3 3)。控制电路的作用是:接收控制电路的作用是:接收CPUCPU输出的方式控制命令字;接收输出的方式控制命令字;接收来自读写控制逻辑电路的读写命令;决定来自读写控制逻辑电路的读写命令;决定A A组和组和B B组的工作方组的工作方式和读写操作。式和读写操作。3 3读写控制逻辑电路读写控制逻辑电路 完成内部三个数据端口的译码工作,由完成内部三个数据端口的译码工作,由CPUCPU的地址总线的地址总线AlAl、AOAO,8255A8255A的片选信号的片选信号CSCS和和RDR
36、D、WRWR信号组合后产生控制命令,并信号组合后产生控制命令,并将产生的控制命令传送给将产生的控制命令传送给A A组和组和B B组的控制电路,从而完成对数据组的控制电路,从而完成对数据信息的传输控制。信息的传输控制。8255A8255A的控制信号与执行的操作之间的对应表的控制信号与执行的操作之间的对应表 CS RD WR ACS RD WR A1 1A A0 0 执行的操作执行的操作 0 0 1 00 0 0 1 00 读读A A端口端口(A(A端口数据端口数据数据总线数据总线)0 1 0 00 0 1 0 00 写写A A端口端口(A(A端口端口数据总线数据数据总线数据)0 0 1 01 0
37、 0 1 01 读读B B端口端口(B(B端口数据端口数据数据总线数据总线)0 1 0 01 0 1 0 01 写写B B端口端口(B(B端口端口数据总线数据数据总线数据)0 0 1 10 0 0 1 10 读读C C端口端口(C(C端口数据端口数据数据总线数据总线)0 1 0 10 0 1 0 10 写写C C端口端口(C(C端口端口数据总线数据数据总线数据)0 1 0 11 0 1 0 11 当当D D7 7l l时,对时,对8255A8255A写入控制字写入控制字 当当D D7 7O O时,对时,对C C端口置位复位端口置位复位 0 0 1 11 0 0 1 11 非法的信号组合非法的信
38、号组合 0 1 1 0 1 1 *数据线数据线D D7 7D D0 0进入高阻状态进入高阻状态 1 1 *未选择未选择 6.2.3 8255A6.2.3 8255A引脚信号定义引脚信号定义 8255A8255A是是4040条引脚双列直插式芯片。引脚按连接功能分为条引脚双列直插式芯片。引脚按连接功能分为2 2组。组。1 1与与CPUCPU相连的引脚相连的引脚 RESETRESET:复位信号,高电平有效。复位后把:复位信号,高电平有效。复位后把8255A8255A内部的所有内部的所有寄存器都清寄存器都清“0”0”,并将三个数据端口自动设置为输入端口。,并将三个数据端口自动设置为输入端口。CSCS:
39、片选信号,低电平有效。只有当芯片被选中才能进行读、:片选信号,低电平有效。只有当芯片被选中才能进行读、写操作。写操作。RDRD:读信号,低电平有效。:读信号,低电平有效。WRWR:写信号,低电乎有效。:写信号,低电乎有效。A A1 1A A0 0:端口译码信号。端口译码信号。0000选中选中A A端口;端口;0101选中选中B B端口;端口;1010选中选中C C端口;端口;1111选中控制端口。选中控制端口。D D7 7D D0 0:双向:双向8 8位三态数据线,与系统的数据总线相连接。位三态数据线,与系统的数据总线相连接。2 2和外设端相连的引脚和外设端相连的引脚 PAPA7 7PAPA0
40、 0:A A端口的输入输出引脚;端口的输入输出引脚;PBPB7 7PBPB0 0:B B端口的输入输出引脚;端口的输入输出引脚;PCPC7 7PCPC0 0:C C端口的输入输出引脚;端口的输入输出引脚;6.2.4 8255A6.2.4 8255A的控制字的控制字 8255A8255A的控制字:方式选择控制字和端口的控制字:方式选择控制字和端口C C置置1 1置置0 0控制宇控制宇 1 11 1方式选择控制字方式选择控制字方式选择控制字方式选择控制字标识位总为标识位总为 1 1 D7 D6 D5 D4 D3 D2 D1 D0 0 0:方式:方式00 1:方式:方式11:方式:方式2 PA口口
41、1:输入:输入0:输出:输出PC7PC41:输入:输入0:输出:输出A 组组 控控 制制0:方式:方式01:方式:方式1PB口口 1:输入:输入0:输出:输出PC3PC01:输入:输入0:输出:输出B 组组 控控 制制 如果要求如果要求8255A8255A的的A A端口作输入,端口作输入,B B端口和端口和C C端口作输出,端口作输出,A A组工作组工作在方式在方式0 0,B B组工作在方式组工作在方式l l。94H94H 标志位标志位 A A方式方式0 B0 B方式方式1 1 A A口输入口输入 B B口输出口输出 C C口输出口输出 C C口输出口输出 相应的程序段:相应的程序段:MOV
42、AL,94H MOV AL,94H ;方式选择控制字送;方式选择控制字送ALAL。MOV DXMOV DX,PortctrPortctr ;控制口地址;控制口地址PortctrPortctr送送DXDX OUT DX OUT DX,AL AL ;方式选择控制字输出给;方式选择控制字输出给82558255入的入的 ;控制端口,完成方式选择;控制端口,完成方式选择10010100控制字控制字为为94HPortctrPortctr为为控制口的地址控制口的地址 2 2端口端口C C置置1 1置置0 0控制字控制字 8255A8255A在和在和CPUCPU传输数据的过程中,经常将传输数据的过程中,经常将
43、C C端口的某几位作为控制位或端口的某几位作为控制位或状态位来使用,配合状态位来使用,配合A A端口或端口或B B端口的工作。端口的工作。初始化时,初始化时,C C端口置端口置l l置置0 0控制字可以单独设置到控制字可以单独设置到C C端口的某一位为端口的某一位为0 0或某或某一位为一位为1 1,控制字的,控制字的D D7 7位为位为“0”0”是是C C端口置端口置l l置置0 0控制字中的标识位。控制字中的标识位。D D6 6D D4 4位可为任意值,不影响操作。位可为任意值,不影响操作。D D3 3D D1 1位用来决定对位用来决定对C C端口端口8 8位中的哪位中的哪一位进行操作。一位
44、进行操作。DoDo位用来决定对所选择的位是置位用来决定对所选择的位是置l l还是置还是置0 0。C C端口位选择端口位选择 C C端口置位端口置位 000000:PCPC0 0 001001:PCPC1 1 置置1/1/置置0 0选择选择 标识位标识位 010010:PCPC2 2 011 011:PCPC3 3 0 0:置:置0 0 总为总为 0 0 100 100:PCPC4 4 101 101:PCPC5 5 1 1:置:置1 1 110 110:PCPC6 6 111 111:PCPC7 7D7D6D5D4D3D2D1D0任意值任意值 一般为一般为0 0 例如:要将例如:要将C C端口
45、的端口的PCPC3 3置置0 0,PCPC7 7置置l l,可用下列程序段实现,可用下列程序段实现。06H 0FH MOV AL,06H ;PC3置0控制字送AL MOX DX,PortCtr ;控制口地址 PortCtr送DX OUT DX,AL ;对PC3 完成置0操作 MOV AL,0FH ;PC7置1控制字送AL OUT DX,AL ;对PC7完成置1操作0 0 0 0 0 1 1 0 PC PC3 3置置00 0 0 0 1 1 1 1PC7置置1 6.2.5 8255A6.2.5 8255A的工作方式的工作方式 8255A8255A有有3 3种工作方式:方式种工作方式:方式0 0,
46、方式,方式l l和方式和方式2 2。A A端口:端口:3 3种方式中的任一种;种方式中的任一种;B B端口:方式端口:方式0 0和方式和方式1 1;C C瑞口:通常作为控制信号使用,配合瑞口:通常作为控制信号使用,配合A A端口和端口和B B端端口的工作。口的工作。1.1.方式方式0 0:基本的输入输出方式:基本的输入输出方式 方式方式0 0的基本定义如下:的基本定义如下:2 2个个8 8位的端口和位的端口和2 2个个4 4位的位的端口。都可以作为输入或输出。输出可以被锁存。输入端口。都可以作为输入或输出。输出可以被锁存。输入不能锁存。不能锁存。输入时序对各信号的要求是:输入时序对各信号的要求
47、是:地址信号要领先于地址信号要领先于RDRD信号。信号。RDRD信号有效到数据稳信号有效到数据稳定的最长时间为定的最长时间为250ns 250ns;读信号有效到数据稳定的时间内,应由输入设备读信号有效到数据稳定的时间内,应由输入设备解决数据锁存问题。解决数据锁存问题。RD输入数据输入数据 数据有效数据有效数据有效数据有效CS、A1、A0D7D0t tRRRRtIRtHRtARtRDtRAtDF方式方式0输入时序输入时序 输出时序对各信号的要求是:输出时序对各信号的要求是:地址信号必须在写信号地址信号必须在写信号WRWR之前有效,且维持到之前有效,且维持到WRWR撤消后撤消后的的20ns20ns
48、以后。以后。写脉冲写脉冲WRWR的宽度最小要求是的宽度最小要求是400ns400ns。数据必须在写信号之前数据必须在写信号之前100ns100ns时间出现在数据总线上;写信时间出现在数据总线上;写信号撤消后,数据的最小保持时间是号撤消后,数据的最小保持时间是30ns30ns。WRt tWWWW数据有效数据有效方式方式0输出时序输出时序CS、A1、A0数据有效数据有效D7D0输出数据输出数据 2 2方式方式1 1:选通的输入输出方式:选通的输入输出方式 在这种方式下,当在这种方式下,当A A端口和端口和B B端口进行输入输出时,必须利端口进行输入输出时,必须利用用C C端口提供的选通和应答信号。
49、端口提供的选通和应答信号。方式方式1 1的基本定义如下:分成的基本定义如下:分成2 2组组(A(A组和组和B B组组)。每组包含一个。每组包含一个8 8位的数据端口和位的数据端口和1 1个个4 4位的控制数据端口。位的控制数据端口。8 8位的数据端口既可以作为输入也可以作输出,输入和输出都位的数据端口既可以作为输入也可以作输出,输入和输出都可以被锁存。可以被锁存。4 4位的控制数据端口用于传送位的控制数据端口用于传送8 8位数据端口的控制和状态信位数据端口的控制和状态信息。息。(1)(1)选通的输入方式选通的输入方式 选通输入方式选通输入方式:规定是规定是PCPC3 3PCPC5 5分配给分配
50、给A A端口,端口,PCPC0 0PCPC2 2分配分配给给B B端口。端口。C C端口剩下的端口剩下的2 2位位PCPC6 6,PCPC7 7可可作为简单的输入输出作为简单的输入输出线使用,控制字的线使用,控制字的D D3 3位为位为l l时输入;时输入;D D3 3位为位为0 0时输出。时输出。A组工作于方式组工作于方式1输入的控制字输入的控制字 B组工作于方式组工作于方式1输入的控制字输入的控制字1 0 1 11/01 11 方式方式1端口端口A输入输入PC7、PC61输入,输入,0输出输出方式方式1端口端口B输入输入INTEAINTEBPC4PC5PC3PC6、PC7PA7PA0RDI