PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   giúp cái LCD mấy bạn (http://www.picvietnam.com/forum/showthread.php?t=12107)

phapdp 14-12-2011 08:23 PM

giúp cái LCD mấy bạn
 
1 Attachment(s)
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

tdm 14-12-2011 09:46 PM

1 Attachment(s)
Trích:

Nguyên văn bởi phapdp (Post 52205)
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

Trích:

Nguyên văn bởi phapdp (Post 52555)
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.


Múi giờ GMT. Hiện tại là 10:18 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam