关于定时器、波特率、TH和TL值的计算

发布者:BlissfulDreams最新更新时间:2024-07-31 来源: cnblogs关键字:定时器  波特率 手机看文章 扫描二维码
随时随地手机看文章

假设晶振位6MHZ,定时10ms

 

单片机系统晶振频率为6mhz,系统时钟频率 (也是计时脉冲频率)为500KHZ,一个脉冲周期2us ,10ms是5000个脉冲,因此
TMOD=0X01;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;

方式0:13位定时计数方式,最大计数值为2^13=8192,定时8192个机器周期。此方式已经不再用了,是为了和以前的单片机兼容,学初者不用掌握。
方式1:16位定时计数方式,最大计数值为2^16=65536,定时65536个机器周期。此方式可实现最大的定时时间和最大计数次数。是最常用方式之一。
方式2:8位自动重装计数方式,最大计数值为2^8=256,定时256个机器周期。此方式工作时定时或计数到了不用重装初值,精度较高。另外在串口通讯时常用此方式。是最常用方式之一。
方式3:特殊工作方式。将定时器0分成两个8位功能不全的定时计数器,要占用T1部分功能。也不常用。


关键字:定时器  波特率 引用地址:关于定时器、波特率、TH和TL值的计算

上一篇:单片机开发中pc和sp的作用
下一篇:C语言常见问题

推荐阅读最新更新时间:2024-11-12 16:21

