Code:
#include <REGX51.H>
unsigned char M[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char i;
unsigned char n;
sbit A1=P1^0; // Anot led hang chuc
sbit A2=P1^1; // Anot led hang don vi
void delay(long time) //ham tre phuc vu quet led
{long n;
for(n=0;n<time;n++)
{
;
}
}
void hienthi()
{// LED HANG CHUC
A1=1;
P2=M[i/10];
delay(500);
A1=0; // xoa led
P2=0xff;
//............LED HANG DON VI
A2=1;
P2=M[i%10];
delay(500);
A2=0;
P2=0xff;
}
void khoitao()
{
TMOD = 0x01;
IE = 0x82;
TH0 = 0xc3; //tre 5ms
TL0 = 0x50;
EA = 1;
ET0 = 1;
TF0 = 1;
TR0 = 1;
}
void isr_timer0(void) interrupt 1
{
TF0 = 0;
TR0 = 0;
n++;
hienthi();
TH0 = 0xc3;
TL0 = 0x50;
TR0=1;
if(n = 20)
{n=0;
i--;
}
}
void main()
{
i = 99;
if(i==0)
i=99;
khoitao();
}
E quét led 7 đoạn và đếm ngược từ 99-00, đếm đúng 1s. nhưng ở đây cái biến đếm nó lại ko giảm .
Mong nhận được sự đóng góp của các a.
e cám ơn.
mình sẽ sửa ngay đây

Comment