PDA

View Full Version : Không hiển thị được LCD


vietphuc91
19-11-2012, 03:14 PM
code LCD của mình như sau,dspic33fj32mc204
//chương trình thực hiện xuất VuVietPhuc Bkhn ra lcd.lcd 16*2,giao tiếp 8 bit.portb từ bo-b7 nối d0-d7 của lcd.rs,rw,en lần lượt nối với portA0,A1,A2
#include <p33FJ32MC204.h>
#include <delay.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#define RS LATAbits.LATA0
#define RW LATAbits.LATA1
#define EN LATAbits.LATA2
#define D7 LATBbits.LATB7
void lcd_cmd(unsigned char cmd)
{
TRISB=0;
TRISA=0;
LATB=cmd;//Dua lenh len
RS=0;//lenh nen RS=0
RW=0;//write
EN=1;//EN tu 1 xuong 0 de nhan du lieu lenh tu cong
EN=0;
LCD_busy();
}
void LCD_busy()
{
TRISB=0;
TRISA=0;
D7 = 1; //Make D7th bit of LCD as i/p
EN = 1; //Make port pin as o/p
RS = 0; //Selected command register
RW = 1; //We are reading
while(D7){ //read busy flag again and again till it becomes 0
EN = 0; //Enable H->L
EN = 1;
}
}

void initLCD()//khoi dong LCD
{
lcd_cmd(0x38);//Function set .giao tiep 8 bit, 2 dòng voi font 5x8
lcd_cmd(0x0E);//xác lap cách hien thi cho LCD. hien thi cursor nhung không hien thi blinking
lcd_cmd(0x01);//xoa hien thi
lcd_cmd(0x06);//Entry mode set .xac lap các hien thi lien tiep cho LCD=>hien thi tang và không shift

}
void xoaLCD()
{
lcd_cmd(0x01);
}
void lcd_data(unsigned char data)
{
TRISB=0;
TRISA=0;
LATB=data;
RS=1;//data nen RS=1
RW=0;//write
EN=1;
EN=0;
LCD_busy();
}
void write_string(char *msg)
{
while(*msg)
{
lcd_data(*msg);
msg++;
}
}
void LCD_gotoxy(unsigned int y,unsigned x)//dieu khien vi tri con tro
{
int ad=64*(y-1)+x-1+0x80;
lcd_cmd(ad);
}

int main()
{
TRISB=0;
TRISA=0;
initLCD();
LCD_gotoxy(1,1);//de con tro o dau
write_string("VuVietPhuc");
LCD_gotoxy(2,1);
write_string("Bkhn");
return 0;
}

vietphuc91
19-11-2012, 03:17 PM
Đây là file LCD.rar của em gồm có proteus và code viết trên Mplabide v1.51
http://www.mediafire.com/?t23u3rrt57gn8wq

vietphuc91
19-11-2012, 09:44 PM
em chạy được rồi