1、第第 7 7 章章 常用接口芯片常用接口芯片主主要要内内容容可编程并行接口芯片可编程并行接口芯片8255A计数计数/定时器定时器8253可编程中断控制器可编程中断控制器8259第第 7 7 章章 常用接口芯片常用接口芯片7.1可编程并行接口芯片可编程并行接口芯片8255A 并行输入并行输入/输出是在输出是在CPU与外设之间与外设之间同时同时把若干个二进制把若干个二进制位信息进行传送的数据传输方式。位信息进行传送的数据传输方式。优点:优点:传输速度快、效率高。传输速度快、效率高。缺点:缺点:传输需用的信号线较多。传输需用的信号线较多。适用于传输效率高适用于传输效率高而传输距离相对较短的场合。而传
2、输距离相对较短的场合。第第 7 7 章章 常用接口芯片常用接口芯片1、8255A的引脚与结构的引脚与结构A组8255A123456789PA3GNDPA4VCC8255AA口A0RESET848PA1PA0RDCSA1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2PA210111213141516171819202524232221262728293031323334353738394036PA5PA6PA7RESETD0D1D2D3D4D5D6PB7PB6PB5PB4PB3D7WR(a)C口C口B口(b)PA7 P A0D7 D0PC7 P C4PC3 P C04PB
3、7 P B0B组WRRDA1CS 三个三个8位并行端口(位并行端口(A、B、C););8位三态位三态数据线;地址信号数据线;地址信号A1A0经译码对应经译码对应A、B、C三个独立的数据端口以及一个公共的控制端口;三个独立的数据端口以及一个公共的控制端口;CS;RESET第第 7 7 章章 常用接口芯片常用接口芯片2、8255A的内部结构的内部结构内部内部DB(8)数据总线数据总线缓冲器缓冲器读读/写写控制逻辑控制逻辑RESETA0A组组端口端口A(8)A组组端口端口C(高(高4位)位)B组组端口端口C(低(低4位)位)B组组端口端口B(8)A组组控制部件控制部件PA7PA0PC7PC4PC3P
4、C0PB7PB0D7D0CSA1RDWRB组组控制部件控制部件1)端口)端口A、B、C都是都是8位端口,当端口位端口,当端口A和端口和端口B作为作为选通输入或输出选通输入或输出的数据端口的数据端口时,端口时,端口C的指定位与端口的指定位与端口A和端口和端口B配合配合使用,用作控制信号或状态信号。使用,用作控制信号或状态信号。2)A组和组和B组控制电路组控制电路根据根据CPU送来的工送来的工作方式控制字控制作方式控制字控制8255工作方式工作方式输入数据、输出数据、输入数据、输出数据、CPU发给发给8255的控制字的控制字通过它来传送通过它来传送负责管理负责管理8255A与与CPU之间的数据传送
5、过程之间的数据传送过程第第 7 7 章章 常用接口芯片常用接口芯片A1A0操操作作01000写端口写端口A01001写端口写端口B01010写端口写端口C01011写控制寄存器写控制寄存器00100读端口读端口A00101读端口读端口B00110读端口读端口C00111无操作无操作8255A各端口读各端口读/写操作时的信号关系写操作时的信号关系第第 7 7 章章 常用接口芯片常用接口芯片二、二、8255A的工作方式和控制字的工作方式和控制字1、8255A的工作方式的工作方式方式方式0方式方式1方式方式2基本输入输出方式,即无须联络就可以直接进行基本输入输出方式,即无须联络就可以直接进行8255
6、A与外设之间的数据与外设之间的数据输入或输出操作。输入或输出操作。A口、口、B口、口、C口的高口的高4位和低位和低4位均可设置为方式位均可设置为方式0。选通输入输出方式,此时选通输入输出方式,此时8255A的的A口和口和B口与外设之间进行输入或输出操口与外设之间进行输入或输出操作时,作时,需要需要C口的部分口的部分I/O线提供联络信号线提供联络信号。只有。只有A口和口和B口可工作于方式口可工作于方式1。选通双向输入输出方式,即同一端口的选通双向输入输出方式,即同一端口的I/O线既可以输入也可以输出,只有线既可以输入也可以输出,只有A口可工作于方式口可工作于方式2。此种方式下。此种方式下需要需要
7、C口的部分口的部分I/O线提供联络信号线提供联络信号。8255A在工作之前必须先写方式在工作之前必须先写方式控制字,指定控制字,指定A、B、C三个端三个端口各自的工作方式口各自的工作方式第第 7 7 章章 常用接口芯片常用接口芯片2、8255A的控制字的控制字1)工作方式工作方式选择控制字选择控制字A口有三种工作方式口有三种工作方式B口有两种工作方式口有两种工作方式C口只能工作在方式口只能工作在方式0必须为必须为1在端口在端口A工作于方式工作于方式1或方式或方式2,端口,端口B工作于方式工作于方式1时,时,C口部分口部分I/O线被定义为线被定义为8255A与外设之间进行数据传送的联络信号线,与
8、外设之间进行数据传送的联络信号线,此时,此时,C口剩下的口剩下的I/O线仍工作于方式线仍工作于方式0,是输入还是输出由方式控制字的,是输入还是输出由方式控制字的D0和和D3位决定位决定第第 7 7 章章 常用接口芯片常用接口芯片2)C口按位置位口按位置位/复位复位控制字控制字无关D70D6D5D4D3D2D1D0C口按位置位口按位置位/复位控制字的复位控制字的特征位特征位选择位置位/复位1置位0复位编码 选择位0 0 0 PC00 0 1 PC10 1 0 PC20 1 1 PC31 0 0 PC41 0 1 PC51 1 0 PC61 1 1 PC7要使端口要使端口C的的PC4置位的控制字为
9、置位的控制字为00001001B(09H)要使端口要使端口C的的PC4复位的控制字为复位的控制字为00001000B(08H)C口的按位置位口的按位置位/复位控制字复位控制字必须跟在方式选择控制字之后写入控制字寄存器,即必须跟在方式选择控制字之后写入控制字寄存器,即使仅使用该功能,也应先选送一个方式控制字。使仅使用该功能,也应先选送一个方式控制字。方式选择控制字方式选择控制字只需写入一次只需写入一次,之后,之后就可多次使用就可多次使用C口按位置位口按位置位/复位控制字对复位控制字对C口的某些位进行置口的某些位进行置1或清或清0操作。操作。第第 7 7 章章 常用接口芯片常用接口芯片三、各种工作
10、方式的功能三、各种工作方式的功能1、方式、方式0基本输入输出方式基本输入输出方式无需联络就可以直接进行无需联络就可以直接进行8255A与外设之间的数据输入与外设之间的数据输入/输输出操作。适用于输入出操作。适用于输入/输出设备始终处于准备好状态的场合输出设备始终处于准备好状态的场合A口、口、B口、口、C口的高四位和低四位口的高四位和低四位可以分别设置为输入可以分别设置为输入/输出输出数据从外设送往数据从外设送往8255A时为输时为输入入数据从数据从8255A送往外设时为输送往外设时为输出出 方式方式0也可以用于查询法谁的输入也可以用于查询法谁的输入/输出接口电路。输出接口电路。如图所示在向输出
11、设备送数据前,先通过如图所示在向输出设备送数据前,先通过PC7查询设查询设备状态,若设备准备好则从备状态,若设备准备好则从A口送出数据,然后通过口送出数据,然后通过PC1发选通信号使输出设备接收数据。从输入设备取发选通信号使输出设备接收数据。从输入设备取数据前,先通过数据前,先通过PC6查询设备状态,设备准备好后,查询设备状态,设备准备好后,再从再从B口读入数据,然后通过口读入数据,然后通过PC0发清除信号,以便发清除信号,以便输入后续字节。输入后续字节。C口联络线用户可自行定义口联络线用户可自行定义只能用于查询只能用于查询第第 7 7 章章 常用接口芯片常用接口芯片例题例题:如图所示,设:如
12、图所示,设8255A端口端口A工作在方式工作在方式0下,通下,通过过A口输出数据控制口输出数据控制8个指示灯轮流点亮。设个指示灯轮流点亮。设8255A端端口的地址为口的地址为04A0H04A6H试给出实现程序。试给出实现程序。第第 7 7 章章 常用接口芯片常用接口芯片 MOVDX,04A6H;控制口地址送控制口地址送DXMOVAL,80H;写工作方式控制字,方式写工作方式控制字,方式0输出输出OUTDX,ALMOVDX,04A0H;A端口地址送端口地址送DXMOVAL,0FE;低电平灯亮低电平灯亮AA1:OUTDX,AL;输出数据输出数据CALLDELAY;延时延时ROLAL,1;轮流点亮轮
13、流点亮JMPAA1第第 7 7 章章 常用接口芯片常用接口芯片delay proc neardelay proc near push ax push ax;mov ah mov ah,100100 mov al mov al,0 0 push cx push cx mov cx mov cx,axax loop$loop$pop cx pop cx pop ax pop ax ret retdelay endpdelay endp第第 7 7 章章 常用接口芯片常用接口芯片2、方式、方式1选通输入输出方式选通输入输出方式必须在联络信必须在联络信号控制下才能完成号控制下才能完成I/O操作操作C口
14、的某些口的某些I/O线已经被定义好线已经被定义好1)A口和口和B口均为输入口均为输入P253PC5PC4PA7PA0(PC4)INTEAIBFAINTRAI/OA口D7ASTBPC3PC7,PC6&RD10111/0D6D5D4D3D2D1D0A组工作方式控制字组工作方式控制字(A口工作于方式口工作于方式1输入;输入;PC5PC3用于用于A口的联络信号;口的联络信号;PC7和和PC6工作于方式工作于方式0,D3位决定是输入还是输出)位决定是输入还是输出)PC1PC2PB7PB0(PC2)INTEBIBFBINTRBB口BSTBPC0&RDD7111D6D5D4D3D2D1D0B组工作方式控制字
15、组工作方式控制字(B口工作于方式口工作于方式1输入;输入;PC2PC0用于用于B口的联络信号)口的联络信号)第第 7 7 章章 常用接口芯片常用接口芯片STB(Strobe):选通信号,输入,低电平有效。当:选通信号,输入,低电平有效。当STB有效时,允许外设数据进入端口有效时,允许外设数据进入端口A或端口或端口B的的 输入数据缓冲器。输入数据缓冲器。STBA接接PC4,STBB接接PC2。IBF(Input Buffer Full):输入缓冲器满信号,输出,高电平有效。当:输入缓冲器满信号,输出,高电平有效。当IBF有效时,表示当前已有一个新数据进入端有效时,表示当前已有一个新数据进入端 口
16、口A或端口或端口B缓冲器,尚未被缓冲器,尚未被CPU取走,外设不能送新的数据。一旦取走,外设不能送新的数据。一旦CPU完成数据读入操完成数据读入操 作后,作后,IBF便复位便复位(变变 为低电平为低电平)。INTE(Interrupt Enable):中断允许信号,高电平有效。它是:中断允许信号,高电平有效。它是8255A内部控制内部控制8255A是否发出中断请求信号是否发出中断请求信号(INTR)的控制信号。这是由软件通过对的控制信号。这是由软件通过对C口的置位或复位来实现对中断请求的允许或禁止的。口的置位或复位来实现对中断请求的允许或禁止的。端口端口A的中断请求的中断请求 INTRA可通过
17、对可通过对PC4的置位或复位加以控制:的置位或复位加以控制:PC4置置1,允许,允许INTRA工作;工作;PC4清清0,则屏蔽,则屏蔽INTRA。端口端口B 的中断请求的中断请求INTRB可通过对可通过对PC2的置位或复位加以控制。的置位或复位加以控制。INTR(Interrupt Request):中断请求信号,输出,高电平有效。在中断允许信号:中断请求信号,输出,高电平有效。在中断允许信号INTE=1且且IBF=1的条件下,由的条件下,由STB 信号的后沿信号的后沿(上升沿上升沿)产生,该信号可接至中断管理器产生,该信号可接至中断管理器8259A作中断请求。它表明数据端口已输入一个新数据。
18、作中断请求。它表明数据端口已输入一个新数据。若若CPU响应此中断请求,则读入数据端口的数据,并由响应此中断请求,则读入数据端口的数据,并由RD信号的下降沿使信号的下降沿使INTR复位复位(变为低电平变为低电平)。第第 7 7 章章 常用接口芯片常用接口芯片2)A口和口和B口均为输出口均为输出PC7PC6PA7PA0(PC6)INTEAINTRAI/OA口D7AACKPC3PC4,PC5&PC1PC2PB7PB0(PC2)INTEBINTRBB口PC0&WR10101/0D6D5D4D7110D6D5D4D3D2D1D0D3D2D1D0AOBFWRBACKBOBFA组工作方式控制字组工作方式控制
19、字(A口工作于方式口工作于方式1输出;输出;PC7、PC6和和PC3用用于于A口的联络信号;口的联络信号;PC5和和PC4工作于方式工作于方式0)B组工作方式控制字组工作方式控制字(B口工作于方式口工作于方式1输出;输出;PC2PC0用于用于B口的口的联络信号)联络信号)第第 7 7 章章 常用接口芯片常用接口芯片OBF(Output Buffer Full):输出缓冲器满信号,输出,低电平有效。当:输出缓冲器满信号,输出,低电平有效。当CPU把数据写入端口把数据写入端口A或或B的输出缓冲的输出缓冲器器 时,写信号时,写信号WR的上升沿把的上升沿把OBF置成低电平,通知外设到端口置成低电平,通
20、知外设到端口A或或B来取走数据,当外设取走数据时来取走数据,当外设取走数据时8255A 发应答信号发应答信号ACK,ACK的下降沿使的下降沿使OBF恢复为高电平。恢复为高电平。ACK(Acknowledge):外设应答信号,输入,低电平有效。:外设应答信号,输入,低电平有效。ACK有效时表示有效时表示CPU输出到输出到8255A的数据已被外设取走。的数据已被外设取走。INTE(Interrupt Enable):中断允许信号,与方式:中断允许信号,与方式1输入类似,输入类似,端口端口A的输出中断请求的输出中断请求INTRA可以通过对可以通过对PC6的置位的置位 或复位来加以允许或禁止。或复位来
21、加以允许或禁止。端口端口B的输出中断请求信号的输出中断请求信号INTRB可以通过对可以通过对PC2的置位或复位来加以允许或禁止。的置位或复位来加以允许或禁止。INTR(Interrupt Request):中断请求信号,输出,高电平有效。该信号由:中断请求信号,输出,高电平有效。该信号由ACK的后沿的后沿(上升沿上升沿)在在INTE=1且且OBF=1 的条件下产生,该信号使的条件下产生,该信号使8255A向向CPU发出中断请求。若发出中断请求。若CPU响应此中断请求,则向数据口写入一新的数据,响应此中断请求,则向数据口写入一新的数据,写信号写信号WR上升沿上升沿(后沿后沿)使使INTR复位,变
22、为低电平。复位,变为低电平。第第 7 7 章章 常用接口芯片常用接口芯片3)混合输入与输出)混合输入与输出B口输出PA7PA0D7110D6D5D40111/0D3D2D1D0ASTB8255APC4IBFAI/OA口输入工作方式控制字工作方式控制字PC5PC3INTRAPB7PB0PC2PC1PC0PC6,PC7BOBFBACKINTRBRDWRB口输入PA7PA0D7111D6D5D40101/0D3D2D1D0AOBF8255APC7I/OA口输出工作方式控制字工作方式控制字PC6PC3INTRAPB7PB0PC2PC1PC0PC4,PC5BSTBINTRBRDWRAACKIBFB第第
23、7 7 章章 常用接口芯片常用接口芯片3、方式、方式2选通双向输入输出方式选通双向输入输出方式IBFI/OINTR(PC6)1PC3PA7PA0&PC7PC6INTE1(PC4)INTE2PC4PC5&PC2PC0ACKOBFSTBRDWRD711/01/01/011/0工作方式控制字工作方式控制字D6D5D4D3D2D1D0输出的中断输出的中断允许信号允许信号输入的中断允许信号输入的中断允许信号可以作为可以作为B口工作方式口工作方式1时的联络线,时的联络线,也可以独立工作于方式也可以独立工作于方式0第第 7 7 章章 常用接口芯片常用接口芯片四、四、8255A的应用举例的应用举例8255A初
24、始化编程。设初始化编程。设8255A的的A口工作方式口工作方式1输出,输出,B口工作方式口工作方式1输入,输入,PC4和和PC5输入,输入,禁止禁止B口中断。设片选信号口中断。设片选信号CS由由A9 A2=10000000确定。试编写程序对确定。试编写程序对8255A进行初始化。进行初始化。INTR外设外设I/OIBFBRDWR8255AA0INTRA(PC3)IORIOW译译码码A2A9PA7PA0PC7PC6PC3PB7PB0PC2PC1PC4,PC5AOBFAACKBSTBD7D0A0A1A1CS控制字控制字特征位特征位D7111011工作方式控制字工作方式控制字D6D5D4D3D2D1
25、D00A口口方式方式1A口口输出输出PC4,PC5输入输入B口口输入输入任任意意B口口方式方式1MOVAL,10101110B;控制字送;控制字送ALMOVDX,1000000011B;8255A控制字寄存器地址送控制字寄存器地址送DX,A9A2,A1A0OUTDX,AL;控制字送;控制字送8255A的控制寄存器的控制寄存器MOVAL,00001101B;PC6置置1,允许,允许A口中断口中断OUTDX,ALMOVAL,00000100B;PC2置置0,禁止,禁止B口中断(口中断(P334)OUTDX,AL 第第 7 7 章章 常用接口芯片常用接口芯片练习:练习:设设8255A端口的地址为端口
26、的地址为0D0H0A6H,若系统要求若系统要求8255A的的A口为方式口为方式1输出,输出,B口为方式口为方式0输入,输入,C口高四位为输出,低四位为输入,且要求对口高四位为输出,低四位为输入,且要求对C口口PC5置位,试完置位,试完成对成对8255A的初始化。的初始化。方式选择控制字方式选择控制字方式控制字方式控制字的特征位的特征位D7A口方式口方式11D6D5D4D3D2D1D0A口输出口输出A组组PC7PC4输出输出B口方式口方式0B口输入口输入B组组PC3PC0输入输入0100011无关D70D6D5D4D3D2D1D0C口按位置位口按位置位/复位控制字复位控制字的特征位的特征位1置位
27、 编码 选择位1 0 1 PC51101初始化程序:初始化程序:MOVAL,0A3HOUT0D6H,AL ;送方式控制字;送方式控制字MOV AL,0BHOUT 0D6H,AL ;送对;送对C口置位口置位/复位控制字(到控制寄存器中)复位控制字(到控制寄存器中)第第 7 7 章章 常用接口芯片常用接口芯片1 1、如下图所示,、如下图所示,82558255的的PAPA口与口与8 8个发光二极管相连接,个发光二极管相连接,PBPB口与口与8 8个个DIPDIP开关相连接。开关相连接。(1)(1)请编写初始化程序段,并编程序段以查询方式实现以下功能:当请编写初始化程序段,并编程序段以查询方式实现以下
28、功能:当8 8个个DIPDIP开关中某开关中某个按键闭合,则个按键闭合,则PAPA口对应号码的发光二极管被点亮。(不考虑抖动)。口对应号码的发光二极管被点亮。(不考虑抖动)。(2)(2)编写循环编写循环彩灯程序,初始时彩灯程序,初始时D7D7亮,其余不亮,亮,其余不亮,D7D7亮一秒后移位一次,亮一秒后移位一次,D6D6亮,其余不亮,以此类亮,其余不亮,以此类推每隔一秒移位一次,每移位推每隔一秒移位一次,每移位8 8次为一个循环,共循环次为一个循环,共循环8 8次,要求用汇编语言写出满足次,要求用汇编语言写出满足上述要求的程序段(已知一个延时上述要求的程序段(已知一个延时1 1秒的子程序入口地
29、址为秒的子程序入口地址为DELAYISDELAYIS)。)。第第 7 7 章章 常用接口芯片常用接口芯片答:(答:(1)8255的的A口、口、B口、口、C口及控制口地址分别为:口及控制口地址分别为:F0H、F2H、F4H、F6H。MOVAL,1000X01XB;初始化初始化A口方式口方式0输出,输出,B口方式口方式0输入输入OUT0F6H,ALINAL,0F2H;读入按键状态;读入按键状态MOVBL,0FFHSUBBL,ALMOVAL,BLOUT0F0H,AL;设置;设置LED状态状态(2)分析:)分析:PA口工作在方式口工作在方式0输出,高电平灯亮输出,高电平灯亮MOVAL,10000000
30、B;初始化初始化A口方式口方式0输出输出OUT0F6H,ALMOVCX,8;循环初始化循环初始化MOVAL,80HN0:OUT0F0H,AL;数据输出;数据输出CALLDELAY1S;延时延时1秒秒RORAL,1;循环右移,为下次输出准备循环右移,为下次输出准备JNCN0LOOPN0;CF=1,循环计数减,循环计数减1第第 7 7 章章 常用接口芯片常用接口芯片例:利用例:利用8255A对对44非编码键盘进行管理非编码键盘进行管理0#8255APA0CPU总线总线行行05VPA1PA2PA3PB0PB1PB2PB312#1#13#2#14#3#15#行行1行行2行行3列列0列列1列列2列列3A
31、口工作于方式口工作于方式0输出,输出,B口工作于方式口工作于方式0输入,输入,则工作方式控制字为则工作方式控制字为10000010A口对应的地址为口对应的地址为80HB口对应的地址为口对应的地址为81H控制寄存器的地址为控制寄存器的地址为83H程序流程:程序流程:是否有键按下(调用延时程序)是否有键按下(调用延时程序)判断行号判断行号判断列号判断列号调用相应的子程序调用相应的子程序第第 7 7 章章 常用接口芯片常用接口芯片APORTEQU8000H;定义端口的符号地址;定义端口的符号地址BPORTEQU8001HCPORTEQU8002HCTRL_PEQU8003HDATASEGMENTTA
32、B1DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,31HDATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXMOVAL,90H;设置;设置8255A方式字方式字MOVDX,CTRL_POUTDX,ALADD1:MOVDX,APORTINAL,DX;取键盘信息;取键盘信息ANDAL,0FH;屏蔽高四位;屏蔽高四位MOVBX,OFFSETTAB1;取断码表首地址;取断码表首地址XLAT;查表得段码;查表得段码MOVDX,BPORT;输出显示;输出
33、显示OUTDX,ALMOVCX,0600HADD2:LOOPADD2JMPADD1;循环延时;循环延时CODEENDSENDSTART第第 7 7 章章 常用接口芯片常用接口芯片7.2可编程定时器可编程定时器8253第第 7 7 章章 常用接口芯片常用接口芯片定时与计数技术定时与计数技术动态存储器的刷新定时、系统日历时钟动态存储器的刷新定时、系统日历时钟的计时、定时中断、定时检测、定时扫的计时、定时中断、定时检测、定时扫描,对外界事件的计数!描,对外界事件的计数!定时方法定时方法软件定时软件定时不可编程的硬件定时不可编程的硬件定时可编程的硬件定时可编程的硬件定时借助于借助于CPU执行每条指令都
34、需要固定时间来实现执行每条指令都需要固定时间来实现但是占用但是占用CPU资源,降低资源,降低CPU利用率利用率硬件电路设计好之后,无法更改定时值及定时范围硬件电路设计好之后,无法更改定时值及定时范围定时值和定时范围可由软件来控制和修改定时值和定时范围可由软件来控制和修改Intel公司生产的公司生产的8253/8254通用定时通用定时/计数器计数器在在8086/8088系统中广泛采用系统中广泛采用第第 7 7 章章 常用接口芯片常用接口芯片一、可编程定时一、可编程定时/计数器的基本功能计数器的基本功能作为作为计数器计数器:先设置好计数初值后,计数器开始减:先设置好计数初值后,计数器开始减1,当减
35、为,当减为“零零”时,输出一个时,输出一个计数回零信号便结束。计数回零信号便结束。作为作为定时器定时器:先设置好定时常数后,定时器开始减:先设置好定时常数后,定时器开始减1,并按定时常数不断的输出为,并按定时常数不断的输出为时钟周期整数倍的定时间隔。一般定时器具有自动重装入功能,当定时常数减为时钟周期整数倍的定时间隔。一般定时器具有自动重装入功能,当定时常数减为“零零”后,自动装入定时常数的初值,重新开始新的定时。后,自动装入定时常数的初值,重新开始新的定时。二、二、8253的结构与功能的结构与功能1、8253的引脚的引脚24脚双列脚双列直插式芯直插式芯片片用用5V电源电源供电供电芯片内部有三
36、个相芯片内部有三个相互独立的互独立的16位定时位定时/计数器计数器第第 7 7 章章 常用接口芯片常用接口芯片数据线数据线双向双向三态三态8253124223322421520619718817916101511141213D7CLK0OUT0GATE0GNDOUT1VCCA1CLK2OUT2GATE2CLK1GATE1D6D5D4D3D2D1D0WRRDCSA00#8253D7D0A0CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2WRRDA1CS1#2#片选,低电平有效由CPU输出的地址经地址译码器产生地址线地址线A0,A1:这两根线接到系统地址总线的这两根线
37、接到系统地址总线的A0,A1上,当上,当CS为低电平,且为低电平,且8253被选中时,用它们来选择被选中时,用它们来选择8253内部的四个寄存器。内部的四个寄存器。控制时钟脉冲信号时钟脉冲信号CLK0CLK2:计数器:计数器0、计数器、计数器1和计数器和计数器2的时钟输入端。脉冲可以是系统时钟的时钟输入端。脉冲可以是系统时钟(或系统时钟的分或系统时钟的分频脉冲频脉冲)或其他任何脉冲源所提供的脉冲。若或其他任何脉冲源所提供的脉冲。若CLK是由精确的时钟脉冲提供,则是由精确的时钟脉冲提供,则8253作为定时器使用;若作为定时器使用;若CLK是是由外部事件输入的脉冲,则由外部事件输入的脉冲,则825
38、3作为计数器使用。作为计数器使用。门控脉冲信号门控脉冲信号GATE0GATE2:计数器:计数器0、计数器、计数器1和计数器和计数器2的门控制脉冲输入端,是由外部送入的门控脉冲,的门控制脉冲输入端,是由外部送入的门控脉冲,该信号的作用是该信号的作用是控制启动控制启动定时器定时器/计数器工作。计数器工作。输出信号输出信号OUT0OUT2:计数器:计数器0、计数器、计数器1和计数器和计数器2的输出端。当计数器计数到的输出端。当计数器计数到0时,该端输出一时,该端输出一标志信号标志信号,从而产生不同工作方式时的输出波形。从而产生不同工作方式时的输出波形。第第 7 7 章章 常用接口芯片常用接口芯片2、
39、8253的内部结构的内部结构A1CLK0OUT0数据总线数据总线缓冲器缓冲器读读/写逻辑写逻辑控制字控制字寄存器寄存器计数器计数器2号号计数器计数器1号号计数器计数器0号号8888CLK1GATE1OUT1GATE0D7D0CSA0RDWR8CLK2GATE2OUT2内内部部总总线线数据总线缓冲器、读数据总线缓冲器、读/写逻辑、控制字寄存器、写逻辑、控制字寄存器、3个独立的个独立的16位计数器位计数器第第 7 7 章章 常用接口芯片常用接口芯片计数器内部结构示意图计数器内部结构示意图第第 7 7 章章 常用接口芯片常用接口芯片1)3个独立的个独立的16位计数器位计数器16位的位的计数初值寄存器
40、计数初值寄存器CR和和16位的输出锁存位的输出锁存寄存器寄存器OL共同占用一个共同占用一个I/O端口地址端口地址,CPU用输出指令向用输出指令向CR预置计数初值,用输入指令预置计数初值,用输入指令读回读回OL中的数值,这两个寄存器都没有计数中的数值,这两个寄存器都没有计数功能,只起锁存作用。功能,只起锁存作用。16位的减位的减1计数器计数器CE执行计数操作,其操作方执行计数操作,其操作方式受控制寄存器控制,最基本的操作是:接受式受控制寄存器控制,最基本的操作是:接受计数初值寄存器的初值,对计数初值寄存器的初值,对CLK信号进行减信号进行减1计数,计数,把计数结果送输出锁存寄存器中锁存把计数结果
41、送输出锁存寄存器中锁存。包括:包括:一个一个8位的控制寄存器位的控制寄存器一个一个16位的计数初值寄存器位的计数初值寄存器CR一个一个16位的减位的减1计数器计数器CE一个一个16位的输出锁存寄存器位的输出锁存寄存器OL第第 7 7 章章 常用接口芯片常用接口芯片2)控制寄存器)控制寄存器当当A1和和A0均为均为1时,控制寄存器被访问。它从数据总线缓冲器接收来自时,控制寄存器被访问。它从数据总线缓冲器接收来自CPU的控制字并的控制字并寄存起来。该控制字决定了每个计数器的操作方式、选择二进制或寄存起来。该控制字决定了每个计数器的操作方式、选择二进制或BCD数的计数,并数的计数,并控制每个计数初值
42、寄存器的写入操作。控制每个计数初值寄存器的写入操作。控制寄存器只能写入,不能读出。控制寄存器只能写入,不能读出。3)数据总线缓冲器)数据总线缓冲器是是8253和和CPU数据总线的接口部件,是数据总线的接口部件,是8位、双向、三态的缓冲器,位、双向、三态的缓冲器,CPU访问访问8253时时所有的数据都是经过数据总线缓冲器传送。所有的数据都是经过数据总线缓冲器传送。4)读)读/写逻辑写逻辑读读/写逻辑的任务是接收来自写逻辑的任务是接收来自CPU的控制信号,完成对的控制信号,完成对8253内部操作的控制。内部操作的控制。这些控制信号包括读信号这些控制信号包括读信号RD、写信号、写信号WR、片选信号、
43、片选信号CS以及用于片内寄存器寻址的以及用于片内寄存器寻址的地址信号地址信号A0和和A1。当片选信号有效,即。当片选信号有效,即CS=0时,读写逻辑才能工作。该时,读写逻辑才能工作。该控制逻辑控制逻辑根据读根据读/写命令及送来的地址信息写命令及送来的地址信息,决定三个计数器和控制寄存器中的哪一个工作,决定三个计数器和控制寄存器中的哪一个工作,并控制内部总线上数据传送的方向。并控制内部总线上数据传送的方向。第第 7 7 章章 常用接口芯片常用接口芯片8253共占用共占用4个个I/O地址地址A1A000,选中计数器,选中计数器0A1A001,选中计数器,选中计数器1A1A010,选中计数器,选中计
44、数器2A1A011,3个计数器内的个计数器内的3个控制寄存器的共用地址,由控个控制寄存器的共用地址,由控 制字中的最高两位编码决定哪个计数器制字中的最高两位编码决定哪个计数器第第 7 7 章章 常用接口芯片常用接口芯片8253计数器工作之前需要进行计数器工作之前需要进行初始化初始化:CPU用输出指令向控制寄存器送控制字,然后用输出指令向计数初值寄存器预置初始值;用输出指令向控制寄存器送控制字,然后用输出指令向计数初值寄存器预置初始值;启动工作后,启动工作后,CR中的初值就送入减中的初值就送入减1计数器计数器CE对对CLK输入的计数输入的计数/定时脉冲信号进行定时脉冲信号进行减减1计数;计数;当
45、当CE中的内容减为中的内容减为0,表示计数,表示计数/定时到,则定时到,则OUT端输出信号。端输出信号。输出信号的波形形式由输出信号的波形形式由工作方式工作方式决定。决定。三、三、8253的编程的编程1、8253的控制字格式的控制字格式第第 7 7 章章 常用接口芯片常用接口芯片2、8253的读的读/写操作写操作1)写操作:写入控制字或写入计数初值)写操作:写入控制字或写入计数初值注意:注意:对每个计数器,必须对每个计数器,必须先写控制字,后写计数初值先写控制字,后写计数初值。因为后者的格式是由前者决定的。因为后者的格式是由前者决定的。写入的计数初值必须符合控制字写入的计数初值必须符合控制字(
46、D5D4两位两位)决定的决定的格式格式。16位数据应先写低位数据应先写低8位,再写位,再写 高高8位。位。2)读操作:读出某计数器的当前计数值到)读操作:读出某计数器的当前计数值到CPU中中方法方法先使计数器停止计数(在先使计数器停止计数(在GATE端加低电平或关闭端加低电平或关闭CLK脉冲)脉冲)在计数的过程中不影响在计数的过程中不影响CE的计数而读取数值的计数而读取数值根据送入的控制字中的根据送入的控制字中的D5D4位位的状态,用输入指令读的状态,用输入指令读CE的的内容。在计数过程中,内容。在计数过程中,OL的的内容是跟随内容是跟随CE内容变化的。内容变化的。此时此时CE不再计数,故可稳
47、定不再计数,故可稳定地读出地读出OL(即即CE)的内容。的内容。应先对应先对8253写入一个具有锁存功能的控制字,即写入一个具有锁存功能的控制字,即D5D4位应为位应为00,这样就可以,这样就可以将当前的将当前的CE内容锁存入内容锁存入OL中,然后再用输入指令将中,然后再用输入指令将OL的内容读到的内容读到CPU中。中。当当CPU读取了计数值后,或对计数器重新进行初始化编程后,读取了计数值后,或对计数器重新进行初始化编程后,8253会自动解会自动解除锁存状态,除锁存状态,OL中的值又随减中的值又随减1计数器计数器CE值变化。值变化。第第 7 7 章章 常用接口芯片常用接口芯片例:设设8253芯
48、片的端口地址为芯片的端口地址为388H 38BH。现要求计数器。现要求计数器0工作在方式工作在方式3,计数,计数初值为初值为2354,十进制计数;计数器,十进制计数;计数器1工作在方式工作在方式2,计数初值为,计数初值为18H,二进制,二进制计数。试根据上述要求编写初始化程序及读取计数器计数。试根据上述要求编写初始化程序及读取计数器0当前计数值的程序。当前计数值的程序。;计数器计数器0的初始化程序的初始化程序MOVDX,38BH;给计数器;给计数器0送控制字送控制字MOVAL,00110111BOUTDX,ALMOVDX,388H;送计数初值的低;送计数初值的低8位位MOVAL,54HOUTD
49、X,ALMOVAL,23H;送计数初值的高;送计数初值的高8位位OUTDX,AL第第 7 7 章章 常用接口芯片常用接口芯片;计数器;计数器1的初始化程序的初始化程序MOVDX,38BH;给计数器;给计数器1送控制字送控制字MOVAL,01010100BOUTDX,ALMOVDX,389H;计数初值送低;计数初值送低8位位MOVAL,18HOUTDX,AL;计数器;计数器0当前计数值读出程序当前计数值读出程序MOVDX,38BH;送计数器;送计数器0当前计数值锁存命令当前计数值锁存命令MOVAL,00H;使;使D5D4为为00,具有锁存功能,具有锁存功能OUTDX,ALMOVDX,388H;读
50、出当前计数值的低;读出当前计数值的低8位位INAL,DXMOVCL,ALINAL,DX;读出当前计数值的高;读出当前计数值的高8位位MOVCH,AL第第 7 7 章章 常用接口芯片常用接口芯片四、四、8253的工作方式的工作方式同一个芯片中的三个计数器,可以分别选择不同的工作方式同一个芯片中的三个计数器,可以分别选择不同的工作方式1、方式、方式0计数结束产生中断计数结束产生中断写入方式写入方式0的控制字的控制字(CW)后,其输出端变低。再写入计数初值后,其输出端变低。再写入计数初值N(图中图中N=5),在写信号,在写信号WR以后经过以后经过CLK的的一个上升沿和一一个上升沿和一个下降沿个下降沿