Đoạn code sau em dựa vào thư viện lcd_lib_8bit của CCS, chạy trên CCS cho PIC24FJ128GA010 rùi nhưng khi chỉnh sửa cho sang C30 thì không báo lỗi nhưng cũng không thấy hiện tượng gì, các bác giúp em với
Code:
#include <p24FJ128GA010.h>
#include <string.h>
_CONFIG1( JTAGEN_OFF & GCP_OFF & GWRP_OFF & COE_OFF & FWDTEN_OFF & ICS_PGx2)
_CONFIG2( FCKSM_CSDCMD & OSCIOFNC_OFF & POSCMOD_HS & FNOSC_PRI)
///////////////////////
#define RS LATD15
#define RW LATD5
#define E LATD4
#define LCD PORTE
/*Ham yeu cau goi lenh dieu khien LCD*/
void comnwrt(void)
{
LATDbits.RS = 0;
LATDbits.RW = 0;
LATDbits.E = 1;
LATDbits.E = 0;
DelayMs(1);
}
/*Ham yeu cau goi du lieu hien thi len LCD*/
void datawrt(void)
{
LATDbits.RS = 1;
LATDbits.RW = 0;
LATDbits.E = 1;
LATDbits.E = 0;
DelayMs(1);
}
void lcd_init(void)
{
DelayMs(100); // Tao tre 100ms cho LCD khoi dong
LCD = 0x38; // Hai hang, ma tran dot 5*7, 8 bit interface
comnwrt();
LCD = 0x0C; // Bat hien thi, tat con tro
comnwrt();
}
void lcd_putcmd(unsigned int Cx)
{
LCD=Cx;
comnwrt();
}
void lcd_putchar(char Cx)
{
unsigned char x=0;unsigned char i=0;
x=(strlen(Cx));
for(i=0;i<=x;i++)
{
if(Cx==' ')i=i+2;
LCD=Cx;
datawrt();
}
}
///////////////////
int main(void)
{
_TRISD4=0;
LATDbits.E=0;
_TRISD5=0;
LATDbits.RW=0;
_TRISD15=0;
LATDbits.RS=0;
TRISE=0xFFF0;
lcd_init();
DelayMs(1000);
lcd_putcmd(0x01);
while(1);
{
lcd_putcmd(0x80);
lcd_putchar("PIC");
DelayMs(5000);
}
}