ST的加速度计协助数码“Mother”跟踪物体和人的动作
中国,2014年2月24日 ——意法半导体宣布,意法半导体加速度计获物联网智能装置设计公司Sen.se采用,用于“Mother”和“Mothion Cookies”创新系统的追踪功能。 Sen.se的“Mother”是一个体贴用户、适应能力强的可编程装置,能够将任何东西瞬间变成拥有智慧和理解能力的智能物体。Sen.se的“Mother”最多可管理24颗联网“Motion Cookies”,通过融入日常生活,让用户的生活变得更舒适、更健康、更快乐。 “Motion Cookies”是不断扩大的“Mother”产品家族的首批核心成员,采用意法半导体的超低功耗高性能“微型” LIS3DH 加速度计 检测并识别物体的运动,并
[物联网]
51单片机定时器量程的硬件扩展方式
51单片机工作模式2自动装载定时值,按教科书的描述定时能力显得相对精准,但是此时的为8位定时器:当晶振为12MHz时,只能定时0.256ms。 升个级,精准性不要了,使定时器工作在模式1,16位定时器:当晶振为12MHz时已经能定时到65.56ms,略微牛逼不少。如果还要定时更长的数,可能会用软件方式 来扩展计数范围。软件方式扩展的大概思路是:在定时器中断服务程序中对定时器中断请求进行计数,当中断请求的次数达到要求的值时才进行相应的处理。例如,某事件的处理周期为1s,但由于受到最大定时时间的限制,无法一次完成定时,此时可以将定时器的定时时间设为以10ms为一个单位,启动定时器后的每一次定时器溢出中断产生10ms的定时,进入
[单片机]
51单片机<font color='red'>定时器</font>量程的硬件扩展方式
STM32的定时器和ADC
开启两个定时器给FPGA使用 要求是 一、定时器可以在任何时刻关闭,就算计数不满也要停 二、定时器在再次开启时可以从0计数 三、定时器可以在启动过程中停止,然后更改定时周期再开始从0计数 主要的几个函数 //tim_num=0对应 定时器2,tim_num=1对应 定时器3;tim_us:定时器uS数 void stm32_timer_start(uint16_t tim_num,uint16_t tim_us) { /* --------------------------------------------------------------- PCLK1=36MHz TIM CLK = 72 MHz, Prescaler
[单片机]
keil_提示出错 cannot load flash programming algorithm !
用STM32开发板调试例程时(用的是JLINK),提示出错 cannot load flash programming algorithm ! 遇到这种问题一般都是,Programming algorithm没有添加,或者添加错误, 添加步骤如下: 首先确认,下载器是stlink还是jlink,然后根据步骤1,2,3,4 选择合适的algorithm 就可以。 官方给出ARM调试提示解决方法: http://www.keil.com/support/docs/2747.htm RESOLUTION The programming algorithm depends on the device. For ex
[单片机]
keil_提示出错 cannot load flash programming algori<font color='red'>th</font>m !
STM8定时器1计数说明
定时器计数说白了就是把内部时钟信号(fmaster)变成外部时钟信号(TIx、ETR),计数需要有时钟/触发控制器和时基单元,定时器1拥有这两个,定时器2和3虽然没有,但可以在捕获模式下进入捕获中断里计数。 使用外部信号计数有两种方式,见下图: 一种输入方式是使用定时器1通道输入,第二种使用定时器1触发输入,各输入口见下图,其中PC1到PC4为定时器1输入通道,PB3为定时器1触发输入口: 如何使用这两种方式来计数外部信号呢,看手册说明: 第一种方式:外部时钟源模式1(使用定时器通道): 第二种方式:外部时钟源模式2(使用触发方式): 这里使用定时器4作为定时1s电平翻转输出到PE4作为计数器外部计数信号
[单片机]
STM8<font color='red'>定时器</font>1计数说明
C51 定时器Timer使用,及产生1ms系统Tick
GATE=0用TR0和TR1来控制T1和T0的启动,GATE=1则用外部中断来控制。 C/T为0表示定时器模式。为1表示计数器模式,对T0或T1的外部负跳变脉冲计数。 定时器初值的计算: TH0 = (65536 - (24/12) * 1000)/256; //65536 Timer0 M1=0,M0=1 工作在模式1,16位定时/计数器,2^16=65536 24Mhz晶振 1000um = 1ms TL0 = (65536 - (24/12) * 1000)%256; THX=(2^定时器位数 - (晶振频率/12) * 定时时间um) / 256; TLX= (2^定时器位数 - (晶振频率/12) * 定时时间
[单片机]
C51 <font color='red'>定时器</font>Timer使用,及产生1ms系统Tick
为什么在5ms/div 时基档位时,市电的THD测量结果不对?
其实,图6.3中的测试并没有问题,这是频率分辨率设置不对及频谱泄露导致的。从图6.3中可以看出,当前状态下的频率分辨率 ∆f = 20Hz,也就是说当前只能分辨 20Hz, 40Hz,60Hz, 80Hz ……等 ∆f 的整数倍周期,并不能分辨交流电的50Hz,因此此时50Hz 的能量存在频谱泄露,如列表中所显示的能量值可知,50Hz的能量泄露到了 60Hz上。 这种情况下,需要提高频率分辨率,使∆f恰好能整数倍到 50Hz,尽可能降低频谱泄露。方法是提高存储深度,同时降低采样率。简单地来说,调大时基即能解决此问题(可以参考“ZDS2022示波器的频率分辨率”章节的说明)。 图6.3交流电THD值测试
[测试测量]
为什么在5ms/div 时基档位时,市电的<font color='red'>TH</font>D<font color='red'>值</font>测量结果不对?
建立ARM交叉编译环境 (arm-none-linux-gnueabi-gcc with EABI)
昨天终于把交叉编译环境、移植内核和制作root文件系统在arm开发板上顺利跑通了。期间有的步骤很顺利,但更多的是被诸多问题困扰,比如最后一个不起眼的小问题导致文件系统无法加载,郁闷了我一个星期,最终通过分析慢慢发现了这个bug。还有各源码包版本的问题,而且网上很多介绍都是基于旧版本的。我这里全部用最新或较新的版本,当然,至于新旧版本到底哪个更好更合适,这是个智者见智的论题,不在本文讨论之列。我坚信很多人也遇到过或者即将遇到我曾经历过的错误和问题,因此我觉得把我过去两周做过的相关工作,详细地写下来,希望对大家有所帮助! 首先是平台和环境 ,我过去两周都是基于vmware 中ubuntu 10.04的,但是我发现ubuntu这个很
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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