12 Temmuz 2021 Pazartesi

Vumetre ccs compiler

 Vumetre ccs compiler örnek uygulama çalışması.

#include <16f88.h>

#device ADC = 10

#fuses HS,NOWDT,NOPROTECT,NOPUT,NOLVP,BROWNOUT

#use delay(clock=20000000)

#use standard_io(A)

#use standard_io(B)


int leds[] = {PIN_A3,PIN_A4,PIN_B0,PIN_B1,PIN_B2,PIN_B3,PIN_B4,PIN_B5,PIN_B6,PIN_B7};

int k;

int32 map(int32 x, int32 eMin, int32 eMax, int32 sMin, int32 sMax);

void main()

{

   setup_adc_ports(sAN0);

   setup_adc(adc_clock_internal);

   

   while(true)

   {

      set_adc_channel(0);

      long valor_adc = read_adc();

      int cikis = map(valor_adc, 0, 700, 0, 10);

      if(cikis == 0)

      {

         for(k=0; k<=9; k++){

            output_low(leds[k]);

         }

      }

      else if(cikis == 1)

      {

         for(k=0; k<=0; k++){

            output_high(leds[k]);

         }

         for(k=1; k<=9; k++){

            output_low(leds[k]);

         }

      }

      

      else if(cikis == 2)

      {

         for(k=0; k<=1; k++){

            output_high(leds[k]);

         }

         for(k=2; k<=9; k++){

            output_low(leds[k]);

         }

      }

      

      else if(cikis == 3)

      {

         for(k=0; k<=2; k++){

            output_high(leds[k]);

         }

         for(k=3; k<=9; k++){

            output_low(leds[k]);

         }

      }

      

      else if(cikis == 4)

      {

         for(k=0; k<=3; k++){

            output_high(leds[k]);

         }

         for(k=4 ;k<=9; k++){

            output_low(leds[k]);

         }

      }

      

      else if(cikis == 5)

      {

         for(k=0; k<=4; k++){

            output_high(leds[k]);

         }

         for(k=5; k<=9; k++){

            output_low(leds[k]);

         }

      }

      

      else if(cikis == 6)

      {

         for(k=0; k<=5; k++){

            output_high(leds[k]);

         }

         for(k=6; k<=9; k++){

            output_low(leds[k]);

         }

      }

      

      else if(cikis == 7)

      {

         for(k=0; k<=6; k++){

            output_high(leds[k]);

         }

        for(k=7; k<=9; k++){

           output_low(leds[k]);

        }

      }

      

      else if(cikis == 8)

      {

         for(k=0; k<=7; k++){

            output_high(leds[k]);

         }

         for(k=8; k<=9; k++){

            output_low(leds[k]);

         }

      }

      

      else if(cikis == 9)

      {

         for(k=0; k<=8; k++){

            output_high(leds[k]);

         }

         for(k=9; k<=9; k++){

            output_low(leds[k]);

         }

      }

      

      else if(cikis == 10)

      {

         for(k=0; k<=9; k++){

            output_high(leds[k]);

         }

      }

   }

}

int32 map(int32 x, int32 eMin, int32 eMax, int32 sMin, int32 sMax)

{

   return(x -eMin)*(sMax-sMin)/(eMax-eMin)+sMin;

}



Hiç yorum yok:

Yorum Gönder

Her yorum bilgidir. Araştırmaya devam...