1 / 5
文档名称:

空函数(延时).doc

格式:doc   大小:34KB   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

空函数(延时).doc

上传人:wdggjhm62 2022/8/18 文件大小:34 KB

下载得到文件列表

空函数(延时).doc

文档介绍

文档介绍:-
. z.
nop函数可以用来延时,请问1个NOP延时多少时间,怎么计算?
附一段说明:
void _nop( void );
A NOP instruction is gene z.
其中T为DJNZ指令执行时间〔DJNZ指令为双周期指令〕。
这里的+T为MOV这条指令所使用的时间。
同样对于更长时间的延时,可以采用多重循环来完成。
只要在程序设计循环语句时注意以上几个问题。
下面给出有关在C51中延时子程序设计时要注意的问题
1、在C51中进展准确的延时子程序设计时,尽量不要
或少在延时子程序中定义局部变量,所有的延时子程
序中变量通过有参函数传递。
2、在延时子程序设计时,采用do…while,构造做循
环体要比for构造做循环体好。
3、在延时子程序设计时,要进展循环体嵌套时,采用
先内循环,再减减比先减减,再内循环要好。
unsigned char delay(unsigned char i,unsigned char j,unsigned char k)
{unsigned char b,c;
b="j";
c="k";
do{
do{
do{k--};
while(k);
k="c";
j--;};
while(j);
j=b;
i--;};
while(i);
}
这准确延时子程序就被C51编译为有下面的指令组合完成
delay延时子程序如下:
MOV R6,05H
MOV R4,03H
C0012: DJNZ R3, C0012
MOV R3,04H
DJNZ R5, C0012
MOV R5,06H
DJNZ R7, C0012
RET
假设参数变量i的初值为m,参数变量j的初值为n,参数
变量k的初值为l,则总延时时间为:l×〔n×〔m×T+2T〕+2T〕+3T,
其中T为DJNZ和MOV指令执行的时间。当m=n=l时,准确延时为9T,最短;
当m=n=l=256时,准确延时到16908803T,最长。
-----------------------------------------------------------------------------------------
采用软件定时的计算方法
-
. z.
利用指令执行周期设定,以下为一段延时程序:
指令 周期
MOV 1
DJNZ 2
NOP 1
采用循环方式定时,有程序:
MOV R5,#TIME2 ;周期1
LOOP1: MOV R6,#TIME1 ; 1
LOOP2: NOP ; 1
NOP ; 1
DJNZ R6,LOOP2 ; 2
DJNZ R5,LOOP1 ; 2
定时数=(TIME1*4+2+1)*TIM2*2+4
刚刚又学了一条,用_nop_();时记得加上#include <> 头文件
如:
//==================
#include <> //包含库函数