#include <reg51.h>
static unsigned char a;
void delay(void);
void up1(void);
void EXTERNAL0() interrupt 0
{
up1();
TCON=0;
IE=0;
}
void main(void)
{
unsigned char i;
IP=0x01;
IE=129;
up:
switch(a){
case 0:
for (i=0;i<80;i++){
P1=0xff;
delay();
P1=0x00;
delay();
}
case 1:
for(i=0;i<120;i++){
P1=0x0f;
delay();
P1=0xf0;
delay();
}
case 2:
for(i=0;i<120;i++){
P1=85;
delay();
P1=170;
delay();
}
case 3:
for(i=0;i<120;i++){
P1=9;
delay();
P1=P1<<2;
delay();
P1=P1<<2;
delay();
P1=P1<<2;
delay();
P1=P1<<2;
delay();
}
default:
a=a%4;
}
goto up;
}
void delay(void)
{
unsigned int w;
for(w=0;w<32000;w++);
}
void up1 (void){
a++;
}
یه برنامه ی سادست مثل این چراغ چشمک زنها که بعد از 30-40 ثانیه روش روشن خاموشش عوض می شه
اشکال برنامه بالا کجاست؟؟؟ من می خوام با وقفه 0 تعداد خاموش شدن کلیدو محاسبه کنم تا حالت خاموش روشن شدن Led ها غوض شه ولی نمی شه