51单片机的定时器延时计算
来源:互联网 发布:炒石油软件 编辑:程序博客网 时间:2024/05/17 02:57
定时器延时的计算
定时器延时的计算先要确定以下几个值:
1.确定时钟周期、机器周期。
时钟周期由单片机的晶振频率Fclk决定。那么时钟周期就是1/Fclk(比如:11.0592MHz)。确定单片机的机器周期是n个时钟周期(n在51单片机下一般是12)。
2.确定需要单次定时器最大的计时时间长度
如果是16位的计数器,16位最大值是65535,共可计数65536次。如果是8位最大值是255,共可计数256次,12 * 65536/11059200 = 0.0711s,也就是说单次定时时间不超过71 ms
3.确定计数器初始值
先确定每一次要定时的时间长度,比如xms (注意不要超过步骤2的单次定时最长时间), 那么计数器的初始值如下: TH0=(65536-Fclk/1000/n*x)/256; //注意:这里的除以1000是认为Fclk的单位是MHz TL0=(65536-Fclk/1000/n*x)%256;
51单片机定时器示例代码,每1秒钟 P1口电平翻转
#include <stdio.h>#define Fclk = 11059200UL //11.0592MHztypedef unsigned int uint16;void main(void){ uint16 counter; TMOD &=0xF0; TMOD |= 0X01; TH0=(65536-Fclk/1000/12*10)/256; //定时间隔为10ms TL0=(65536-Fclk/1000/12*10)%256; TR0 =1; while(1) { if(TF0 == 1) { TF0 = 0; TH0=(65536-Fclk/1000/12*10)/256; TL0=(65536-Fclk/1000/12*10)%256; counter++; } if(counter == 100) { counter = 0; P1 = ~P1; //每1秒钟P1口电平翻转 } }}
0 0
- 51单片机的定时器延时计算
- 51单片机的延时及定时器
- 51单片机延时计算
- 51单片机基于定时器0的硬件延时代码
- 51单片机定时器初值的计算
- 51单片机定时器初值的计算
- 51系列单片机延时程序计算的分析(汇编)
- 51单片机定时器初值计算
- 51单片机定时器初值计算
- 单片机实际延时时间的计算
- 51单片机汇编延时计算详细分析
- 【51单片机】延时函数计算问题以及如何准确延时
- 51单片机的延时子程序
- 51单片机中定时器/计数器初值的计算
- STC单片机的定时器怎么计算
- 51单片机汇编语言--延时程序的延时时间
- 51单片机延时程序的简单研究
- 51单片机的几种精确延时
- java整型byte,short,int,long取值范围大小
- PYTHON自学笔记1
- 打开unity突然报错unity license error
- 安装五笔输入法
- java正则校验,密码必须由字母和数字组成
- 51单片机的定时器延时计算
- 在studio中png图片异常导致的错误
- iOS 动态更新方案对比:JSPatch vs React Native
- linux下普通用户root权限
- Linux下Rsync+Inotify-tools实现数据实时同步
- mongoClient备忘
- retrofit学习(一)-----主要类的学习
- FFMPEG选项解释
- UVALive - 3902 Network