Tình hình là em mới tìm hiểu sơ qua về họ 8051, và đang tập tẹ làm cái mạch đếm ngược từ 9999 về 0 nhưng còn vướng mắc nhiều thứ nên mong các bác giúp dỡ.
Linh kiện gồm 98c51, tụ , trở, tran ...
Mạch của em đây:

Code viết trên Keil C:
Các bác xem em bị lỗi gì mà không chạy được.
Mạch chạy trên Proteus và code trên Keil C của em đây.
machdemnguoc.rar
Mong các bác giúp đỡ :-s
Linh kiện gồm 98c51, tụ , trở, tran ...
Mạch của em đây:
Code viết trên Keil C:
Code:
#include <regx51.h>
#define led0 P1_0
#define led1 P1_1
#define led2 P1_2
#define led3 P1_3
unsigned char so[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
int i;
void delay(unsigned int ms) // Tao ham tre
{
unsigned int k,j;
for (k=0;k<ms;k++)
for (j=0;j<120;j++)
{}
}
void hienthi()
{
P0=0xff;
P1=0xff;
P0=so[((i%1000)%100)%10]; //hien so hang don vi
led0=0;
delay(1);
led0=1;
P0=so[((i%1000)%100)/10]; //hien so hang chuc
led1=0;
delay(1);
led1=1;
P0=so[(i%1000)/100]; //hien so hang tram
led2=0;
delay(1);
led2=1;
P0=so[(i/1000)]; //hien so hang nghin
led3=0;
delay(1);
led3=1;
}
void main ()
{
while (1)
{
for(i=9999;i>=0;i--)
{
hienthi();
delay(1000);
}
}
}
Mạch chạy trên Proteus và code trên Keil C của em đây.
machdemnguoc.rar
Mong các bác giúp đỡ :-s

Comment