可编程计数器定时器8253及其应用.ppt

上传人:小飞机 文档编号:6555633 上传时间:2023-11-12 格式:PPT 页数:33 大小:709.50KB
返回 下载 相关 举报
可编程计数器定时器8253及其应用.ppt_第1页
第1页 / 共33页
可编程计数器定时器8253及其应用.ppt_第2页
第2页 / 共33页
可编程计数器定时器8253及其应用.ppt_第3页
第3页 / 共33页
可编程计数器定时器8253及其应用.ppt_第4页
第4页 / 共33页
可编程计数器定时器8253及其应用.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《可编程计数器定时器8253及其应用.ppt》由会员分享,可在线阅读,更多相关《可编程计数器定时器8253及其应用.ppt(33页珍藏版)》请在三一办公上搜索。

1、第八章 可编程计数器/定时器8253及其应用,Intel 8253是一种完成计数/定时的芯片,被称为可编程间隔定时器。它内部具有3个独立的16位计数器通道,通过对它进行编程,每个通道均可按6种不同的方式工作,并且都可以按2进制或10进制格式进行计数,最高计数频率能达到2MHz。8253还适用于许多其他的场合,如用作可编程方波频率产生器、分频器、程控单脉冲发生器等等。,8-1 8253的工作原理,一、8253的内部结构和引脚信号,1.数据总线缓冲器,数据总线缓冲器是8253与系统数据总线相连接时用的接口电路,它由8位双向三态缓冲器构成,CPU用输入/输出指令对8253进行读/写操作的信息,都经过

2、8位数据总线D7D0传送,这些信息包括:,(1)CPU在对8253进行初始化编程时,向它写入的控制字。,(2)CPU向某一计数器写入的计数初值。,(3)从计数器读出的计数值。,2.读/写控制逻辑,读/写控制逻辑接收系统控制总线送来的输入信号,经组合后形成控制信号,对各部分操作进行控制。可接收的信号有:,下面我们来讨论一下8253与8086 CPU的连接问题以及端口地址的选择。,3.计数器02,8253内部包含3个完全相同的计数器/定时器通道,对3个通道的操作完全是独立的。每个通道都包含一个8位的控制字寄存器、一个16位的计数初值寄存器、一个计数器执行部件(实际的计数器)和一个输出锁存器。,(1

3、)计数,计数是指对CLKx引脚输入的脉冲个数进行计数。这些脉冲的间隔可以不相等。可以按2进制或10进制(BCD码)格式进行计数,采用减法计数法。即从设定的初始值开始,每输入一个脉冲信号,计数器就减1,当减到0时,便从OUTx引脚输出一个脉冲信号。输出信号的波形可由程序设置,同时GATEx引脚上的门控信号可以控制是否允许计数器开始计数。,(2)定时,定时是指设定的定时时间到来时,便从OUTx引脚输出一个脉冲信号。定时也是通过对CLKx引脚输入的脉冲个数进行计数而实现的。但这些脉冲信号必须是精确的时钟脉冲。定时时间时钟脉冲周期tc计数初值n,输入到8253引脚CLKx的时钟频率不能大于2MHz!,

4、4.控制字寄存器,控制字寄存器是一个8位的寄存器,由CPU通过输出指令对它进行写入控制字,用来选择计数器通道、工作方式、读写格式和数制。,二、初始化编程步骤和门控信号的功能,对8253芯片进行初始化编程时,需按下列步骤进行:,(1)写入控制字,用输出指令向控制字寄存器写入一个控制字,以选定计数器通道,规定计数器的工作方式和计数格式。写入控制字还起到复位作用,使输出端OUT变为规定的初始状态,并使计数器清0。,(2)写入计数初值,通过输出指令向指定通道写入计数初始值,数值要符合控制字有关格式的规定。它可以是8位或16位。若是8位,用一次输出指令即可完成设置;若是16位数据,则必须用两次输出指令完

5、成设置,先送低8位,后送高8位。当计数初值为0时,也要分成两次写入,因为在2进制计数时,0表示65536;在BCD码计数时,0表示10000。,由于端口地址独立,3个通道的编程次序没有规定,可任意设置。,例如,在某微机系统中,8253的3个计数器的端口地址分别为3F0H、3F2H、3F4H,控制字寄存器的端口地址为3F6H,要求8253的通道0工作于方式3,并已知对它写入的计数初值n1234H,采用BCD码格式进行计数,则初始化程序为:,在计数初值写入8253后,还要经过一个时钟脉冲的上升沿和下降沿,才能将计数初值装入实际的计数器,然后在门控信号GATE的控制下,对从CLK引脚输入的脉冲进行递

