标题: PIC16F1826定时器实现呼吸灯效果主程序 [打印本页]

作者: jhonyzhang    时间: 2020-9-5 17:41
标题: PIC16F1826定时器实现呼吸灯效果主程序
本帖最后由 jhonyzhang 于 2020-9-8 16:37 编辑

void main(void)
{
    TMR0IF=0;//清除TMR0中断标志位
    TMR0=255;//设置中断初始值255
    unsigned int k = 1;
    unsigned int TIMER0 = 0,TIMER1 = 0,TIMER2 = 0;
    unsigned char Flag_1 = 1;    unsigned char Flag_2 = 0;
    unsigned char Flag_3 = 0;
    Pin_Init()
      Light4 = 0;
    while(1)
    {
        if( (TMR0IF == 1) && (Flag_1 ==1) )           //开启定时器溢出中断
        {
            TIMER0 ++;              //计数器+1
            TMR0IF = 0;             //定时器溢出标志位清零
            TMR0 = 255;
        }
        if( TIMER0 == k )           //如果计数器的值等于设定的值
        {
            Light4 = 1;             //灯灭
        }
        if( TIMER0 == 100 )          //计数器加到10
        {
            Light4 = 0;             //灯亮
            TIMER0 = 0;
            k++;                  //设定值逐渐变大
        }
        if( k == 99 )
        {
            Light4 = 0;
            k =1;
            Flag_2 = 1;
            Flag_1 = 0;
        }
        if( (TMR0IF == 1) && (Flag_2 ==1) )           //开启定时器溢出中断
        {
            TIMER1 ++;              //计数器+1
            TMR0IF = 0;             //定时器溢出标志位清零
            TMR0 = 255;
        }
        if( TIMER1 == 23380)(中间灯亮停留2s)
        {
            Light4 = 1;
            TIMER1 = 0;
            Flag_3 = 1;
            Flag_2 = 0;
        }
        if( (TMR0IF == 1) && (Flag_3 ==1) )           //开启定时器溢出中断
        {
            TIMER2 ++;              //计数器+1
            TMR0IF = 0;             //定时器溢出标志位清零
            TMR0 = 255;
        }
        if( TIMER2 == k )           //如果计数器的值等于设定的值
        {
            Light4 = 0;             //灯亮
        }
        if( TIMER2 == 100 )          //计数器加到100
        {
            Light4 = 1;             //灯灭
            TIMER2 = 0;
            k++;                  //设定值逐渐变大
        }
        if( k == 99 )
        {
            Light4 = 0;
            k =1;
            Flag_1 = 1;
            Flag_3 = 0;
        }
    }
}







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1