51单片机 自动重装载值计算
单片机在不同的方式下,有不同的最大值。咱们现在针对单片机的方式1,设最大值为M。那么M的值应该是:
M=2^16 = 65535
因为定时器是在一直加1计数的,并且在达到并且超过M的值的时候产生一个中断,因此咱们的初值可以这样定义:
X=M-计数值
何为计数值。可以这样理解,我们如果想定时1ms,那么在这1ms内,计数值就是单片机定时器一直加1的次数(加了多少个1)。
在举一个具体的例子:
单片机频率F=11059200,利用定时器0,模式1产生一个5ms定时中断。
首先咱们应该得到单片机的实际运行的频率,咱们知道,默认是经过了12分频的,所以:
f = F / 12 = 921600 (Hz)
在f下,单片机定时器每次加1的时间是
T = 1/ f = 1.085 X 10-6(S)
已知总的时间(5ms),已知定时器每次加1的时间(T),那么在5ms内,定时器可以加多少个1呢?
G = 5ms / T = 4608 (个)
这个G=4608就是计数值,初值
X= 65535 – 4608 = 60927
然后:
TH0 = X >> 8 ;
TL0 = X ;
至此关于自动重装载值(TH0,TL0)的计算已经全部计算完了。
下面咱们再来验证一下,初值为60927是否真的可以定时5ms。
首先,计算需要加多少个1,才会产生溢出。
Y = 65535 – 60927 = 4608(个)
然后,根据前面的计算,已知每次加1的时间为
T = 1/ f = 1.085 X 10-6(S)
那么初值为60927产生的定时时间应该是:
Time = T X Y
= 4608 X 1.085 X 10-6 (S
= 4.999 ms
综上所述,前面推论完全正确
51单片机 自动重装载值计算相关推荐
- STM32通用定时器(原理、结构体、库函数、定时器中断每秒闪烁一次灯) —— 时钟源、分频值、重装载值
参考:stm32定时器与定时器中断 作者:打酱油的 发布时间: 2021-04-11 01:04:09 网址:https://blog.csdn.net/weixin_46098612/article ...
- STM32通用定时器输出PWM控制舵机 —— 重装载值、比较值、当前值
参考:stm32 定时器输出PWM原理及工作原理+控制舵机 作者:点灯小哥 发布时间: 2021-03-09 23:17:52 网址:https://blog.csdn.net/weixin_4601 ...
- 2-51单片机ESP8266学习-AT指令(开发板51单片机自动冷启动下载原理)
前言:了解就行,不必深究 上一篇链接 http://www.cnblogs.com/yangfengwu/p/8720148.html 源码链接:https://pan.baidu.com/s/1wT ...
- 51单片机自动浇水系统/51单片机自动浇花系统/智能浇水系统
51单片机自动浇水系统/51单片机自动浇花系统 整个设计由51单片机模块.湿度传感器模块(土壤湿度传感器或者温度传感器或者温湿度传感器,都可以).lcd1602液晶显示模块等组成,实现智能浇花和智能浇 ...
- 51单片机自动量程(3挡)0-30v直流电压表万用表CD4051 LCD1602显示 MCP3201
实践制作DIY- GC0062-51单片机自动量程电压表 一.功能说明: 基于51单片机设计-51单片机自动量程电压表 二.功能介绍: STC89C52单片机+LCD1602+CD4051量程选择+1 ...
- STM32的预分频和自动重装载的定时器延时设置
根据STM32的定时器时钟的频率,比如时钟的频率是72MHZ,可以理解为一秒钟STM32会自己数72M次, 预分频系数就是将频率分割,比如分频系数是72,则该时钟的频率会变成72MHZ/72=1MHZ ...
- 定时器中断实验 编写程序使定时器0或者定时器1工作在方式2,自动重装载模式,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。
编写程序使定时器0或者定时器1工作在方式2,自动重装载模式,定时500ms使两位数码管从00.01.02--98.99每间隔500ms加1显示. 程序: #include <reg51.h> ...
- c语言打铃器单片机程序,51单片机自动打铃C语言程序
51单片机自动打铃C语言程序: #include "reg51.h" #include "intrins.h" #define uchar unsigned c ...
- 基于51单片机自动售货机设计全套资料
基于51单片机自动售货机设计(原理图+PCB+文档+程序) 项目编号:0001 硬件构成: 本设计由STC系列单片机+12864显示+电源模块+按键模块+蜂鸣器报警模块等元件组功能介绍: 设有8个按键 ...
最新文章
- Spring-AOP实现的两种方式
- C++ Opengl 绘制图像字符源码
- 【spring boot】 mybatis配置双数据源/多数据源
- shell脚本-页面静态化
- 新手程序员如何让他快速成长?一名老程序员,谈谈对程序员的培养
- sp 导出unity哪个_GitHub上发现的一个导出Unity3D场景数据的工具
- 浮点数在计算机中存储方式float,double)---转
- [Codeforces Round #195 (Div. 2)] A. Vasily the Bear and Triangle
- .NET平台下WEB应用程序的部署(安装数据库和自动配置,启动条件)
- python使用ssh 中文_使用Python进行SSH的最简单方法是什么?
- .NET生成静态页面并分页
- Lambda表达式实例
- hibernate执行完查询操作后又执行许多更新操作
- 宋代词人前十名都有谁?第一名更是震铄古今最全能的大文豪
- 人工智能--黑白图片上色
- 电子制造业生产车间物料怎么管?方法有哪些
- linux ftp去不了文件损坏,Linux下使用ftp上传压缩文件,windows下载打开损坏问题
- 第七章:函数实训【寒假作业】
- Eboot代码流程 [转]
- NYOJ 779 兰州烧饼
热门文章
- COJ 1008 WZJ的数据结构(八) 树上操作
- WINCE6.0+S3C2443睡眠和唤醒(sleep and wake up)的实现
- python自动化是什么-自动化专业学习python需要到什么程度?
- 面试之作用域链与闭包
- putty 显示 ubuntu的文件乱码
- [LeetCode]--160. Intersection of Two Linked Lists
- Android OpenGL ES 开发教程(20):颜色Color
- C# 使用反射设置某个对象的属性或读取某个对象的属性
- 计算机达人成长之路(3)连载
- $emit传递多个参数_Go语言参数传递方式