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: