IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 51单片机 定时器的初始值计算 -> 正文阅读

[嵌入式]51单片机 定时器的初始值计算

我们先来看初始值计算公式:

*定时时间=(2^16-X)12/晶体振荡器频率
2^16=65536, X是未知量,定时时间和65536单位都是微秒。

假设晶体振荡器频率为11.0592MHZ,我要定时0.5s,那么计算思路是这样的:

  1. 首先要知道1s=1000ms,1ms=1000微秒。
  2. 由公式可知:(65536-0)*12/11.0592=71ms,最大只能到71ms,而0.5s=500ms,远远不够。所以我们需要退一步,算个5ms(5000微秒)循环个100次,这样就可以得到500ms(0.5s)。
  3. 公式:*5000=(2^16-X)12/11.0592
    **得 X=60928 **
    60928转换为16进制=0xee00,分配高8位TH=0xee,低8位TL=0x00,初始值就这样算好了。
    转换不熟练的同学可以用win10自带的计算器进行转换。
#include<reg51.h>
       char i=100;     //循环100次,5ms*100=500ms,500ms=0.5s
void main()
{
        P2=0Xff;          //led初始化  
        TMOD=0x01;        //定时器T0为方式 1 
		EA=1;             //总中断允许
		ET0=1;           //允许计时器T0中断
	    TR0=1;           //启动定时器T0
	   
	   	TH0=0xee;        //高8位
		TL0=0x00;       //低8位
		//高8位与低8位组成初始值
		
		while(1);      //循环等待
}
void 	timer0(void) interrupt 1       //T0中断程序
{
		
		TH0=0xee;         //重新赋初始值
		TL0=0x00;
		
     	i--;             //循环自减
	      if(i<=0)       //判断
		{
		  P2=~P2;       //取反,实现led每0.5s亮一次
		  i=100;        //重置循环次数
		}
}

当然,还有更方便的计算方式,在烧录软件STC-LSP找到定时计算器,选好定时器、工作方式、时钟以及定时长度(初始值),就能自动得到初始值了
在这里插入图片描述
注意这里定时长度,上面我们说到定时器方式一是16位,既2^16,最大只能算出71ms,我们定时单位是ms的话超出71是没有办法计算的,所以这就是为什么不直接输入500ms的原因。

我们可以输入5ms算出初始值然后循环100次再运行
也可以输入50ms得到初始值循环10次再运行,结果都是一样的。

用软件里的定时功能计算减去了我们自己计算的步骤,方便快捷准确,没用过的同学可以试一下。
定时器模式:
在这里插入图片描述
方式0 :2^13
方式1 :2^16
方式2 :2^8

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-07-22 14:21:29  更:2021-07-22 14:23:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/6 6:15:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码