View Full Version : giúp cái LCD mấy bạn
phapdp
14-12-2011, 08:23 PM
cái này là code:
#include <18f4680.h>
#include <def_877a.h>
#FUSES NOWDT, XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=12000000)
#include <lcd_lib_4bit.c>
void main()
{
set_tris_c(0b11111000);
LCD_Init();
LCD_SetPosition(0x00+4);
Printf(LCD_putchar,"TAN PHAP");
LCD_putcmd(0xC0);
LCD_SetPosition(0x40+1);
Printf(LCD_putchar,"DTVT09C TEXTLCD");
}
test phần cứng sao lại ko ra chữ gì hêt
cái này là code:
#include <18f4680.h>
#include <def_877a.h>
#FUSES NOWDT, XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=12000000)
#include <lcd_lib_4bit.c>
void main()
{
set_tris_c(0b11111000);
LCD_Init();
LCD_SetPosition(0x00+4);
Printf(LCD_putchar,"TAN PHAP");
LCD_putcmd(0xC0);
LCD_SetPosition(0x40+1);
Printf(LCD_putchar,"DTVT09C TEXTLCD");
}
test phần cứng sao lại ko ra chữ gì hêt
thiếu dòng:set_tris_d(0b00001111);//d4..d7 output
cấu hình lại chân trong <lcd_lib_4bit.c>
#define LCD_RS PIN_C2
#define LCD_RW PIN_C1
#define LCD_EN PIN_C0
#define LCD_D4 PIN_D4
#define LCD_D5 PIN_D5
#define LCD_D6 PIN_D6
#define LCD_D7 PIN_D7
fan.pic
14-12-2011, 11:58 PM
chạy bình thường mà bạn, co thấy lỗi gì đâu.
thanhlam1911
15-12-2011, 10:25 AM
- Viết code trong CCS thì không cần lệnh set_tris nếu không có khai báo #USE io_fast(port).
- Theo Thanh Lâm thấy bạn khai báo thạch anh 12M vậy ở chỗ FUSE phải là HS(>4M) chứ không phải XT(<=4M).
- Một vấn đề nữa là trong CCS thư viện #include <def_877a.h> (thư viện người sử dụng định nghĩa) cũng không cần đến, vì gần như CCS đã hỗ trợ hết các chân cổng.
Bạn thắc mắc chỗ nào hãy mail cho TL.
Thân!
phapdp
23-12-2011, 08:47 PM
DO MÌNH NẠP RA PHẦN CỨ THÌ MÀN HÌNH lcd CỨ XANH LÈ.HĨ
ngdnhanbk
07-01-2012, 11:56 PM
Mình sử dụng driver lcd_lib_4bit.c thì hiển thị được rồi. Còn dùng driver lcd.c có sẵn thì vẫn chưa hiển thị được ai giúp mình với. Sơ đồ chân kết nối của mình với LCD như sau
LCD_ENABLE_PIN PIN_D0
LCD_RS_PIN PIN_D1
LCD_RW_PIN PIN_D2
LCD_DATA4 PIN_D4
LCD_DATA5 PIN_D5
LCD_DATA6 PIN_D6
LCD_DATA7 PIN_D7
Trong file lcd.c có nói đến lệnh
#define LCD_DATA_PORT getenv("SFR:PORTD")
giải thích mình cái này luôn
[code]
#include <16F887.h>
#device *=16 adc=8
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#include <lcd.c>
#define LCD_ENABLE_PIN PIN_D0
#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
void main()
{
LCD_init();
LCD_putc("N");
}
[code/]
ngdnhanbk
07-01-2012, 11:59 PM
DO MÌNH NẠP RA PHẦN CỨ THÌ MÀN HÌNH lcd CỨ XANH LÈ.HĨ
Bạn thử kiểm tra lại mạch, xem đã chỉnh biến trở chưa.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.