#include  <htc.h>
#include  <pic.h>
#include  <time.h>

__CONFIG(INTIO & WDTDIS & PWRTEN & MCLRDIS & UNPROTECT \
  & UNPROTECT & BORDIS & IESODIS & FCMDIS);


#define EGY 	0X01
#define KETTO 	0X02
#define HAROM 	0X03
#define NEGY 	0X04
#define OT 	0X05
#define HAT 	0X06
#define HET 	0X07
#define NYOLC 	0X08
#define KILENC 	0X09
#define CSILLAG 0X55
#define NULLA 	0X00
#define KERESZT 0X33
#define	ERROR	0x00
		
#define torol	0x01
#define home	0x02
#define entry	0x07
#define display_on	0x0f
#define display_off	0x0b
#define set	0x3c
		
#define init_be	0x10
#define init_ki	0x00
#define HARNINC	0x30

#define _XTAL_FREQ 10000000

#define enged 	0B00010000 
#define n_enged 0B00000000 



#define ir_e 0B10010000 
#define ir_n 0B10000000 

main()
{
    ANSEL = 0x00;                  //  Turn off ADC
    ANSELH = 0x00;
    TRISB = 0X00;                
    TRISD = 0X00;
    TRISA = 0X00;

PORTA = HARNINC;		// Inicializálás 6-szor
PORTB = init_be;
__delay_ms(50);
PORTB = init_ki;
__delay_ms(50);

PORTA = HARNINC;
PORTB = init_be;
__delay_ms(50);
PORTB = init_ki;
__delay_ms(50);

PORTA = HARNINC;
PORTB = init_be;
__delay_ms(50);
PORTB = init_ki;
__delay_ms(50);

PORTA = HARNINC;
PORTB = init_be;
__delay_ms(50);
PORTB = init_ki;
__delay_ms(50);

PORTA = HARNINC;
PORTB = init_be;
__delay_ms(50);
PORTB = init_ki;
__delay_ms(50);


//-------------

PORTA = 0X3C;			// 1 Inicializálási ábra alapján 3 szükséges beállitás
PORTB = init_be;
__delay_ms(50);
PORTB = init_ki;
__delay_ms(50);


PORTA = 0X00;			// 2
PORTB = init_be;
__delay_ms(50);
PORTB = init_ki;
__delay_ms(50);


PORTA = 0X06;			// 3
PORTB = init_be;
__delay_ms(50);
PORTB = init_ki;
__delay_ms(50);


//-----------------------------------------------


PORTA = 0X0f;			// DISPLAY ON/OF
PORTB = init_be;
__delay_ms(50);
PORTB = init_ki;
__delay_ms(50);

PORTA = 0X01;			// DISPLAX CLEAR
PORTB = init_be;
__delay_ms(50);
PORTB = init_ki;
__delay_ms(50);


PORTA = 0X07;			// ENTRY 
PORTB = init_be;
__delay_ms(50);
PORTB = init_ki;
__delay_ms(50);

PORTA = 0X14;			// SHIFT
PORTB = init_be;
__delay_ms(50);
PORTB = init_ki;
__delay_ms(50);

PORTA = 0X3c;			// SET FUNCTION
PORTB = init_be;
__delay_ms(50);
PORTB = init_ki;
//__delay_ms(50);

__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);

__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);


//-----------------------------------

// RS = RB7, R/W = RB5 , E rb4


while (1)
{
// ddram		// elso sor 4 dik poziciójának beállitása
PORTA = 0x83;
PORTB = 0x10;
__delay_ms(50);
PORTB = 0x00;

// adat 
PORTA = 0b01000001;	// A
PORTB = 0b10010000;
__delay_ms(50);
PORTB = 0b10000000;
__delay_ms(50);


__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);
__delay_ms(50);



// DDRAM = 0
PORTA = 0x85;		// elso sor 6 dik poziciójának beállitása
PORTB = 0x10;
__delay_ms(50);
PORTB = 0x00;

PORTA = 0X31;		// B
PORTB = 0b01000010;
__delay_ms(50);
PORTB = 0b10000000;
__delay_ms(50);

}

}