PA3040
Advanced Member level 3
Dear All
My LCD 4bit mode program is not working. Can any one please advice me what are the errors with my codes. No compile errors,
Please find the attachment for DSN file for Proteus
Thanks in Advance
My LCD 4bit mode program is not working. Can any one please advice me what are the errors with my codes. No compile errors,
Please find the attachment for DSN file for Proteus
Code:
#include <htc.h>
#define _XTAL_FREQ 4000000 // 4 MHz clock
__CONFIG(0X3F39);
#define LCD_EN RB3
#define LCD_RS RB5
#define LCD_RW RB4
#define LCD_DATA PORTD
#define LCD_STROBE() ((LCD_EN = 1)|(LCD_EN=0))
unsigned char time [5] = {'T','i','m','e',':'};
void lcddata(unsigned char value)
{
LCD_RS = 1;
LCD_DATA= (value >> 4);
LCD_STROBE();
LCD_DATA = (value);
LCD_STROBE();
}
void lcdcmd(unsigned char value)
{
LCD_RS = 0;
LCD_DATA= (value >> 4);
LCD_STROBE();
LCD_DATA = (value);
LCD_STROBE();
}
void display (){
lcdcmd(0x80);
for (char i=0;i<5;i++){
lcddata(time[i]);
}
}
void lcd_init(){
TRISD = 0;
TRISB = 0;
TRISC7 = 0;
TRISC6 = 0;
LCD_EN =0;
__delay_ms(175);
lcdcmd(0x38);
__delay_ms(175);
lcdcmd(0x28);
__delay_ms(15);
lcdcmd(0x01);
__delay_ms(10);
lcdcmd(0x06);
__delay_ms(10);
lcdcmd(0x80);
__delay_ms(10);
lcdcmd(0x0c);
__delay_ms(10);
}
void main(){
lcd_init();
while(1){
display();
}
}