Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 10156|Antwoord: 0

pic16f877a stuurt de temperatuur- en vochtigheidssensor DHT11 aan

[Link kopiëren]
Geplaatst op 25-11-2014 22:12:09 | | |
[mw_shl_code=c,waar]#include<pic.h> // Gebruik een 12M kristaloscillator.
#include"12864.h"
#define uint unsigned int
#define uchar onondertekende char
__CONFIG(FOSC_HS&WDTE_OFF&LVP_OFF);
Uchar temp_valueH, hum_valueH, hum_valueL, temp_valueL, check;
Uint delay_time;
Void timer0_init()
{
   TMR0=0;  Eerste waarde
   T0CS=0;  Selecteer de klokbron, die 1/4 van de kristaloscillator is;
   T0SE=1;   Klokbron-randselectiebits
   PSA=0;    Predidiver-allocatiebits
   PS0=0; PS1=0; PS2=0;  Pre-divisie selectiebits
   TMR0IF=0;    De timervlag is clear 0
   GIE=1;       Open de globale onderbreking
   TMR0IE=0;    Timer 0 ingeschakeld
   TMR0=236;    De eerste waarde van het gedicht
}
void interrupt timer0()
{
     als(TMR0IF)
     {
       TMR0IF=0; TMR0=235;
       delay_time--;
     }   
}
Void timer0_delay(uint delay_value)
{
    delay_time=delay_value;
    TMR0IE=1;
    terwijl, (delay_time);
    TMR0IE=0;
}
Uchar Read_byte()
{
Uchar I, Temp, Hum;
   voor(i=0; i<8; i++)   
    {
       Terwyl(! RC1);   
       timer0_delay(2); Vertraging 20us  
       temp=0;
       if(RC1){temp=1; terwijl (RC1); }
       else{temp=0; }   
       hum<<=1;
       hum|=temperatuur;                           
  }
   return(hum);
}
Void Read_data()
{
Uchar ckeck_value;
RC1=0;
timer0_delay(2500); De bus wordt minstens 18 MS naar beneden getrokken
RC1=1;
timer0_delay(2); De bus wordt omhoog getrokken door de pull-up weerstand en de hostvertraging is 20 us.
TRISC1=1;     De host wordt ingesteld op input om het slave-responssignaal te beoordelen
RC1=1;
  als(! RC1)
  {
   Terwijl((! RC1)) // Bepaal of de slave een 80 US low response signaal uitzendt of niet
   {
    NOP();
   }
   while(RC1) // Bepaal of de slave een hoog niveau van 80us uitzendt, en zo ja, hij in de data-ontvangende toestand komt
   {
    NOP();
   }
   temp_valueH=Read_byte();
   temp_valueL=Read_byte();
   hum_valueH=Read_byte();
   hum_valueL=Read_byte();
   check=Read_byte();
   ckeck_value=hum_valueL+hum_valueH+temp_valueL+temp_valueH;
  als(check==ckeck_value)
   {
      Proce_num(0x84,temp_valueH);
      Proce_num(0x94,hum_valueH);
   }
  }
  TRISC1=0;
  RC1=1;
}
Void main()
{
  TRISB=0X00;
  lcdinit();
  timer0_init();
  terwijl(1)
  {
   Read_data();
  }
}[/mw_shl_code]




Vorig:Gedachte en Naakte Programmering [Geserialiseerd]
Volgend:Bijstandsuitkeringen, C-taal naamgevingsregels, heel praktische dingen
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com