当前位置:文档之家› 51单片机学习笔记(三)_定时器和计数器

51单片机学习笔记(三)_定时器和计数器

51单片机学习笔记(三)_定时器和计数器
注:定时器与计数器原理与使用方法相似、此处计数器知识为基础普及、后
面详讲2 个定时器(寄存器)、定时器0、定时器1、(计数器0、计数器1)
TMOD:定时器/计数器模式控制寄存器详见百度百科TMOD
每经过一个机器周期、寄存器+1TF:定时器溢出标志。

溢出时自动置1。


断时硬件清零否则必须软件清零。

TR:定时器运行控制位。

置1 开始计时、清
零停止计时。

C/T:该位为0 时用作计时器、该位为1 时用作计数器。

溢出时
时间-开始计时时间=预设定时时间
一个机器周期共有12 个振荡脉冲周期若设定时为0.02s,则:
12*(65535-X)/11059200=0.02s
定时器作加1 次数:X=47104=0xB800 次时间为0.02s
使用定时器的方法
1、设置特殊功能寄存器TMOD,使之工作在需求的状态。

2、设置计数寄存
器的初值,精确设定好定时时间。

3、设置特殊功能寄存器TCON,通过打开
TR 来让定时器进行工作。

4、判断寄存器TCON 的FT0 位、检测定时器溢出情况。

假设我们使用定时器0、定时为0.02s,两个寄存器计时
TMOD=0x01; TMOD=0x01,指的是采用T0 方式,将M1 置0,M0 置1,是
方式一的定时器
高八位寄存器TH0=0xB8、低八位寄存器TL0=0x00
C 程序实现1s 钟定时
#include typedef unsigned char uint8;typedef unsigned int uint16;sbit led=P1;uint8 counter;void main(){TMOD=0x01;TH0=0xb8;TL0=0x00;TR0=1;。

相关主题