View Single Post
Old 27-05-2013, 01:38 AM   #1
vn00426941
Đệ tử 3 túi
 
Tham gia ngày: Apr 2008
Bài gửi: 50
:
Giúp em lỗi đoạn code hiển thị lên lcd 16x2

Em viết đoạn code này, k biết bị sai chỗ nào mà lcd k hiển thị lên chuỗi kí tự như mong muốn. Ace xem giúp.

#include <p30F6014.h>
#define RS LATBbits.LATB4
#define RW LATBbits.LATB5
#define E LATBbits.LATB6
#define FCY 10000UL
#include <libpic30.h>

_FOSC(HS & CSW_FSCM_OFF);
_FWDT (WDT_OFF);
_FBORPOR (PBOR_OFF);
_FGS (GWRP_OFF);
int i,x,nghin, chuc,tram,donvi;
void LCD_intall(),write_lc();
void LCD_Command(),LCD_Data();
const int ki_tu[]={'C','h','u','0','n','g',' ','t','r','i','n','h',' ','m','a','u'};
void write_h2();
void main(){
TRISD = 0x00;
TRISB = 0x00;
LCD_intall();
write_lc();
while(1);
}

void LCD_intall(){
LATD = 0x01;
LCD_Command();

LATD = 0x0E;
LCD_Command();

LATD = 0x06;
LCD_Command();

LATD = 0x80;
LCD_Command();

LATD = 0x38;// LCD hien thi 2 hang 5x8, giao tiep 8 bits
LCD_Command();

}
void LCD_Command()// Gui lenh len lcd
{
RS = 0;
RW = 0;
E = 1;
__delay_us(50);
E = 0;
}
void LCD_Data()// Ghi du lieu len lcd
{
RS=1;
RW=0;
E=1;
__delay_us(50);
E=0;
}
void write_lc()
{
for(i=0;i<16;i++)
{
LATD = ki_tu[i];
LCD_Data();
__delay_ms(50);
}

}
void write_h2()
{
LATD = nghin+0x30;
LCD_Data();
__delay_us(40);
LATD = tram+0x30;
LCD_Data();
__delay_us(40);
LATD = chuc+0x30;
LCD_Data();
__delay_us(40);
LATD = donvi+0x30;
LCD_Data();
__delay_us(40);

}
vn00426941 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn