实验目的
(1)理解定时计数器的工作原理。
(3)掌握定时器初始化设计、初值计算方法和中断响应方式。
实验仪器
单片机开发板、稳压电源、计算机。
实验原理
1.定时/计数的基本概念
定时和计数是日常生活和生产中最常见和最普遍的问题。
定时器和计数器功能基本上都是使用相同的逻辑实现的,而且这两个功能都包含输入的计数信号,本质上都是对脉冲计数。计数器用来计数并指示在任意时间间隔内输入信号(事件)的个数,而定时器则对规定时间间隔内输入的信号个数进行计数,以指示经历的时间。
在单片机中,定时器/计数器作定时功能用时,对机器周期计数(由单片机的晶体振荡器经过12分频后得到),因每次计数的周期是固定的,所以根据它计数的多少就可以很方便地计算出经历的时间,如实验图7-1所示。
2.溢出的基本概念
从一个生活中的例程来看:一个水盆在水龙头下,水龙头没关紧,水一滴滴地滴入盆中。盆的容量是有限的,水滴持续落下,盆中的水持续变满,最终有一滴水使得盆中的水满了,这就是“溢出”。
如果一个空的盆要1万滴水滴进去才会满,开始滴水之前可以先放入一部分水,叫作计数初值。如果现在要计数9000,那么可以先放入1000滴水,也就是预置数为1000,再计数8000就可以溢出产生中断。
单片机中通常采用预置数的办法,如果每个脉冲是1μs,则计满256个脉冲需256μs,如果现在要定时100μs,只要在计数器里面先放进156,然后计数100就可以溢出产生中断了,如实验图7-2所示。
实验图7-1 计数与定时的本质原理
实验图7-2 定时器/计数器记满溢出原理
3.定时/计数的主要方法
实现定时或计数,主要有三种方法。
(1)软件延时。
软件延时利用微处理器执行一个延时程序段实现。因为微处理器执行每条指令都需要一定时间,通过指令的循环实现软件延时。软件定时具有不使用硬件的特点,但却占用了大量CPU时间。另外,软件定时精度不高,在不同系统时钟频率下,执行一条指令的时间不同,同一个软件延时程序的定时时间也会不同。
(2)硬件定时。
硬件定时采用数字电路中的分频器将系统时钟进行适当分频产生需要的定时信号,也可以采用单稳电路或简易定时电路(如常用的555定时器)由外接RC(电阻、电容)电路控制定时时间。这样的定时电路较简单,利用不同分频倍数或改变电阻阻值、电容容值使定时时间在一定范围内改变。(www.xing528.com)
(3)可编程的硬件定时。
可编程定时器/计数器最大的特点是可以通过软件编程来实现定时时间的改变,通过中断或查询方法来完成定时功能或计数功能。这种电路不仅定时值和定时范围可用程序改变,而且具有多种工作方式,可以输出多种控制信号,具备较强的功能。
4.定时器/计数器的结构
AT89S51单片机内部的定时器/计数器的结构如实验图7-3所示。定时器T0由特殊功能寄存器TL0(低8位)和TH0(高8位)构成,定时器T1由特殊功能寄存器TL1(低8位)和TH1(高8位)构成。每个寄存器均可单独访问。
实验图7-3 定时器/计数器的内部结构
5.使用的寄存器
定时器/计数器中使用的寄存器包括TCON控制寄存器(见实验表7-1、实验表7-2)和TMOD方式寄存器(见实验表7-3、实验表7-4)。
实验表7-1 TCON控制寄存器
实验表7-2 TCON控制寄存器位名称的说明和功能
实验表7-3 TMOD方式寄存器
实验表7-4 TMOD方式寄存器位名称的说明和功能
实验源程序
实验仿真电路(实验图7-4)
实验图7-4 定时器/计数器二进制计数演示实验仿真图
思考题
1.定时计数器的定时、计数本质是什么?
2.定时计数器能否同时实现定时和计数功能?
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。