51单片机-定时器概念

发布者:SparkCrafter最新更新时间:2021-10-14 来源: eefocus关键字:51单片机  定时器 手机看文章 扫描二维码
随时随地手机看文章

1.生活的例子

通过上一章大家已经有了对中断知识的了解,像外部中断这种需要物理动作才能触发中断函数执行,但很多情况下我们需要的是中断函数在适当时刻可以自动得去执行,所以就需要定时器来辅助了。


定时器是单片机内部的一个硬件资源。


用生活常见现象举例:定时器相当于一个闹钟,我们调5分钟后闹钟就响,在这5分钟里我们想做什么就做什么,相当于我们自己是主函数里的任务,想运行什么任务就运行什么,也不用去理会闹钟还剩多少时间就响,我们只是一直做我们想做的事就行。


之后闹钟响了,这时我们不能再任性去做主函数的事了,得赶紧把中断函数里的事办完先,也就是要去执行中断函数了,主函数的事要暂停不做先,执行完中断函数之后继续回到主函数做我们的事。可是又过了5分钟闹钟又响了,没办法,我们又要放停自己的事去执行中断函数了,当然闹钟是可以关闭的,这就相当于是把中断函数的触发开关给断开了。


2.溢出

我们知道秒表计时到59秒的时候,再过1秒就变成了00。同理,当我们的unsigned char类型的变量的数值为255时,再加1就变为0了, unsigned int的变量如果此时的值为65535,后面再加1也同样成为0,这些都叫溢出。


再举一个例子来理解定时器溢出概念,中学时我们做过一些化学实验,其中有一种容器叫做试管,如果试管是空的,我们用一个导管往试管里加水,导管的水流流速是均匀不变的,试管里的水要想溢出,需要的是x个单位的时间,如果我们想把距离溢出的时间缩短为一半,那我们提前把试管里的水装满到一半,这样就可以改变了溢出时间。


通过这个例子我们就可以明白,要想确定好定时器溢出产生中断的间隔时间,我们就要往这个“试管”提前装好合适的水量。


我们下一讲再继续讲解这个“试管”!


关键字:51单片机  定时器 引用地址:51单片机-定时器概念

上一篇:51单片机-外部中断测脉冲个数
下一篇:51单片机-定时器工作模式

推荐阅读最新更新时间:2024-11-17 09:31

