资源预览内容
第1页 / 共59页
第2页 / 共59页
第3页 / 共59页
第4页 / 共59页
第5页 / 共59页
第6页 / 共59页
第7页 / 共59页
第8页 / 共59页
第9页 / 共59页
第10页 / 共59页
亲,该文档总共59页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第七章-可编程计数器定时器8253-8254及其应用.第七章-可编程计数器定时器8253-8254及其应用.1定时与计数在微机系统或智能化仪器仪表的工作过程中,经常需要使系统处于定时工作状态,或者对外部过程进行。定时或计数的工作实质均体现为对脉冲信号的个数的测量。定时:如果计数的对象是标准的时钟信号,由于其,故计数值就恒定地对应于一定的时间,这一过程即为定时。如果计数的对象是与外部输入的脉冲信号(周期可以不相等),则此时即为计数。2定时的实现方法(1)软件法利用一段延时子程序来实现定时操作。特点:无需硬件支持,控制比较方便,但在定时期间,CPU不能从事其它工作,降低了机器的利用率。(2)硬件法专门设计一套电路(比如555定时器)用以实现定时与计数,特点是需要花费一定硬设备,而且当电路制成之后,定时值及计数范围不能改变。(3) 软、硬件结合法 即设计一种专门的具有可编程特性的芯片,来控制定时和计数的操作,定时或计数的过程不需要CPU的参与,而这些芯片具有中断控制能力,定时、计数结束时能产生中断请求信号,因而定时期间不影响CPU的正常工作。 7.18253的工作原理7.1.1Intel8253的内部结构及引脚Intel8253是8086/8088微机系统常用的可编程定时器/计数器芯片,其增强型芯片为Intel8254等。Intel8253的一般性能概述:1每个8253芯片有3个独立的16位计数器通道。2每个计数器通道都可以按照二进制或十进制计数。3每个计数器的最大的输入频率为可以高达2MHz。4每个通道有6种工作方式,工作方式由程序设定。Intel8253的外部引脚(24DIP)1D7D0:8位,双向,三态数据线,用来与系统数据总线相连。2CS、WR、RD、A1、A0(内部4个端口),A1A0=00,选中通道0;A1A0=01,选中通道1;A1A0=10,选中通道2;A1A0=11,选中控制寄存器端口。3CLKi:i=0,1,2,第i个通道的计数脉冲输入引脚,每输入一个时钟脉冲,计数器数值减1。4GATEi:i=0,1,2,第i个通道的门控信号输入引脚,用于控制启/停计数器计数。5OUTi:i=0,1,2,第i个通道的定时/计数信号输出引脚,输出信号的波形由通道的工作方式确定,此输出信号可用于触发其它电路工作,或作为向CPU发出的中断请求信号。6VCC、GND。8253主要包括以下几个主要部分:1数据总线缓冲器实现8253与CPU数据总线连接的8位双向三态缓冲器,用以传送CPU向8253的控制信息、数据信息以及CPU从8253读取的状态信息。2读/写控制逻辑控制8253的片选及对内部相关寄存器的读/写操作,它接收CPU发来的地址信号以实现片选、内部通道选择以及对读/写操作进行控制。CS、A1、A0与CPU的连接决定8253芯片的端口地址。 3计数通道0#、1#、2#: 这是三个独立的,结构相同的计数器/定时器通道,每一个通道包含:v 一个8位控制字寄存器;v 一个16位的计数初值寄存器,存放计数初始值;v 一个16位的减法计数器(计数器执行部件,减法计数器);v 一个16位的锁存器,锁存器在计数器工作的过程中,跟随计数值的变化,在接收到CPU发来的读计数值命令时,用以锁存当前计数值,供CPU读取。 这些16位的计数器、锁存器均可被分为高8位、低8位两个部分,因此也可作为8位寄存器使用。控制单元初值寄存器减1计数器输出锁存器内 部 总 线CLKGATEOUT控制单元初值寄存器减1计数器输出锁存器内 部 总 线CLK每个计数通道的结构如下: 4控制字寄存器 在8253的初始化编程时,由CPU写入控制字,以决定通道的工作方式, 此寄存器只能写入,不能读出。 8253的三个计数通道各有一个命令字寄存器,都使用同一个地址(A1A011),因此,使用命令字的最高两位SC1、SC0来确定到底是对哪个计数通道的设定。8253的控制字计数方式选择位BCD:为1:BCD码计数,进行十进制减法计数。写入初值也用BCD码表示,其中0000H表示十进制数最大值10000。例如,进行BCD码计数时,写入初值1200H,相当于计数值为十进制的1200。为0:二进制计数。写入初值为二进制数,进行二进制减法计数。0000H表示最大值10000H,相当于十进制的65536。例如,进行二进制计数时,写入初值1200H,相当于计数值为十进制的4608。8.1.28253的初始化编程和门控信号的功能1.8253的初始化编程要使用8253,必须首先进行初始化编程,初始化编程包括设置通道控制字和送通道计数初值两个步骤,控制字写入8253的控制字寄存器(A1A0=11),而初始值则写入相应通道的计数初值寄存器中(A1A0=00/01/10)。初始化编程包括如下步骤:(1)写入通道控制字,规定某个通道的工作方式。(2)给这个通道写入计数值,若规定只写低8位,则高8位自动置0,若规定只写高8位,则低8位自动置0。若为16位计数值则分两次写入,先写低8位,后写高8位。定时时间=计数初值*脉冲周期例1设8253的端口地址为:40H43H,要使计数器T1工作在方式0,计数初值为80H,二进制计数,进行初始化编程。控制字为:01010000B=50H初始化程序:MOVAL,50HOUT43H,AL;向控制端口送命令字MOVAL,80HOUT41H,AL;向T1端口送计数初值 例2 设8253的端口地址为:40H43H,若用通道T0工作在方式1,按十进制计数,计数值为5080H,进行初始化编程。控制字为:00110011B=33H初始化程序: MOV AL,33H OUT 43H,AL ;向控制端口送命令字 MOV AL,80H OUT 40H,AL ;向T0端口送计数初值低8位 MOV AL,50H OUT 40H,AL ;向T0端口送计数初值高8位例3利用8253产生定时。设8253的端口地址为:40H43H,若用通道2工作在方式3,按二进制计数,定时时间为20ms,设8253的CLK频率为2MHz,写出初始化程序。初值得计算:计数初值=定时时间/CLK周期=20ms(1/2MHz)=40000=9C2CH初始化程序:MOVAL,0B6HOUT43H,ALMOVAL,2CHOUT42H,AL;计数初值低字节2CHMOVAL,9CHOUT42H,AL;计数初值高字节9CH7.1.38253的工作方式8253共有6种工作方式,各方式下的工作状态是不同的,输出的波形也不同。下面我们逐个介绍:几条基本原则:(1)控制字写入计数器时,相应通道的所有控制逻辑电路立即复位,输出端OUT进入初始状态。初始状态对不同的模式来说不一定相同。(2)计数初始值写入之后,要经过一个时钟周期上升沿和一个下降沿,计数执行部件才可以开始进行计数操作,因为第一个下降沿将计数寄存器的内容送减1计数器。(3)在每个时钟脉冲CLK的上升沿,采样门控信号GATE。不同的工作方式下,门控信号的触发方式是有具体规定的(电平触发,或者是边沿触发)。(4)在时钟脉冲的下降沿,计数器作减1计数。0是计数器所能容纳的最大初始值。二进制时相当于216,用BCD码计数时,相当于104。学习8253的6种工作方式应注意以下几点:(1)写入控制字后,OUT的电平。(2)写入初值后,开始计数时OUT的初始电平(高或低),计数结束时,OUT的电平。(3)门控GATE的触发方式(电平触发或边沿触发)。(4)在计数期间,GATE无效时,计数停止;GATE再次有效时,计数器从何处开始继续计数。(5)在计数期间若重新写入初值(在GATE有效情况下)时,计数器从何处开始计数。(6)8253一次定时结束,能否自动重新装入初值。1方式0计数结束中断方式(1)写入控制字后,OUT的电平变低。(2)写入初值后,计数过程中OUT的初始电平为低电平;计数结束时,OUT的电平变为高电平,并维持到装入新的初值或重设工作方式。(3)门控GATE的触发方式为高电平触发。(4)GATE=1,计数器工作。在计数期间,GATE无效(GATE=0)时,计数停止,OUT仍为低电平;若GATE再次有效(变为高电平)时,计数器从中止处开始继续计数。(5)在计数期间若重新写入初值(在GATE=1情况下)时,计数器按新初值开始计数。计数器只计一遍,初值不能自动重装。(6)OUT的可作为中断请求信号。 方式0的波形图方式0 正常计数的波形图写入控制字后,OUT的电平变低。写入初值后,OUT的初始电平为低电平,计数结束时,OUT的电平变为高电平。GATE的触发方式为高电平触发。CW = 10LSB = 3WRCLKGATEOUT322210FFCW = 10LSB = 3WRCLKGATEOUT322210方式0时GATE信号的作用的波形图GATE=1,计数器工作。在计数期间,GATE无效(=0)时,计数停止;若GATE再次有效(变为高电平)时,计数器从中止处开始继续计数。 方式0的波形图方式0时计数过程中改变计数值的波形图在计数期间若重新写入初值(在GATE=1有效情况下)时,计数器按新初值开始计数。 方式0的波形图2、方式1可编程单稳态输出方式(1)写入控制字后,OUT的电平变高。(2)写入初值后,在GATE有效时,OUT电平变为低电平,将计数值装入执行部件,开始计数,计数结束时,OUT的电平变为高电平。(3)GATE为边沿触发。(4)触发可重复进行。即,写入初值,在GATE有效时开始计数,计数结束时,OUT变高;在下一个GATE有效时重复上述过程而不必重新使用指令写入计数初值。(5)在计数期间若重新出现GATE有效时,计数器从计数初值重新开始计数。(6)在计数期间若重新写入初值,不影响输出,直至出现下一个GATE有效时,计数器才按新初值开始计数。方式1的波形图方式1正常计数的波形图写入控制字后,OUT的电平变高。写入初值后,开始计数时OUT的初始电平为低电平,计数结束时,OUT的电平变为高电平。GATE的触发方式为边沿触发。WRCLKGATEOUT103CW = 12LSB = 4WR4324CW = 12LSB = 3WRCLK321321CW = 12 0GATEOUT方式1时GATE信号的作用的波形图在计数期间若重新出现GATE有效(上升沿)时,计数器从计数初值重新开始计数。方式1的波形图方式1时计数过程中改变计数值的波形图在计数期间若重新写入初值,不影响输出,直至出现下一个GATE有效(上升沿)时,计数器才按新初值开始计数。LSB = 3WRCLKGATEOUT432103FECW = 12LSB=4WRCLKGATEOUT43FFCW = 12LSB=4方式1的波形图3. 方式 2自动重装初值的N分频器,比率发生器(1)写入控制字后,OUT变高。(2)写入初值后,在GATE=1时,OUT为高电平,开始计数,在计数值减为1时OUT变为低电平,减为0时OUT又变为高电平。在GATE=1有效时,可自动重装初值,OUT变为高电平,继续计数。(3)GATE为高电平触发。(4)GATE=1,计数器工作。在计数期间,GATE=0无效时,计数停止工作;若GATE再次有效(变为高电平)时,计数器重装初值开始继续计数。(5)在计数期间若重新写入初值(在GATE=1有效情况下)时,不影响本次计数,当本次计数完成,OUT出现一个CLK周期的低电平后,计数器按新初值开始计数。方式2的波形图方式2正常计数的波形图写入控制字后,OUT的电平变高。写入初值后,OUT的初始电平为高电平,计数结束时,在计数值为1时OUT出现一个CLK周期的低电平。在GATE=1有效时,可自动重装初值,OUT变为高电平,继续计数。GATE电平触发。方式2时GATE信号的作用的波形图GATE=1,计数器工作。在计数期间,GATE=0无效时,计数停止工作;若GATE再次有效(变为高电平)时,计数器按原装初值开始继续计数。方式2的波形图方式2时计数过程中改变计数值的波形图4CW = 14LSB =5 WRCLKGATEOUT32
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号