延时有非精确延时和精确延时。
非精确延时:
for(i=0;i<1000;i++);
i=1000; while(i--);
精确延时:
库函数:-nop-(); //要引用头文件 #include <intrins.h>
用定时器,代码如下:
#include <reg52.h>
sbit LED=P0^0;
sbit ADDR0=P1^0;
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
sbit ENLED=P1^4;
void main()
{
unsigned char cnt=0;
ENLED=0;
ADDR3=1;
ADDR2=1;
ADDR1=1;
ADDR0=0;
TMOD=0x01;//设置T0为模式1
TH0=0xB8;//为T0赋值
TL0=0x00;
TR0=1;//启动T0
while(1)
{
if(TF0==1)//判断T0是否溢出
{
TF0=0;//溢出后清零
TH0=0xB8;
TL0=0x00;
cnt++;
if(cnt>=50)
{
cnt=0;
LED=~LED;
}
}
}
}