资源预览内容
第1页 / 共65页
第2页 / 共65页
第3页 / 共65页
第4页 / 共65页
第5页 / 共65页
第6页 / 共65页
第7页 / 共65页
第8页 / 共65页
第9页 / 共65页
第10页 / 共65页
亲,该文档总共65页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Page 1,皖西学院 机械与电子工程学院,微机原理与接口技术,第八章 可编程计数器/定时器 8253及其应用,Page 2,8253工作原理:结构、引脚、工作方式8253应用举例:定时功能、计数功能,内 容 提 要,第八章 可编程计数器/定时器 8253及其应用,Page 3,第八章 可编程计数器/定时器 8253及其应用,概 述,在微型计算机系统中,常需要用到定时功能。例如,按一定的时间间隔对动态RAM进行刷新;扬声器的发声;在计算机实时控制和处理系统中,按一定的采样周期对处理对象进行采样,或定时检测某些参数,对外部事件进行计数,等等,都需要定时信号。,实现定时功能主要有三种方法:软件定时不可编程的硬件定时可编程的硬件定时,第八章 可编程计数器/定时器8253及其应用 概述,Page 4,软件定时是最简单的定时方法,它不需要硬件支持,只要让机器循环执行某一条或一系列指令,这些指令本身并没有具体的执行目的,但由于执行每条指令都需要一定的时间,重复执行这些指令就会占用一段固定的时间。利用这种方法定时,完全由软件编程来控制相改变定时时间,灵活方便,而且节省费用。但CPU的利用率太低,在定时循环期间,CPU不能再去做任何其它有用的工作,而仅仅是在反复循环,等待预定的定时时间的到来,这在许多情况下是不允许的。比如,对动态存储器的定时刷新操作,只要处于开机状态,就需要一直不停地进行下去,显然不能采用软件定时。,1. 软件定时,第八章 可编程计数器/定时器8253及其应用 概述,Page 5,555芯片是一种常用的不可编程器件,加上外接电阻和电容就能构成定时电路。这种定时电路结构简单,价格便宜,通过改变电阻或电容值,可以在一定的定时范围内改变定时时间。但这种电路在硬件已连接好的情况下,定时时间和范围就不能由程序来控制和改变,而且定时精度也不高。,2. 不可编程的硬件定时,3. 可编程的硬件定时,可编程定时器/计数器电路利用硬件电路和中断方法控制定时,定时时间和范围完全由软件来确定和改变,并由微处理器的时钟信号提供时间基准,这种时钟信号由晶体振荡器产生,故计时精确稳定。,第八章 可编程计数器/定时器8253及其应用 概述,Page 6,用可编程定时器/计数器电路进行定时时,先要根据预定的定时时间,用指令对计数器/定时器芯片设定计数初值,然后启动芯片进行工作。计数器一旦开始工作后,CPU就可以去做别的工作,等计数器计到预定的时间,便自动形成一个输出信号,该信号可用来向CPU提出中断请求,通知CPU定时时间已到,使CPU作相应的处理。或者直接利用输出信号去启动设备工作。这种方法不但显著提高了CPU的利用率,而且定时时间由软件设置,使用起来十分灵活方便,加上定时时间又很精确,所以获得了广泛的应用。系统也可以利用计数器/定时器芯片对外部事件进行计数。,第八章 可编程计数器/定时器8253及其应用 概述,Page 7,Intel 8253就是一种能完成上述功能的计数器/定时器芯片,被称为可编程间隔定时器(Programmable Interval Timer,PIT)。,4. 可编程计数器/定时器8253,8253内部具有3个独立的16位计数器通道,通过对它进行编程,每个计数器通道均可按6种不同的方式工作,并且都可以按2进制或10进制格式进行计数,最高计数频率能达到2MHz。8253还可用作可编程方波频率产生器、分频器、程控单脉冲发生器等。,第八章 可编程计数器/定时器8253及其应用 概述,Page 8,5. 可编程计数器/定时器8254,InteI 8254是8253的增强型产品,它与8253的引脚兼容,功能几乎完全相同,不同之处在于:,8253的最大输入时钟频率为2MHz,而8254的最大输入时钟频率可高达5MHz,8254-2则为l0MHz。8254有读回(read-back)功能,可以同时锁存13个计数器的计数值及状态值,供CPU读取,而8253每次只能锁存和读取一个通道的计数器,且不能读取状态值。,第八章 可编程计数器/定时器8253及其应用 概述,Page 9,8-1 8253的工作原理,一、8253的内部结构和引脚信号,图81 8253的内部结构,8-1 8253的工作原理 8253的内部结构和引脚信号,图8-2,Page 10,1数据总线缓冲器,数据总线缓冲器是8253与系统数据总线相连接时用的接口电路,由8位双向三态缓冲器构成,CPU用输入/输出指令对8253进行读/写操作的信息,都经8位数据总线D7D0传送,这些信息包括: CPU在对8253进行初始化编程时,向它写入的控制字。 CPU向某一计数器写入的计数初值。 从计数器读出的计数值。,8-1 8253的工作原理 8253的内部结构和引脚信号,Page 11,2读/写控制逻辑,接收系统控制总线送来的输入信号,经组合后形成控制信号,对各部分操作进行控制。可接收的信号有: CS 片选信号,低电平有效,由地址总线经I/O端口译码电路产生。只有当CS为低电平时,CPU才能对8253进行连写操作。 RD 读信号,低电平有效。当RD为低电平时,表示CPU正在读取所选定的计数器通道中的内容。 WR 写信号,低电平有效。当WR为低电平时,表示CPU正在将计数初值写入所选中的计数通道中或者将控制字写入控制字寄存器中。 A1A0 端口选择信号。在8353内部有3个计数器通道(02)和一个控制字寄存器端口。当A1A000时,选中通道0;A1A001时,选中通道1;A1A010时,选中通道2;A1A011时,选中控制字寄存器端口。,8-1 8253的工作原理 8253的内部结构和引脚信号,Page 12,注意:如果8253与8位数据总线的微机相连,只要将A1A0分别与地址总线的最低两位A1A0相连即可。如果系统采用的是8086CPU,则数据总线为16位。CPU在传送数据时,总是将低8位数据送往偶地址端口,将高8位数据送到奇地址端口。反之,偶地址端口的数据总是通过低8位数据总线送到CPU,奇地址端口的数据总是通过高8位数据总线送到CPU。当仅具有8位数据总线的存储器或I/O接口芯片与8086的16位数据总线相连时,既可以连到高8位数据总线,也可以接在低8位数据总线上。在实际设计系统时,为了方便起见,常将这些芯片的数据线D7D0接到系统数据总线的低8位,这样,CPU就要求芯片内部的各个端口都使用偶地址(地址总线的A00)。应改用地址总线中的A2A1实现端口选择,即将A2连到8253的A1引脚,而将A1与8253的A0引脚相连。,8-1 8253的工作原理 8253的内部结构和引脚信号,Page 13,8253输入信号组合的功能表,8-1 8253的工作原理 8253的内部结构和引脚信号,Page 14,3计数器02,包含3个完全相同的计数器/定时器通道,对3个通道的操作完全独立。每个通道都包含:,一个8位的控制字寄存器:只写寄存器。对8253进行编程时,CPU用输出指令向它写入控制字,以选定计数器通道,规定各通道的工作方式,读写格式和数制。一个16位的计数初值寄存器:存放由CPU送来的计数初值。一个计数器执行部件(实际的计数器):执行部件实际是一个16位的减法计数器,它的起始值就是初值寄存器的值,该值可由程序设置。输出锁存器:用来锁存计数器执行部件的值,CPU可对它执行读操作,以了解某个时刻计数器的瞬时值。,构成:,注意:计数初值寄存器、计数器执行部件和输出锁存器都是16位寄存器,它们均可被分成高8位和低8位两个部分。因此也可作为8位寄存器来使用。,8-1 8253的工作原理 8253的内部结构和引脚信号,Page 15,每个通道工作时,都是对输入到CLK引脚上的脉冲按2进制或10进制(BCD码)格式进行计数,计数采用倒计数法,先对计数器预置一个初值,再把初值装入实际的计数器。然后,开始递减计数。即每输入一个时钟脉冲,计数器的值减1,当计数器的值减为0时,便从OUT引脚输出一个信号。输出信号的波形主要由工作方式决定,同时还受到从外部加到GATE引脚上的门控信号控制,它决定是否允许计数。当用8253作外部事件计数器时,在CLK脚上所加的计数脉冲是由外部事件产生的,这些脉冲的间隔可以是不相等的。如果要用它作定时器,则CLK引脚上应输入精确的时钟脉冲。这时,8253所能实现的定时时间,决定于计数脉冲的频率和计数器的初值,即 定时时间时钟脉冲周期tc预置的计数初值n,工作原理,8-1 8253的工作原理 8253的内部结构和引脚信号,Page 16,8253的3个计数器都各有3个引脚,它们是: CLK0CLK2:计数器02的输入时钟脉冲从这里输入。频率不能大于2MHz。OUT0OUT2:计数器02的输出端。GATE0GATE2:计数器02的门控脉冲输入端。,引脚,8-1 8253的工作原理 8253的内部结构和引脚信号,Page 17,4控制字寄存器,8-1 8253的工作原理 8253的内部结构和引脚信号,Page 18,二、初始化编程步骤和门控信号的功能,18253的初始化编程步骤,刚接通电源时, 8253处于未定义状态,在使用之前,必须用程序把它们初始化为所需的特定模式,这个过程称为初始化编程。初始化编程按下列步骤进行: (共2步) 写入控制字,用输出指令向控制字寄存器写入一个控制字,以选定计数器通道,规定该计数器的工作方式和计数格式。写入控制字还起到复位作用,使输出端OUT变为规定的初始状态,并使计数器清0。,8-1 8253的工作原理 初始化编程步骤和门控信号的功能,Page 19,写入计数初值用输出指令向选中的计数器端口地址中写入一个计数初值,初值可以是8位数据,也可以是16位数据。若是8位数,只要用一条输出指令就可完成初值的设置。如果是16位数,则必须用两条输出指令来完成,且先送低8位数据,后送高8位数据。注意,计数初值为0时,也要分成两次写入,因为在二进制计数时,它表示65536,BCD计数时,它表示10000。,说明:由于3个计数器分别具有独立的编程地址,而控制字寄存器本身的内容又确定了所控制的寄存器的序号,因此对3个计数器通道的编程没有先后顺序的规定,可任意选择某一个计数器通道进行初始化编理,只要符合先写入控制字,后写入计数初值的规定即可。,8-1 8253的工作原理 初始化编程步骤和门控信号的功能,Page 20,例如,某微机系统的8253的3个计数器的端口地址分别为3F0H、3F2H和3F4H,控制字寄存器的端口地址为3F6H,要求8253的通道0工作于方式3,计数初值n1234H,则初始化程序为:,MOVAL,00110111B;控制字:选择通道0,先读/写低字节, ;后高字节,方式3,BCD计数MOVDX,3F6H;指向控制口OUTDX,AL;送控制字MOVAL,34H;计数值低字节MOVDX,3F0H;指向计数器0端口OUTDX,AL;先写入低字节MOVAL,12H;计数值高字节OUTDX,AL;后写入高字节,注意:初值写入后,经过一个时钟脉冲的上升沿和下降沿,才能将初值装入实际计数器,再在GATE的控制下,对CLK引脚输入的脉冲递减计数。,8-1 8253的工作原理 初始化编程步骤和门控信号的功能,Page 21,2门控信号控制功能,表82 门控信号GATE的控制功能,8-1 8253的工作原理 初始化编程步骤和门控信号的功能,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号