Trích:
Nguyên văn bởi levuphuong
hom nay em làm tiếp tới lcd nhưng sao nó hok chạy
http://www.picvietnam.com/forum//sho...0&postcount=51
làm theo code này và chan em nối
1;gnd
2;vcc
3;chia ap ra 2.5v câu vào
4,5,6 d0->d2
7.8.9.10.11.12.13.14.
15 len vcc
16 đất
nhưng sao em nạp vào nó chỉ sáng chứ hok ra chữ
em đổi xt->hs rồi dùng
#use delay(clock=12000000)
Các bác cho hỏi em làm như thế đúng chưa
|
thử lại xem sao:
Code:
/*-----------------------------------------------------------------------------
* Author : nhh
* Date : 05/04/06
* Hardware : PIC16F877A
* Compiler : CCS C 3.249
* Description : Hien thi LCD
*=============================================================================*/
#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
const unsigned char key[]="HELLOPICVIETNAM!";
int i = 0;
/*Ham yeu cau goi lenh dieu khien LCD*/
void comnwrt(void)
{
RS = 0;
RW = 0;
E = 1;
delay_ms(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;
delay_ms(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 = 0x86; // Vi tri hang 1,cot 7
comnwrt();
while(true)
{
LCD = key[i];
datawrt();
delay_ms(100);
i++;
if(i==5) // Hien thi xong HELLO
{
LCD = 0xC3; // Vi tri hang 2,cot 4
comnwrt();
delay_ms(100);
}
if(i==16) // Hien thi xong PICVIETNAM!
{
delay_ms(1100);
LCD = 0x01; // Xoa man hinh hien thi
comnwrt();
delay_ms(500);
LCD = 0x86; // Vi tri hang 1,cot 7
comnwrt();
i = 0;
}
}
}