看看这个单片机程序

2019-07-16 04:04发布

本帖最后由 ytww19 于 2012-11-1 23:17 编辑

以下这个程序是来控制LED灯亮一个时间,灭是一个时间。怎么亮了一次就一直灭的状态?本来是控制LED灯P2口控制亮10S
灭5S一直这样循环下去。请高手指点啊  或者直接写个样板给我看看!
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
void ds();
uchar T=0;

void ds()
{
        TMOD = 0x01;
        TH0  = 0x3c;
        TL0  = 0xb0;
        TR0  = 1;
        ET0         = 1;
        EA          = 1;        
}
void main()
{        
        ds();
        

        while(1);

}
void timer0() interrupt 1
{
        TH0  = 0x3c;          //50MS
        TL0  = 0xb0;
         
        T++;
        if(T>=200)  //10S
        {        
                P2=1;
                T=0;
                T++;
        
        
        if(T>=60)
                {        P2=0;
                        
                        T=0;
                     
                }
        }

}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
15条回答
杨思亮
2019-07-18 09:14
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
void ds();
uchar T=0;
uchar m=0;
void ds()
{
        TMOD = 0x01;
        TH0  = 0x3c;
        TL0  = 0xb0;
        TR0  = 1;
        ET0         = 1;
        EA          = 1;        
}
void main()
{        
        ds();
        

        while(1);

}
void timer0() interrupt 1
{
        TH0  = 0x3c;          //50MS
        TL0  = 0xb0;
        if(m==0)  
        {T++;
                 P2=1;
        if(T>=200)  //10S      
            {
                          T=0;
                          m=1;
                          }
                 }
          else
                {
                 T++;
                 P2=0;
                  if(T>=100)  //10S      
            {
                          T=0;
                          m=0;
                           }
                }
}

一周热门 更多>