Tình hình là em có đang làm một bài tập về 8051 đếm lùi từ 999999 về 0.
mà e có viết code cho nó rồi mà không hiểu e sai chỗ nào các bác chỉ em với 
code:
#include 
#define led0 P1_0
#define led1 P1_1
#define led2 P1_2
#define led3 P1_3
#define led4 P1_4
#define led5 P1_5
unsigned char so[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
int i;
int lap_1s; 
void delay(unsigned int ms) // Tao ham tre
 {
 unsigned int k,j;
 for (k=0;k
 {} 
 }
void hienthi()
 {
 P0=0xff;
 P1=0xff;
 
 P0=so[((((i%100000)%10000)%1000)%100)%10]; //hien so hang don vi 
 led0=0;
 delay(2);
 led0=1;
 
 P0=so[(((i%100000)%10000)%1000)%100/10]; //hien so hang chuc
 led1=0;
 delay(2);
 led1=1;
 
 P0=so[(((i%100000)%10000)%1000)/100]; //hien so hang tram
 led2=0;
 delay(2);
 led2=1;
P0=so[(((i%100000)%10000)/1000)]; //hien so hang nghin
 led3=0;
 delay(2);
 led3=1;
P0=so[((i%100000)/10000)]; //hien so hang chuc nghin
 led4=0;
 delay(2);
 led4=1;
P0=so[(i/100000)]; //hien so hang tram nghin
 led5=0;
 delay(2);
 led5=1;
}
void main ()
 {
 
 while (1)
 {
 for(i=999999;i>=0;i--)
 {
 for(lap_1s=0;lap_1s<10;lap_1s++ ){ //125*8ms(hàm hienthi)=1s
 hienthi();}
 }
 }
 }
có file mô phỏng proteus đính kèm 
Tải về đính kèm:


        
        
        
        






