hi i want to display string on Lcd. i m doing work on explore 16 board. i stuck with delay can u plz help me..my code is as follow
#include "../../support/PIC24F/h/p24FJ128GA010.h"
#include "lcd_1.h"
#include "delay.h"
_CONFIG1(JTAGEN_OFF & GCP_OFF & GWRP_OFF & BKBUG_OFF & ICS_PGx2 & FWDTEN_OFF)
_CONFIG2(IESO_OFF & FCKSM_CSDCMD & OSCIOFNC_ON & FNOSC_PRI & POSCMOD_XT)
int main()
{
init_lcd();
lcd("ABCDEFG");
while (1);
}
#include "p24FJ128GA010.h"
void Init_LCD( void ); void lcd_cmd( char cmd ); void lcd_data(unsigned char str ); void lcd_data_string(unsigned char *str);
void lcd(unsigned char str [10]);
#include "../../support/PIC24F/h/p24FJ128GA010.h"
#include "lcd_1.h"
#define RW LATDbits.LATD5 // LCD R/W signal
#define RS LATBbits.LATB15 // LCD RS signal
#define E LATDbits.LATD4 // LCD E signal
#define RW_TRIS TRISDbits.TRISD5
#define RS_TRIS TRISBbits.TRISB15
#define E_TRIS TRISDbits.TRISD4
#define DATA LATE // Port for LCD data
#define DATAPORT PORTE
#define TRISDATA TRISE // I/O setup for data Port
void init_lcd(void)
{
DATA &= 0xFF00;
RW = 0; RS = 0; E = 0;
TRISDATA &= 0xFF00;
RW_TRIS = 0; RS_TRIS = 0; E_TRIS = 0;
DATA &= 0xFF00;
lcd_cmd(0x0038);
lcd_cmd(0x000E);
}
void lcd_cmd( char cmd ) {
DATA &= 0xFF00; DATA |= cmd; RW = 0; RS = 0;
E = 1; Nop();
Nop();
Nop();
E = 0;
}
void lcd_data(unsigned char str ) {
RW = 0; RS = 1; DATA &= 0xFF00; DATA |= str; E = 1;
Nop();
Nop();
Nop();
E = 0; RS = 0; }
void lcd_data_string(unsigned char *str)
{
int i=0;
while(str[i]!='\0');
{
lcd_data(str[i]);
i++;
delay_sec(2);
}
}
void lcd(unsigned char str[10])
{
lcd_cmd(0x0001);
lcd_cmd(0x0080);
lcd_data_string(str);
}
#include "p24FJ128GA010.h"
#include "lcd_1.h"
#define Fosc 8000000 // FRC Fosc = 8MHz
void delay_sec(unsigned char seconds);
include "p24FJ128GA010.h"
#include "lcd_1.h"
#include "delay.h"
void delay_sec(unsigned char seconds)
{
unsigned char i,j;
for(i=0;i<seconds;i++)>
for(j=0;j<10000;j++);
}