View Single Post
Old 13-10-2012, 03:16 AM   #1
vietnhoc
Đệ tử 1 túi
 
Tham gia ngày: May 2012
Bài gửi: 14
:
có ai có thể giúp e với code lcd này ko ạ!!!!

#include<p33FJ128MC202.h>
#include<stdio.h>
#include<stdlib.h>
#include <p33FJ128MC202.h>

_FOSCSEL (FNOSC_PRIPLL);
_FOSC(FCKSM_CSDCMD & OSCIOFNC_OFF & POSCMD_XT);
_FWDT(FWDTEN_OFF);
/*cac hang so cua chuong trinh*/
#define LCD_EN LATA4 //Tin hieu Enable cho LCD, chan RRA4
#define LCD_RW LATA1 //Tin hieu Read/Write cho LCD, chan RA1
#define LCD_RS LATA0 //Tin hieu Reset cho LCD, chan RA0
#define LCD_DATA LATB //Cac tin hieu Data cho LCD, )
#define LCD_TRIS TRISB //Tristate cua cac tin hieu Data cho LCD

#define LCD_clear 0x01 //Xoa man hinh LCD
#define LCD_home 0x02 //Tro ve dau dong
#define LCD_normal 0x06 //Che do nhap du lieu binh thuong
#define LCD_normal_s 0x07 //Che do nhap du lieu binh thuong, dich man hinh
#define LCD_off 0x08 //Tat man hinh
#define LCD_on 0x0C //Bat man hinh
#define LCD_on_crsr 0x0E //Bat man hinh va con tro
#define LCD_on_blink 0x0F //Bat man hinh va con tro (nhap nhay)
#define LCD_4b2l 0x28 //Che do 2 dong, giao tiep 4 bit du lieu
#define LCD_homeL1 0x80 //Ve dau dong 1
#define LCD_homeL2 0xC0 //Ve dau dong 2



/*================================================= =============*/
/*-----------------------------------------------------------------------------------------------------*/


unsigned char time_out,idx,i;

void initPORTS(void);
void initLCD(void);
void init_TMR1(void);
void LCD_cmd4(unsigned char);
void LCD_data4(unsigned char);
/*------------------------------*/

void initPORTS(void)
{
LCD_DATA &= 0xfff0; /*xoa cac chn du lieu*/
LCD_TRIS=0xfff0; /*chon cac chan du lieu la RB8-RB11 lam ngo ra*/
TRISAbits.TRISA4=0; /*cho phep LCD hoat dong chan Ra4*/
LATAbits.LCD_EN=0; /*chon chan RA4 lam ngo ra*/
TRISAbits.TRISA1=0; /*chon doc hay ghi du lieu chan RB14*/
LATAbits.LCD_RW=0; /*chon chan RB14 lam ngo ra*/
TRISAbits.TRISA0=0; /*chon du lieu hay lenh chan RB15*/
LATAbits.LCD_RS=0; /*chon chan RB15 lam ngo ra*/

}
void init_TMR1(void)
{
TMR1=0;
T1CON=0x0000; /

}

void init_LCD()
{

LCD_cmd4(LCD_4b2l); //Dat che do giao tiep 4-bit, man hinh 2 dong
delay_ms(1);
LCD_cmd4(LCD_off); //Tat man hinh
delay_ms(1);
LCD_cmd4(LCD_normal); //Che do nhap du lieu binh thuong
delay_ms(1);
LCD_cmd4(LCD_on_blink); //Bat man hinh, hien con tro nhap nhay
delay_ms(1);
LCD_cmd4(LCD_clear); //Xoa man hinh
delay_ms(5);
}

void LCD_cmd4(unsigned char cmd) /*ghi lenh co ma lenh cmd*/
{
unsigned temp0,i;
LATAbits.LCD_RW=0; /*chon che do ghi*/
LATAbits.LCD_RS=0; /*chon che do ghi lenh*/
temp0 = LCD_DATA & 0xFFF0; /*luu lai cac trang thai truoc khi ghi lenh ra LCD*/
LCD_DATA = (temp0)|(cmd>>4); /* lay 4 bits cao cua cmd*/

LATAbits.LCD_EN = 1; /*cho lcd hoat dong*/
for(i=0;i<10;i++); /*tao tre cho qua trinh truyen*/
LATAbits.LCD_EN=0; /*ngat lcd*/
temp0 = LCD_DATA & 0xFFF0; /*luu cac trang thai truoc do*/
LCD_DATA = (temp0) | (cmd&0x0F); /*lay 4 bit thap cua cmd*/

LATAbits.LCD_EN=1;
for(i=0;i<50;i++);
LATAbits.LCD_EN=0;
}



void LCD_data4(unsigned char data)
{

unsigned temp2,i;

LATAbits.LCD_RW=0; /*che do ghi*/
LATAbits.LCD_RS=1; /*che do ghi du lieu*/
temp2=LCD_DATA & 0xFFF0; /*luu gia tri truoc khi ghi du lieu*/
LCD_DATA=((temp2)|(data>>4)) ; /*lay 4 bit cao cua data*/
LATAbits.LCD_EN=1;
for(i=0;i<10;i++);
LATAbits.LCD_EN=0;

temp2=LCD_DATA & 0xFFF0; /*luu gia tri truoc khi ghi du lieu*/

LCD_DATA= ((temp2)| (data & 0x0F)); /* lay 4 bit thap*/
LATAbits.LCD_EN=1;
for(i=0;i<100;i++);
LATAbits.LCD_EN=0;

}
void LCD_chuoi(unsigned char *s)
{
while(*s)
{
LCD_data4(*s);
s++;
}
}
/*chuong trinh ngat timer 1*/


void delay_ms(unsigned int n)
{
T1CONbits.TON=1;
while (n--)
{
TMR1 = 0;
while (TMR1<8000);
}


}
int main()
{

int i;

initPORTS();
delay_ms(10);
init_TMR1();
delay_ms(50);
init_LCD();
delay_ms(100);
while(1)
{
LCD_data4(0x46);
delay_ms(100);
LCD_cmd4(LCD_homeL2);
LCD_chuoi("bkhn");

delay_ms(50);
};
return 1;
}

e thử mãi mà ko thể hiển thị LCD trong khi xuất ra các chân vi điều khiển và lcd rồi
Hình Kèm Theo
File Type: png Ảnh chụp màn hình_2012-10-13_021219.png (38.0 KB, 8 lần tải)
vietnhoc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn