⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 this is a temperature and humity sensing application with sht11
💻 C
字号:
#include <18F452.h>
#device adc=10
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000,RESTART_WDT)
#use rs232(baud=57600, xmit=PIN_C6, rcv=PIN_C7)
#ORG 0x7000,0x7FFF {} // Added for bootloader

#include <stdio.h>

#include "LCD_zafer.c"
#include "sht11.c"
#include <math.h>

//--------------------------------------------------------------------
float calc_cig_noktasi_sicakligi(float h,float t)
//--------------------------------------------------------------------
// cig_noktasi_sicakligi hesabi
// input:   nem [%RH], sicaklik [癈]
// output:  cig noktasi [癈]
{ float logEx,cig_noktasi;
  logEx=0.66077+7.5*t/(237.3+t)+(log10(h)-2);
  cig_noktasi = (logEx - 0.66077)*237.3/(0.66077+7.5-logEx);
  return cig_noktasi;
}

//--------------------------------------------------------------------
float hesapla_hissedilen_sicaklik(float r,float t)
//--------------------------------------------------------------------
// hissedilen sicaklik hesaplama
// r bagil nem
// t sicaklik cellius olarak
{
   float hissedilen,t2,r2;
   float a,b;
   const float c_1= -42.379,
               c_2= 2.04901523,
                 c_3 = 10.1433127,
               c_4 = -0.22475541,
             c_5 = -6.83783e-3,
                c_6 = -5.481717e-2,
             c_7 = 1.22874e-3,
             c_8 = 8.5282e-4,
             c_9 = -1.99e-6;

   t= (t*1.8) + 32;
   t2=t*t;
   r2=r*r;
   a=c_1+(c_2*t)+(c_3*r)+(c_4*t*r)+(c_5*t2);
   b=(c_6*r2)+(c_7*t2*r)+(c_8*t*r2)+(c_9*t2*r2);
   hissedilen= a + b;
   hissedilen = ((hissedilen - 32)/1.8);
   return hissedilen;
}

void main()
{
 float restemp, truehumid,hissedilen_sicaklik,cig_noktasi;
 
 port_b_pullups(true);
 lcd_init();
 sht_init();

 for(;;)
 {
  sht_rd (restemp, truehumid);
  hissedilen_sicaklik=hesapla_hissedilen_sicaklik(truehumid,restemp);
  cig_noktasi=calc_cig_noktasi_sicakligi(truehumid,restemp);
  lcd_goto_xy(1,1);
  printf(lcd_putc, "Temp      : %3.1f %cC ", restemp, 223);
  lcd_goto_xy(1,2);
  printf(lcd_putc, "RH        : %3.1f %%  ", truehumid);
  lcd_goto_xy(1,3);
  printf(lcd_putc, "Feel Temp : %3.1f %cC ", hissedilen_sicaklik, 223);
  lcd_goto_xy(1,4);
  printf(lcd_putc, "Dew Point : %3.1f %cC ", cig_noktasi, 223);
  delay_ms(500);        //delay 500 ms between reading to prevent self heating of sensor
 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -