13

13


1)

#include <xc.h>

__PROG_CONFIG(1,0x3FE4);

__PROG_CONFIG(2,0x1EFF); 

char v[10]={0x03, 0x9F, 0x25, 0x0D, 0x99, 0x49, 0x41, 0x1F, 0x01, 0x09};

unsigned char a=0,m=0, c1=0,c2=1,c3=2,c4=3;

void interrupt etti();

void init();

void main(void)

 {

  init();

  while (1)

  {

    if(a>=20)

    {

 a=0;

 if(m<6)

 {                           

   PORTA=v[c1++];

   PORTB=v[c2++];

   PORTC=v[c3++];

   PORTD=v[c4++];

 }

 m++;

 if(m>6)

 {

   PORTA=v[c1--];

   PORTB=v[c2--];

   PORTC=v[c3--];

   PORTD=v[c4--];

 }

 if(m>11)

 {

  m=0;

 }

    }

  }

 }

 void init()

 {

  OSCCON=0x73;

  T1CON=0x11;

  PEIE=1;

  GIE=1;

  TMR1IE=1;

  TMR1H=0x3C;

  TMR1L=0xAF;

   

  TRISA=0x00;

  ANSELA=0x00;

  PORTA=0xFF;

   

  TRISB=0x00;

  ANSELB=0x00;

  PORTB=0xFF;

   

  TRISC=0x00;

  PORTC=0xFF;

   

  TRISD=0x00;

  ANSELD=0x00;

  PORTD=0xFF;

 }

 void interrupt etti()

 {

  if(TMR1IF)

  {

    TMR1IF=0;

    TMR1H=0x3C;

    TMR1L=0xAF;

    a++;

  }

 }


2)

#include <xc.h>

#define _XTAL_FREQ 16000000

__PROG_CONFIG(1,0x3FE4);

__PROG_CONFIG(2,0x1EFF);

void init();

void interrupt etti();

unsigned char v[10]={0x03, 0x9F, 0x25, 0x0D, 0x99, 0x49, 0x41, 0x1F, 0x01, 0x09},

       d=0, c=1, a=0, b=0,

       timp_sec, timp_ms,

       timp_sec_stop, timp_ms_stop,

   pornit=0;

void main()

{

  init();

  while(1)

  {

   if(RA1==1)

   {

pornit=1;

RA0=0;

   }

    

   while(pornit==1)

   {

if(a>=2)

{

  a=0;

  PORTD=v[d++];


  if(d>10)

  {

    d=1;

    PORTD=0x03;

    PORTC=v[c++];

  }

  if(c>10)

  {

    c=1;

    PORTC=0x03;

  }


  if(RA2==1)

  {

    __delay_ms(500);

    if(RA2==0)

    {

 pornit=0;

 timp_sec_stop=c-1;

 timp_ms_stop=d-1;

    }

    else

    {  

 pornit=0;

   d=1;

 c=1;

 PORTC=0x03;

 PORTD=0x03;

    }

  }

}   

     if(RA3==1)

     {

  timp_sec=c-1;

  timp_ms=d-1;

     }

   }

    

   if(RA3==1)

b++;

    

   switch(b)

   {

case 1:

  PORTC=v[timp_sec];

  PORTD=v[timp_ms];

  RA0=1;

  break;

case 2:

  PORTC=v[timp_sec_stop];

  PORTD=v[timp_ms_stop];

  RA0=0;

  b=0;

  break;

   }

   __delay_ms(100);

    

  }

}

void init()

{

  OSCCON=0x73;

  T1CON=0x11;

  TMR1H=0x3C;

  TMR1L=0xAF;

  

  TRISA=0x0E;

  ANSELA=0x00;

  PORTA=0x00;

  

  TRISC=0x00;

  PORTC=0x03;

  

  TRISD=0x00;

  ANSELD=0x00;

  PORTD=0x03;

  

  TMR1IE=1;

  GIE=1;

  PEIE=1;

}

void interrupt etti()

{

  if(TMR1IF)

  {

   TMR1IF=0;

   TMR1H=0x3C;

   TMR1L=0xAF;

   a++;

  }

}




3)

#include <xc.h>

__PROG_CONFIG(1,0X3FE4);

__PROG_CONFIG(2,0X1EFF);


unsigned char cifra[10] = {0x03,0x9F,0X25,0X0D,0X99,0X49,0X41,0X1F,0X01,0X09};

int a=0;

unsigned b;

void interrupt etti();

void init();

unsigned int read_adc()

{

  GO_nDONE=1;

  while(GO_nDONE);

  return ADRESH;

}


void main(void)

 { 

  init();

  while (1)

  {

   if(a>=400)

   { a=0;

b=read_adc();

b=b*310;

   }

   if(RA1==0)

   {

   PORTB=cifra[b/10000];

   PORTC=cifra[(b/1000)%10]-1;

   PORTD=cifra[b/100%10];

   }

   else

   {

   PORTB=0xFF;

   PORTC=cifra[b/10000];

   PORTD=cifra[b/1000%10];

   }

 }

 }

 void init()

{

  OSCCON=0X73;

  OPTION_REG=0x00;

  

  TMR0IE=1;

  TMR0IF=0;

  GIE=1;

  

  TRISB=0x00;

  ANSELB=0x00;

  

  TRISD=0x00;

  ANSELD=0x00;

  

  TRISC=0x00;

  

  ANSELA=0X01;

  TRISA=0X03;

  

  ADCON0=0b00000001;

  ADCON1=0X60;

  

}

void interrupt etti()

{

  if(TMR0IF)

  {

   TMR0IF=0;

   TMR0=5;

   a++;

   

  }

}











Report Page