c51延时

延时有非精确延时和精确延时。

非精确延时:

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;
           }

        }
     }

  }

posted @ 2017-08-28 13:56  梦里梦见梦不见的  阅读(245)  评论(0编辑  收藏  举报