打印

这个延时程序的算法很复杂啊!

[复制链接]
3195|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vrgood|  楼主 | 2008-12-15 23:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个延时程序的算法很复杂啊!

[DELY]:通用延时子程序
[地址]:7FEBH - FFEBH 
[功能]:延时
[入口]:延时常数放在R2 寄存器中时间常数N(十六进制)所对应的延时时间(6MZH 晶振时)见下表: 
[出口]:R2=0 
[占用寄存器]:R2 
[调用]:无
例:延时1 秒子程序
MOV R2,#18H 
LCALL 7FEBH 
RET 
       ORG 7FEBH ;通用延时子程序(07EBH & 0FEBH & ...) 
L7FEB: PUSH 02H ;R2(复位后R2 即为02H)存放时间常数,进栈保护
L7FED: PUSH 02H ; R2 进栈保护
L7FEF: PUSH 02H ; 进栈
L7FF1: DJNZ R2,$ ;R2 不为零等待
       POP 02H ;出栈
       DJNZ R2,L7FEF ; R2 不为零转
       POP 02H ; 出栈
       DJNZ R2,L7FED ; R2 不为零转
       POP 02H ; 出栈
       DJNZ R2,L7FEB ; R2 不为零转
       RET ;子程序返回
       END

相关帖子

沙发
宇宙飞船| | 2008-12-15 23:31 | 只看该作者

楼主的小学数学没学好,因为末能总结提烁出

公式来。

使用特权

评论回复
板凳
vrgood|  楼主 | 2008-12-16 20:56 | 只看该作者

回宇宙

这个通用延时程序不知源头在何处,GOOGLE搜索可以看到很多介绍这个程序.
重新复习了下小学数学,推导出如下公式
假定R2=X,12MHZ的晶振,机器周期1US
T=(X4+18X3+83X2+138X)/12 +2(US) 

感觉该程序有点信手一写了,弄的算法这么复杂,也许有奥妙之处我不解.

使用特权

评论回复
地板
ayb_ice| | 2008-12-16 21:00 | 只看该作者

延时还有什么算法

最高明的算法就是不用直接延时,再说延时可以利用定时器来做.

使用特权

评论回复
5
5880527| | 2008-12-16 21:38 | 只看该作者

很想知道这样的延时用在什么地方

使用特权

评论回复
6
ayb_ice| | 2008-12-16 21:41 | 只看该作者

这个算法复杂吗

02H = R2
另外只是个多重循环

使用特权

评论回复
7
vrgood|  楼主 | 2008-12-17 09:02 | 只看该作者

算法是R2的4次方函数

GOOGLE 搜索"51 通用延时子程序"
前面一堆都是关于这个的.

算法初看简单,好象是多重循环,但EMULE后发现有问题,再仔细推算发现算法还真复杂,居然是R2的4次方函数,有点敬佩原作者了.

使用特权

评论回复
8
ljm810010| | 2008-12-17 10:38 | 只看该作者

网上的都是抄来抄去,却没人对此程序作任何分析评论

我看这里是首个有分析评论的了.
复杂是有点复杂,关键是这样复杂了有什么意义?
这样的延时有什么好处,有何优点,有何实际应用意义?
我看了一下网上延时量测试值,感觉到的特点就是延时范围极广,R2从1到255,延时量从US级到几百秒,类似是等比系列的延时量.从3楼的公式来看,是一个与X4次方有关的函数,说明不是等比延时量.
我认为延为范围太广了,导致相邻的延时间距太大而不实用.实际应用中一般用平方级的增长率就够了,这样可以提高延时精度.

使用特权

评论回复
9
xwj| | 2008-12-17 10:44 | 只看该作者

有病的设计,BUG的源泉罢了

有啥好分析的???

新手们!
不要去“敬佩原作者”,应该去BS 原作者!!!

使用特权

评论回复
10
5880527| | 2008-12-17 10:46 | 只看该作者

哈哈,感觉就是万字怎么写才比较规范

使用特权

评论回复
11
宇宙飞船| | 2008-12-17 14:11 | 只看该作者

卷积关系,经典的超牛延时算法!

使用特权

评论回复
12
宇宙飞船| | 2008-12-17 19:45 | 只看该作者

俺上传了两次,竟传不上,

楼主无缘得见此表达式,看来此仍天意也!

使用特权

评论回复
13
ayb_ice| | 2008-12-17 20:20 | 只看该作者

再牛也是个指令延时

浪费CPU宝贵的时间....

使用特权

评论回复
14
vrgood|  楼主 | 2008-12-18 16:21 | 只看该作者

宇宙,请继续传!

真的想传,还是可以传上来的,宇宙在天之外,无所谓天意.

分析此程序,纯粹是数学爱好,也顺便想从前人处学点什么,所以楼上也不要一杆子否定啊.

使用特权

评论回复
15
ayb_ice| | 2008-12-18 20:56 | 只看该作者

LS我的意思是有时间多点实用的东西

使用特权

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

本版积分规则

3

主题

104

帖子

0

粉丝