1 / 15
文档名称:

单片机延时计算.doc

格式:doc   大小:54KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

单片机延时计算.doc

上传人:mh900965 2018/4/16 文件大小:54 KB

下载得到文件列表

单片机延时计算.doc

文档介绍

文档介绍:单片机C51延时时间怎样计算?
C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsigned char类型具有比unsigned int更优化的代码,在使用时应该使用unsigned char作为延时变量。 以某晶振为12MHz的单片机为例,晶振为12MHz即一个机器周期为1us。
void delay__ms(void) //x,y,z位固定值,故不能接受参数
{
unsigned char i,j,k;
for(i=x;i>0;i--)
for(j=y;j>0;j--)
for(k=z;k>0;k--);
}
【Delay_Time=[(2z+3)*y+3]*x+5】
一. 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--);
}
 应用单片机的时候,经常会遇到需要短时间延时的情况。需要的延时时间很短,一般都是几十到几百微妙(us)。有时候还需要很高的精度,比如用单片机驱动DS18B20的时候,误差容许的范围在十几us以内,不然很容易出错。这种情况下,用计时器往往有点小题大做。而在极端的情况下,计时器甚至已经全部派上了别的用途。这时就需要我们另想别的办法了。
    以前用汇编语言写单片机程序的时候,这个问题还是相对容易解决的。比如用的是12MHz晶振的51,打算延时20us,只要用下面的代码,就可以满足一般的需要:
        mov     r0, #09h
loop:   djnz    r0, loop
51单片机的指令周期是晶振频率的1/12,也就是1us一个周期。mov r0, #09h需要2个极其周期,djnz也需要2个极其周期。那么存在r0里的数就是(20-2)/2。用这种方法,可以非常方便的实现256us以下时间的延时。如果需要更长时间,可以使用两层嵌套。而且精度可以达到2us,一般来说,这已经足够了。
    现在,应用更广泛的毫无疑问是Keil的C编译器。相对汇编来说,C固然有很多优点,比如程序易维护,便于理解,适合大的项目。但缺点(我觉得这是C的唯一一个缺点

最近更新

美甲店装修项目融资方案 37页

数学高效课堂心得体会 37页

《重组句子下面句子》课件 38页

《春季星空作业设计方案-2023-2024学年科学青.. 4页

四年级语文下期中测试卷 4页

烘焙消费者的行为研究-了解偏好和趋势 21页

定量蛋白质组学在疾病研究中的进展 27页

碳边境调节机制的经济影响 24页

听写版高考英语必备不规则动词表 (2) 7页

客服工作总结(全文共19098字) 4页

异形柱框架抗震性能评价的开题报告 2页

庆铁新线工艺运行方案优化研究的开题报告 2页

幼儿园园本教研活动的运行机制研究——以长沙.. 2页

平板电脑校园应用的实践研究的开题报告 2页

市场厚度、供应潜力与中国小麦进口贸易研究的.. 2页

工程款履约担保问题研究开题报告 2页

山西省居住建筑语汇的传承与发展的开题报告 2页

小鼠结肠癌脑转移实验模型的建立及结肠癌细胞.. 2页

小学综合实践活动课程学校规划的个案研究的开.. 2页

小三江平原河岸带景观格局研究中期报告 2页

对苯二酚和红景天苷元衍生物的合成与表征及其.. 2页

对外汉语中级综合教材生词表英文译释研究的开.. 2页

宽边滩大落差浮码头定位桩结构承载性能研究的.. 2页

健身房工作总结 3页

测量学的发展历史 30页

2023年内部控制会议纪要三篇 4页

注浆工试题答案 3页

农房一体发证业务培训 3页

唤醒护理读后感讲课文档 15页

床椅转移操作流程 2页