Trích:
Nguyên văn bởi maruko
bác tdm ơi.bác nói đoạn code đầu vẫn hiển thị bình thường nhyưng sao em nạp code vào thì chẳng thấy nó hiển thị j cả, mặc dù em đã đẻ tần số thạch anh 20mhz như bác nói/chỉ thấy lcd sáng thôi.em cũng thấy đoạn code đó k có chỗ nào sai cả.bác có thể xem lại giup em dc k.bác thử nạp code đầu tiên vào mạch mô phỏng em up lên xem mạch mô phỏng em gửi lên có khỏi sai k.
nhân tiện nhờ bác giải thích cho em về lạp trình thì xuất dữ liệu ra lcd 4 và 8 bít khác nhau ntn vậy.em mới tìm hiểu pic nên gaợ nhiều khó khăn quá.mong các bác giúp đỡ em
em cảm ơn các bác nhiều
|
vẫn hiển thị bt:
Code:
#include <16f877A.h>
#device *=16
#use delay(clock = 20M)
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT
#define LCD_ENABLE_PIN PIN_D3
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#include <lcd.c>
void main(){
lcd_init();
lcd_putc("MARUKO");
while(1)
{
}
}
xuất dữ liệu ra lcd 8bit :dữ liệu đưa ra một lần.
xuất dữ liệu ra lcd 4bit :dữ liệu đưa ra 2 lần.
vd:
Code:
void lcd_send_byte(BYTE address, BYTE n)
{
lcd_output_rs(0);
while ( bit_test(lcd_read_byte(),7) ) ;
lcd_output_rs(address);
delay_cycles(1);
lcd_output_rw(0);
delay_cycles(1);
lcd_output_enable(0);
lcd_send_nibble(n >> 4);//truyền 4bit cao
lcd_send_nibble(n & 0xf);//truyền 4bit thấp
}