历史上的今天
返回首页

历史上的今天

今天是:2024年08月24日(星期六)

2021年08月24日 | 51单片机-定时器初始化新写法

2021-08-24 来源:eefocus

1.书写优化

我们所写过的下面这些

TH0=0XB8;

TL0=0X00;

或者

TH0=0X4C;

TL0=0X00;


如果代码没有注释我们根本不知道这是要定时多长时间,所以为了增加程序的可读性,我们重新优化这两处的书写。


首先要明白在程序书写中,以前说过,赋值给寄存器的值可以书写成十六进制的数也可以是十进制的数。大家知道,TH0填充的是高8位,TL0是低8位,那么如果这个16位的变量的十进制值是258,二进制的值就是


0000000100000010

所以高八位的值为1 (258/256=1)

低八位的值为2        (258%256=2)

“258/256=1”和“258%256=2”的意思以前已经讲解过了,

我们也可以认为“258/256=1”是0x0102(258)右移了8位等于0x0001,简化书写就是0x01。


而“258%256=2”是0x0102(258)舍去了高8位等于0x0002,简化书写就是0x02。


再比如,一个16位的变量的十进制值是47104,二进制的值就是

1011100000000000

所以高八位的值为184  (47104/256=184)

低八位的值为0             (47104%256=0)

8.2.png?imageView2/2/w/550

那我们要定时20ms的话,给TH0和TL0赋值方式也可以为

TH0=184;

TL0=0;


我们再举一个例子,假设定时的时间为1ms。

算出要填充“16位的变量”的值为64614=0xFC66

按照之前的写法就是

TH0=0xFC;     (0xFC=252)

TL0=0x66;      (0x66=102)

而我们像下面这样写也可以达到相同的效果

TH0=( 65536-( 0.001/(12/11059200) ) )/256

TL0=( 65536-( 0.001/(12/11059200) ) )%256

因为

( 65536-( 0.001/(12/11059200) ) )/256 = 252

( 65536-( 0.001/(12/11059200) ) )%256 = 102

 

有了这个思路,我们就可以把赋初值的写法改为一串数字公式即可

比如我们定时的最小单位时间为1微秒,那么定时50000微秒(50毫秒)就可以这样写来给TH0和TL0赋初值

