51单片机定时器计数初值的计算公式
- 格式:xls
- 大小:18.50 KB
- 文档页数:3
单片机定时器初值计算公式(51单片机和A VR单片机的初值计算三种方法)单片机定时器初值计算公式
一、51单片机定时器初值计算1、方法一
void main(void)
{
s1=1;
TMOD=0x01; //使用定时器T0的模式1
TH0=(65536-46083)/256; //定时器T0的高8位设置初值
TL0=(65536-46083)%256; //定时器T0的低8位设置初值
函数功能:定时器T0的中断服务函数
********************************************************/
void TIme0(void )interrupt 1 using 0 //定时器T0的中断编号为1,使用第1组工作寄存器
{
count++; //每产生1次中断,中断累计次数加1
if(count==20)//如果中断次数计满20次
count=0; //中断累计次数清0
s++; //秒加1
网络上阅读一段程序,定时器初值46083 是怎么计算出来的?一般我们如用AT892051的话定时50MS 就是TH0=(65536-50000)/256;
猜想应该是使用的12M晶体,20次为1S.
2、方法二
10MS定时器初值的计算:
1)晶振12M
12MHz除12为1MHz,也就是说一秒=1000000次机器周期。
10ms=10000次机器周期。
65536-10000=55536(d8f0)。
关于51单片机定时/计数器初值的计算
计数初值的计算定时或计数方式下计数初值如何确定,定时器选择不
同的工作方式,不同的操作模式其计数值均不相同。
若设最大计数值为M ,各操作模式下的M 值为:
模式0 :M=2 13 =8192
模式1 :M=2 16 =65536
模式2 :M=2 8 =256
模式 3 :M=256 ,定时器T0 分成 2 个独立的8 位计数器,所以TH0 、TL0 的M 均为256 。
因为MCS-51 的两个定时器均为加 1 计数器,当初到最大值(00H 或0000H )时产生溢出,将TF 位置 1 ,可发出溢出中断,因此计数器初值X 的计算式为:X=M- 计数值式中的M 由操作模式确定,不同的操作模式计数器的长不相同,故M 值也不相同。
而式中的计数值与定时器的工作方式有关。
1 、计数工作方式时
计数工作方式时,计数脉冲由外部引入,是对外部冲进行计数,因此计
数值根据要求确定。
其计数初值:X=M- 计数值
例如:某工序要求对外部脉冲信号计100 次,X=M-100
2 、定时工作方式时。
mcs-51单片机计数器定时器详解【1】80C51单片机内部设有两个16位的可编程定时器/计数器。
可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。
在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。
:从上面定时器/计数器的结构图中我们可以看出,16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。
其访问地址依次为8AH-8DH。
每个寄存器均可单独访问。
这些寄存器是用于存放定时或计数初值的。
此外,其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。
这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。
TMOD主要是用于选定定时器的工作方式;TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。
当定时器工作在计数方式时,外部事件通过引脚T0(P3.4)和T1(P3.5)输入。
定时计数器的原理:16位的定时器/计数器实质上就是一个加1计数器,其控制电路受软件控制、切换。
当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出为止。
显然,定时器的定时时间与系统的振荡频率有关。
因一个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。
如果晶振为12MHz,则计数周期为:T=1/(12×106)Hz×1/12=1μs这是最短的定时周期。
若要延长定时时间,则需要改变定时器的初值,并要适当选择定时器的长度(如8位、13位、16位等)。
当定时器/计数器为计数工作方式时,通过引脚T0和T1对外部信号计数,外部脉冲的下降沿将触发计数。
计数器在每个机器周期的S5P2期间采样引脚输入电平。
若一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。
第六章MCS-51的定时/计数器1.如果采用晶振的频率为3MHz,定时器/计数器工作方式0、1、2下,其最大的定时时间为多少?解答:因为机器周期,所以定时器/计数器工作方式0下,其最大定时时间为;同样可以求得方式1下的最大定时时间为262.144ms;方式2下的最大定时时间为1024ms。
2.定时/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关?答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。
定时时间与时钟频率和定时初值有关。
3.定时/计数器用作定时器时,对外界计数频率有何限制?答:由于确认1次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。
4.采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式。
定时1ms后,又转为计数方式,如此循环不止。
假定MCS-51单片机的晶体振荡器的频率为6MHz,请使用方式1实现,要求编写出程序。
解答:定时器/计数器T0在计数和定时工作完成后,均采用中断方式工作。
除了第一次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用一标志位识别下一轮定时器/计数器T0的工作方式。
编写程序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0PMAIN: MOV TMOD,#06H ;定时器/计数器T0为计数方式2MOV TL0,#156 ;计数100个脉冲的初值赋值MOV TH0,#156SETB GATE ;打开计数门SETB TR0 ;启动T0,开始计数SETB ET0 ;允许T0中断SETB EA ;CPU开中断CLR F0 ;设置下一轮为定时方式的标志位WAIT: AJMP WAITIT0P: CLR EA ;关中断JB F0,COUNT ;F0=1,转计数方式设置MOV TMOD,#00H ;定时器/计数器T0为定时方式0MOV TH0,#0FEH ;定时1ms初值赋值MOV TL0,#0CHSETB EARETICOUNT: MOV TMOD,#06HMOV TL0,#156SETB EARETI5. 定时器/计数器的工作方式2有什么特点?适用于哪些应用场合?答:定时器/计数器的工作方式2具有自动恢复初值的特点,适用于精确定时,比如波特率的产生。
51单片机定时器计数初值的计算公式
在51单片机中,定时器的计数初值可以通过以下公式计算得出:
定时器计数初值=(计数器溢出值-所需延时)/(晶振频率/分频系数)举例来说,假设我们希望定时器延时1毫秒,CPU使用的晶振频率为11.0592MHz,分频系数为12、根据上述公式进行计算:
需要注意的是,在定时器工作过程中,当计数器达到计数初值时,定
时器将自动触发中断,并重新从计数初值开始计数,直到计数器溢出。
通
过中断服务程序,可以在定时器溢出时执行特定的任务。