利用单片机实现对激光器电流的精度控制
引 言 近年来,随着光电技术的迅猛发展,激光器已广泛应用于医疗、国防、测量等各个领域。而环境温度变化会直接影响激光器的波长。把关键元件(如高性能晶振、SAW 滤波器、光放大器、激光二极管) 的本机温度限制在窄范围内,可以提高电子系统的精度。一般需要将温度控制在0. 1 ℃内,激光器的工作精度才能很好地保持在0. 1nm 内 。文中的设计方案能为大功率半导体激光器提供有效支持,最大电流可达2. 5A。 1  半导体激光控制器的设计 激光控制器由受控恒流源,温度监视及控制电路,主控制器及显示器构成。整体结构原理见图1。 1. 1  受控恒流源: 为了使激光器输出稳定的激光,对流过激光器的电流要求
[单片机]
利用单片机实现对激光器电流的精度控制
51单片机—使用PWM对直流电机调速
- 什么是PWM PWM(脉宽调制),是靠改变脉冲宽度来控制输出电压,通过改变周期来控制其输出频率。 (脉冲可以理解为是IO口的一次高低电平改变) - PWM是怎么对直流电机进行调速的 使用PWM对电极调速时,是靠改变占空比(改变脉冲宽度)来控制输出电压的,电压较小电机转速就会下降;再通过改变周期(脉冲的周期)来控制其输出频率,脉冲频率对电机的转速有着决定性作用,脉冲频率越高连续性就越好。 我们一般时通过改变占空比来改变电机转速的。 (占空比:占空比是指一个脉冲循环内,通电(高电平)时间相对于总时间所占的比例。) - 通过定时器中断实现PWM调速 因为51单片机不附带PWM硬件电路,所以我们一般通过软件模拟PW
[单片机]
51单片机程序执行流程(STARTUP.A51)
keil 版本:uVision 4 单片机是没有上操作系统的东西,在keil中编写的代码都是裸机代码,深入编写裸机代码有助于了解硬件的特性。 若不是硬件特性已定的情况之下的其它流程都是代码作祟。忽然想到来探探51单片机的执行流程。这个念头起源于最初见到每个51程序里面的主函数里面最终都挂一个while(1);语句。为何要加一句while死循环让程序停留在main函数中呢。将while(1);语句去掉有什么影响么? 写一个很简单的程序试一下。 #include reg52.h void delay_ms( int ms ); int main() { P1 = ~P1;
[单片机]
<font color='red'>51单片机</font>程序执行流程(STARTUP.A51)
51-基于51单片机射频RFID卡考勤上课上班统计设计
具体实现功能 系统由STC89C52单片机电路+RFID模块电路+1602液晶显示电路+电源电路组成。 具体功能: (1)系统有3张卡,分别代表依次是张三、李四、王二; (2)任何一个人刷卡成功能,1602液晶响应显示,未刷卡显示“N”,刷卡成功后显示“Y”; (3)液晶第二行显示刷卡人数,即出勤总人数。 设计背景 随着信息化建设的不断发展,磁卡得到普遍的推广,大部分采用RFID射频技术,通过射频信号自动识别目标对象获取数据,识别工作不受环境的影响,操作方便快捷,具有防污、防水、加密存储等优点,较传统的接触式IC卡,具有明显的优势,被广泛应用在身份识别、消费等各项服务上,为企业或单位的管理以及人们的生活提供极大
[单片机]
51-基于<font color='red'>51单片机</font>射频RFID卡考勤上课上班统计设计
labview中的的几种定时器
LABVIEW提供了几种定时器(包括DELAY),如下图所示 首先看看Tick Count 节点的帮助说明: 返回毫秒定时器的值. 基准参考时间(0 毫秒)未定义,也就是说,不能把返回的毫秒数直接转换成现实世界的时间和日期.必须注意当你使用这个函数进行比较的时候,毫秒定时器达到2^32-1后反转成0. 基准参考时间未定义,说法比较模糊,难道会是个随机数,那显然不可能,如果是随机数,那两次调用 TI CK COUNT取得差值就不可能表示经过的毫秒数.无论如何,必须有个时间的起点. API函数中也有一个类似的函数:GetTickCount,该函数返回计算机启动以来经过的毫秒数.在9X中,它读取的是BIOS中保存的系统时钟
[测试测量]
labview中的的几种<font color='red'>定时器</font>
51单片机C语言程序100例分析(3)串口
//实例49:用定时器T0的中断实现 渴望 主题曲的播放 #include reg51.h //包含51单片机寄存器定义的头文件 sbit sound=P3^7; //将sound位定义为P3.7 unsigned int C; //储存定时器的定时常数 //以下是C调低音的音频宏定义 #define l_dao 262 //将“l_dao”宏定义为低音“1”的频率262Hz #define l_re 286 //将“l_re”宏定义为低音“2”的频率286Hz #define l_mi 311 //将“l_mi”宏定义为低音“3”的频率311Hz #define l_fa 3
[单片机]
51单片机-按键入门
这一章我们讲解单片机最常用的硬件部分——按键! 1.原理图 按键分 独立按键 和 矩阵按键,本教程不讲解矩阵按键,4个独立按键已经满足大部分的程序测试。学会了独立按键,矩阵按键可参考宋老师的教程。 先看到我们开发板上的K4 我们单独拿这个按键来入门,看一下它的原理图 现在让单片机的P2.3输出低电平,则演化为下图所示 要是K4被按下导通,则 圈出部分都为0V电压,因为这些地方都被接了地。 2.原理 原理很简单,我们开发板上的按键用的是没有自锁功能的自弹起的按键,也就是像按家里电磁炉上的按键一样,按下之后两个断点就被短接起来,松手后这时按键自己弹起,两个断点就没有短接在一起了。 拿P2.7来说,当K4按
[单片机]
<font color='red'>51单片机</font>-按键入门
51单片机C语言编程之内存优化
最常见的是以下两种 ① 超过变量128后必须使用compact模式编译 实际的情况是只要内存占用量不超过 256.0 就可以用 small 模式编译 ② 128以上的某些地址为特殊寄存器使用,不能给程序用 与 PC 机不同,51 单片机不使用线性编址,特殊寄存器与 RAM 使用重复的重复的地址。但访问时采用不同的指令,所以并不会占用 RAM 空间。 由于内存比较小,一般要进行内存优化,尽量提高内存的使用效率。 以 Keil C 编译器为例,small 模式下未指存储类型的变量默认为data型,即直接寻址,只能访问低 128 个字节,但这 128 个字节也不是全为我们的程序所用,寄存器 R0-R7必须映
[单片机]

推荐帖子

为什么: "Error[401]: Operand syntax error"
求解答才开始学arm菜的不行完全没头绪这个嵌入汇编程序为什么报错呢void_nop_(){__asm(MOVR0,R0\\n);报错位置}voiddelay(void){inti;for(i=0;i=10;i++){_nop_();}}voiddelay10(void){inti;for(i=0;i=10;
心中有曲自然嗨 ARM技术
红外编码与解码——GREE格力遥控 发送
在上一期上描述了红外解码,以及红外在传播过程中造成的误差,上期回顾02、红外编码与解码——GREE格力遥控https://bbs.eeworld.com.cn/thread-462015-1-1.html针对GREE格力遥控的红外编码的原则file:///C:/Documents%20and%20Settings/Administrator/Local%20Settings/Application%20Data/YNote/data/1696933323@qq
dvd1478 NXP MCU
请问scsi write long 命令的ECC校验码怎么写
如题请问scsiwritelong命令的ECC校验码怎么写查查linux是怎么写的吧...
玲珑宝贝 嵌入式系统
收到MSP-EXP430FR5739实验板套件的坛友们举个手
MSP-EXP430FR5739实验板套件的团购现在结束了,有多少坛友们收到了开发板,快来报个到,咱们也来讨论讨论怎么利用这块带FRAM的开发板。 收到MSP-EXP430FR5739实验板套件的坛友们举个手要不要建立一个群啊,大家交流下,我什么不懂啊我收到了,但是我还没有弄好运行环境!不是发货单么?还要统计我收到了不过没时间弄有想法用用,不过看时间啦昨天收到!一个鸡肋数码相册框,还要插上电源才能用,巨耗电,发热。虽然能看看转换过的电影,不过觉得不舒服没用48
wstt 微控制器 MCU
STM32的I2C接口有问题吗?
前阵子有个项目,用了STM32F103,I2C总线上挂了两三个器件。读写器件时,总是等待某标志位出错。由于时间紧,只能模拟I2C了。后来在网上搜了一下,貌似有哥们遇到类似问题,说是ST官方的errata承认I2C有问题。不知道各位遇到过没?希望赐教!merci~STM32的I2C接口有问题吗?有没问题不知道,但效率确实比IO模拟的高太多了普通配置一下参数什么的,建议还是IO模拟算了,基本所有处理器通吃,而且
nec stm32/stm8
仙童“族谱”
本帖最后由jameswangsynnex于2015-3-319:58编辑这个族谱应该是仙童自己绘制的,看到这个族谱很是意外,仙童几乎就是整个硅谷仙童“族谱”本帖最后由jameswangsynnex于2015-3-319:58编辑难道LINEAR也是NS分出来的?本帖最后由jameswangsynnex于2015-3-319:58编辑也就是飞兆半导体,和牛叉的一个公司本帖最后由jameswangsynnex于2015-3-319
wstt 移动便携
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved