c语言延时计算公式

上传人:油条 文档编号:5918532 上传时间:2017-09-08 格式:DOCX 页数:2 大小:13.93KB
返回 下载 相关 举报
c语言延时计算公式_第1页
第1页 / 共2页
c语言延时计算公式_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《c语言延时计算公式》由会员分享,可在线阅读,更多相关《c语言延时计算公式(2页珍藏版)》请在金锄头文库上搜索。

1、c 语言延时计算公式 分类: Work Log | 标签: 单片机应用 2007-09-13 22:35 阅读(?) 评论(0) 今天在看单片机 C 编程的时候,突然想到在许多的编程中使用软件延时的方法,进行单片机的延时控制。但是不是很清楚为会么如下的方法能够做到准确的延时。程序如下:void delay(void)unsigned char i, j, k;for(i = 15; i 0; i-)for(j = 202; j 0; j-)for(k = 81; k 0; k-);使用 Keil uVersion2 进行编译产生了汇编程序看了一下,原来在循环中使用的跳转语句是 DJNZ。结合

2、Rn 及直接地址进行操作, DJNZ 的指令机器周期为 2us(晶振为 12MHZ 时)。上面一段程序的汇编语句如下: C:0x0013 7F0F MOV R7,#0x0F ; 1us;C:0x0015 7ECA MOV R6,#0xCA ; 1us;C:0x0017 7D51 MOV R5,#0x51 ; 1usC:0x0019 DDFE DJNZ R5,C:0019 ; 2us for(k = 81; k 0; k-)C:0x001B DEFA DJNZ R6,C:0017 ; 2us for(j = 202; j 0; j-);C:0x001D DFF6 DJNZ R7,C:0015 ;

3、 2us for(i = 15; i 0; i-)其中(;)及其后面的内容是为了方便说明加上去了。 现在我们来计算这段代码执行时所需的时间。for(k = 81; k 0; k-)这一个循环所需时间为: 1+281执行完 for(j = 202; j 0; j-)这一个循环的时间为:1(1 2812)202执行完三个循环的总时间为:11(1281 2)2022 15最后加上调用子程序的时间 2us 和返回的时间 2us,整个延时程序的时间就是11( 12812)2022 15 22 3 (3 281)202 155 500000us500ms 这个值应该是一个准确的延时时间。总结:在使用汇编语言进行延时设计时,其计算方法是:先从最里层的循环进行时间计算,再往外层循环时行计算。一层层往外叠加,最后不要忘记子程序的调用及返回的时间也要加上去。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 电子/通信 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号