微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 怎样用定时器来延时?

怎样用定时器来延时?

时间:10-02 整理:3721RD 点击:
我写了个流水灯程序。想用定时器来实现两个灯亮之间延时1秒。请问我的程序应该怎样修改?谢谢了!# include<reg51.h>
# include<intrins.h>
# define ui unsigned int
# define uc unsigned char
uc temp, i, j, m;
int main(void)
{
        while(1)
        {
          TMOD  = 0x11;
                TH0 = (65535-50000)/256;
                TL0 = (65535-50000)%256;
                EA = 1;
                ET0 = 1;
                TR0 = 1;
                while(1)
                {
        for(i=0; i<7; i++)
        {
          temp = 0xfe;
          P1 = temp;
          temp = _crol_(temp, 1);
          P1 = temp;
  }
        for(i=0; i<7; i++)
        {
          temp = 0x7f;
          P1 = temp;
          temp = _cror_(temp, 1);
          P1 = temp;
  }
}
}
        return 0;
  }
       
        void timer0() interrupt 1
        {
                                for(i=0; i<20; i++)
                                {
                                        TH0 = (65535-50000)/256;
                      TL0 = (65535-50000)%256;
        }
      }
               

给你整理一下,看看是否有帮助!
#include<reg51.h>
# include<intrins.h>
# define ui unsigned int
# define uc unsigned char
uc temp, i;
void  main()
{                             i=0;
                temp = 0xfe;
                TMOD  = 0x01;
                TH0 = (65535-50000)/256;
                TL0 = (65535-50000)%256;
                EA = 1;
                ET0 = 1;
                TR0 = 1;
                while(1)
                {
                  P1=temp;
                 }
   }
        
  void timer0() interrupt 1
      {            TH0 = (65535-50000)/256;
           TL0 = (65535-50000)%256;
             i++;
              if(i==20)
               {
                   i=0;
                   temp = _crol_(temp, 1);
                }
        }
               

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top