ผมเขียนภาษาโค้ด ให้ LCD แสดงผล แต่ผลที่จำลองกับของจริงกับออกไม่ตรงกัน เลยลองเปลี่ยเวอร์ชั่นที่ใช้เขียนถึงสามเวอร์ชั่นก็ยังไม่ได้(ใช้ mikroC) ใช้ PIC 2 ตัว ผลก็ออกมาไม่ตรง (18F452 , 16F887) โดยผมต่อ R/W=GND , RS=RB4 , E=RB5 , D4=RB0 , D5=RB1 , D6=RB2 , D7=RB3
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
void main(){
Lcd_Init();
while(1) {
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
Lcd_Out(1,6,"BOB");
Lcd_Out(2,6,"bob");
Delay_ms(5000);
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,1,"ABCDEFGHIJKLMNOP");
Lcd_Out(2,1,"abcdefghijklmnop");
Delay_ms(7000);
}
}
จึงสงสัยว่าผมต้องแก้ปัญหาที่ตรงจุดครับ
LCD ออกไม่ตรงตามจำลอง (ไมโครคอนโทรเลอร์)
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
void main(){
Lcd_Init();
while(1) {
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
Lcd_Out(1,6,"BOB");
Lcd_Out(2,6,"bob");
Delay_ms(5000);
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,1,"ABCDEFGHIJKLMNOP");
Lcd_Out(2,1,"abcdefghijklmnop");
Delay_ms(7000);
}
}
จึงสงสัยว่าผมต้องแก้ปัญหาที่ตรงจุดครับ