一、定时器/计数器的功能
AT89S52单片机定时器/计数器的基本部件是两个8位的计数器(T1计数器分为高8位TH1和低8位TL1,T0计数器的高8位是TH0,低8位是TL0)。如图1所示。
定时器/计数器的核心是一个加1计数器,在作定时器利用时,它对机器周期进行计数,每过一个机器周期计数器加1,直到计数器计满溢出。
当它用为难刁难外部事宜计数时,计数器接相应的外部输入引脚T0(P3.4)或T1(P3.5)并在每个机器周期的S5P2时采样,当采样到1—0的负跳变时,计数器加1。
二、定时器/计数器的构造
AT89S52单片机内部的定时/计数器的构造如图2所示。定时器T0由分外功能寄存器TL0(低8位)和TH0(高8位)构成,定时器T1由分外功能寄存器TL1(低8位)和TH1(高8位)构成。每个寄存器均可单独访问。
图2 定时器/计数器的内部构造
一、定时/计数的基本观点
定时和计数这天常生活和生产中最常见和最普遍的问题。
定时器和计数器功能基本上都是利用相同的逻辑实现的,而且这两个功能都包含输入的计数旗子暗记,实质上都是对脉冲计数。计数器用来计数并指示在任意间隔内输入旗子暗记(事宜)的个数,而定时器则对规定间隔内输入的旗子暗记个数进行计数,用来指示经历的韶光。
在单片机中,定时/计数器作定时功能用时,对机器周期计数(由单片机的晶体振荡器经由12分频后得到),因每次计数的周期是固定的,以是根据它计数的多少就可以很方便的打算出它计数的韶光。如图1所示。
图1 计数与定时
二、溢出的基本观点
从一个生活中的例程看起:一个水盆在水龙头下,水龙头没关紧,水一滴滴地滴入盆中。盆的容量是有限的,水点持续落下,盆中的水持续变满,终极有一滴水使得盆中的水满了,这便是“溢出”。
如果一个空的盆要1万滴水点进去才会满,开始滴水之前可以先放入一部分水,叫做计数初值。如果现在要计数9000,那么可以先放入1000滴水,也便是计数初值为1000,再计数9000就可以溢动身生中断。
单片机中常日采取计数初值的办法,如果每个脉冲是1微秒,则计满256个脉冲需时256微秒,如果现在要定时100奇妙,只要在计数器里面先放进156,然后计数100就可以就可以溢动身生中断了。如图2所示。
图2 定时器/计数器的溢出
三、定时/计数的紧张方法
实现定时或计数,紧张有三种方法。
(1)软件延时
软件延时利用微处理器实行一个延时程序段实现。由于微处理器实行每条指令都须要一定韶光,通过指令的循环实现软件延时。软件定时具有不该用硬件的特点,但却占用了大量CPU韶光。其余,软件定时精度不高,在不同系统时钟频率下,实行一条指令的韶光不同,同一个软件延时程序的定时韶光也会不同。
(2)硬件定时
硬件定时采取数字电路中的分频器将系统时钟进行适当分频产生须要的定时旗子暗记,也可以采取单稳电路或大略单纯定时电路(如常用的555定时器)由外接RC(电阻、电容)电路掌握定时韶光。这样的定时电路较大略,利用不同分频倍数或改变电阻阻值、电容容值使定时韶光在一定范围内改变。
(3)可编程的硬件定时
可编程定时器/计数器最大特点是可以通过软件编程来实现定时韶光的改变,通过中断或查询方法来完成定时功能或计数功能。这种电路不仅定时值和定时范围可用程序改变,而且具有多种事情办法,可以输出多种掌握旗子暗记,具备较强的功能。