#include<reg51.h>
#include<stdio.h>
#include<stdlib.h>
unsigned char ZHOUQI_COUNT;
unsigned char PWM_VLAUE;
int i;
unsigned int UPDATA_COUNT;
bit direc_flag;
sbit LED=P1^0;
sbit LED1=P0^0;
sbit LED2=P0^1;
sbit LED3=P0^2;
void timer0_init();
void int0_init();
void timer0_init()
{
TMOD = 0x02;
TH0=0XA3;
TL0=0XA3;
ET0=1;
IT0=1;
TR0=1;
EA=1;
EX0=1;
EX1=1;
IT1=1;
IT0=1;
IP=0x05;
}
void main()
{ZHOUQI_COUNT=0;
UPDATA_COUNT=0;
PWM_VLAUE=10;
i=0;
direc_flag=0;
LED=0;
timer0_init();
while(1);
}
void int0()interrupt 0
{
switch(i){case 0:LED1=0;i++;break;
case 1:LED2=0;i++;break;
case 2:LED1=1,i++;break;
case 3:LED3=0,i++;break;
case 4:LED2=1,i++;break;
case 5:LED1=0,i++;break;
case 6:LED2=0,i++;break;
default:LED1=1,LED2=1,LED3=1;i=0;break;}
}
void int1()interrupt 2
{
void time0() interrupt 1
{ZHOUQI_COUNT++;
UPDATA_COUNT++;
if(ZHOUQI_COUNT==PWM_VLAUE)
LED=1;
if(ZHOUQI_COUNT==20)
{LED=0;
ZHOUQI_COUNT=0;
}
if((UPDATA_COUNT==1200)&&(direc_flag==0))
{
UPDATA_COUNT=0;
PWM_VLAUE++;
if(PWM_VLAUE==19)
direc_flag=1;
}
if((UPDATA_COUNT==1200)&&(direc_flag==1))
{
UPDATA_COUNT=0;
PWM_VLAUE--;
if(PWM_VLAUE==1)
direc_flag=0;
}
}
}
为什么中断没反应呢
|