Title: ขอคำปรึกษาหน่อยครับ LCD ขึ้นแถบดำๆ
Post by: topshared on March 04, 2013, 01:21:34 AM
http://pic.free.in.th/id/adf9e476077f88a62d35af805e0714c0 พอดีผมต่อวงจรดันรูป ใช้ PIC 16F877A ต่อเข้ากับจอ LCD แล้วทีนี้จอ LCD ผมแสดงผลออกมาเป็นแถบดำๆ เลยอยากได้คำแนะนำเรื่องโคเดหน่อยครับ ไม่รู้ว่าโค้ดผมผิดหรือเปล่า #include <16F877A.h> #include "Mce_lcd.c"
#fuses HS,NOLVP,NOWDT,NOPROTECT #use delay (clock = 20000000) #use fast_io(D)
float McE; int i;
void main(){ set_tris_d(0B00000000); lcd_init(); delay_ms(1000); McE = 1234.432; i = 234; while (TRUE){ printf(lcd_putc,"\fMcE = %1.3f",McE); printf(lcd_putc,"\ni = %u",i); delay_ms(500); } }
Title: Re: ขอคำปรึกษาหน่อยครับ LCD ขึ้นแถบดำๆ
Post by: topshared on March 04, 2013, 01:23:41 AM
#use delay (clock = 20000000)
struct lcd_pin_map { BOOLEAN rs; BOOLEAN enable; BOOLEAN rw; BOOLEAN unused; int data : 4; } lcd;
#byte lcd = 8
#define set_tris_lcd(x) set_tris_d(x)
#define lcd_type 2 #define lcd_line_two 0x40
byte const LCD_INIT_STRING[4] = {0x20 | (lcd_type << 2), 0x0c, 1, 6};
struct lcd_pin_map const LCD_WRITE = {0, 0}; struct lcd_pin_map const LCD_READ = {0, 15};
void lcd_send_nibble( byte n ) { lcd.data = n; delay_cycles(1); lcd.enable = 1;
delay_us(2); lcd.enable = 0;
}
void lcd_send_byte( byte address, byte n) { lcd.rs = 0; delay_us(500); lcd.rs = address; delay_cycles(1);
lcd_send_nibble(n >> 4); lcd_send_nibble(n & 0x0f); }
void lcd_gotoxy( byte x, byte y) { byte address; if(y != 1) address = lcd_line_two; else address = 0; address += x-1; lcd_send_byte(0,0x80|address); }
void lcd_init() { byte i; set_tris_lcd(LCD_WRITE); set_tris_d(0B00000000); lcd.rs = 0;
delay_ms(15); for (i=1; i<=3; ++i) { lcd_send_nibble(3); delay_ms(5); } lcd_send_nibble(2); for (i=0; i<=3; ++i) lcd_send_byte(0,LCD_INIT_STRING[i]); }
void lcd_putc( char c ) { switch (c) { case '\f' : lcd_send_byte(0, 1); delay_ms(2); break; case '\n' : lcd_gotoxy(1,2); break; case '\b' : lcd_send_byte(0,0x10); break; case '\p' : lcd_gotoxy(9,2); break; default : lcd_send_byte(1,c); break; } }
Title: Re: ขอคำปรึกษาหน่อยครับ LCD ขึ้นแถบดำๆ
Post by: samarters on March 04, 2013, 03:29:19 PM
ลองใช้งาน LCD ในเว็บดูครับสามารถใช้งานได้ดี http://thaimicrotron.com/Referrence/LCD/LCD-Module5.htm
Title: Re: ขอคำปรึกษาหน่อยครับ LCD ขึ้นแถบดำๆ
Post by: MicroX on March 04, 2013, 07:23:23 PM
LCD แสดงผลออกมาเป็นแถบดำๆ ไม่ขาดไม่แหว่ง แสดงว่าสุขภาพ LCD ยังดีอยู่ครับ ส่วนโค๊ดถ้าคุณเอามาจากหนังสือ ก็ไม่น่าจะผิดครับ ให้ลองตรวจเรื่องพอร์ตที่ใช้อีกที ว่าตรงหรือเปล่า
Title: Re: ขอคำปรึกษาหน่อยครับ LCD ขึ้นแถบดำๆ
Post by: topshared on March 05, 2013, 04:49:17 PM
ตอนนี้ LCD ติดละครับ ^^ พอดีสายที่ต่อเข้า LCD มันขาดไป 2 เส้ยเลยทำให้ LCD มันขึ้นแถบดำๆ ขอบคุณสำหรับคำแนะนำนะครับ
|