1.细节

上一讲里,我们知道TH0和TL0合成的“16位的变量”的初值最小要为0,不能是负数,

所以我们要满足:65536-( x/(12/11059200) )>=0。

解得x<= 0.071111秒=71.111毫秒。

也就是用定时器的工作模式1最长的定时时间为71毫秒左右而已。

2.定时器开关

首先定时器也是有开关的,这个相当于我们的导管是否打开让水流进“试管”里。

因为我们用的是定时器0,TCON^4这个位就是控制定时器0是否打开或关闭,所以“TR0=1;”就是打开了定时器开始计时,“TR0=0;”是关闭了定时器计时功能。

只要打开了定时器,TH0和TL0合成的“16位的变量”就会每过(12/11059200)秒就自加1,直到定时器溢出。

3.溢出标志

我们的定时器0一旦溢出,TCON^5就会被置1(TF0==1),如果我们不使用中断函数也是可以在主函数里等待判断“if(TF0==1)”。TF0跟外部中断0的IE0一样,被置1了需要软件清零。

4.工作模式1的代码

这里我们用定时器0来实现间隔50ms的流水灯实验#include

#include //详见第六章第8讲

void main()

{

u8 i=0;

LED_Init();   //初始化LED硬件模块

TMOD = 0x01;  //设置定时器0为工作模式1

TH0  = 0x4C;  //设置定时时间为50ms

TL0  = 0x00;

TR0  = 1;     //启动定时器0

while(1)

{

if (TF0 == 1)     //判断定时器0是否溢出,每隔50ms就可以进入一次这个if语句

{

TF0 = 0;      //定时器0溢出后,清0溢出标志

TH0 = 0x4C;   //重新赋初值,保证下次溢出间隔时间还是50ms

TL0 = 0x00;

P0=~(0x01<

i++;

}

if(i>=8)i=0;

}

}

5.定时器1的使用

如果我们用定时器1实现上处代码同样的功能,那么TMOD只要初始化为“TMOD=0x10;”

还有把TH0,TL0,TR0,TF0这些全部改为TH1,TL1,TR1,TF1即可,所以说这两个定时器的工作原理都是一样的。#include

#include //详见第六章第8讲

void main()

{

u8 i=0;

LED_Init();   //初始化LED硬件模块

TMOD = 0x10;  //设置定时器1为工作模式1

TH1  = 0x4C;  //设置定时时间为50ms

TL1  = 0x00;

TR1  = 1;     //启动定时器1

while(1)

{

if (TF1 == 1)     //判断定时器1是否溢出,每隔50ms就可以进入一次这个if语句

{

TF1 = 0;      //定时器1溢出后,清0溢出标志

TH1 = 0x4C;   //重新赋初值,保证下次溢出间隔时间还是50ms

TL1 = 0x00;

P0=~(0x01<

i++;

}

if(i>=8)i=0;

}

}

c语言定时器作用,定时器简单运用相关推荐

  1. c语言定时器作用,Go语言定时器实现原理及作用

    对于任何一个正在运行的应用,如何获取准确的绝对时间都非常重要,但是在一个分布式系统中我们很难保证各个节点上绝对时间的一致性,哪怕通过 NTP 这种标准的对时协议也只能把时间的误差控制在毫秒级,所以相对 ...

  2. 在c语言中pwm的作用,PWM调速的C语言程序编写(非常简单);

    <PWM调速的C语言程序编写(非常简单);>由会员分享,可在线阅读,更多相关<PWM调速的C语言程序编写(非常简单);(4页珍藏版)>请在人人文库网上搜索. 1.PWM调速的C ...

  3. c语言控制led闪烁次数,单片机C语言程序设计之定时器控制4个LED滚动闪烁

    描述 通过单片机课程设计,熟练掌握C语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力.通过定时器控制4只LED滚动闪烁系统的设计,掌握定时/计数器的使用方法,和简单程序的编写,最终提高 ...

  4. 微波炉定时c语言程序,微波炉定时器—微波炉定时器与微波炉原理

    微波炉大家都是非常地了解了,但是对于微波炉定时器,大家应该都不怎么清楚吧.今天舒适100网就带大家来深入地了解微波炉,再浅显地讲一下微波炉定时器,微波炉定时器的知识对于我们来说还是有用的. 微波炉定时 ...

  5. 单片机定时器作用与优势

    定时器作用:计数器.延时,输入捕获(解码和测量时间间隔).输出比较(主要输出PWM波).单脉冲输出.触发中断(对其他模块进行操作) 优势:不需要CPU参与.精确 计数器.延时.触发中断这是定时器典型的 ...

  6. STM32定时器配置(TIM1、TIM2、TIM3、TIM4、TIM5、TIM8)高级定时器+普通定时器,定时计数模式下总结

    STM32定时器配置(TIM1.TIM2.TIM3.TIM4.TIM5.TIM8)高级定时器+普通定时器,定时计数模式下总结 文章结构: --> 一.定时器基本介绍 --> 二.普通定时器 ...

  7. python 消息队列 go_gmq: gmq是基于redis提供的特性,使用go语言开发的一个简单易用的消息队列;支持延迟任务,异步任务,超时任务,优先级任务...

    1. 概述 gmq是基于redis提供的特性,使用go语言开发的一个简单易用的队列;关于redis使用特性可以参考之前本人写过一篇很简陋的文章Redis 实现队列; gmq的灵感和设计是基于有赞延迟队 ...

  8. 闭包的作用和简单案列

    闭包的作用和简单案例 闭包的定义:闭包就是能够读取其他函数内部变量的函数: 简单的理解为:一个作用域可以访问其他函数内部的局部变量: 常见的方式:一个函数内创建另外一个函数,通过另外一个函数访问这个函 ...

  9. spring 定时器设置停止_单片机MSP430入门-理论⑦--定时器模块-定时器A②

    单片机MSP430入门-理论⑦--定时器模块-定时器A② 上期大概给大家汇总介绍了,定时器模块中比较重要并且常用的定时器A,大概说了下定时器A的两种常用模式,比较模式和捕获模式 本期将继续介绍定时器A ...

最新文章

  1. python3 socket 超时设置
  2. 安装eclipse for c/c++环境
  3. 基于卷积神经网络的匹配代价算法
  4. scope参数错误或没有scope权限_SSM 单体框架 - 前端开发:用户和权限模块
  5. 不错的 HttpHelper类 c#
  6. 手机麦克风结构原理图_一文看懂咪头的工作原理及结构(驻极体话筒)
  7. Tarjan算法详解
  8. 计算机系军训口号四句霸气,军训口号四句霸气中队
  9. 弹出usb大容量储存设备时出问题
  10. 程序猿最喜欢说的30句话!看看你有没有说过
  11. RTMP直播推流(二)音频推流
  12. 接口测试中Post方法怎么测?
  13. 腾讯地图javascript API实现地图模糊搜索标记,经纬度输入及点击双向定位
  14. 计算机谱子勇敢爱,【数字乐谱大全流行歌曲】流行歌曲勇敢爱乐谱及歌词.doc...
  15. 个人简历网站的需求分析
  16. xshell左边的菜单栏目,显示会话连接的不见了怎么办?
  17. 电脑硬盘分区不见了怎么恢复数据?参考方法在这
  18. Android 自定义seekbar【仿微信联系人】
  19. 苏州IT外包公司如何选择?IT外包服务案例分析
  20. Task 05:样式色彩秀芳华

热门文章

  1. Python之字符串转译
  2. bc显示特殊html字符,HTML特殊字符显示
  3. Kotlin的委托机制
  4. Laravel 中 Faker库 生成数据方法总结
  5. 开放式社交网络(OSN网络)之二:一个不甘被时代淘汰的中年父亲
  6. Eclipse4.8.0汉化
  7. 原生alert确定取消按钮
  8. 工业机器的编程技术介绍
  9. Nginx 符合域名跳转
  10. Error-tf.function-decorated function tried to create variables on non-first call