




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第7 7章章 可编程接口芯片可编程接口芯片 n可编程接口的概念n可编程并行输入输出接口芯片可编程并行输入输出接口芯片8255An可编程定时计数器接口芯片可编程定时计数器接口芯片8253 n可编程接口的概念可编程接口的概念 一个简单的具有输入功能和输出功能的可编程接口电路如下图,它包括一个输入接口,其组成主要是八位的三态门;一个输出接口,其组成主要是八位的锁存器;另外还有八位的多路转换开关及控制这个开关的寄存器FF。输入接口输出接口寄存器FF多路转换开关I/O线数据总线8888 用户对寄存器FF写入的内容称为命令字或方式控制字,而寄存器FF称为命令寄存器,相应的端口称为命令端口或控制端口。对可
2、编程芯片初始化过程实际上就是对可编程芯片初始化过程实际上就是对芯片的控制端口写入各种命令字的操对芯片的控制端口写入各种命令字的操作过程。作过程。 n 将要学习的可编程接口芯片如下:n8255A 并行I/O接口n8253 计数器/定时器n8251 串行I/On8259A 中断控制器 7.1 可编程并行输入输出接口芯片可编程并行输入输出接口芯片8255A一、功能一、功能 8255A是一种通用的可编程并行IO接口芯片,广泛用于几乎所有系列的微型机系统中,如8086、MCS51、Z80CPU系统等。8255A具有3个带锁存或缓冲的双向数据端口,可与外设并行进行数据交换。用户可用程序来选择多种操作方式,
3、通用性强。使用灵活,可为CPU与外设之间提供并行输入输出通道。 二、二、 8255A的内部结构的内部结构 n数据端口数据端口A、B、Cn端口An端口Bn端口CnA组控制和组控制和B组控制组控制n读读/写控制逻辑电路写控制逻辑电路n数据总线缓冲器数据总线缓冲器通常使用方法:1、A、B、C三个端口各自独立工作。2、端口A、B作为独立的输入或者输出端口端口C配合端口A、B 三、三、 8255A的管脚分配的管脚分配 数据数据总线总线缓冲器缓冲器内部控制线内部控制线内部数据线内部数据线D0D7A组组控制控制A组组端口端口C上部上部B组组控制控制B组组端口端口BB组组端口端口C下部下部读写读写控制控制逻辑
4、逻辑PC0PC3CL口口PB0PB7B口口PC4PC7CH口口PA0PA7A口口-RD-WRA0A1-CSRESETA组组端口端口A 1、与外设连接的管脚、与外设连接的管脚 我们已经知道我们已经知道8255A8255A有三个数据端口,每个有三个数据端口,每个端口是端口是8 8位的,由此可推算与外设相连接的管位的,由此可推算与外设相连接的管脚共有脚共有2424位。位。其中其中A A口有口有PAPA7 7PAPA0 0八个八个I/OI/O引脚,引脚,B B口有口有PBPB7 7PBPB0 0八个八个I/OI/O引脚,引脚,C C口有口有PCPC7 7PCPC0 0八个八个I/OI/O引脚。特别地对
5、于引脚。特别地对于PCPC7 7PCPC0 0,其中可有若干根,其中可有若干根复用线可用于复用线可用于“联络联络”信号或状态信号,其具信号或状态信号,其具体定义与端口的工作方式有关。体定义与端口的工作方式有关。 2、与、与CPU连接的管脚连接的管脚 包括数据线包括数据线D D7 7D D0 0,读写控制线和,读写控制线和,复位线复位线RESETRESET,以及和,以及和CPUCPU地址线相连接地址线相连接的片选信号、端口地址控制线的片选信号、端口地址控制线A A0 0和和A A1 1。 CS A1 A0I/O地址地址读操作读操作RD写操作写操作WR0 0 00 0 10 1 00 1 160H
6、61H62H63H读端口读端口A读端口读端口B读端口读端口C非法非法写端口写端口A写端口写端口B写端口写端口C写方式字和位控字写方式字和位控字 3、电源线和地线、电源线和地线8255A8255A的电源引脚为的电源引脚为V VCCCC和和GNDGND。V VCCCC为电源为电源线,一般取线,一般取5V 5V 。GNDGND为电源地线。为电源地线。四、四、 8255A的编程的编程 所谓所谓8255A8255A编程,就是用户在使用编程,就是用户在使用82558255前,用户可用软件来定义端口的工前,用户可用软件来定义端口的工作方式,选择所需要的功能。作方式,选择所需要的功能。 8255A的控制字 控
7、制字分为两类:n各端口的方式选择控制字nC端口按位置1/清0控制字 (1)方式选择控制字方式选择控制字 有三种基本工作方式:有三种基本工作方式: 方式0基本的输入/输出方式 方式1选通的输入/输出方式 方式2双向传输方式 只有端口A能工作在方式2 同一组的两端口可分别工作在输入和输出方式 方式选择控制字的格式方式选择控制字的格式 向控制口写方式字向控制口写方式字示例示例n要求:nA口:方式1输入nCH口:输出nCL口:输入nB口:方式0输出n方式控制字:1 0110 001 B或B1Hn初始化的程序段:mov dx,0fffeh;假设控制端口为FFFEHmov al,0b1h;方式控制字out
8、 dx,al;送到控制端口(2).C口置口置“1”清清“0”控制字控制字 置置“1”又称为置位操作,而清又称为置位操作,而清“0”称为复位操作。称为复位操作。 (1)方式)方式0:基本输入输出方式:基本输入输出方式特点:特点:24条条I/O线由用户自定义使用,无固定的联络线由用户自定义使用,无固定的联络信号线。信号线。应用:无条件输入输出应用:无条件输入输出 查询输入输出查询输入输出五、五、8255A的的三种工作方式及举例三种工作方式及举例 8255方式0应用举例(简单输入输出)PB7PB0PA7PA08 位开关8 位 LED指示灯RESET 接系统RESET 信号线蜂鸣片按钮8255APC0
9、PC4数据总线D7D0CS218255方式0应用举例(简单输入输出)例:请用8255和24个发光二极管,制作一个节日彩灯,设计方案,画出硬件连接图并写出初始化程序和驱动程序。初始化程序: MOV AL,80H 10000000 OUT 87H,AL驱动程序:LIGHT: MOV AL,00H OUT 84H,AL OUT 85H,AL OUT 86H,AL228255方式0应用举例(简单输入输出) MOV AL,FFH OUT 84H,AL CALL DELAY MOV AL,00H OUT 84H,AL MOV AL,FFH OUT 85H,AL CALL DELAY MOV AL,00H
10、OUT 85H,AL MOV AL,FFH OUT 86H,AL238255方式0应用举例(简单输入输出) CALL DELAY MOV AL,00H OUT 86H,AL JMP LIGHT 例例1:8255A8255A的的A A口和口和B B口工作在方式口工作在方式0 0,A A口为输入端口,接有四个开关。口为输入端口,接有四个开关。B B口为口为输出端,接有一个七段发光二极管,连输出端,接有一个七段发光二极管,连接电路如图所示。试编一程序要求七段接电路如图所示。试编一程序要求七段发光二极管显示开关所拨通的数字。发光二极管显示开关所拨通的数字。 agDPfedbc电路LED数码管段码表 m
11、ov 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,al(2)方式)方式1:选通输入输出方式:选通输入输出方式特点:特点:24条条I/O线中有固定的联络信号线(线中有固定的联络信号线(C口口提供),被规定的联络信号线用户不能随便使提供),被规定的联络信号线用户不能随便使用;用;A、B口作为数据端口,口作为数据端口,C口提供固定的联口提供固定的联络信号
12、线。络信号线。应用:可用于查询方式或中断方式。应用:可用于查询方式或中断方式。方式1输入引脚:端口APC4PC5PC3PA7PA0INTEAIBFAINTRA-STBA中断允许触发器中断允许触发器输入缓冲器满信号输入缓冲器满信号表示表示A口已经接收数据口已经接收数据数据选通信号数据选通信号表示外设已经准备好数据表示外设已经准备好数据中断请求信号中断请求信号请求请求CPU接收数据接收数据外设数据外设数据征用征用C口口3引脚引脚-RD方式1输入引脚:端口BPC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB中断允许触发器中断允许触发器输入缓冲器满信号输入缓冲器满信号表示表示B口已经接
13、收数据口已经接收数据数据选通信号数据选通信号表示外设已经准备好数据表示外设已经准备好数据中断请求信号中断请求信号请求请求CPU接收数据接收数据外设数据外设数据征用征用C口口3引脚引脚-RD方式1中断控制n8255A的中断由中断允许触发器INTE控制n置位允许中断,复位禁止中断n对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输入信号的哪一位,只要对那一位置位/复位就可以控制INTE触发器n选通输入方式下n端口A的INTEA对应PC4n端口B的INTEB对应PC2读入状态字读入状态字 当当8255A8255A由程序设定在方式由程序设定在方式1 1或方式或
14、方式2 2工作工作时,时,C C口就根据不同的情况,产生或接收口就根据不同的情况,产生或接收“联络联络”信号。如果这时我们对信号。如果这时我们对C C口进行读操口进行读操作,则读出的内容就包含两部分内容,一部作,则读出的内容就包含两部分内容,一部分是那些作为分是那些作为I/OI/O线上的内容,另一部分是线上的内容,另一部分是与与“联络联络”状态有关的内容。状态有关的内容。 D7D6D5D4D3D2D1D0方式方式1 输入(输入( A口、口、B口)口)I/OI/OIBFAINTEA INTRAINTEBIBFBINTRB方式方式1 输出(输出( A口、口、B口)口)OBFAINTEAI/OI/O
15、INTRAINTEBOBFBINTRB方式方式2 双向(双向(A口)口)OBFAINTE1IBFAINTE2INTRA从端口C读到状态字A组控制组控制B组控制组控制方式1输出引脚:端口APC6PC7PC3PA7PA0INTEAOBFAINTRAACKA输出缓冲器满信号输出缓冲器满信号表示表示CPU已经输出了数据已经输出了数据外设响应信号外设响应信号表示外设已经接收到数据表示外设已经接收到数据中断请求信号中断请求信号请求请求CPU再次输出数据再次输出数据征用征用C口口3引脚引脚中断允许触发器中断允许触发器通过位控通过位控PC6 设置设置INTEA输出数据输出数据-WR方式1输出引脚:端口BPC2
16、PC1PC0PB7PB0INTEBOBFBINTRBACKB输出缓冲器满信号输出缓冲器满信号表示表示CPU已经输出了数据已经输出了数据外设响应信号外设响应信号表示外设已经接收到数据表示外设已经接收到数据中断请求信号中断请求信号请求请求CPU再次输出数据再次输出数据征用征用C口口3引脚引脚中断允许触发器中断允许触发器通过位控通过位控PC2设置设置INTEB输出数据输出数据-WR方式1时输出端口对应的控制信号和状态信号 nOBF输出缓冲器满信号,低电平有效n8255A输出给外设的一个控制信号,当其有效时,表示CPU已将输出数据锁存在8255A指定的端口,外设可以来取nACK响应信号,低电平有效n外
17、设提供的响应信号,通知8255A其端口数据已被外设接收nINTR中断请求信号,高有效n当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据端口端口A的的INTEA对应对应PC6,端口端口B的的INTEB对应对应PC2例例2:8255A8255A的的A A口和口和B B口口分别工作在方式分别工作在方式1 1和方和方式式0 0,A A口为输入端口口为输入端口,接有,接有8 8个开个开关。关。B B口口为输出端,接有为输出端,接有8 8个发个发光二极管,连接电路光二极管,连接电路如图所示。现要求用如图所示。现要求用方式方式1 1把改变后的键信把改变后的键信息输入到
18、息输入到CPUCPU并通过并通过B B口显示。口显示。 8 82 25 55 5A AKK7K0PA0PA7PC4PB0PB7PC5LED0LED7LEDSTBAIBFA这个系统的工作过程如下:1、用户通过改变K0K7,产生新的键信息;2、按下开关K,产生选通信号,数据进入A口的缓冲器, 此步骤实际上告诉CPU,8255的A口来了一个新数据;3、IBFA有效使LED点亮。这里含有两个信息,一个是8255A 通知CPU其A口来了一个新数据,另一个是告诉用户CPU尚未取走这个这个数据,用户不得再送其他数据;4、CPU取走这个数据,LED熄灭;5、转步骤1。设8255的I/O地址分布为88H8EH,
19、相应的程序段如下:(查询方式查询方式)mov al,10111001b;设置A口为方式1的输入,out 8eh,alloop1: in al,8ch;取C口的状态线test al,00100000b;测试IBFA信息jz loop1 ;等待用户设定新的键值mov cx,0ffffh ;延时,LED灯亮(相对于步骤3)loop2:loop loop2in al,88h;取数。LED灯灭(相对于步骤4)out 8ah,al ;更新B口的显示jmp loop1 ;重复 例例3:8255A的的A口工作在方式口工作在方式1的的输出,接有输出,接有8个发个发光二极管,现要求光二极管,现要求把内存中的把内存
20、中的10个个数数,通过通过A口发送给口发送给发光二极管以二进发光二极管以二进制的形式供用户抄制的形式供用户抄录。录。8 82 25 55 5A AKPC7PA0PA7PC6LED0LED7LED+5VACKAOBFA这个系统的工作过程如下:这个系统的工作过程如下:1、 CPU把内存中的一个数据写入把内存中的一个数据写入A口;口;2、 LED灯亮,告诉用户灯亮,告诉用户LED显示的是新数据;显示的是新数据;3、 用户抄录数据;用户抄录数据;4、 用户按下开关用户按下开关K,发,发ACK信号,告诉信号,告诉CPU数数据已取走;据已取走;转第一步。转第一步。 mov cx,10;送;送10个数个数m
21、ov bx,offset xx;数组指针送;数组指针送bxloop1: mov al,bx;取数;取数out 88h,al;送数到;送数到A口口loop2:in al,8ch;取;取C口状态线口状态线anl al,80h;测试;测试OBFAjnz loop2 call delay ;用户已抄录数据,;用户已抄录数据,LED灯灭(对灯灭(对;应步;应步 骤骤4)inc bx;准备送下一个数;准备送下一个数 loop loop1;循环;循环10次次3. 方式2 n 方式2的特点 n双向的选通方式I/On只适用于端口An端口C用5个数位提供控制和状态信号 如果设定某个如果设定某个8255A的的A口和
22、口和B口分口分别工作在方式别工作在方式2和方式和方式1下,则这个下,则这个8255A的的C口的口的I/O功能将不在存在。当功能将不在存在。当然如果然如果B口是工作在方式口是工作在方式0下,则下,则C口还口还有有3根线可作根线可作I/O线用。线用。A端口工作于方式2,B端口工作于方式0输入情况 方式2的控制信号 方式2 双向选通引脚PC6PC7PC3PA7PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2数据数据输入中断和输出中断输入中断和输出中断通过或门输出通过或门输出INTRA信号信号征用征用C口口5引脚引脚中断允许触发器中断允许触发器(控制中断输出)(控制中断
23、输出)通过位控通过位控PC6设置设置INTE1中断允许触发器中断允许触发器(控制中断输出)(控制中断输出)通过位控通过位控PC4设置设置INTE2六、8255应用举例1、与打印机接口 例例4:在某一8086系统中接有一个打印机,8255A作为输出接口。工作在方式0,试编一程序将缓冲区BUFF内的400H个字节的ACK码送打印机打印。 打印机具体工作过程如下打印机具体工作过程如下:1、数据线D7D0出现有效数据;2、STB有效,通知打印机,接口给打印机一个数据,数据从数据线进入打印机;3、BUSY有效,告诉接口,打印机正在打印数据。打印完毕,BUSY变为无效,表示打印结束。 8 82 25 55
24、 5A APA0PA7打打印印机机D0D7PC0PC4STBBUSYprint_data proc ;打印子程序,入口在dl中print1: in al,c_port;无条件读C口数据test al, 00010000b;测试busy线jnz print1 ;busy有效,循环测试mov al,dl out a_port,al;打印数据进入A口 mov al,00000000b;发选通信号 out ctrl_port,almov al,00000001b out ctrl_port,alret;返回主程序print_datA endp2、人机交互接口动态显示 例5、常用的显示称为动态显示,它采
25、用扫描显示技术,可以使硬件开销降低很多。对于一个8位数据显示,它就需要两个输出端口就可以了。其电路如图所示。在两个输出端口中,一个称为段信号通道,它用来输出要显示数据的段码;另一个称为位信号通道,用来决定当前要显示数据的位置。 动态显示电路图A A口口8255APA7|PA0B B口口8255APB7|PB0+5V段信号通道位信号通道段驱动位驱动LED6LED7n显示系统的具体工作步骤如下:a、 设要显示的初始位码i0;b、 送第i位的段信号;c、 送第i位的位信号;d、 延时;e、 i1if、 如果i小于8,转bg、 8位数据显示结束。n程序如下:a_port equ 80h;定义8255A
26、的四个端口b_port equ 82hc_port equ 84hctrl_port equ 86hdatasegment;定义数据段tab1db 3FH,06H,5BH,4FH,;定义段码表dispbuffdb 2,0,0,2,0,8,2,2 ;定义显示缓冲区dataends3、人机交互接口键盘扫描 例6、图所示为矩阵式键盘电路,其特点是由按键组成一个矩阵,矩阵的行线和列线分别作为两个传输方向相反的I/O接口信号线,比如行线作为输入接口信号线,列线作为输出接口信号线,或反之。 键盘扫描电路图8255APC0PC1PC2PC3PC4PC5PC6PC7+5VK8K10K9K11K0K2K1K3K
27、4K6K5K7K12K14K13K15 在翻转法中,行列线交换输入、输出,两步就可获取键位置信息。可见这种方法要比扫描法效率高。 双机并行通信接口PA0PA7PC4PC08255A甲方(发送)甲方(发送)方式方式1 输出输出PA0PA7PC7PC68255A乙方(接收)乙方(接收)方式方式0 输入输入-OBF-ACKCPU查询引脚输入查询引脚输入有效时,读数据有效时,读数据并输出应答信号并输出应答信号两机均采用查询方式工作两机均采用查询方式工作CPU查询查询输出缓冲器状态输出缓冲器状态甲机的初始化mov dx,0fffehmov al,0a0h ;方式字方式字1 0100 000:A口方式口方
28、式1输出输出out dx,almov al,0ch ;令令INTEA( PC6 )0,屏蔽中断,屏蔽中断out dx,al甲机发送程序mov dx,0fff8h;发送数据发送数据mov al,ahout dx,altrsmt: mov dx,0fffch ;C口地址口地址in al,dx ;读读C口口and al,80h ;查询查询OBF(PC7)jz trsmt ;为为0,说明乙机未响应,继续查,说明乙机未响应,继续查乙机的初始化mov dx,0fffehmov al,98h ; 方式字方式字1 0011 000:A口方式口方式0输入输入out dx,almov al,01h ;令应答信号(
29、令应答信号( PC0 )1(初始无效)(初始无效)out dx,al乙机:查询接收receive:mov dx,0fffchin al,dx;读读C口口and al,10h ;查询甲机的写选通信号(查询甲机的写选通信号( PC4 )jnz receive ;为为1时无效(甲未发数据),时无效(甲未发数据),;继续查询继续查询 mov dx,0fff8h;接收数据接收数据in al,dxmov ah,al ;数据保存于数据保存于ah乙机:接收响应mov dx,0fffehmov al,00h ;应答信号(应答信号( PC0 )0(有效)(有效)out dx,alnop ;适当延时,产生一定宽度的
30、有效负脉冲适当延时,产生一定宽度的有效负脉冲nopmov al,01h ;应答信号(应答信号( PC0 )1(无效)(无效)out dx,aln例题(打印机)一台打印机通过并行接口8255输出数据,从内存Buff单元开始缓冲中的250个字符送出打印(1)要求用查询方式(2)用中断方式66打印机n主机把数据送给引脚DATA0DATA7n同时送出数据选通信号-STROBEn打印期间,打印机在BUSY信号线上发出忙信号n打印机处理好输入的数据时n撤消忙信号n同时又送出一个响应信号-ACKBUSY DATA078255APC7PC2PA0PA7打印机打印机-STROBE8255方式0应用举例(应答输入
31、输出)8255A的初始化mov dx,0fffeh;控制口地址:控制口地址:FFFEHmov al,1 0000 001B;方式控制字:方式控制字:81Hout dx,al;A口方式口方式0 输出,输出, CH输出、输出、 CL输入输入mov al,0 000 111 1B;位控字,令位控字,令PC71,即,即-STROBE无效无效out dx,al打印子程序:查询printcprocpush axpush dxprn: mov dx,0fffch;读取端口读取端口Cin al,dx;查询打印机状态查询打印机状态and al,04h;测试测试PC2(BUSY)jnz prn ;为为1,打印机忙
32、,则循环等待,打印机忙,则循环等待打印子程序:输出mov dx,0fff8h ;为为0,打印机不忙,则输出数据,打印机不忙,则输出数据mov al,ahout dx,al ;将打印数据从端口将打印数据从端口A输出输出打印子程序:打印mov dx,0fffeh;从从PC7送出控制负脉冲送出控制负脉冲mov al,0 000 111 0B;置置-STROBE0(有效)(有效)out dx,alnop ;产生一定宽度的负脉冲产生一定宽度的负脉冲nopmov al,0 000 111 1B;置置-STROBE =1(无效)(无效)out dx,al ;打印机打印机-STROBE端输入负脉冲端输入负脉冲
33、打印子程序:返回pop dxpop axretprintcendp用8255A方式1与打印机接口(中断)1000pf2K15321441LS123单稳单稳电路电路+5VDATA078255APC6INTRPC3PC7PA0PA7打印机打印机-ACK-ACK-OBF-STROBE调整调整-STROBE负脉冲的宽度负脉冲的宽度中断方式主程序;MOV DX,303HMOV AL,A0H ;端口A方式1输出OUT DX,ALMOV AL,0DH ;pc6 置1,中断允许OUT DX,ALMOV AL,0FH ;pc7 置1,输出缓冲器空OUT DX,ALSTI75中断服务程序:MOV AL,SI ;输
34、出数据首地址MOV DX,300H ;端口A地址OUT DX,ALMOV DX,303H MOV AL,0EH ;输出缓冲器满,并同时输出给打印机负脉冲OUT DX,ALNOPMOV AL,0FHOUT DX,ALIRET8255A方式1与打印机接口时序配合PA0PA7(DATA07)-ACK-OBF-STROBE打印机在方式打印机在方式1 1工作时的时序工作时的时序8255端口A方式1查询方式下的初始化mov dx,0fffehmov al,0a0h ;方式字方式字1 0100 000out dx,almov al,0ch ;位控字,令位控字,令INTEA(PC6)为)为0,禁止中断,禁止中
35、断out dx,almov cx,counter;打印字节数送打印字节数送CXmov bx,offset buffer;取字符串首地址取字符串首地址call prints;调用打印子程序调用打印子程序打印子程序:输出printsprocpush ax;保护寄存器保护寄存器push dxprint1:mov al,bx;取一个数据取一个数据mov dx,0fff8hout dx,al;从端口从端口A输出输出 打印子程序:查询mov dx,0fffchprint2: in al,dxtest al,80h;检测检测PC7,即,即-OBFA状态状态jz print2;为为0,说明打印机方面未响应,说
36、明打印机方面未响应, ;继续检测继续检测 打印子程序:返回inc bx;为为1时打印机已接收数据时打印机已接收数据loop print1;准备输出下一个数据准备输出下一个数据pop dx;打印结束,恢复寄存器打印结束,恢复寄存器pop axret ;返回返回printsendp7. 2 可编程定时计数器接口芯片可编程定时计数器接口芯片8253n基础是计数功能基础是计数功能n关于定时信号关于定时信号: :n软件方法获得n硬件方法获得一、功能一、功能 定时和脉冲信号的处理与接口是完全有别于定时和脉冲信号的处理与接口是完全有别于并行信号的,其特点是信号形式简单但需要连并行信号的,其特点是信号形式简单
37、但需要连续检测,下面介绍的续检测,下面介绍的INTEL8253可编程定时可编程定时计数器就是可以实现所要求这方面功能。计数器就是可以实现所要求这方面功能。8253内部有内部有3个独立的个独立的16位定时计数器通位定时计数器通道。计数器可按照二进制或十进制计数,计数道。计数器可按照二进制或十进制计数,计数和定时范围可在和定时范围可在165535之间改变,每个通之间改变,每个通道有道有6种工作方式,计数频率可高达种工作方式,计数频率可高达2MHz以以上。上。n计数器计数器/ /定时器的应用:定时器的应用:n在多任务的分时系统中作为中断信号实现程序的切换。n可往I/O设备输出精确的定时信号。n作为一
38、个可编程的波特率发生器。n实现时间延迟。n外部事件计数外部事件计数 8253的工作原理 二、二、8253的内部结构的内部结构 预置寄存器预置寄存器GATECLKOUT减减1计数器计数器输出锁存器输出锁存器计数初值存于计数初值存于预置寄存器预置寄存器;在计数过程中,在计数过程中,减法计数器减法计数器的值不断递减,的值不断递减,而预置寄存器中的预置不变。而预置寄存器中的预置不变。输出锁存器输出锁存器用于写入锁存命令时,用于写入锁存命令时,锁定当前计数值锁定当前计数值地址由CS、A1、A0确定 8253的端口寻址及基本操作的端口寻址及基本操作 写入计数器写入计数器0的初始值的初始值写入计数器写入计数
39、器1的初始值的初始值写入计数器写入计数器2的初始值的初始值写入控制寄存器控制字写入控制寄存器控制字读计数器读计数器0的当前值的当前值读计数器读计数器1的当前值的当前值读计数器读计数器2的当前值的当前值CSRDA1WRA0端口操作端口操作11110000000111001100101010100000000计数器计数器0数器器数器器1计数器计数器2控制控制A1A0端口端口00110101三、三、 8253的管脚分配的管脚分配 通道管脚数据线通道选择控制线四、四、 8253/8254的编程的编程 n控制字有两类控制字有两类n方式控制字n8254的读出控制字数制选择数制选择SC1SC0M2RL1RL
40、0 BCDM0M1D7 D6 D5 D4 D3 D2 D1 D0工作模式选择工作模式选择000 模式模式0001模式模式1X10模式模式2X11模式模式3100模式模式4101模式模式500 计数器锁存命令计数器锁存命令10 只读只读/写高八位写高八位01 只读只读/写低八位写低八位11 先读先读/写低八位写低八位 再读再读/写高八位写高八位00 选计数器选计数器001选计数器选计数器110 选计数器选计数器2读读/写指示写指示计数器选择计数器选择1BCD计计数数0二进二进制计数制计数9.3 82539.3 8253控制寄存器和控制字控制寄存器和控制字方式控制字方式控制字n8254读出控制字
41、计数初值与输入时钟(计数初值与输入时钟(CLK)频率及输出波形()频率及输出波形(OUT)频率有关系。频率有关系。定时定时:时间取决于:时间取决于CLK和计数初值(又叫和计数初值(又叫时间常数时间常数),), 定时时间定时时间=初值初值*计数时钟周期计数时钟周期初值初值=fclk/fout 或或= Tout / Tclk计数计数:初值:初值=统计个数统计个数9.3.2 82539.3.2 8253计数初值计数初值n编程命令包括两类编程命令包括两类n写入命令,包括n设置控制字命令设置控制字命令n设置初值命令设置初值命令n锁存命令锁存命令n读出命令n读取计数器当前的值。读取计数器当前的值。n对对8
42、2548254,还可读取状态字,还可读取状态字n编程有编程有3 3条原则必须遵守:条原则必须遵守:n对计数器设置初始值前必须先写控制字。n初始值设置时,要符合控制字中的格式规定,即只写低位字节还是只写高位字节,或高低位字节都写,控制字中一旦规定,具体初始值设定时就要一致。n要读取计数器的当前值和状态字,必须用控制字先锁定,才能读取。v例:选择例:选择2号计数器,工作在模式号计数器,工作在模式3,计数初值为,计数初值为533H( 2 个 字 节 ) , 采 用 二 进 制 计 数 。 端 口 地 址 分 配个 字 节 ) , 采 用 二 进 制 计 数 。 端 口 地 址 分 配304H307H
43、。其初始化程序段为。其初始化程序段为 MOV DX,307H ;命令口;命令口 MOV AL,10110110B ;2号计数器的初始化命令字号计数器的初始化命令字 OUT DX,AL ;写入命令寄存器;写入命令寄存器 MOV DX,306H ;2号计数器数据口号计数器数据口 MOV AX,533H ;计数初值;计数初值 OUT DX,AL ;选送低字节到;选送低字节到2号计数器号计数器 MOV AL,AH ;取高字节送;取高字节送AL OUT DX,AL ;后送高字节到;后送高字节到2号计数器号计数器n6种工作方式种工作方式n计数结束产生中断n可重复触发的单稳态触发器n分频器n方波发生器n软件
44、触发的选通信号发生器n硬件触发的选通信号发生器五、五、 8253的工作方式的工作方式8253 的工作方式的基本规则n控制字写入计数器之后,所有的控制逻辑控制字写入计数器之后,所有的控制逻辑电路立即复位,输出端电路立即复位,输出端 OUT就进入就进入初始初始状状态(高电平或低电平)态(高电平或低电平)n计数值写入后,要经过一个计数值写入后,要经过一个CLK,计数执,计数执行部件才开始计数行部件才开始计数n在时钟在时钟信号的上升沿,信号的上升沿,GATA信号被采集信号被采集;在时钟在时钟信号的下降沿,计数器作减信号的下降沿,计数器作减1 操作操作 8253芯片的每个计数器通道都有芯片的每个计数器通
45、道都有6种工作方式可供选种工作方式可供选用,由方式控制字确定。熟悉每种工作方式的特点用,由方式控制字确定。熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式才能根据实际应用问题,选择正确的工作方式n每种工作方式的过程类似:每种工作方式的过程类似: 设定工作方式 设定计数初值 硬件启动 计数初值进入减1计数器 每输入一个时钟计数器减1的计数过程 计数过程结束9.5 8253的工作模式的工作模式1、方式、方式0计数结束中断方式计数结束中断方式 工作方式工作方式0有如下特点:有如下特点:a、门控信号、门控信号GATE必须为必须为1,计数器才能计数;,计数器才能计数;b、计数时通道输出端、
46、计数时通道输出端OUT一直为一直为0;c、通道计数器计数到、通道计数器计数到0后,后,OUT由由0到到1,同时计数器停,同时计数器停止工作。止工作。2 2、方式、方式1 1可编程序的单独负脉冲可编程序的单独负脉冲 方式方式1 1工作过程如下:工作过程如下:a a、门控信号门控信号GATEGATE是触发信号,上升沿有效。即开始计数是触发信号,上升沿有效。即开始计数是由是由GATEGATE的上升沿触发的;的上升沿触发的;b b、 触发后,通道计数器开始计数,输出端触发后,通道计数器开始计数,输出端OUTOUT由高变低;由高变低;c c、 计数器计数到计数器计数到0 0,OUTOUT再由低变高。再由
47、低变高。 3 3 、方式、方式2 2速率发生器速率发生器方式方式2的特点如下:的特点如下:a、GATE门为门为1,计数器才能工作,对,计数器才能工作,对CLK端上端上的脉冲进行计数;的脉冲进行计数;b、当计数器当计数器“减减”计数到计数到1时,输出端由高变低时,输出端由高变低,再经过一个,再经过一个CLK周期,即计数器计数到周期,即计数器计数到0时,时,输出端输出端OUT又跳变为高。所以方式又跳变为高。所以方式2输出周期性输出周期性负脉冲信号,其宽度固定为一个负脉冲信号,其宽度固定为一个CLK周期;周期;c、当计数器的值减为当计数器的值减为0时,自动重新装入计数初时,自动重新装入计数初值,实现
48、循环计数。值,实现循环计数。4 4、方式、方式3 3方波发生器方波发生器 方式方式2 2虽然可以作分频电路,但其输出虽然可以作分频电路,但其输出是窄脉冲,如果是方波,就只有选方式是窄脉冲,如果是方波,就只有选方式3 3 5 5、方式、方式4 4软件触发方式软件触发方式方式方式4在工作过程中有以下特点:在工作过程中有以下特点:a、门控信号、门控信号GATE为高电平,计数器开始减为高电平,计数器开始减1计计数,数,OUT维持高电平;维持高电平;b、当计数器减到、当计数器减到0,输出端,输出端OUT变低,再经过变低,再经过一个一个CLK输入时钟周期,输入时钟周期,OUT输出又变高。输出又变高。 6
49、6、方式、方式5 5硬件触发方式硬件触发方式 这种工作方式同方式这种工作方式同方式4 4很相似,当控制字很相似,当控制字写入控制寄存器后,输出端写入控制寄存器后,输出端OUTOUT变高。同方变高。同方式式4 4不同的一点是当计数值写入通道计数器不同的一点是当计数值写入通道计数器后,通道并未被触发,也就是计数器并不立后,通道并未被触发,也就是计数器并不立即开始计数。只有当即开始计数。只有当GATEGATE信号的上升沿触发信号的上升沿触发通道后,通道计数器才开始计数。通道后,通道计数器才开始计数。 n 8253 8253的六种工作方式可归为两类,一的六种工作方式可归为两类,一个是充当频率发生器,另
50、一类主要是作个是充当频率发生器,另一类主要是作计数器来使用。下面我们就从这个角度计数器来使用。下面我们就从这个角度来讨论总结来讨论总结OUTOUT和和GATEGATE门的作用。门的作用。 8253的工作方式小结的工作方式小结n与频率发生器有关的工作方式与频率发生器有关的工作方式82538253有两种方式与频率发生器有关,即方式有两种方式与频率发生器有关,即方式2 2和发生和发生3 3,对,对OUTOUT端,方式端,方式2 2提供给用户的是负提供给用户的是负脉冲,方式脉冲,方式3 3提供给用户的是方波。在这个两提供给用户的是方波。在这个两种方式下,种方式下,GATEGATE信号要始终保持为高。信
51、号要始终保持为高。n与计数器有关的工作方式与计数器有关的工作方式 对于计数器类,有方式对于计数器类,有方式0 0、1 1和方式和方式4 4、5 5。n启动计数器的方式有两种,一种是启动计数器的方式有两种,一种是CPUCPU把时间常数写入把时间常数写入相应通道后,计数器就开始工作,我们可以称之为软相应通道后,计数器就开始工作,我们可以称之为软件启动方式,在这种启动方式下,件启动方式,在这种启动方式下,GATEGATE要始终保持为要始终保持为高电平,所以方式高电平,所以方式0 0和方式和方式4 4可以称为软件启动方式。可以称为软件启动方式。另一种是硬件启动计数器,即另一种是硬件启动计数器,即CPU
52、CPU把时间常数写入计数把时间常数写入计数器后,即使器后,即使GATEGATE为高电平,计数器并不工作。只有为高电平,计数器并不工作。只有GATEGATE发生跳变,其上升沿启动计数器工作,所以方式发生跳变,其上升沿启动计数器工作,所以方式1 1和方式和方式5 5就可以称为硬件启动方式。就可以称为硬件启动方式。n计数器溢出时,计数器溢出时,OUTOUT有两种输出形式,要么是电平,要有两种输出形式,要么是电平,要么是负脉冲。前者有方式么是负脉冲。前者有方式0 0方式方式1 1,后者有方式,后者有方式4 4和方式和方式5 5。GATE模式低电平或下降沿低电平或下降沿上升沿上升沿高电平高电平0计数停止
53、计数停止进行或继续计数进行或继续计数1启动计数启动计数2计数停止,输出高电平计数停止,输出高电平开始计数开始计数进行计数进行计数3计数停止,输出高电平计数停止,输出高电平开始计数开始计数进行计数进行计数4计数停止计数停止进行或继续计数进行或继续计数5启动计数启动计数各种工作各种工作方式下方式下GATEGATE信号的作用信号的作用 GATA的作用的作用六、六、 8253应用举例应用举例 例例1 1:现有一个高精密晶体振荡电路,现有一个高精密晶体振荡电路,输出信号是脉冲波,频率为输出信号是脉冲波,频率为1MHz1MHz。要求。要求利用利用82538253做一个秒信号发生器,其输出做一个秒信号发生器
54、,其输出接一发光二极管,以接一发光二极管,以0.50.5秒点亮,秒点亮,0.50.5秒秒熄灭的方式闪烁指示。设熄灭的方式闪烁指示。设82538253的通道地的通道地址为址为80H80H86H86H(偶地址)(偶地址)解:解:1 1、时间常数计算、时间常数计算 这个例子要求用这个例子要求用82538253作一个分频电路,作一个分频电路,而且其输出应该是方波,否则发光二极管不而且其输出应该是方波,否则发光二极管不可能等间隔闪烁指示。频率为可能等间隔闪烁指示。频率为1MHz1MHz信号的周信号的周期为期为1 1微妙,而微妙,而1Hz1Hz信号的周期为信号的周期为1 1秒,所以秒,所以分频系数分频系数
55、N N可按下式进行计算:可按下式进行计算: 11000000100000011SSNSS 由于由于82538253一个通道最大的计数值是一个通道最大的计数值是6553665536,所以对于,所以对于N N10000001000000这样的大数,一个通这样的大数,一个通道是不可能完成上述分频要求的。由于道是不可能完成上述分频要求的。由于 即取两个计数器,采用级联方式。即取两个计数器,采用级联方式。 2 2、电路、电路1210000001000 1000NNNOUT0GATE0CLK01MHz8253通道05VOUT1GATE1CLK11KHz8253通道1 3、工作方式选择、工作方式选择 由于通
56、道由于通道1 1要输出方波信号推动发光二极管要输出方波信号推动发光二极管,所以通道,所以通道1 1应选工作方式应选工作方式3 3。对于通道。对于通道0 0,只,只要能起分频作用就行,对输出波形不做要求,要能起分频作用就行,对输出波形不做要求,所以方式所以方式2 2和方式和方式3 3都可以选用。都可以选用。这样对于通道这样对于通道0 0,我们取工作方式,我们取工作方式2 2,BCDBCD计数计数;对于通道;对于通道1 1,我们取工作方式,我们取工作方式3 3,二进制计数,二进制计数(当然也可选(当然也可选BCDBCD计数)计数) mov al,00110101b;通道;通道0控制字控制字out
57、86h,almov al,00;通道;通道0初始计数值初始计数值out 80h,almov al,10hout 80h,almov al,01110110b;通道;通道1控制字控制字out 86h,al mov al,0e0h;通道;通道1初始值,初始值,03E8H=1000BCDout 82h,almov al,03hout 82h,al例例2:计件系统。计件系统的功能就是记录计件系统。计件系统的功能就是记录 脉冲的个数。脉冲的个数。 一个脉冲代表一个事件,比如交通道路检测系统中通一个脉冲代表一个事件,比如交通道路检测系统中通过检测点的车辆,工业控制系统中流水线上已加工好的过检测点的车辆,工
58、业控制系统中流水线上已加工好的工件。要求在计件过程中,工件。要求在计件过程中,PCPC机可以显示当前计数器的机可以显示当前计数器的内容,当完成内容,当完成1000010000个工件记录后,系统发出个工件记录后,系统发出1KHz1KHz信号信号推动喇叭发音通知用户。推动喇叭发音通知用户。 解:解:1 1、电路。、电路。 需要两个通道,一个作为计数,选用通道需要两个通道,一个作为计数,选用通道0。另一。另一个产生个产生1KHz信号,选用通道信号,选用通道1。工作原理如下,传感工作原理如下,传感器电路把物理事件转换为脉冲信号输入到通道器电路把物理事件转换为脉冲信号输入到通道0 0计数,计数,当记录当
59、记录1000010000个事件后,通道个事件后,通道0 0计数器溢出,计数器溢出,GATEGATE端输端输出高电平,这时通道出高电平,这时通道1 1开始工作,产生开始工作,产生1KHz1KHz信号推动喇信号推动喇叭发音叭发音。OUT0GATE0CLK01MHz8253通道05VOUT1GATE1CLK18253通道1计件脉冲驱动放大 2 2、工作方式选择、工作方式选择 对于通道对于通道1 1,由于要产生,由于要产生1KHz信号,故选用工作方信号,故选用工作方 式式3。对于通道。对于通道0,要求初始计数值写入计数通道后,要求初始计数值写入计数通道后,计数器就可以工作,则通道计数器就可以工作,则通
60、道0的启动方式应是软件启动的启动方式应是软件启动。另外由于要求计数溢出后产生一个信号来启动一个。另外由于要求计数溢出后产生一个信号来启动一个事件,即喇叭发音,故可选的工作方式为方式事件,即喇叭发音,故可选的工作方式为方式0和方式和方式4,对于图所示方案,通道,对于图所示方案,通道1的的GATE信号由通道信号由通道0的的OUT信号产生,这个信号产生,这个OUT信号应该是电平型的,所以信号应该是电平型的,所以通道通道0应选用方式应选用方式0。 3、时间常数、时间常数 N010004、程序(见书)、程序(见书)11MHz1000KHz=10001KHz1KHzN n用用8253/8254为为A/D子
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论