51延时函数

a78496596586 2011-06-29 01:06:40
#ifndef __DELAY_H__
#define __DELAY_H__

#define uchar unsigned char
#define uint unsigned int

void delay_50us(uint t);
void delay_50ms(uint t);
void delay_1ms(uint t);


//#include "delay.h"

//****************************************************
//延时函数,在12MZ的晶振频率下
//大约50us的延时
//****************************************************
void delay_50us(uint t)
{
uchar j;
for(;t>0;t--)
for(j=19;j>0;j--);
}

//****************************************************
//延时函数,在12MZ的晶振频率下
//大约50ms的延时
//****************************************************
void delay_50ms(uint t)
{
uint j;
for(;t>0;t--)
for(j=6245;j>0;j--);
}

//****************************************************
//延时函数,在12MZ的晶振频率下
//大约1ms的延时
//****************************************************
void delay_1ms(uint t)
{
uint j;
for(;t>0;t--)
for(j=110;j>0;j--);
}

#endif
...全文
738 42 打赏 收藏 转发到动态 举报
写回复
用AI写文章
42 条回复
切换为时间正序
请发表友善的回复…
发表回复
xupujiang120 2011-08-08
  • 打赏
  • 举报
回复
三个延时不好啊,lz?
nob77 2011-08-08
  • 打赏
  • 举报
回复
真是受教了
guangmingdeshenju 2011-08-07
  • 打赏
  • 举报
回复
ls说的好,这种延时最好就是汇编写,c转汇编时会生成许多额外代码,对于不同的
i,j的数据类型,差别都很大,必须试验验证才行啊。
另外就是 中断也会影响这些延时,所以在处理 逻辑时序时,推荐最好还是通过 定时器
延时。
wangyl64 2011-08-02
  • 打赏
  • 举报
回复
貌似实际用3延时繁琐了吧
武汉华嵌科技 2011-08-01
  • 打赏
  • 举报
回复
延时最好不要这样延时,学习的时候练习练习可以这么干,但是当要求定时要准确的时候,这么做可太不对了。打个比方吧,假设你正在执行延时程序,你延时的时间是1S 突然此时来了个中断,中断的执行时间是两秒,那么你最后的延时时间是3秒,这个误差太大了,应该叫错误才对。

------------------------------------------------------------------------------------
更多技术文章敬请关注:武汉华嵌-嵌入式培训专家,国内领先的嵌入式服务机构

http://www.embedhq.org
greatriver007 2011-08-01
  • 打赏
  • 举报
回复
学习可以用一下
coovaa 2011-07-28
  • 打赏
  • 举报
回复
呵呵 、、、、、、
大旺 2011-07-26
  • 打赏
  • 举报
回复
这个楼主非常诡异!有些畏缩!可能还有精神分裂。
xidiankk 2011-07-26
  • 打赏
  • 举报
回复
来看看别人怎么做的
kajiang 2011-07-26
  • 打赏
  • 举报
回复
这是学习贴么???
绿野耕夫 2011-07-24
  • 打赏
  • 举报
回复
蛋疼的结贴率。
这一看就是个头文件,把源码写在头文件里,蛋疼的写法
s021713 2011-07-22
  • 打赏
  • 举报
回复
这种程序也来分享,晕倒。不会只是想赚分吧
自信大过天 2011-07-22
  • 打赏
  • 举报
回复
用c语言的延时程序还真的不太精确!
lan19900512 2011-07-21
  • 打赏
  • 举报
回复
这个嘛当然是汇编的好理解些,不知楼主何意?
得广厦 2011-07-20
  • 打赏
  • 举报
回复
lz这函数还是给小孩用的。

呵呵。

有定时器还是用定时器吧。
zhangzhenyu19926 2011-07-20
  • 打赏
  • 举报
回复
怎么了,呵呵
zbzxzb 2011-07-20
  • 打赏
  • 举报
回复
谢谢,这种延时误差比较大,最好实测一下,容易被中断影响。。。
betterintime92 2011-07-19
  • 打赏
  • 举报
回复
过来看看
yuyu8444 2011-07-18
  • 打赏
  • 举报
回复
不过这个程序是有问题的,实际上应该只能是针对特定芯片,因为for(j=19;j>0;j--);就决定了每次从flash或其他非易失介质读取“19”,而不同芯片对于非易失介质的读取速度相差巨大,从ROM中读取的速度就远远大于FLASH的
xait3208 2011-07-18
  • 打赏
  • 举报
回复
没啥用
加载更多回复(22)

27,373

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