이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 10156|회답: 0

pic16F877A는 온도 및 습도 센서 DHT11을 구동합니다.

[링크 복사]
게시됨 2014. 11. 25. 오후 10:12:09 | | |
[mw_shl_code=c, true]#include<pic.h> // 12M 크리스탈 오실레이터 사용
#include"12864.h"
#define unsigned int
#define 우차르 서명 없는 차르
__CONFIG(FOSC_HS&WDTE_OFF&LVP_OFF);
우차르 temp_valueH,hum_valueH,hum_valueL,temp_valueL,체크;
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;    시의 첫 번째 가치
}
보이드 인터럽트 타이머0()
{
     if(TMR0IF)
     {
       TMR0IF=0; TMR0=235;
       delay_time--;
     }   
}
공허 timer0_delay(delay_value)
{
    delay_time=delay_value;
    TMR0IE=1;
    while(delay_time);
    TMR0IE=0;
}
우차르 Read_byte()
{
우차르 아이, 템프, 흠;
   for(i=0; i<8; i++)   
    {
       그동안(! RC1);   
       timer0_delay(2); 딜레이 20달러  
       온도=0;
       if(RC1){temp=1; 반면(RC1); }
       else{temp=0; }   
       hum<<=1;
       흠|=임시;                           
  }
   리턴(윙);
}
공허 Read_data()
{
우차르 ckeck_value;
RC1=0;
timer0_delay(2500); 버스는 최소 18MS만큼 아래로 끌려갑니다
RC1=1;
timer0_delay(2); 버스는 풀업 저항기에 의해 끌어올려지고, 호스트 지연은 20위스입니다
TRISC1=1;     호스트는 슬레이브 응답 신호를 판단하기 위해 입력으로 설정되어 있습니다
RC1=1;
  만약(! RC1)
  {
   while((! RC1)) // 슬레이브가 80us 저응답 신호를 방출하는지 여부를 확인하세요
   {
    NOP();
   }
   while(RC1) // 슬레이브가 80us라는 높은 수준을 방출하는지 결정하고, 그렇다면 데이터 수신 상태에 진입합니다
   {
    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