Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 10156|Jawab: 0

pic16f877a menggerakkan sensor suhu dan kelembaban DHT11

[Salin tautan]
Diposting pada 25/11/2014 22.12.09 | | |
[mw_shl_code=c,true]#include<pic.h> // Gunakan osilator kristal 12M
#include"12864.h"
#define uint unsigned int
#define uchar char yang tidak ditandatangani
__CONFIG(FOSC_HS&WDTE_OFF&LVP_OFF);
uchar temp_valueH,hum_valueH,hum_valueL,temp_valueL,cek;
delay_time;
void timer0_init()
{
   TMR0 = 0;  Nilai pertama
   T0CS=0;  Pilih sumber jam, yaitu 1/4 dari osilator kristal;
   T0SE=1;   Bit pemilihan tepi sumber jam
   PSA = 0;    Bit alokasi predivider
   PS0=0; PS1=0; PS2=0;  Bit pemilihan pra-pembagian
   TMR0IF=0;    Bendera pengatur waktu jelas 0
   GIE=1;       Buka interupsi global
   TMR0IE=0;    Pengatur waktu 0 diaktifkan
   TMR0=236;    Nilai pertama dari puisi
}
penghitung waktu interupsi voidr0()
{
     jika (TMR0IF)
     {
       TMR0IF=0; TMR0=235;
       delay_time--;
     }   
}
void timer0_delay(uint delay_value)
{
    delay_time=delay_value;
    TMR0IE=1;
    sementara(delay_time);
    TMR0IE=0;
}
uchar Read_byte()
{
uchar i, temp, hum;
   untuk(i=0; i<8; i++)   
    {
       sementara (! RC1);   
       timer0_delay(2); Penundaan 20us  
       suhu = 0;
       if(RC1){temp=1; sementara (RC1); }
       lain{temp=0; }   
       hum<<=1;
       hum|=temp;                           
  }
   kembali(bersenandung);
}
batal Read_data()
{
uchar ckeck_value;
RC1=0;
timer0_delay(2500); Bus ditarik ke bawah setidaknya 18 MS
RC1=1;
timer0_delay(2); Bus ditarik ke atas oleh resistor pull-up dan penundaan host adalah 20us
TRISC1=1;     Host diatur ke input untuk menilai sinyal respons slave
RC1=1;
  jika(! RC1)
  {
   sementara((! RC1)) // Tentukan apakah slave memancarkan sinyal respons rendah 80us atau tidak
   {
    NOP();
   }
   while(RC1) // Tentukan apakah slave memancarkan level tinggi 80us, dan jika demikian, ia memasuki status penerima data
   {
    NOP();
   }
   temp_valueH=Read_byte();
   temp_valueL=Read_byte();
   hum_valueH=Read_byte();
   hum_valueL=Read_byte();
   periksa=Read_byte();
   ckeck_value=hum_valueL+hum_valueH+temp_valueL+temp_valueH;
  jika(periksa==ckeck_value)
   {
      Proce_num(0x84,temp_valueH);
      Proce_num(0x94,hum_valueH);
   }
  }
  TRISC1=0;
  RC1=1;
}
void main()
{
  TRISB=0X00;
  lcdinit();
  timer0_init();
  sementara(1)
  {
   Read_data();
  }
}[/mw_shl_code]




Mantan:Pemikiran dan Pemrograman Telanjang [Serialized]
Depan:Tunjangan kesejahteraan, aturan penamaan bahasa C, hal-hal yang sangat praktis
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com