历史上的今天
返回首页

历史上的今天

今天是:2025年01月11日(星期六)

2018年01月11日 | 单片机C51延时时间怎样计算?

2018-01-11 来源:eefocus

C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsigned char类型具有比unsigned int更优化的代码,在使用时应该使用unsigned char作为延时变量。 以某晶振为12MHz的 单片机 为例,晶振为12MHz即一个机器周期为1us。 

一. 500ms延时子程序 

程序: 


     void delay500ms(void) 

       { 

       unsigned char i,j,k; 

         for(i=15;i>0;i--) 

         for(j=202;j>0;j--) 

         for(k=81;k>0;k--); 

       } 



计算分析: 


     程序共有三层循环 

     一层循环n:R5*2 = 81*2 = 162us                   DJNZ   2us 

     二层循环m:R6*(n+3) = 202*165 = 33330us           DJNZ   2us + R5赋值 1us = 3us 

     三层循环: R7*(m+3) = 15*33333 = 499995us         DJNZ   2us + R6赋值 1us = 3us 

     循环外:   5us             子程序调用 2us + 子程序返回 2us + R7赋值 1us   = 5us 

     延时总时间 = 三层循环 + 循环外 = 499995+5 = 500000us =500ms 

计算公式:延时时间=[(2*R5+3)*R6+3]*R7+5 

     二. 200ms延时子程序 

程序: 

void delay200ms(void) 



       unsigned char i,j,k; 

         for(i=5;i>0;i--) 

         for(j=132;j>0;j--) 

         for(k=150;k>0;k--); 



     三. 10ms延时子程序 

程序: 

void delay10ms(void) 



       unsigned char i,j,k; 

         for(i=5;i>0;i--) 

         for(j=4;j>0;j--) 

         for(k=248;k>0;k--); 



     四. 1s延时子程序 

程序: 

void delay1s(void) 



       unsigned char h,i,j,k; 

         for(h=5;h>0;h--) 

         for(i=4;i>0;i--) 

         for(j=116;j>0;j--) 

         for(k=214;k>0;k--); 


推荐阅读

史海拾趣

安谱隆(Ampleon)公司的发展小趣事

2022年,无锡锡产微芯半导体有限公司完成了对安谱隆的收购。这一交易金额超过百亿元,是当年中国最大的半导体并购交易事件之一。锡产微芯的收购不仅为安谱隆提供了更广阔的发展平台,也为其在半导体行业中的进一步发展注入了新的活力。在锡产微芯的支持下,安谱隆开启了新的发展阶段,继续在全球射频市场中发挥着重要作用。

这五个故事展示了安谱隆从恩智浦剥离出来到被锡产微芯收购的发展历程。在这个过程中,安谱隆不仅展现了其强大的技术实力和市场潜力,也经历了资本市场的波折与挑战。然而,正是这些经历使得安谱隆更加成熟和稳健,为其未来的发展奠定了坚实的基础。

CDE [ CORNELL DUBILIER ELECTRONICS ]公司的发展小趣事

近年来,随着新能源市场的蓬勃发展,CDE公司敏锐地抓住了这一机遇。公司积极参与军事和能源应用的高压直流链路电容器市场,并成功推出了针对EV快速充电的高压直流链路电容器。这一产品的推出不仅满足了市场对高效、可靠电容器的需求,也为CDE在新能源领域的发展奠定了坚实基础。

宇阳科技(EYANG)公司的发展小趣事

随着公司业务的不断发展,宇阳科技在产能扩张和全球布局方面也取得了显著进展。公司在深圳、东莞、安徽等地建立了多个生产基地,引进了先进的生产线和检测设备,确保了产品的高品质和稳定供应。同时,宇阳科技还积极拓展海外市场,与全球多家知名企业建立了长期稳定的合作关系。

DIOTEC公司的发展小趣事

1973年,DIOTEC半导体股份有限公司在德国的海特尔斯海姆正式成立。公司创始人以半导体和整流产品的研发为起点,立志在电子行业中占据一席之地。在创立初期,DIOTEC就注重技术创新和品质控制,不断推出符合市场需求的高品质产品。凭借这种执着和坚持,DIOTEC逐渐在欧洲市场崭露头角。

昆泰(CHRONTEL)公司的发展小趣事

多年来,昆泰始终秉持着创新的理念,不断推动其在CRO领域的技术突破和业务创新。通过与全球各地的药企、科研机构合作,昆泰在药物研发、临床试验等领域取得了多项重要成果。展望未来,昆泰将继续坚持创新驱动的发展战略,为全球医药行业的发展做出更大的贡献。

Diotec Electronics Corp公司的发展小趣事

随着产品的不断成熟和市场的认可,Diotec开始积极拓展国内外市场。公司加强与国际知名电子企业的合作,不断提升产品的品质和技术水平。同时,Diotec还注重品牌建设,通过一系列的市场推广活动,提高了品牌的知名度和美誉度。这些努力使Diotec的产品在电子行业中占据了重要的地位,成为众多客户的首选供应商。

问答坊 | AI 解惑

Wingshing (WS) WS7107CPLG RG0720

Wingshing (WS)  WS7107CPLG RG0720 谁有这个芯片的中文资料,怎么发现网上这种芯片的资料很少 刚刚从公司的库存里翻出一大堆用这个芯片制作的电流表 具说是以前作出来有问题没有处理,现在要弄出来 电路很简单,但是俺不知道这个芯片的 ...…

查看全部问答>

仪器仪表类问题讨论,欢迎加入,呵呵

信号类的模块不太通用,我们不可能整出一个通用的放大电路或者滤波电路。但是大家可以在此说说自己遇到的问题和解决的方法。我们要的是思想,不是硬件呵呵 我先说说我的问题,现在还没解决,高手帮一下忙,谢谢了 1:信号发生器的负载能力,如何提 ...…

查看全部问答>

电源分享

本帖最后由 paulhyde 于 2014-9-15 09:09 编辑 实用的电源资料,包括常用芯片及应用电路。例如:tl494等  …

查看全部问答>

诚招工控软件开发合作伙伴!!!!!!!!!!

诚招工控软件开发合作伙伴,要求:具有工控软件开发经验,熟悉串口通信,有合作意向的朋友请联系13705408100或邮件 tangqing1226@163.com                      &nbs ...…

查看全部问答>

有谁知道cdma手机uim卡bcd编码标准?

电话号可以输入0,1···9,*,#等,用bcd编码存在手机卡里?有谁知道统一的标准吗? 非常感谢…

查看全部问答>

支持手写的触摸屏对驱动有什么特殊要求

大家好,现在我的触摸屏已经支持点击,如果要支持手写还需要做哪些工作?或者都不需要?…

查看全部问答>

C8051F系列单片机串口应用问题

近日学习C8051F340系列单片机的应用,遇到一段串口发送接收程序,有一个地方看不懂,即:在串口发送和接收前,要置P3口的状态,使用交叉开关后的串口Rx和Tx不是都在P1口中吗,关P3口什么事啊?请高手指点,我进行了调试,不对P3口置位还真不行,程序如下: #in ...…

查看全部问答>

嵌入式注意什么?

我是学软件的,想向嵌入式发展,请问做嵌入式系统要注意什么?还有学哪几本书比较好?…

查看全部问答>

在向INFO FLASH A(0x1080)中写数据时发生意想不到的事情,频率为380K!

在向INFO FLASH A(0x1080)中写数据时发生意想不到的事情,很莫名奇妙的显现,液晶显示不正常,频率为380K!,操作时中断也关了,到底怎么回事?若不向它写入数据则一切都很正常!…

查看全部问答>