#include <PIC18f4550.h>
#include <delays.h>
#pragma config PLLDIV = 12, CPUDIV = OSC1_PLL2, USBDIV = 2, FOSC = HS, FCMEN = OFF, IESO = OFF
#pragma config PWRT = ON, BOR = OFF, VREGEN = ON, WDT = OFF, PBADEN = OFF, LPT1OSC = OFF, MCLRE = OFF
#pragma config STVREN = OFF, LVP = OFF, DEBUG = OFF
#define E RB5
#define RS RB4
#define RIGHTLCD RB0
#define LEFTLCD RB1
#define LCDRESET RB2
#define RW RB3
void STROBE()
{
E=1;
Delay10KTCYx(10);
E=0;
}
void LCDinit()
{
RW=0;
RS=0;
E=0;
LCDRESET=0;
LCDRESET=1;
RS=0;
LEFTLCD=1;
PORTD=0x3F;
STROBE();
LEFTLCD=0;
RIGHTLCD=1;
PORTD=0x3F;
STROBE();
RIGHTLCD=0;
LEFTLCD=0;
}
void PICinit()
{
CMCON=0x07;
ADCON1=0x0F;
PORTA=0;
PORTB=0;
PORTC=0;
PORTD=0;
TRISA=0;
TRISB=0;
TRISC=0;
TRISE=0;
TRISD=0;
}
void main()
{
PICinit();
LCDinit();
RS=1;
PORTD=0x0F;
LEFTLCD=1;
STROBE();
PORTD=0xF0;
LEFTLCD=1;
STROBE();
RS=0;
LEFTLCD=0;
while(1);
}