TH0=( 65536-( (50000/1000000)/(12/11059200) )/256;

TL0=( 65536-( (50000/1000000)/(12/11059200) )%256;

这里的(50000/1000000)代表定时的是0.05秒,也就是50毫秒。


如果要定时其他毫秒数, 数字公式中的其他数字我们不需要修改,只需要把50000改为想定时的时间就可以了,计算过程交给单片机算出来,我们也就不需要自己用计算器把最终值算出来再赋给TH0和TL0这么麻烦了。


我们再化简上式就是

TH0=( 65536-( (50000*110592)/120000) )/256;

TH0=( 65536-( (50000*110592)/120000) )%256;

推荐阅读

史海拾趣

Heimann Optoelectronics Gmbh公司的发展小趣事

近年来,随着全球对环保和可持续发展的重视,Hei Inc Optoelectronic Division积极响应国家号召,将绿色可持续发展理念融入到企业的生产经营中。公司投入巨资研发环保型光电子器件,并不断优化生产工艺流程以降低能耗和排放。同时,公司还积极参与各类环保公益活动,提升公众对绿色光电子技术的认知度。这些举措不仅赢得了社会各界的广泛赞誉,还为公司树立了良好的企业形象和品牌形象。在绿色可持续发展的道路上,Hei Inc Optoelectronic Division正稳步前行,不断开创光电子领域的新篇章。

DuPont公司的发展小趣事

随着半导体技术的兴起,DuPont公司敏锐地捕捉到了这一领域的发展潜力。公司投入大量资源,致力于半导体材料的研发和生产。通过不断的技术创新,DuPont成功开发出了一系列高性能的半导体材料,如高纯度硅材料、光刻胶等。这些材料在半导体制造过程中发挥着至关重要的作用,极大地推动了半导体技术的进步和产业的发展。

Gold Peak Group公司的发展小趣事
在控制电路周围设置必要的安全防护措施,如防护罩、警示标志等,防止人员误操作或触电事故的发生。
港源(GANGYUAN)公司的发展小趣事
定期对控制电路进行检查和维护,确保接触器、继电器等元件的性能良好,触点无粘连或损坏。
General Instrument Corp公司的发展小趣事
相比ADC0831、ADC0832等早期产品,ML2281系列在转换速度、电源抑制比(PSRR)、共模抑制比(CMRR)等方面有显著提升。
Capar Components Corp公司的发展小趣事

在追求经济效益的同时,Capar Components Corp也注重环保和可持续发展。公司积极采用环保材料和生产工艺,减少生产过程中的污染排放。同时,公司还推出了一系列绿色电子产品,满足消费者对环保产品的需求。这些举措不仅提升了公司的社会形象,还为公司赢得了更多客户的青睐。

问答坊 | AI 解惑

xilinx EDK guide

好东西要分享啊!…

查看全部问答>

如何设置默认连接的WIFI路由器

各位大虾,请问在GSPI8686注册表中,如何可以设置默认连接wifi网络?谢谢!…

查看全部问答>

截短文件大小失败

HANDLE hFile=CreateFile(L\"BC.txt\",GENERIC_WRITE|GENERIC_READ,FILE_SHARE_READ,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);//EVC下这里用CreateFileForMapping if(hFile==INVALID_HANDLE_VALUE) { MessageBox(L\"Create file failed!\") ...…

查看全部问答>

WIN XP驱动程序无法实现自动安装,请各位大侠指点迷津!多谢!

我们开发了一个USB  MODEM,想开发一个驱动程序的自动安装程序。但是发现在先连接上USB设备是再安装驱动程序可以成功;但是如果不插USB设备,安装完成后,插入USB she设备后,驱动程序无法实现自动安装,WIN XP会弹出“驱动设备安装“对 ...…

查看全部问答>

TI北京研讨会随想:DM8168——新一代高性能多媒体处理器

2010年8月9日,全球最大的芯片供应商德州仪器 (TI)在新世纪日航饭店举行了“TI技术研讨会(北京)“站的活动。整个研讨会分五个主题会场。在MCU/DSP主题讨论会上,TI公司DSP业务发展经理郑小龙先生介绍了TI最新的媒体处理器TMS320DM8168。 DM8168 ...…

查看全部问答>

STM32的任何端口都可以作为外部中断输入么?

                                 比如说像51里的INT0,在STM32里面这样的中断引脚是怎么定位的?另外最多可以有多少个外部中断输入?…

查看全部问答>

求助MSP430学习?

我想学习MSP430,可是不知道买什么开发板?上次参加活动获得MSP430 LaunchPad 发现不会玩,好是困惑。帖子上关于如何学习MSP430的回复很少,望好心者提供建议 …

查看全部问答>

tiny6410的地电位正常通电的情况下相对人体有75V!

最近正在学习tiny6410,今天将开发板上电后不小心碰了一下地引脚,被电了一下,只是有点麻麻的感觉。于是用万用表测量。首先使用直流档,测得地和人体的电位差为40mv。接下来用交流档,测得地和人体的电位为75V。然后将排插的开关断开,用万用表交 ...…

查看全部问答>

TI 电池电量监测芯片 bq27x00 进行精确计量电量值

尽管电压测量已经单独被用于许多便携式产品估算电池的剩余电量,但是这种方法可能存在高达 50% 的误差。电池电压和电量之间的关系会随放电率、温度和电池老化程度而有所不同。例如,相比相同电量损耗的低放电率,高放电率会带来更大的压降。当电池 ...…

查看全部问答>