4409|8

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

C51语言模块之延时 [复制链接]

C51语言模块之延时
模块化的原因有:为了需要使用时得心应手,而不必再花太多时间去琢磨;为了使程序一目了然,既方便编程人员也方便学习的人员。
以下便是常用的延时模块:
1.不定短暂延时模块
   void delay( unsigned int  i )
 {
    while ( i -- );
 }
 应用:使用于不要求准确延时的场合,例如数码管动态扫描中,每个管点亮的时间间隔可用此模块,避免显示的重影。总之这种延时都可为了避免数据寄存器的存取延迟导致错误。
2.不精确短暂延时模块
  void delay1ms( unsigned int i )
{
    unsigned int j,k;
    for ( j = 0;j < i;i ++ )
       for ( k = 0;k <120;k ++ );
}
应用:此模块可延时 i *1ms,延时的长短决定于输入的实参。一般用于不需要太精确的系统但又希望知道延时的时间的场合。
3.不精确较长延时模块
  void delay10ms(unsigned int count)
{
  unsigned int i,j,k;
  for(i = 0;i < count;i ++)
     for(j = 0;j < 10;j ++)
 for(k = 0;k < 120;k ++);
}
说明:该模块延时count * 10ms,需要时可输入实参。
PS:由于本人水平所限,总结的东西有所错漏在所难免,敬请指出其中不足,共同学习,共同进步,谢谢!

 

此帖出自51单片机论坛

最新回复

求学啊  详情 回复 发表于 2013-7-29 00:30
点赞 关注
个人签名勇往直前,协作共进,开创未来。
 

回复
举报

315

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 
谢谢楼主了·····
此帖出自51单片机论坛
 
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

板凳
 
51指令的话,找单片机小精灵,可以生成精确延时。
此帖出自51单片机论坛
 
 
 

回复

762

帖子

0

TA的资源

一粒金砂(中级)

4
 
xie谢谢楼主的分享,呵呵,很重要
此帖出自51单片机论坛
 
 
 

回复

2734

帖子

0

TA的资源

裸片初长成(初级)

5
 
单片机的时间延时其实本来就不准确,可以换种方法尽量弥补
此帖出自51单片机论坛
 
个人签名我爱电子!
 
 

回复

1908

帖子

7

TA的资源

五彩晶圆(高级)

6
 
lz你试过这种延时方式和理想的延时时间差别有多大吗?
就拿void delay( unsigned int  i )
{
    while ( i -- );
}
来说。假如是时钟周期1us,i=1000,实际的时间绝对不会是1ms的,可能差很多,除了用定时器,有什么方法更准确吗?
此帖出自51单片机论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

7
 

回复 6楼 sjl2001 的帖子

该模块中若时钟周期是1μs,i = 1000,while(i --)语句执行时间又不是1μs,延时怎么可能会是1ms呢?应该是10ms左右。另外,利用这种延时都不是为了很精确的。
除了定时器,若要延时几ms或者几十ms的,一般都是采取第二、第三模块就可以比较精确了。
其他的方式就有待各位大侠不吝指点了。
此帖出自51单片机论坛
 
个人签名勇往直前,协作共进,开创未来。
 
 

回复

1908

帖子

7

TA的资源

五彩晶圆(高级)

8
 

回复 7楼 piggyfeng 的帖子

是,执行时间是汇编一条指令的执行时间,我以前做去抖的时候只能大概估计,也不能太准确,我就想了解一下,这个假如理想是10ms左右,给多少参数能大概得到这个10ms。

sorry,应该是10ms,不是1ms。呵呵
此帖出自51单片机论坛
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

9
 

求学

求学啊
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表