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

[复制链接]
3782|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 | 显示全部楼层

延时还有什么算法

最高明的算法就是不用直接延时,再说延时可以利用定时器来做.
5880527 发表于 2008-12-16 21:38 | 显示全部楼层

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

ayb_ice 发表于 2008-12-16 21:41 | 显示全部楼层

这个算法复杂吗

02H = R2
另外只是个多重循环
 楼主| vrgood 发表于 2008-12-17 09:02 | 显示全部楼层

算法是R2的4次方函数

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

算法初看简单,好象是多重循环,但EMULE后发现有问题,再仔细推算发现算法还真复杂,居然是R2的4次方函数,有点敬佩原作者了.
ljm810010 发表于 2008-12-17 10:38 | 显示全部楼层

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

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

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

有啥好分析的???

新手们!
不要去“敬佩原作者”,应该去BS 原作者!!!
5880527 发表于 2008-12-17 10:46 | 显示全部楼层

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

宇宙飞船 发表于 2008-12-17 14:11 | 显示全部楼层

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

宇宙飞船 发表于 2008-12-17 19:45 | 显示全部楼层

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

楼主无缘得见此表达式,看来此仍天意也!
ayb_ice 发表于 2008-12-17 20:20 | 显示全部楼层

再牛也是个指令延时

浪费CPU宝贵的时间....
 楼主| vrgood 发表于 2008-12-18 16:21 | 显示全部楼层

宇宙,请继续传!

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

分析此程序,纯粹是数学爱好,也顺便想从前人处学点什么,所以楼上也不要一杆子否定啊.
ayb_ice 发表于 2008-12-18 20:56 | 显示全部楼层

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

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

本版积分规则

3

主题

105

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部