Mình làm 1 mạch kết nối EEprom rất cơ bản kết nối với 89C52 thông qua giải mã 74HC373. Nói chung phần cứng thì không vấn đề gì khi kết nối. Còn phần chương trình thì tôi viết đơn giản thực hiện ghi giá trị vào EEprom sau đó đọc giá trị đó ra PORT1 để quan sát thông qua LED. nhưng tôi thấy kết quả quan sát không đúng và nó cứ hiển thị linh tinh. Bác nào đã làm việc hay có kinh nghiệm giúp tôi chữa lỗi này với. Cảm ơn trước nhé. Sau đây là đoạn code của tôi :
#include<at89x52.h>
xdata unsigned char Rom[32767] _at_ 0;
// Tao thoi gian tre
void Delay(unsigned long k)
{ for( ;k>0;k--); }
unsigned char i;
void main()
{ // GHI DU LIEU VAO ROM
for(i=0;i<255;i++)
{ Rom[i] = i; Delay(10); }
// DOC CHUONG TRINH RA TU ROM
while(1)
{ for(i=0;i<255;i++)
{ P1 = Rom[i]; // DOC GIA TRI TRONG ROM RA P1
Delay(100000); // TRE THOI GIAN DE XEM LED TREN PORT 1 HOAT DONG
}
}
}
#include<at89x52.h>
xdata unsigned char Rom[32767] _at_ 0;
// Tao thoi gian tre
void Delay(unsigned long k)
{ for( ;k>0;k--); }
unsigned char i;
void main()
{ // GHI DU LIEU VAO ROM
for(i=0;i<255;i++)
{ Rom[i] = i; Delay(10); }
// DOC CHUONG TRINH RA TU ROM
while(1)
{ for(i=0;i<255;i++)
{ P1 = Rom[i]; // DOC GIA TRI TRONG ROM RA P1
Delay(100000); // TRE THOI GIAN DE XEM LED TREN PORT 1 HOAT DONG
}
}
}
Comment