架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6605|回复: 0

pic16f877a驱动温湿度传感器DHT11

[复制链接]
发表于 2014-11-25 22:12:09 | 显示全部楼层 |阅读模式
[mw_shl_code=c,true]#include<pic.h>    //用12M晶振
#include"12864.h"
#define uint unsigned int
#define uchar unsigned 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;  //初值
   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--;
     }   
}
void timer0_delay(uint delay_value)
{
    delay_time=delay_value;
    TMR0IE=1;
    while(delay_time);
    TMR0IE=0;
}
uchar Read_byte()
{
uchar i,temp,hum;
   for(i=0;i<8;i++)   
    {
       while(!RC1);   
       timer0_delay(2); //延时20us  
       temp=0;
       if(RC1){temp=1;while(RC1);}
       else{temp=0;}   
       hum<<=1;
       hum|=temp;                           
  }
   return(hum);
}
void Read_data()
{
uchar ckeck_value;
RC1=0;
timer0_delay(2500);//总线拉低至少18MS
RC1=1;
timer0_delay(2); //总线由上拉电阻拉高 主机延时20us
TRISC1=1;     //主机设为输入 判断从机响应信号
RC1=1;
  if(!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;
}
void main()
{
  TRISB=0X00;
  lcdinit();
  timer0_init();
  while(1)
  {
   Read_data();
  }
}[/mw_shl_code]




上一篇:思想与裸编程[连载]
下一篇:福利福利,c语言命名规则,很实用的东西
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-30 00:56

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表