Mình đang làm 1 đề tài nhỏ về LCD+89s52 giao tiếp COM.
Khi mình viết bằng ASM thì chạy tốt,nhưng khi chuyển qua viết bằng C(dùng Keil C) thì xảy ra tình trạng LCD chỉ xuất ký tự đầu tiên trong đoạn text (trên phần mềm tự viết) tui mìnhvào.
void nhan(void) interrupt 4 //Chuong trinh con dung ngat noi tiep
{
unsigned char data ch;
if(RI!=0)
{
ch=SBUF;
LCDWriteCmd(0xC0);//Hien thi o dong thu 2
RS=1;
RW=0;
LCD_PORT=ch;
E=1;
E=0;
delay_5ms();
RI=0;
}
}
Nếu dùng ASM thì đoạn chương trình tương tự trên chạy tốt,vậy tại sao trong C thì nó chỉ xuất hiện ký tự đầu tiên,chẳng lẽ mình phải cần đếm số ký tự rồi xuất từng ký tự ra sao???
Ai giúp mình với!!!
Khi mình viết bằng ASM thì chạy tốt,nhưng khi chuyển qua viết bằng C(dùng Keil C) thì xảy ra tình trạng LCD chỉ xuất ký tự đầu tiên trong đoạn text (trên phần mềm tự viết) tui mìnhvào.
void nhan(void) interrupt 4 //Chuong trinh con dung ngat noi tiep
{
unsigned char data ch;
if(RI!=0)
{
ch=SBUF;
LCDWriteCmd(0xC0);//Hien thi o dong thu 2
RS=1;
RW=0;
LCD_PORT=ch;
E=1;
E=0;
delay_5ms();
RI=0;
}
}
Nếu dùng ASM thì đoạn chương trình tương tự trên chạy tốt,vậy tại sao trong C thì nó chỉ xuất hiện ký tự đầu tiên,chẳng lẽ mình phải cần đếm số ký tự rồi xuất từng ký tự ra sao???
Ai giúp mình với!!!
Comment