|
本帖最后由 jhonyzhang 于 2020-9-8 16:37 編輯
void main(void)
{
TMR0IF=0;//清除TMR0中斷標(biāo)志位
TMR0=255;//設(shè)置中斷初始值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) ) //開啟定時(shí)器溢出中斷
{
TIMER0 ++; //計(jì)數(shù)器+1
TMR0IF = 0; //定時(shí)器溢出標(biāo)志位清零
TMR0 = 255;
}
if( TIMER0 == k ) //如果計(jì)數(shù)器的值等于設(shè)定的值
{
Light4 = 1; //燈滅
}
if( TIMER0 == 100 ) //計(jì)數(shù)器加到10
{
Light4 = 0; //燈亮
TIMER0 = 0;
k++; //設(shè)定值逐漸變大
}
if( k == 99 )
{
Light4 = 0;
k =1;
Flag_2 = 1;
Flag_1 = 0;
}
if( (TMR0IF == 1) && (Flag_2 ==1) ) //開啟定時(shí)器溢出中斷
{
TIMER1 ++; //計(jì)數(shù)器+1
TMR0IF = 0; //定時(shí)器溢出標(biāo)志位清零
TMR0 = 255;
}
if( TIMER1 == 23380)(中間燈亮停留2s)
{
Light4 = 1;
TIMER1 = 0;
Flag_3 = 1;
Flag_2 = 0;
}
if( (TMR0IF == 1) && (Flag_3 ==1) ) //開啟定時(shí)器溢出中斷
{
TIMER2 ++; //計(jì)數(shù)器+1
TMR0IF = 0; //定時(shí)器溢出標(biāo)志位清零
TMR0 = 255;
}
if( TIMER2 == k ) //如果計(jì)數(shù)器的值等于設(shè)定的值
{
Light4 = 0; //燈亮
}
if( TIMER2 == 100 ) //計(jì)數(shù)器加到100
{
Light4 = 1; //燈滅
TIMER2 = 0;
k++; //設(shè)定值逐漸變大
}
if( k == 99 )
{
Light4 = 0;
k =1;
Flag_1 = 1;
Flag_3 = 0;
}
}
}
|
評(píng)分
-
查看全部評(píng)分
|