#define _XTAL_FREQ 4000000
#define RS RB5
#define EN RB4
#define D4 RC0
#define D5 RC1
#define D6 RC2
#define D7 RC3
// CONFIG
#pragma config OSC = IntRC_RB4EN// Oscillator Selection bits (Internal RC oscillator/RB4 function on RB4/OSC2/CLKOUT pin)
#pragma config WDT = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config CP = OFF // Code Protection bit (Code protection off)
#pragma config MCLRE = ON // RB3/MCLR Pin Function Select bit (RB3/MCLR pin function is MCLR)
// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.
#include <xc.h>
#include "lcd.h";
int main()
{
OSCCAL= 0b01111110;
unsigned int a;
TRISC = 0x00;
TRISB = 0x00;
Lcd_Init();
while(1)
{
Lcd_Clear();
Lcd_Set_Cursor(1,1);
Lcd_Write_String("LCD Library for");
Lcd_Set_Cursor(2,1);
Lcd_Write_String("MPLAB XC8");
__delay_ms(2000);
Lcd_Clear();
Lcd_Set_Cursor(1,1);
Lcd_Write_String("For 16F505");
Lcd_Set_Cursor(2,1);
Lcd_Write_String("Have fun");
__delay_ms(2000);
Lcd_Clear();
Lcd_Set_Cursor(1,1);
Lcd_Write_String("be80be");
for(a=0;a<15;a++)
{
__delay_ms(300);
Lcd_Shift_Left();
}
for(a=0;a<15;a++)
{
__delay_ms(300);
Lcd_Shift_Right();
}
Lcd_Clear();
Lcd_Set_Cursor(2,1);
Lcd_Write_Char('2');
Lcd_Write_Char('2');
__delay_ms(2000);
}
return 0;
}