ADC_WITH_3_DIGIT_DISPLAY_18f4550


 //all port test

 // SURE TO CHECK LVP OFF

//POETD.b0 to a
//.....
//.....
//PORTD.b6 to g
#define dig1 PORTD.f5
#define dig10 PORTD.f6
#define dig100 PORTD.f7

 unsigned int show=0;
unsigned char num1,num10,num100,cnt;
unsigned char pattern;

    unsigned char display(unsigned char num)
    {
    unsigned char dig[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,
     0x7D,0x07,0x7F,0x6F};
     pattern=dig[num];
     return(~pattern);
     }

 void interrupt()
 {
                TMR0l=250;     //2.5ms interrupt
                INTCON=0x20;   //check
                portd=0;
    if(show==1)
    {
            PORTB=display(num1);
            dig1=1;
            dig10=0;
            dig100=0;


    }
    if(show==10)
    {
            PORTB=display(num1);
             dig1=1;
            dig10=0;
            dig100=0;

            PORTB=display(num10);
            dig1=0;
            dig10=1;
            dig100=0;


    }
    if(show==100)
    {
     PORTB=display(num1);
            dig1=1;
            dig10=0;
            dig100=0;

            PORTB=display(num10);
            dig1=0;
            dig10=1;
            dig100=0;

            PORTB=display(num100);
            dig1=0;
            dig10=0;
            dig100=1;


    }



 }

unsigned int res;
void main()
     {


TRISA=0x01;      //RA09AN0) as input
TRISC=0;
TRISD=0;
TRISB=0;


 ADCON1=0x0E; //RA0 as analog input and
              // others are digital
 ADCON2=0x88; //AD clock=fosc/2
              //Tacq=2Tad



TMR0l=250;     //2.5ms interrupt
INTCON=0xA0;
T0CON=0xC4;


for(;;)
       {


  delay_ms(20);
  res=Adc_Read(0);
  cnt=res;

     if(cnt<10)
     {
            show=1;
            num1=cnt;


     }
      if(cnt>=10 && cnt<=99)

      {
      show=10;
      num1=cnt%10;
      num10=cnt/10;

       }

       if(cnt>99)
       {
          show=100;
            num100=cnt/100;
            num10=(cnt/10)%10;
            num1=cnt%10;

       }
     }

     }

Comments

Popular posts from this blog

Inductance caculator

Pointer to object array