历史上的今天
返回首页

历史上的今天

今天是:2024年12月13日(星期五)

正在发生

2018年12月13日 | 不用定时器和汇编语言,只用C语言实现精确无误的延时

2018-12-13 来源:eefocus

对于51定时器,却是有点少,有时候不经意间就被用完了,而实现定时又TM神坑了!一般的解决方案有直接上汇编,一条语句的执行时间就是一个机器周期,所以多写几个就实现了完美的定时功能。可是可是……..又有多少学51的会汇编呢?呵呵哒


所以来分享一个神好用的方法,C语言的while和nop结合使用实现精确延时


上调试代码:


#include

#include

#define TIME    164//此处是需要不断调节的改变时间的数值 

//164是少4个机器周期,165是多了2个机器周期 

/*  ∵晶振=12MHz ∴一条指令用时=1/(12/12)=10^(-6)s=1us */

//想办法补偿,而不是减少  

void delay1ms(void)  

{  

    char i=TIME;  

    while(i--);  

//    _nop_(); //一个nop一个机器周期 

//    _nop_();    

//    _nop_();  

//    _nop_(); //还少4个机器周期,所以加上4个nop补偿一?   

}  


int main()  

{  

    while(1)  

    {  

        delay1ms();  

        P1=0;  

    }  

}  



①设置软件的晶振值(12M为例) 


先看164


1



②进入debug查看TIME分别为164、165的值 


1
2


很明显164的时候差了4个机器周期


来看165 


3
4


可以看出除了1ms还多出了2个机器周期


拿164补偿 


补偿4个nop,刚好就是4个机器周期


4


okay,到此结束完毕!


PS:注意一些小问题,比如你重新改了数值之后要记得重新编译一下

推荐阅读

史海拾趣

A-BRIGHT公司的发展小趣事

随着技术创新的成功,A-BRIGHT公司开始积极寻求市场拓展。公司首先瞄准了欧洲市场,通过参加国际电子展会和建立销售网络,成功将产品打入欧洲市场。随后,A-BRIGHT又进军北美市场,通过与当地的大型电子分销商合作,进一步扩大了市场份额。这些市场拓展的成功为A-BRIGHT的快速发展奠定了坚实基础。

Edsun Laboratories Inc公司的发展小趣事

面对日益严重的环境问题,ECM Electronics Limited.积极响应国家节能减排的号召,将绿色发展和可持续发展作为企业的重要战略。公司采用环保材料和节能技术,降低产品能耗和排放。同时,公司还积极参与环保公益活动,推动行业绿色发展。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

Chip Technologies Inc公司的发展小趣事

Chip Technologies Inc深知人才是企业发展的核心力量。因此,公司一直注重人才培养和团队建设。通过搭建完善的培训体系,公司培养了一批高素质的研发人才和管理人才。同时,公司还积极营造团结、协作的工作氛围,使得团队成员能够充分发挥自己的潜能,共同推动公司的发展。

Hirect公司的发展小趣事
确认输入电源是否正常,包括电压、电流和频率等参数是否符合要求。
EDO Corp公司的发展小趣事

随着科技的不断进步,电子行业也在不断变化。Eclipse Magnetics深知,只有不断创新才能保持竞争力。因此,公司不断加大研发投入,积极探索新的技术方向。同时,公司还面临着来自全球竞争对手的挑战。然而,Eclipse Magnetics凭借其强大的研发实力和品牌影响力,始终保持着领先地位。

以上故事均基于Eclipse Magnetics在电子行业中的发展历程进行概括性描述,具体细节可能因实际情况而有所不同。

Elcoma公司的发展小趣事

Elcoma公司在其早期发展阶段,就致力于电子技术的研发和创新。他们成功研发出一种新型高效能的电子芯片,这一突破性的技术大大提高了电子设备的性能和效率。这一创新技术迅速在行业内引起了广泛关注,许多大型电子设备制造商纷纷与Elcoma合作,希望将这一技术应用到他们的产品中。Elcoma凭借这一技术突破,逐渐在电子行业中崭露头角。

问答坊 | AI 解惑

想去买个示波器,以及电源器

初学者, 想去 示波器,以及电源器 刚才淘宝上看到一处买示波器, 有几种价格,便宜的三四百, 不知道能不能用, 各价格有什么区别,懂的人看看 http://store.taobao.com/shop/xshop/wui_page-cat-35391858-36790672-ob7Eo8Tiyr6yqMb3ob8=.htm ...…

查看全部问答>

iPad之心:苹果A4 SCO ARM芯片探秘

苹果的每一次举动,似乎都成了暴力拆解的对象,其中的芯片,也自然成了大家关注的焦点。 随着苹果iPad平板电脑的发布,有关其内部集成的自产处理器Apple A4的信息也逐渐浮出了水面, BSN 网站报道称这款处理器是一款集成了ARM Cortex A9架构多 ...…

查看全部问答>

关于欧姆龙PLC与变频器的通讯,请大侠指点

关于欧姆龙PLC与变频器的通讯,我使用的是欧姆龙的C200HE系列,现在控制电机需要变频调速~打算选择安川的变频器,他们的通讯协议啊~方式是什么?…

查看全部问答>

hp DL380 G6服务器问题

我们机房有一台惠普DL380 G6服务器:双E5530cpu,4根2gddr3内存,6块300g sas硬盘,双电源,此服务器的标配是单E5530cpu,3根2g内存, 在标配情况下服务器正常使用,但是用我们现有的配置机器就会无规律重启,寻找原因中,请高手帮忙…

查看全部问答>

电池驱动的一些不解。。。。。

我要做个电池驱动,就去看了看common下的电池驱动。首先想知道下电池驱动是不是就上纯粹的和其他流驱动一样只是提供一些接口,还是有其他一些扯不清的关系,因为我看完后觉的有点糊涂。我不知道为什么要这样做,我把代码帖出来,希望大家帮忙说说, ...…

查看全部问答>

pic单片机串行输出信号请指点

pic串行输出信号有一段是跳动的是怎么回事,是连到lcd驱动芯片的,lcd显示的是一串稳定的数字,示波器看到的信号由一段是跳动的,什么原因?请高人解释,谢谢…

查看全部问答>

LED居家照明带来低碳环保生活

 现在除了太阳能是可以再生能源之外,LED照明也成为了可以迅速的有效降低二氧化碳的排放。有报道说,如果将LED照明代替传统的照明灯泡,可以在20年内为世界减少一半的二氧化碳排放量,还有研究说,LED照明可以省下很多的电费,而且减少很多能源的 ...…

查看全部问答>

stm32iwdg看门狗的使用问题?问题已解决

写了个看门狗程序,可是却不工作,不知何原因,大家指点一二。/******************************************************************************** Function Name  : IWDG_Configuration* Description & ...…

查看全部问答>