#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();
}
}