hỏi về giao tiếp lcd voi pic16f877a
em đang làm với cái lcd 2 dòng
em làm y chang cái chương trình hiển thị chữ "be yeu" cua bác nhh
#include <16F877A.h>
#include <DEFS_16F877A.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#define RS RD0
#define RW RD1
#define E RD2
#define LCD PORTB
/*Ham yeu cau goi lenh dieu khien LCD*/
void comnwrt(void)
{
RS = 0;
RW = 0;
E = 1;
E = 0;
delay_ms(1);
}
/*Ham yeu cau goi du lieu hien thi len LCD*/
void datawrt(void)
{
RS = 1;
RW = 0;
E = 1;
E = 0;
delay_ms(1);
}
/*Ham main*/
void main(void)
{
set_tris_B(0);
set_tris_D(0);
delay_ms(100); // Tao tre 100ms cho LCD khoi dong
LCD = 0x38; // Hai hang, ma tran dot 5*7, 8 bit interface
comnwrt();
LCD = 0x0C; // Bat hien thi, tat con tro
comnwrt();
LCD = 0x85; // Vi tri hang 1,cot 6
comnwrt();
LCD = 'B'; // Xuat dong chu "BE YEU" ra LCD
datawrt();
LCD = 'E';
datawrt();
LCD = ' ';
datawrt();
LCD = 'Y';
datawrt();
LCD = 'E';
datawrt();
LCD = 'U';
datawrt();
LCD = '!';
datawrt();
}
khi em cho mạch chạy thi cai lcd đen thui cái dòng thứ nhất, dòng thứ 2 ko thấy gì, sau đó em rút điện ra thì mới thấy chữ "be yeu".
anh chị em giúp em với, cho em mấy cái TUT học giao tiếp lcd với. cám ơn anh chị nhiều.
|