//HDSP-2303 kijelző működtetése

#include <pic18.h>
#include "hitech.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Nokia_LCD.h"
#include "delay.h"
#include "sajat.h"

__CONFIG(1,HSPLL & OSCSDIS);
__CONFIG(2,BORDIS & WDTDIS);
__CONFIG(3,CCP2RC1);
__CONFIG(4,DEBUGDIS & LVPDIS & STVRDIS);
__CONFIG(5,49167);
__CONFIG(6,57359);
__CONFIG(7,SWDTDIS);

unsigned char seged,A_BETU[5],j,i,s;

 //Nyomógombok
#define lenyil   RA4
#define felnyil  RA1
#define jobbnyil RA3
#define balnyil  RA2
#define enter    RE0
#define esc      RA5

 //HDSP kijelző 
#define OSZLOP1 RB1
#define OSZLOP2 RB0
#define OSZLOP3 RD7
#define OSZLOP4 RD6
#define OSZLOP5 RD5
#define ADATBE  RD4
#define CLOCK   RC5
#define BLANK   RC4

void BEALLITASOK(void)
{
  TRISA=0B11111111;
  ADCON1=0B11001110;
  ADCON0=0B00000000;
  TRISB=0B00000000;
  TRISC=0B10000000;
  TRISD=0B00000000;
  TRISE=0B001;
  LATB=0;
  LATD=0;
  LATC=0;
 // T0CON=0b11000001;
 // INTCON=0b00100100;
}

void OSZLOPOK_BE(void)
{
 OSZLOP1=1;
 OSZLOP2=1;
 OSZLOP3=1;
 OSZLOP4=1;
 OSZLOP5=1;
}

void OSZLOPOK_KI(void)
{
 OSZLOP1=0;
 OSZLOP2=0;
 OSZLOP3=0;
 OSZLOP4=0;
 OSZLOP5=0;
}

void A_BETU_KIIRAS(void)
{
 for(j=0;j<4;j++)
  {
   s=0B01000000; //segéd bájt
    for(i=0;i<7;i++)
       {
         CLOCK=1;
          if(A_BETU[j]&s) seged=1;
                     else seged=0;
         s=s>>1;
         ADATBE=seged; 
         DelayBigUs(10); //10ms várakozás
         CLOCK=0;
         DelayBigUs(10); //10ms várakozás
       }
  }
 OSZLOPOK_BE();
 LCD_printstr(0,1,"Kiírás   ",0);
}

void main(void)
{
 BEALLITASOK();
 Lcd_init();  
 OSZLOPOK_KI();
 A_BETU[0]=0B00011111;
 A_BETU[1]=0B00101000;
 A_BETU[2]=0B01001000;
 A_BETU[3]=0B00101000;
 A_BETU[4]=0B00011111;
 LCD_printstr(0,1,"Működik!  ",0);
 do
  {
   if(enter==0) A_BETU_KIIRAS();
   do{}while(enter==0); //pergés mentesítés

  }
 while(1); 
}


