3 Şubat 2021 Çarşamba

DHT-11 ısı nem sensörü ccs compiler

 DHT-11 ısı nem sensörü ccs compiler. isteyen lcd ilede yapabilir. kolay gelsin

#include <16F883.h>

#FUSES NOWDT

#FUSES hs

#FUSES NOMCLR

#use delay(clock=4m)

#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)

#define DATA PIN_b0    

unsigned int alan[5];                 

unsigned int baytal()              

{

   unsigned int8 degeroku = 0;       

   int8 i=0;

   for(i=0; i<8; i++)                  

   {

      degeroku <<= 1;                

      while(!input(DATA));             

      delay_us(30);                    

      if(input(DATA))                  

      {

          degeroku |= 1;             

      }

      while(input(DATA));              

   }

   return degeroku;                  

}

unsigned int verial(){                                     

   int dogrula = 0;                                         

   int saglama = 0;                                           

   int8 j=0;                                                   

   output_high(DATA);                                          

   output_low(DATA);                                           

   delay_ms(18);                                               

   output_high(DATA);                                         

   delay_us(25);                                               

   dogrula = input(DATA);                                   

   delay_us(80);                                               

   dogrula = input(DATA);                                   

   if(!dogrula){                                            

      printf( "Dogrulama Hatası \r");                        

   }

   delay_us(80);                                               

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

       alan[j] = baytal();                                

   }

   output_high(DATA);                                          

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

       saglama += alan[j];                                   

   }

   if(saglama == alan[4]){                                  

      return 0;                                                

   }

}

void main()

{

   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);

   setup_timer_1(T1_DISABLED);

   setup_timer_2(T2_DISABLED,0,1);

   while(TRUE)

   {

      if(verial()==0)              

         printf( "\fTemp: %2u - R.H: %2u \r", alan[2], alan[0]);

      delay_ms(500);

   }

}



Hiç yorum yok:

Yorum Gönder

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