この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 10156|答える: 0

pic16f877aは温度と湿度センサーDHT11を駆動します。

[リンクをコピー]
掲載地 2014/11/25 22:12:09 | | |
[mw_shl_code=c、真]#include< pic.h> // 12Mクリスタルオシレーターを使用
#include「12864.h」
#define unsigned int int
#define uchar unsigned char
__CONFIG(FOSC_HS&WDTE_OFF&LVP_OFF);
ウチャルtemp_valueH、hum_valueH、hum_valueL、temp_valueL、チェック;
Uint delay_time;
虚無timer0_init()
{
   TMR0=0;  第一値
   T0CS=0;  クロックソースを選択し、これはクリスタル発振器の1/4です。
   T0SE=1;   クロックソースエッジ選択ビット
   PSA=0;    プリディバイダ割り当てビット
   PS0=0; PS1=0; PS2=0;  分割前選択ビット
   TMR0IF=0;    タイマーフラグはクリア0です。
   GIE=1;       グローバル中断を開く
   TMR0IE=0;    タイマー0有効
   TMR0=236;    詩の第一の価値
}
Void Interrupt Timer0()
{
     if(TMR0IF)
     {
       TMR0IF=0; TMR0=235;
       delay_time--;
     }   
}
虚無timer0_delay(UINT delay_value)
{
    delay_time=delay_value;
    TMR0IE=1;
    while(delay_time);
    TMR0IE=0;
}
ウチャルRead_byte()
{
uchar i, temp, hum;
   for(i=0; i<8; i++)   
    {
       その間に(! RC1);   
       timer0_delay(2); ディレイ20us  
       温度=0;
       if(RC1){temp=1; while(RC1); }
       else{temp=0; }   
       hum<<=1;
       hum|=temp;                           
  }
   リターン(ハム);
}
虚無Read_data()
{
ウチャールckeck_value;
RC1=0;
timer0_delay(2500); バスは少なくとも18MS引きずり下がります
RC1=1;
timer0_delay(2); バスはプルアップ抵抗で引き上げられ、ホスト遅延は20μsです
TRISC1=1;     ホストはスレーブ応答信号を判断するために入力を設定します
RC1=1;
  もし(! RC1)
  {
   while((! RC1)) // スレーブが80usの低応答信号を出しているかどうかを判定します
   {
    NOP();
   }
   while(RC1) // スレーブが80μsの高レベルを放出するかを判定し、そうであればデータ受信状態に入る
   {
    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;
  if(check==ckeck_value)
   {
      Proce_num(0x84,temp_valueH);
      Proce_num(0x94,hum_valueH);
   }
  }
  TRISC1=0;
  RC1=1;
}
ヴォイドメイン()
{
  TRISB=0X00;
  lcdinit();
  timer0_init();
  while(1)
  {
   Read_data();
  }
}[/mw_shl_code]




先の:思考と裸のプログラミング【連載版】
次に:福祉給付、C言語の命名ルールなど、非常に実用的なもの
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com