基本介绍
51单片机 内部共有 两个16位 可编程的 定时器/计数器,即定时器T0和定时器T1。
定时器:具有定时的功能,2个定时器/计数器
双功能: 1.可以定时 2.可以计数
注意:任何一个时刻使用,只能使用其中一种功能。
功能:启动定时器后,每个机器周期到来,初值寄存器自动加1,直到计满溢出。
前置知识:
1.时钟周期(振荡周期)
时钟频率的倒数,单片机外接晶振的倒数。例如:12MHz——>1/12us。
单片机中最基本、最小的时间单位。
一个时钟周期仅完成一个最基本的动作。
时钟脉冲是CPU基本工作脉冲,控制着CPU的工作节奏
时钟频率越高,单片机工作速度越快
2.状态周期1状态周期 = 2时钟周期
3.机器周期单片机基本操作周期,一个操作周期完成一项基本操作,取指令、储存器读写
1机器周期 = 6 状态周期 = 12 时钟周期例如:12MHz的一个机器周期是1us。
4.指令周期CPU执行一条指令的时间
1指令周期 = 1~4 机器周期
工作流程
①启动
②机器周期
③初值寄存器
TH0和TL0,TH0为高八位,TL0为低八位。初值均为00H
④自动加1
⑤溢出
当高八位和低八位都计满
(二进制为 1 00000000 00000000时,==65536个机器周期,
即65535us=65.536ms)
初值的计算
可写为
TH0=0x3c;//高八位 0060
TL0=0xb0;//低八位 0176
或者
TH0=(65536-50000)/256;//高八位取 商数 舍 余数
TL0=(65536-50000)%256;//低八位取 余数 舍 商数
例程:定时器计时1s
//实现定时器定时1s
for(i=1;i<=20;i++)
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
}//50ms×20=1s
编程实现步骤
①报备 ②置初值 ③启动 ④等待 ⑤重置初值 ⑥清溢出
未完待续……