6、减计数。,2.门控信号控制功能,三、8253的工作方式(6种),1.方式0计数结束中断方式,2.方式1可编程单稳态输出方式,3.方式2比率发生器,4.方式3方波发生器,5.方式4软件触发选通,6.方式5硬件触发选通,8-2 8253的应用举例,一、8253定时功能的应用例子,1.用8253产生各种定时波形,在某个以8086为CPU的系统中使用了一块 8253 芯片,通道的基地址为 310H,所用的时钟脉冲频率为1MHz。要求3个计数通道分别完成以下功能:,(1)通道0工作于方式3,输出频率为2KHz 的方波;(2)通道1产生宽度为480s的单脉冲;(3)通道2用硬件方式触发,输出单脉冲,时间常

7、数为26。,通道0工作于方式3,即构成一个方波发生器,它的控制端GATE0需接5V,为了输出2kHz的连续方波,应使时间常数N0:N01MHz/2kHz500=1F4H,MOVDX,316HMOVAL,00110111BOUTDX,ALMOVDX,310HMOVAL,00HOUTDX,ALMOVAL,05HOUTDX,AL,通道1工作于方式1,即构成一个单稳态电路,由GATE0的正跳变触发,输出一个由时间常数决定的负脉冲,时间常数N1:N1480s/1s480,MOVDX,316HMOVAL,01110011BOUTDX,ALMOVDX,312HMOVAL,80HOUTDX,ALMOVAL,0

8、4HOUTDX,AL,控制字,通道2工作于方式5,即由GATE0的正跳变触发减1计数,在计到0时形成一个宽度与时钟周期相同的负脉冲,此后若再次出现正跳变,又能产生一个负脉冲。(N226),MOVDX,316HMOVAL,10011011BOUTDX,ALMOVDX,314HMOVAL,26HOUTDX,AL,二、8253计数功能的应用例子,8253可以用于各种需要进行计数的场合。下面,我们用一个具体的例子来说明它在这方面的应用。假设一个自动化工厂需要统计在流水线上所生产的某种产品的数量,可采用8086微处理器和8253等芯片来设计实现这种自动计数的系统。下面介绍这种自动计数系统的电路和控制软件

9、的设计方法。,1.硬件电路设计,这个自动计数系统由8086 CPU控制,用8253 作计数器。此外,还要用到一片 8259A中断控制器芯片和若干其他电路。图 8-12 仅给出了计数器部分的电路图。,2.初始化编程,对计数器1:工作于方式0,按BCD码计数,先读/写低字节,后读/写高字节,则控制字01110001B,如选取计数初值n499,则经过n1个脉冲,也就是500个脉冲,OUT1端输出一个正跳变。它作用于8259A的IR0端,通过8259A的控制,向CPU发出一次中断请求,表示计满了500个数,在中断服务程序中使工件总数加上500。,3.计数值的读取,在许多用到8253计数功能的场合,常常

10、需要读取计数器的现行计数值。在读取计数器现行值时,计数过程仍在进行,而且不受CPU的控制。因此在CPU读取计数器的输出值时,可能计数器的输出正在发生改变,即数值不稳定,可能导致错误的读数。为了防止发生这种情况,必须在读数前设法终止计数或将计数器输出端的现行值锁存。这可以采用下面两种方法:,一种方法是在读数前用外部硬件计数脉冲信号,或者使门控信号变为低电平,迫使8253停止计数。这种方法的缺点是需要硬件电路配合。此外,由于外部事件源被切断或正常的计数过程被禁止,干扰了实际的计数过程。因此,一般不宜采用。,另一种方法是先用计数器锁存命令锁存现行计数值,然后将它读出。这种方法完全由软件来实现,并可随

11、时读取计数值,而且不会干扰正常的计数过程和引起错误,是常用的方法。此方法的程序段如下:,练习,设在8086系统中,8253A的控制口地址为36H,三个计数通道的端口地址为30H、32H和34H。,1、假定8253A的计数器2工作在方式0,按二进制计数,计数初值为4,对其初始化编程。,2、假设8253A的计数器1工作在方式3,按二进制计数,计数初值为7265H,对其初始化编程。,2、MOV AL,76H;设置控制字OUT 36H,AL;控制字写入计数器1的控制单元MOV AL,65H;设置计数器低字节OUT 32H,AL;低字节写入计数器1的CRMOV AL,72H;设置计数器高字节OUT 32H,AL;高字节写入计数器1的CR,1、MOV AL,90H;设置控制字OUT 36H,AL;写入计数器2的控制单元CUMOV AL,4;设置计数初值OUT 34H,AL;初值写入计数器2的CR,3、某一计算机应用系统采用8253芯片的计数器0作频率发生器,输出频率为500Hz;用计数器1产生1000H z的连续方波信号,输入8253的时钟频率为1.19MHs。试问:初始化时送到计数器0和计数器1的计数初值分别为多少?计数器1工作于什么方式下?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号