em đang làm bài quét 6 led sử dụng ngắt. nhưng ko biết tại sao cái ngắt của e ko hoạt động
các bác xem hộ em xem có gì sai sot ko
mô phỏng protues
các bác xem hộ em xem có gì sai sot ko
#include <REGX51.H>
unsigned char x=9,y=8,z=7,f=6,g=5,h=4;
int n=0;
void delay(unsigned int time){
while(time--){
unsigned char temp=121;
while(temp--){
}
}
}
void khaibaoT0(void){
EA=0;
TMOD=0x02; //timer0 che do 2
TH0=0x38;
TL0=0x38; //200us
ET0=1;
EA=1;
TR0=1;
}
void ngatT0(void)interrupt 1
{
TR0=0;
TF0=0;
n++;
if(n==1){P2=x;P0_0=0;delay(100);P0_0=1;}
if(n==2){P2=y;P0_1=0;delay(100);P0_1=1;}
if(n==3){P2=z;P0_2=0;delay(100);P0_2=1;}
if(n==4){P2=f;P0_3=0;delay(100);P0_3=1;}
if(n==5){P2=g;P0_4=0;delay(100);P0_4=1;}
if(n==6){P2=f;P0_5=0;delay(100);P0_4=1;n=0;}
TR0=1;
}
void main(){
while(1){
}
}
unsigned char x=9,y=8,z=7,f=6,g=5,h=4;
int n=0;
void delay(unsigned int time){
while(time--){
unsigned char temp=121;
while(temp--){
}
}
}
void khaibaoT0(void){
EA=0;
TMOD=0x02; //timer0 che do 2
TH0=0x38;
TL0=0x38; //200us
ET0=1;
EA=1;
TR0=1;
}
void ngatT0(void)interrupt 1
{
TR0=0;
TF0=0;
n++;
if(n==1){P2=x;P0_0=0;delay(100);P0_0=1;}
if(n==2){P2=y;P0_1=0;delay(100);P0_1=1;}
if(n==3){P2=z;P0_2=0;delay(100);P0_2=1;}
if(n==4){P2=f;P0_3=0;delay(100);P0_3=1;}
if(n==5){P2=g;P0_4=0;delay(100);P0_4=1;}
if(n==6){P2=f;P0_5=0;delay(100);P0_4=1;n=0;}
TR0=1;
}
void main(){
while(1){
}
}
mô phỏng protues
Comment