1.工作模式2的使用

这里我们顺便讲解一下定时器0的工作模式2,也就是使用“小试管”的方式,TMOD的初始化就为“TMOD=0x02;”。

我们知道工作模式2的最长溢出时间仅为256*(12/11059200)=0.000277秒=277微秒。

我们想实现间隔51ms的流水灯实验该怎么做,首先我们定义一个变量cnt用来记录每次的溢出次数,然后我们的定时时间为51微秒(因为最大定时只有278微秒),cnt记录的值等于1000的时候,证明时间已经过去了51ms,于是再去执行流水灯的任务。

我们已经知道工作模式2是不需要在溢出之后再填充初始值的,比如我们定时的时间为51微秒,那么计算出“距离溢出的刻度”就为47(实际计算出的是47.0016,所以定时为51微秒误差就不大)。

所以给TL0赋初值为256-47=209=0xD1。那么TH0也是给初值为0xD1,这是保证每次TL0溢出之后新的初始值是等于TH0的值的,所以定时器工作模式2又叫做8位自动重装载模式。相关概念还需读者再去另外学习这些理论知识。

2.工作模式2的代码#include

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

void main()

{

u8 i;

u16 cnt;

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

TMOD = 0x02;  //设置定时器0为工作模式2

TH0  = 0xD1;

TL0  = 0xD1;  //定时51us

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

while(1)

{

if (TF0 == 1)    //每隔51us就可以进入一次这个if语句

{

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

cnt++;       //记录溢出次数

}

if(cnt>=1000)    //时间过去了51ms

{

cnt=0;

P0=~(0x01<

i++;

}

if(i>=8)i=0;

}

}

大家对照上一讲的工作模式1的代码会发现,工作模式2在while循环中不再出现TH0和TL0的身影,TL0每次溢出之后,初值又变为TH0初始时候的值了,所以定时时间在while循环之前就已经决定好了。

大家可以尝试着把“if(cnt>1000)”里的1000改为10000就是间隔510ms的流水灯了。

往后我们做的题目定时时间一般最少都是要定时1毫秒以上,所以用工作模式1的机会会很多,而工作模式2在我们前期教程里会很少运用,等学到串口通信相关知识时我们再重拾这个知识点。

定时器1工作方式2c语言,定时器工作模式2相关推荐

  1. 定时器1工作方式2c语言,定时器工作模式

    1.两种"试管" 这种"试管"有65535个刻度的型号,也有255个刻度的型号,不过我们的导管水流流速是永远不变的. 如果我们用的是大试管(65535个刻度), ...

  2. 电热水器工作过程 c语言,电热水器工作原理—电热水器工作原理及使用注意事项介绍...

    电热水器现在已经成为了一种最为受到消费者喜爱的热水设备,而在我们大家购买电热水器的时候,并不是很了解电热水器,所以今天小编就来为大家介绍一下电热水器的一些工作原理及一些使用中的注意事项,希望可以帮助大 ...

  3. 电热水器工作过程 c语言,热水器工作流程图

    燃气热水器做为热水供应设备,被很多家庭所采用,然而,恒温作为燃气热水器的一个痛点,一次次被击中,那么到底为什么燃气热水器实现恒温这么难呢?我们将从原理讲起,带您认识真正的燃气热水器. 燃气热水器工作原 ...

  4. 不相关子查询的工作方式是_课题组工作|Nucleic Acids Research|基于表达密度谱的特征子空间分离及相关单细胞转录组分群新算法...

    大家好!为大家分享本课题组近期发表在Nucleic Acids Research的文章,题目为 "Entropy subspace separation-based clustering f ...

  5. c语言定时器实验程序,C语言定时器实验.doc

    C语言定时器实验 实验三 C语言定时器实验 一.实验目的 1.进一步熟悉DSP的中断机制 2.在掌握中断服务程序编写的基础上进一步熟悉定时器的运用 3.进一步掌握如何编写DSP中断服务子程序 二.实验 ...

  6. 单片机基础(五):定时/计数器的工作原理及工作方式

    定时 / 计数器 单片机中的模块,可通过编程实现对系统时钟计数(作定时器),也可以对外部信号计数(作计数器) 每个定时/计数器都有多种工作方式,不同的工作方式对应计数长度和初值装载方式不同 51系列单 ...

  7. C51单片机 波特率选择 和 串口的工作方式

    串口的工作方式 MCS-51串行口有0.1.2.3四种工作方式. 方式0:8位同步移位寄存器方式 方式1:10位通用异步通信 方式2:11位异步通信 方式3:可变波特率11位异步通信. 方式0:同步移 ...

  8. 《编译与反编译技术实战》——2.1节编译器、解释器及其工作方式

    本节书摘来自华章社区<编译与反编译技术实战>一书中的第2章,第2.1节编译器.解释器及其工作方式,作者刘晓楠 陶红伟 岳 峰 戴超,更多章节内容可以访问云栖社区"华章社区&quo ...

  9. Makefile_07:Make 的工作方式

    Make 的工作方式 GNU 的 make 工作时的执行步骤入下: 1.读入所有的 Makefile. 2.读入被 include 的其它 Makefile. 3.初始化文件中的变量. 4.推导隐晦规 ...

最新文章

  1. 苹果8怎么投屏到电视_苹果电脑电视不在一个房间可以投屏
  2. Chosen通用初始化
  3. java 源树_【Java源码】树-概述
  4. pdf文字无法复制怎么办?unlock解密pdf
  5. 腾讯QQ for linux告别pre,开始beta
  6. PLSQL使用ODBC导入EXCEL时DSN无下拉选项
  7. 浙江行游14---千岛湖,清凉的世界里
  8. java是多线程_Java之多线程(一)
  9. [Web3.0]什么是Web3.0/时代
  10. 国密sm2 js加密后台解密,sm3 js、后台加密,sm4 后台加密
  11. 那些像段子一样的生活经历1csdn
  12. 2020王者营地服务器维护,至尊宝重磅返场,王者营地服务器崩溃,只因玩家等待了五年的它...
  13. 微信api调用限制:45009 reach max api daily quota limit
  14. linux64x gtx970,NVIDIA英伟达显卡驱动460.67版For Linux x64(2021年3月19日发布)
  15. 迪丽热巴qq号是多少要真的?迪丽热巴的qq号是多少要真的在线的?
  16. SO_KEEPALIVE
  17. 一个男人关心的东西决定他的层次
  18. 【JVM】垃圾回收机制及算法
  19. java生成pdf表格示例代码
  20. 详解GPFS文件系统架构、组网和Building Block

热门文章

  1. 如何解决浏览器兼容性问题
  2. SA模拟退火求解TSP问题
  3. python123去除整数列表中的素数_爱国主义包含着(  )三个基本方面。
  4. windows下BAT脚本ftp上传文件
  5. springboot 集成Quartz实现任务延迟执行和定时执行功能
  6. jndi和jdbc的区别
  7. 【专题】2023年中国直播电商机会洞察报告合集分享(附原数据表)
  8. 解决模型重新导入sp之后,图层mask与原sp文件对不上的问题
  9. 答题/题库小程序连载1
  10. 旋流除砂器的安装使用有哪些问题