打印

51里面怎样实现长达3分钟的延时

[复制链接]
2793|16
手机看帖
扫描二维码
随时随地手机跟帖
沙发
aceice| | 2008-11-18 17:29 | 只看该作者

中断里放标志~或者外面挂一个带中断的RTC~

使用特权

评论回复
板凳
NE5532| | 2008-11-18 19:50 | 只看该作者

定时器做成1秒延时,再计180次就是了。

原来哪位说过的:记到太阳爆炸都够了。

使用特权

评论回复
地板
耕在此行| | 2008-11-18 19:56 | 只看该作者

定时器能做成1秒延时吗?

能做成1秒的都是RTC吧

使用特权

评论回复
5
icmap| | 2008-11-18 20:04 | 只看该作者

定时器作一万年延时都可以,而且不需要用中断。

使用特权

评论回复
6
王紫豪| | 2008-11-18 20:06 | 只看该作者

三分钟算个鸟

使用特权

评论回复
7
5880527| | 2008-11-18 20:21 | 只看该作者

又来一个不会写万字的同学

使用特权

评论回复
8
aceice| | 2008-11-18 20:23 | 只看该作者

关键是精度问题,高精度定时器延时还是要动一点脑筋的

动态调整重载值还是比较麻烦的

使用特权

评论回复
9
jerkoh| | 2008-11-18 20:26 | 只看该作者

re

引用 原来哪位说过的:记到太阳爆炸都够了。
经典

使用特权

评论回复
10
AIRWILL| | 2008-11-18 20:37 | 只看该作者

记到太阳爆炸?

你的晶振早停工不干了

使用特权

评论回复
11
ayb_ice| | 2008-11-18 20:51 | 只看该作者

2**N=xxx

使用特权

评论回复
12
NE5532| | 2008-11-18 21:48 | 只看该作者

“能做成1秒的都是RTC吧”

特推荐我写的书,详见签名链接。

使用特权

评论回复
13
icmap| | 2008-11-18 21:51 | 只看该作者

没必要用 RTC,不论是 1 秒还是一万年。

使用特权

评论回复
14
xhtxzxw| | 2008-11-19 01:53 | 只看该作者

嘿嘿

把LZ说蒙了!晚上做梦太阳大爆炸!

硬件中断,结合软件累加,就可以了.

会用T0/T1的中断做20ms定时吧?

事先声明的一个比较有长度的全局变量比如就叫做TC吧, unsigned long TC=0;

然后在T0/T1中断服务函数里,你TC增量啊!每中断一次,TC增1,就是增加了20ms.

51C里,你定义的这个TC有32位呀,最大可以数出(2的32次方-1)个20ms 来

(2的32次方-1)*20ms = 85899345900ms
也就是说等到TC从0变化到最大,大约就是经过差不多994天了吧?

太阳爆炸当然不会来得这么快的啦!

不过还可以整一个(一个不够就俩吧)32位的全局变量嘛,比如就叫做KTC,当TC最大以后再加1导致回0了,就给KTC增1嘛
等到KTC也最大了,估计一下,多长时间过去了呢?

994天*85899345900=85383949824600天 约= 233928629656年,恩,够了,好象两千多亿年了!够太阳来回爆炸十几次呢!





使用特权

评论回复
15
呆板书生| | 2008-11-19 07:33 | 只看该作者

善于使用外设才是MCU的强项

和从前的Z80,6502之类的CPU相比,MCU多了很多外设,

例如51系列中,定时器,利用定时中断计数,MCU既可以继续自己的任务,又可以按一定时间间隔去计时,

这是MCU的发展方向,和51相比,PIC,AVR中的外设更多,在简单系统中,电路更简单

使用特权

评论回复
16
aceice| | 2008-11-19 09:43 | 只看该作者

一切取决与精度要求

使用特权

评论回复
17
icmap| | 2008-11-19 22:07 | 只看该作者

论坛上有解决这个问题的方法。

使用特权

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

本版积分规则

2

主题

3

帖子

1

粉丝