打印

我是菜鸟 请帮帮忙 单片机区里没有回答,郁闷

[复制链接]
1625|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
magicjiang|  楼主 | 2008-11-23 21:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有人告诉我这0.2S延时是怎么算的吗,12M晶振。MCS 51单片
void delay02s(void)               //延时0.2秒子程序 



  unsigned char i,j,k; 

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

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

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

}   

相关帖子

沙发
awey| | 2008-11-23 21:14 | 只看该作者

实际应用中,没人会用软件延时的

你要准确计算时间,看看它编译后的汇编代码,并将每条代码执行的时间记下来,相加就可以了。

延时一般用定时器实现。

使用特权

评论回复
板凳
magicjiang|  楼主 | 2008-11-23 21:18 | 只看该作者

我看到好多的普遍延时都是这种方法,不知道他们怎么算的

就是说,延时不要求很严格都可以这种的啊

使用特权

评论回复
地板
awey| | 2008-11-23 22:27 | 只看该作者

都是教科书给害的

实在要这样用,可在Keil里设置断点,看看运行完了后,程序走了多少个周期,Keil里有指示。

使用特权

评论回复
5
HWM| | 2008-11-24 08:28 | 只看该作者

呵呵,书看不懂怪书,学上不好怪师,钱赚不到怪天。

一般短时间非精确延时完全可以用空循环做,有时甚至简单地插入空指令。至于计算所延时长度,有仿真则用其模拟,否则就只能看反汇编自己算了(前提是曾经是A人)。

要强调的是,解决问题的方法没有定式。否则的话,往往会把简单的问题给搞复杂了。注意:技术和科学不同,技术有其“经济”性的一面,“实用主义”也许更具价值。

使用特权

评论回复
6
allen2006| | 2008-11-24 09:12 | 只看该作者

用数字示波器看波形也许是是一种比较的好的方法

使用特权

评论回复
7
耕在此行| | 2008-11-25 19:45 | 只看该作者

2楼所说差已

我的延时一般用软件解决.
51里就两个定时器,一般显示用 一个串口用,
延时能用定时器用吗?
延时时间怎么看:
   1.用数码管来看,用手机秒表功能对.我常用这种办法.
     精度大致差不多就行了.
   2.如楼上所说,这是一个非常好的办法.我以后也会采用.
   3.看汇编数周期,我曾经写汇编的时候这么干过,感觉费力不讨好,
     有时对着书,算半天,程序一运行结果差很远.
   4.KEIL的机器周期数?我得去找找,有没有这个功能.如果有,那也是个不错的办法.

使用特权

评论回复
8
lyjian| | 2008-11-25 21:19 | 只看该作者

Keil里面可以看时间

使用特权

评论回复
9
awey| | 2008-11-25 22:53 | 只看该作者

RE:耕在此行

假如软件上面要用几十个定时时间怎么办?

定时器只要设定一个基本的定时单位T,所有延时nT的时间均可以通过这个定时器来实现,难道这个你没做过?

对于一些时间很短的延时(比基本定时单位小的延时),当然可以用软件来做,如果延时时间较长,不可能让MCU空转来延时的,除非你得程序很简单。


==============================
 耕在此行 发表于 2008-11-25 19:45 模拟技术 ←返回版面    

7楼: 2楼所说差已 

我的延时一般用软件解决.
51里就两个定时器,一般显示用 一个串口用,
延时能用定时器用吗? 
 

使用特权

评论回复
10
孤星119| | 2008-11-26 08:38 | 只看该作者

同意awey

软件延时有时很浪费的.定时器只需一个就可以整出很多不同延时的.

使用特权

评论回复
11
HWM| | 2008-11-26 08:48 | 只看该作者

呵呵,定时和延时一字之差

使用特权

评论回复
12
lyjian| | 2008-11-26 09:00 | 只看该作者

我一般也不用纯软件延时

除非是很短时间的延时
我的程序里一般都会有一个一直运行的时基,要延时多少直接看这个时基的计数就行了。

使用特权

评论回复
13
xf_00a| | 2008-11-26 13:32 | 只看该作者

用时基定时器

用一个定时器做时基的用法是最常用的

使用特权

评论回复
14
耕在此行| | 2008-11-26 18:28 | 只看该作者

呵呵 长知识了

不过,用软件延时感觉很方便.
在需要其它程序正常运行,
本处需要等待的时候用定时器计时等待

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

46

帖子

0

粉丝