Ðăng Nhập

View Full Version : thắc mắc về việc hỏi cờ bận trong CCs


ElecTel
30-03-2011, 04:15 AM
Các anh ơi cho em hỏi ! là trong thư viện lcd.c của CCS có viết sẳn mấy hàm như lcd_send_byte(); lcd_send_nibble(); ... hình như trong các hàm đó ngừoi ta đã viết săn luôn phần hỏi cờ bận của lcd luôn phải không các anh ????? Nếu như vậy thì sau mỗi lệnh lcd_putc(...) thì mình có thể không cần dùng thêm hàm delay_ms() nửa có được ko??

tại vì em thấy như này

char lcd_getc(BYTE x, BYTE y)


{
char value;

lcd_gotoxy(x,y);
while ( bit_test(lcd_read_byte(),7) ); // wait until busy flag is low <----Busy flag???
lcd_output_rs(1);
value = lcd_read_byte();
lcd_output_rs(0);

return(value);
}

void lcd_send_byte(BYTE address, BYTE n)
{
lcd_output_rs(0);
while ( bit_test(lcd_read_byte(),7) ) ; <------- busy flag???????
lcd_output_rs(address);
delay_cycles(1);
lcd_output_rw(0);
delay_cycles(1);
lcd_output_enable(0);
lcd_send_nibble(n >> 4);
lcd_send_nibble(n & 0xf);
}

Các anh cho em hỏi hàm lcd_getc () là có tác dụng gì vậy????

tdm
30-03-2011, 09:45 AM
Các anh ơi cho em hỏi ! là trong thư viện lcd.c của CCS có viết sẳn mấy hàm như lcd_send_byte(); lcd_send_nibble(); ... hình như trong các hàm đó ngừoi ta đã viết săn luôn phần hỏi cờ bận của lcd luôn phải không các anh ????? Nếu như vậy thì sau mỗi lệnh lcd_putc(...) thì mình có thể không cần dùng thêm hàm delay_ms() nửa có được ko??

tại vì em thấy như này

char lcd_getc(BYTE x, BYTE y)


{
char value;

lcd_gotoxy(x,y);
while ( bit_test(lcd_read_byte(),7) ); // wait until busy flag is low <----Busy flag???
lcd_output_rs(1);
value = lcd_read_byte();
lcd_output_rs(0);

return(value);
}
void lcd_send_byte(BYTE address, BYTE n)
{
lcd_output_rs(0);
while ( bit_test(lcd_read_byte(),7) ) ; <------- busy flag???????
lcd_output_rs(address);
delay_cycles(1);
lcd_output_rw(0);
delay_cycles(1);
lcd_output_enable(0);
lcd_send_nibble(n >> 4);
lcd_send_nibble(n & 0xf);
}Các anh cho em hỏi hàm lcd_getc () là có tác dụng gì vậy????
không cần dùng thêm hàm delay_ms()
hàm lcd_getc ()//đọc dữ liệu lcd
vi dụ:
lcd_gotoxy(1,1);//hang_1 cot_1
data=lcd_getc ()//đọc dữ liệu hang_1 cot_1

ElecTel
30-03-2011, 11:21 AM
Cảm ơn tdm :D :D