Hôm qua mới bắt đầu bốc đề tài làm bài tập lớn, với lại bây giờ mới đầu kỳ lên chưa học được gì, em đang làm cái đề tài làm máy tính casio thực hiện các phép + - * : các số <=16 bit. hiện tại ngay từ phần hiển thị em đã mắc 1 số lỗi mà ko biết sửa ở đâu, >_< (em đính kèm file cho các bác xem)
chả là màn hình LCD bị nháy liên tục mà ko biết lỗi, với lại cái hàm kiểm tra LCD bận hay ko
void busy_flag()
{ char x;
P2=0xff;
RS=0;
RW=1;
do
{
EN=1;
delay(10);
EN=0;
x=P2;
x=x&0x80;
}
while(x==0x80);
}
theo lý thuyết thì BF=1 thì là bận thì nhẽ ra phải là x!=0x80 nhưng em làm thế nó ko chạy mà để == thì nó chạy, copy trên mạng thì cũng có 1 bài người ta để ==, còn giáo trình thì lại để !=, mặc dù 2 chương trình về cách khai báo giống y nhau, ko biết lỗi tại đâu.
Tiện thể cho em hỏi luôn về nguyên lý cách quét bàn phím 16 phím dùng Port0 và hiển thị LCD dùng hàm fprintf(); khác gì so với viết hàm hiển thị
link down http://www.mediafire.com/?wcxscos97sq7k4b
//hjc, phiền các bác down bằng link media tí
// ko hiểu sao ko thể upload file rar lên diễn đàn được
chả là màn hình LCD bị nháy liên tục mà ko biết lỗi, với lại cái hàm kiểm tra LCD bận hay ko
void busy_flag()
{ char x;
P2=0xff;
RS=0;
RW=1;
do
{
EN=1;
delay(10);
EN=0;
x=P2;
x=x&0x80;
}
while(x==0x80);
}
theo lý thuyết thì BF=1 thì là bận thì nhẽ ra phải là x!=0x80 nhưng em làm thế nó ko chạy mà để == thì nó chạy, copy trên mạng thì cũng có 1 bài người ta để ==, còn giáo trình thì lại để !=, mặc dù 2 chương trình về cách khai báo giống y nhau, ko biết lỗi tại đâu.
Tiện thể cho em hỏi luôn về nguyên lý cách quét bàn phím 16 phím dùng Port0 và hiển thị LCD dùng hàm fprintf(); khác gì so với viết hàm hiển thị
link down http://www.mediafire.com/?wcxscos97sq7k4b
//hjc, phiền các bác down bằng link media tí
// ko hiểu sao ko thể upload file rar lên diễn đàn được
Comment