下面一段文字是对8051单片机定时器初值的计算描述,希望对你有所帮助,对于你的提问,根据下面文字的说明,可以得到初值为:FE0CH(65536-500)

定时器/计数器可用软件随时随地起动和关闭,起动时它就自动加“1”记数,一直记到满,即全为“1”,若不停止,计数值从全“1”变为全“0”,同时将计数溢出位置“1”并向CPU发出定时器溢出中断申请。对于各种不同的工作方式最大的定时时间和计数数不同。这里在使用中就会出现两个问题:

一是要产生比定时器最大的定时时间还要小的时间和计数器最大计数次数还要小的计数次数怎么办?

二是要产生比定时器最大的定时时间还要大的时间和计数器最大计数次数还要大的计数次数怎么办?

解决以上第一个问题只要给定时器/计数器一个非零初值,开定时器/计数器时,定时器/计数器不从0开始,而是从初值开始,这样就可得到比定时器/计数器最大的定时时间和计数次数还要小的时间和计数次数,解决第二个问题就要用到循环程序了,循环几次就相当于乘几。例如要产生1秒的定时你可先用定时器产生50MS的定时,再循环20次就行了,因为1S=1000MS,也可用其它的组合。有时也可采用中断来实现。由上可见,解决问题的基本出路在于初值的计算,下面就来具体讨论计数器的初值计算和最大值的计算。

我们把计数器从初值开始作加1计数到计满为全1所需要的计数值设定为C和计数初值设定为D,由此便可得到如下的计算通式:

D=M-C              (1)

式中,M为计数器模值,该值和计数器工作方式有关。在方式0时M为213;在方式1时M为216;在方式2和方式3时M为28。

3、定时器初值的计算

在定时器模式下,计数器由单片机脉冲经12分频后计数。因此,定时器定时时间T的计算公式为:

T=(TM—TC)12/fOSC  (µs)                 (2)

式中TM为计数器从初值开始作加1计数到计满为全1所需要的时间,

TM为模值,和定时器的工作方式有关;fOSC是单片机晶体振荡器的频率,TC为定时器的定时初值。

在式(2)中,若设TC=0,则定时器定时时间为最大(初值为0,计数从全0到全1,溢出后又为全0)。由于M的值和定时器工作方式有关,因此不同工作方式下定时器的最大定时时间也不一样。例如:若设单片机主脉冲晶体振荡器频率fOSC为12MHz,则最大定时时间为:

方式0时         TMmax=213×1µS=8.192ms

方式1时         TMmax=216 ×1µs=65.536ms

方式2和3时     TMmax=28 ×1µs=0.256ms

例1、设  方式0工作时,定时时间为1ms,时钟振荡频率为6MHz,

解:  将数据代入公式(2)得:

(213—TC)12/6 µS =1ms=1000µS

TC=213-500=7692

化成二进制数为TC=1111   0    0000    01100

根据13位定时器/计数器特性,高8位F0H送至TH0低5位0CH送TL0,一般TL0的高三位置“0”,可用下列指令实现。

MOV   TL0,#0CH; 5位送TL0寄存器

MOV   TH0,#0F0H; 8位送TH0寄存器

例2若单片机时钟频率fOSC为12MHz,请计算定时2ms所需的定时器初值。

解:由于定时器工作在方式2和方式3下时的最大定时时间只有0.256ms,因此要想获得2ms的定时时间定时器必须工作在方式0或方式1。

若采用方式0,则根据式(2)可得定时器初值为:

TC=213-2MS/1µs=6129

用计算机附件中的计算器可将6129转换为十六进制数为1830H

注意:这不是定时器工作在方式0时的初值,因定时器工作在方式0时是13位,高字节8位,低字节5位,所以还要进行适当的变换,因为

1830H  可写成  0001 1000 0011  0000

按13位重新组合成00011000001 10000  这组数就可拼成

1100 0001 0001 0000

这样就得到定时器工作在方式0时的初值C110H

即:TH0应装C1H;TL0应装10H(高三位为0)。

若采取方式1,则有:

TC=216-2MS/1µs=63536=F830H

即:TH0应装F8H;TL0应装30H。

例3、设T1作定时器,以方式1工作,定时时间为10MS;T0作计数器,以方式2工作,外界发生一次事件即溢出。

解:T1的时间常数为:

(216-TC)×2µs=10ms

TC=EC78H

初始化程序:

MOV  TMOD,#16H      ;T1定时方式1,T0计数方式2,即置TMOD寄存器的内容为00010110

MOV  TL0,#0FFH       ;T0时间常数送TL0

MOV  TH0,#0FFH      ;T0时间常数送TH0

MOV  TL1,#78H        ;T1时间常数(低8位)送TL1

MOV  TH1,#0ECH      ;T1时间常数(高8位)送TH1

SETB TR0                ;置TR0为1允许T0启动计数

SETB TR1                ;置TR1为1允许T1启动计数

例4 设定时器T0,以方式1工作,试编写一个延时1秒的子程序。

解:若主频频率为6MHZ可求得T0的最大定时时间为:

TMmax=216 ×2µs=131.072ms

我们就用定时器获得100ms的定时时间再加10次循环得到1秒的延时,可算得100ms定时的定时初值:

