单片机守时器/计数器根本原理
现在常用的单片机中往往都装备了守时器/计数器。在AT89S52芯片内包括有三个16位的守时器/计数器:T0、T1和T2,其中心是加1计数器。咱们首要要求把握T0和T1的结构和功用。学习中要注意从电路结构上来了解功用的完结。守时器/计数器办法寄存器TMOD和守时器/计数器操控寄存器TCON是用以设定守时器/计数器的工作办法、守时或计数功用,操控发动或中止以及发生溢出中止的重要模块,应该对这两个寄存器中的逐位的界说和功用进行学习和把握。
一、守时器/计数器的功用
AT89S52单片机守时器/计数器的根本部件是两个8位的计数器(T1计数器分为高8位TH1和低8位TL1,T0计数器的高8位是TH0,低8位是TL0)。如图1所示。
图1 T0和T1的根本构成
守时器/计数器的中心是一个加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)可编程的硬件守时
可编程守时器/计数器最大特色是能够经过软件编程来完结守时时刻的改动,经过中止或查询办法来完结守时功用或计数功用。这种电路不只守时值和守时规模可用程序改动,并且具有多种工作办法,能够输出多种操控信号,具有较强的功用。