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.
Comment