(216-TC)×2µs=100ms=100000µs

TC=216-50000=15536

TC=3CB0H

程序如下:

ORG  0000H

MOV  TMOD,#01H

MOV  R7,#10

TIME: MOV  TL0,#0B0H

MOV  TH0,#3CH

SETB TR1

LOOP1:JBC TF0,LOOP2

JMP LOOP1

LOOP2:DJNZ R7,TIME

RET

END

启动定时器t0的工作指令是_80c51单片机定时器t0工作于方式1定时时间1ms当晶振为6mhz时求计数初值为多少...相关推荐

  1. 启动定时器t0的工作指令是_看门狗的工作原理、应用和设计思路

    看门狗(watchdog timer)是一个定时器电路.一般有一个输入叫喂狗,一个输出到MCU的RST端.MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给WDT清零.如果超过规定的时间不喂狗 ...

  2. 51单片机定时器初值的计算

    什么是时钟周期?什么是机器周期?什么是指令周期? 时钟周期 时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 ...

  3. 单片机机器周期怎么计算公式_单片机定时器周期计算公式

    定时器是单片机的重要功能模块之一,在检测.控制领域有广泛应用.定时器常用作定时时钟,以实现定时检测,定时响应.定时控制,并且可以产生ms宽的脉冲信号,驱动步进电机.定时和计数的最终功能都是通过计数实现 ...

  4. 请描述定时器初值的计算方式_51单片机定时器初值计算器

    51单片机定时初值计算软件是一款比较实用的单片机定时器初值计算软件,可以精确的计算定时器的时间常数,给出数据即可快速计算出初值,还可以设置定时器方式晶振频率定时时长.有需要的朋友可以下载! 10MS定 ...

  5. 单片机定时器_单片机定时器/计数器基本原理

    目前常用的单片机中往往都配备了定时器/计数器.在AT89S52芯片内包含有三个16位的定时器/计数器:T0.T1和T2,其核心是加1计数器.我们主要要求掌握T0和T1的结构和功能.学习中要注意从电路结 ...

  6. C语言课设项目-51单片机-定时器和计数器

    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 一.定时器的原理 1.CPU时序的有关知识 2.在学习定时器之前需要明白的 3.定时/计数器的工作原理 ...

  7. C51单片机————定时器计数器

    51单片机定时器/计数器 定时(定时控制.测量.延时...)和计数(对外部事件统计数目). Created with Raphaël 2.1.2张三张三李四李四嘿,四哥, 定时器和计数器有哪几种实现哦 ...

  8. c语言 定时器作用,单片机定时器的作用及使用方法详解

    单片机定时器的作用及使用方法详解 单片机定时器在单片机的功能是很重要的,它一般被用作定时功能,来做定时检测.定时响应和定时控制,并且可以产生毫秒宽的脉冲信号来驱动步进电机.计时和计数的最终功能是通过计 ...

  9. 单片机看门狗工作原理

    刚学习单片机的萌新都听说过单片机看门狗,但是对于其工作原理并不是很清楚,今天这篇文章将为大家介绍单片机看门狗工作原理,一起来了解一下吧! 一.单片机看门狗是什么 在由单片机组成的微型计算机系统中,单片 ...

最新文章

  1. HDOJ 1060 Leftmost Digit
  2. vmware克隆server2008R2造成SID冲突
  3. [并发编程] - Executor框架#ThreadPoolExecutor源码解读01
  4. vue入门教程(二)
  5. [BOOST] BOOST::Format
  6. 视频通信基础知识之采集
  7. SQL Server链接服务器(一台机器SQL Server登陆,同时映射登陆到另外一台远程服务器的数据库)
  8. mysql genlog 分析_使用mysqlsla 分析 mysql logs
  9. 设计模式(3)——装饰者模式
  10. 模板题——快排、归并、二分
  11. QT 笔记6 | Qt网络编程
  12. javaSocket编程TCP
  13. 使用 p6spy,拦截到持久层执行的sql及参数
  14. Mac电脑必备音乐下载工具-洛雪音乐助手lx-music-desktop v1.1.1正式版
  15. java创建工厂方法_Java设计模式(八) 之创建型模式(工厂方法模式)
  16. 使用wkhtmltopdf把网页转换为pdf的经验总结
  17. php格式化数字:位数不足前面加0补足
  18. 高质量PPT模板网站
  19. Mooc里面几门重点大学的C++课程的简单评价_拔剑-浆糊的传说_新浪博客
  20. 怎么画流程图?手把手教你制作

热门文章

  1. javahtml5健身房信息管理系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  2. 消费无人机难有新突破,行业无人机成极飞科技唯一突破口?
  3. 《德鲁克管理思想精要》读书笔记5 - 人事、创新、创业
  4. 码农与程序员,就好比哈士奇与狼
  5. java域名校验_域名规则校验Java版本
  6. 史上最详细的AVL树(含代码实现)
  7. 使用篇十 --- 模板代码创建
  8. 小驼峰大驼峰的写法规范
  9. 开课通知 | 2021FPGA寒假班/就业班开课啦!
  10. 智能优化算法:白鲸优化算法-附代码