Code dài quá nên tràn ROM, bạn xem nội dung trong các hàm printf. Nếu nó giống nhau thì lưu nó ra thành 1 mảng riêng, lúc xuất LCD thì xuất mảng đó rồi mới xuất số sau.
Ví dụ có 2 lệnh (tại 2 vị trí khác nhau):
Code:
lcd_gotoxy(1,1);
printf(lcd_putc,"TD_dat=_");
lcd_gotoxy(1,2);
printf(lcd_putc," ");
lcd_gotoxy(1,2);
printf(lcd_putc,"TG_dat=_");
sửa lại thành
Code:
char menu[] = "TD_dat=_"; // Khai báo ở đầu chương trình con sử dụng, sau chương trình con biến menu được giải phóng khỏi RAM
lcd_gotoxy(1,1);
printf(lcd_putc,menu);
lcd_gotoxy(1,2);
printf(lcd_putc," ");
lcd_gotoxy(1,2);
printf(lcd_putc,menu);
Như vậy thì chuỗi "TD_dat=_" chỉ cần lưu 1 lần, code của bạn sẽ gọn hơn, hy vọng nhét vừa vào ROM của 877A.