您的位置: 网站首页 > 程序开发 > 汇编语言与微机原理教程 > 第8章 微机的定时/计数系统 > 【8.1 定时/计数器简介】

8.1 定时/计数器简介

 

计算机系统中经常要用到定时信号,如定时检测、定时扫描和时钟定时等。现代微机中,定时与计数控制一般采用8253(如IBM-PC)或8254286及其后的微机),本章主要介绍微机定时/计数系统的结构、工作原理以及8254的应用设计。

本章主要内容

&        定时/计数器的基本概念

&        8254的结构和主要特性

&        8254的工作方式

&        8254的应用设计

 

在控制系统中常常要求某些定时信号,以实现定时、延时及计数控制。例如:定时中断、定时检测、定时扫描、动态存储器刷新、运行系统日历时钟等,以及对外部事件进行的计数和统计等。

有的高速接口电路按CPU的读/写节拍工作,多数接口还需要独自的工作时钟,如一个串行接口电路,在接到CPU送来的数据后,要按照一定的节拍把数据变成串行形式逐位送出。接口电路中所需的节拍由定时电路提供。

控制系统中也常需对外部事件进行计数,外部事件产生输入的计数脉冲,等计数到某定值后,要求CPU给予服务。或者由CPU随时读取输入的计数值,对计数过程进行监控,对具有准确周期的脉冲信号进行计数,可达到定时的目的。微机系统的定时分为两类:一类是微机本身运行的定时,称为内部定时,计算机的每一种操作都是在精确的内部定时信号控制下按时间节拍进行的,内部定时由处理器外围的时钟发生器/驱动器及分频控制电路完成,时序关系固定;另一类定时是外部定时,即在计算机与外设或外设与外设之间的定时,外部定时因为外设和被控对象的不同而导致定时信号的不同。

实现计数和定时有软件和硬件两种方法。

编制相应的计数程序或延时程序交由CPU运行可实现软件计数或延时。这种方法节省硬件、灵活性好,但占用大量处理器时间,降低系统效率。也可完全由硬件控制定时/计数,如使用555芯片,它不占用CPU时间,但通用性和灵活性差,改变计数量和定时值必须更改电路硬件参数。现今数字系统广泛使用的是可编程定时/计数器,其定时/计数功能可由程序灵活设置,并可作为独立部件和CPU并行工作。

本章重点讨论实现外部定时/计数的可编程定时/计数器,它可实现如下功能。

·    多任务分时系统中作为中断信号实现程序的切换。

·    I/O端口和外设输出精确的定时信号。

·    作为通用的波特率发生器。

·    对外部发生事件(产生的输入脉冲)计数。

·    实现独立的时间延迟。

8.1  定时/计数器简介

8.1.1  定时/计数器的基本概念

在计算机系统中经常要用到定时信号。一般说来,定时信号可用软件和软硬件相结合的方法来获得。

软件的方法是通过编程,利用执行一条指令所需的时钟数,统计执行一段程序花费的时钟数,乘以一个时钟周期的时间,就得到定时的时间。这种定时方法经常使用,但要占用CPU的工作时间去延时等待,一般用在延时时间不长且使用次数不多的场合。另外,设计延时子程序时要用指令执行时间来拼凑延时时间,显得比较麻烦。这种方法的唯一优点是无须硬件开销。

因而,在微机系统中常采用另一种方法,即软硬件相结合的方式。用可编程定时/计数器可构成一个方便灵活的定时电路。这种方法的主要思想是根据需要的定时时间,用指令对定时/计数器设置定时常数,并用指令启动定时/计数器,达到定时值时,便产生一个定时输出。定时/计数器在工作以后,CPU不必去管它,而可以去做别的工作。这种方法最突出的优点是计数时不占用CPU时间,并且可利用定时/计数器产生的定时/计数结束信号,建立多作业环境,可大大提高CPU的利用率。本节将介绍在PC系列中使用的Intel 8254可编程定时/计数器。

8.1.2  定时/计数器的分类

计算机系统中经常要用到定时信号,如定时检测、定时扫描和时钟定时等,定时方法通常有以下3种。

1.软件定时

所谓软件定时是执行一个循环程序,通过延时来实现定时,时间的长短通过循环次数和循环嵌套层数来调节。这种方法不需要专用的硬件,方法简单、灵活。但是,软件延时要占用CPU时间,降低了CPU的效率,定时精度不高。软件延时通常用在延时时间不长、精度要求不高的场合。

2.不可编程的硬件定时

采用计数器等元件组成一个专用的计时电路也能实现定时。这种方法不占用CPU时间,电路也不复杂。缺点是缺少灵活性,在电路连接好后,定时时间和范围就不能改变。

3.可编程的硬件定时

使用大规模集成电路构成的可编程定时/计数器电路,定时时间可以通过软件来设置。对芯片设置初值后,计数器开始工作,CPU就可以执行其他工作,定时时间到,电路会产生一个信号,向CPU提出中断请求,告诉CPU定时时间已到。由于这种方法定时精确,使用方便,灵活性大,因而得到了广泛的应用。

许多场合还需要对脉冲信号进行计数。例如,产品包装流水线上对产品计数,将若干个小包装组合为大的出厂包装。计数器与定时器的工作方式有不少相似之处,可以通过设计,用一个电路实现定时器和计数器的功能。