#include "18F2520.h"
#fuses HS, NOPROTECT, INTRC_IO
#use delay(clock=4000000)
#define RS PIN_A0
#define EN PIN_A1
void lcd_data(char z)
{
output_b(z);
output_high(EN);
output_high(RS);
delay_ms(5);
output_low(EN);
}
void lcd_cmd()
{
output_high(EN);
output_low(RS);
delay_ms(5);
output_low(EN);
}
void lcd_init()
{
delay_ms(1000);
output_b(0x30); // 8 bit, 1 1ine, 5 x 8 dots
lcd_cmd();
output_b(0x0c); // Restore the display(with cursor hidden)
lcd_cmd();
output_b(0x06); // display shift off, increment address counter
lcd_cmd();
output_b(0x80); // starting address of lcd
lcd_cmd();
output_b(0x01); // clear display
lcd_cmd();
delay_ms(5);
}
void main()
{
setup_oscillator(OSC_4MHZ);
set_tris_b(0x00); // all pins in PORT B are outputs
lcd_init();
lcd_data("LCD");
delay_ms(10);
}