hihihi.DSN
đây là file mô phỏng của em trên proteus không hiểu sao mỗi lần bấm thằng công tắc 3 là nó chạy bình thường còn 2 con kia thì mấy con led nó nhảy số lung tung

đây là code của em ạ.mới học sơ sơ nên còn gà mờ lắm mấy tiền bối chỉ giúp em với
#include <REGX51.H>
sfr dataP = 0x90; // du lieu la P1
sfr dataB = 0x80; // du lieu la P0
sfr dataC = 0xA0; // du lieu la P2
//ma 7 thanh tu 0 den 9 la
// 0xc0h,0xf9h,0xa4h,0xb0h,0x99h,0x92,0x82h,0xf8h,0x8 0h,0x90h.
sbit ctac = P3^4;
sbit ctac1=P3^5;
sbit ctac2=P3^6;
unsigned char cao=0;
unsigned char tb=0;
unsigned char thap=0;
void delay(long time)
{
while(time--);
}
/*----------------------chuong trinh con kiem tra co phim nhan-------------*/
void phim_an(void)
{
if(ctac==0) //co phim nhan
{
delay(500); //chong rung phim
while(ctac==0); //Cho nha phim
delay(500); // chong rung phim
cao=++; //tang bien dem
if(cao==10) cao=0;
}
if(ctac1==0) //co phim nhan
{
delay(500); //chong rung phim
while(ctac1==0); //Cho nha phim
delay(500); // chong rung phim
tb++; //tang bien dem
if(tb==10) tb=0;
}
if(ctac2==0) //co phim nhan
{
delay(500); //chong rung phim
while(ctac2==0); //Cho nha phim
delay(500); // chong rung phim
thap++; //tang bien dem
if(thap==10) thap=0;
}
}
/*----------------hien thi so lan an phim------------------------------------------*/
void solan_an(void)
{
switch(cao)
{
case 0: {dataP=0xc0;break;}
case 1: {dataP=0xf9;break;}
case 2: {dataP=0xa4;break;}
case 3: {dataP=0xb0;break;}
case 4: {dataP=0x99;break;}
case 5: {dataP=0x92;break;}
case 6: {dataP=0x82;break;}
case 7: {dataP=0xf8;break;}
case 8: {dataP=0x80;break;}
case 9: {dataP=0x90;break;}
};
switch(tb)
{
case 0: {dataB=0xc0;break;}
case 1: {dataB=0xf9;break;}
case 2: {dataB=0xa4;break;}
case 3: {dataB=0xb0;break;}
case 4: {dataB=0x99;break;}
case 5: {dataB=0x92;break;}
case 6: {dataB=0x82;break;}
case 7: {dataB=0xf8;break;}
case 8: {dataB=0x80;break;}
case 9: {dataB=0x90;break;}
};
switch(thap)
{
case 0: {dataC=0xc0;break;}
case 1: {dataC=0xf9;break;}
case 2: {dataC=0xa4;break;}
case 3: {dataC=0xb0;break;}
case 4: {dataC=0x99;break;}
case 5: {dataC=0x92;break;}
case 6: {dataC=0x82;break;}
case 7: {dataC=0xf8;break;}
case 8: {dataC=0x80;break;}
case 9: {dataC=0x90;break;}
};
}
/*-------------------------chuong trinh chinh-------------------------------------------*/
void main(void)
{
dataP = 0xc0; // ban dau la so 0
while(1)
{
phim_an();
solan_an();
}
dataB = 0xc0; // ban dau la so 0
while(2)
{
phim_an();
solan_an();
}
dataC =0xc0; // ban dau la so 0
while(3)
{
phim_an();
solan_an();
}
}
đây là file mô phỏng của em trên proteus không hiểu sao mỗi lần bấm thằng công tắc 3 là nó chạy bình thường còn 2 con kia thì mấy con led nó nhảy số lung tung

đây là code của em ạ.mới học sơ sơ nên còn gà mờ lắm mấy tiền bối chỉ giúp em với
#include <REGX51.H>
sfr dataP = 0x90; // du lieu la P1
sfr dataB = 0x80; // du lieu la P0
sfr dataC = 0xA0; // du lieu la P2
//ma 7 thanh tu 0 den 9 la
// 0xc0h,0xf9h,0xa4h,0xb0h,0x99h,0x92,0x82h,0xf8h,0x8 0h,0x90h.
sbit ctac = P3^4;
sbit ctac1=P3^5;
sbit ctac2=P3^6;
unsigned char cao=0;
unsigned char tb=0;
unsigned char thap=0;
void delay(long time)
{
while(time--);
}
/*----------------------chuong trinh con kiem tra co phim nhan-------------*/
void phim_an(void)
{
if(ctac==0) //co phim nhan
{
delay(500); //chong rung phim
while(ctac==0); //Cho nha phim
delay(500); // chong rung phim
cao=++; //tang bien dem
if(cao==10) cao=0;
}
if(ctac1==0) //co phim nhan
{
delay(500); //chong rung phim
while(ctac1==0); //Cho nha phim
delay(500); // chong rung phim
tb++; //tang bien dem
if(tb==10) tb=0;
}
if(ctac2==0) //co phim nhan
{
delay(500); //chong rung phim
while(ctac2==0); //Cho nha phim
delay(500); // chong rung phim
thap++; //tang bien dem
if(thap==10) thap=0;
}
}
/*----------------hien thi so lan an phim------------------------------------------*/
void solan_an(void)
{
switch(cao)
{
case 0: {dataP=0xc0;break;}
case 1: {dataP=0xf9;break;}
case 2: {dataP=0xa4;break;}
case 3: {dataP=0xb0;break;}
case 4: {dataP=0x99;break;}
case 5: {dataP=0x92;break;}
case 6: {dataP=0x82;break;}
case 7: {dataP=0xf8;break;}
case 8: {dataP=0x80;break;}
case 9: {dataP=0x90;break;}
};
switch(tb)
{
case 0: {dataB=0xc0;break;}
case 1: {dataB=0xf9;break;}
case 2: {dataB=0xa4;break;}
case 3: {dataB=0xb0;break;}
case 4: {dataB=0x99;break;}
case 5: {dataB=0x92;break;}
case 6: {dataB=0x82;break;}
case 7: {dataB=0xf8;break;}
case 8: {dataB=0x80;break;}
case 9: {dataB=0x90;break;}
};
switch(thap)
{
case 0: {dataC=0xc0;break;}
case 1: {dataC=0xf9;break;}
case 2: {dataC=0xa4;break;}
case 3: {dataC=0xb0;break;}
case 4: {dataC=0x99;break;}
case 5: {dataC=0x92;break;}
case 6: {dataC=0x82;break;}
case 7: {dataC=0xf8;break;}
case 8: {dataC=0x80;break;}
case 9: {dataC=0x90;break;}
};
}
/*-------------------------chuong trinh chinh-------------------------------------------*/
void main(void)
{
dataP = 0xc0; // ban dau la so 0
while(1)
{
phim_an();
solan_an();
}
dataB = 0xc0; // ban dau la so 0
while(2)
{
phim_an();
solan_an();
}
dataC =0xc0; // ban dau la so 0
while(3)
{
phim_an();
solan_an();
}
}