• 大小: 3KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-19
  • 语言: C/C++
  • 标签: AM2301  DHT21  

资源简介

温湿度传感器AM2301/DHT21源程序代码,编译下载便可使用,LCD12864显示,C语言编程,51程序

资源截图

代码片段和文件信息

/******************************************************************************
名称:温湿度传感器AM2301/DHT21
功能:在串行12864上显示温度湿度
作者:张纪宽
时间:2011/07/31
*****************************************************************************/
#include“12864.h“//串行
sbit WSD_DATE=P1^0;//定义温湿度数据传送端
/********************************************************************
变量定义
******************************************************************/
uchar shidu_0hshidu_0lwendu_0hwendu_0ljiaoyan0;
uchar shidu_hshidu_lwendu_hwendu_ljiaoyan; //高低位,校验位
uchar shidu_bshidu_sshidu_gwendu_bwendu_swendu_g;
uchar a;//判断时间用
uchar datecomdate;
uint shiduwendu;
void nelaymS (unsigned int dly)                   
{
unsigned int i;
for ( ; dly>0; dly--)
{
for (i=0;i<166;i++);        
}
}
void  nelay_40us()
{
        unsigned char i;                     
        i++;i++;i++;i++;i++;i++;
i++;i++;i++;i++;i++;i++;
}
void read_date(void)
{
  uchar i;
  for(i=0;i<8;i++)
  {
   a=2;
while((!(WSD_DATE==1))&&a++);//判断是否拉低50us,1bit开始
if(a==1)
break;
nelay_40us();
date=0;
if(WSD_DATE==1)
date=1;
a=2;
while((WSD_DATE==1)&&a++);
if(a==1)//超时则跳出for循环
break;

comdate<<=1;
comdate|=date;


  }
}
void read(void)
{
  WSD_DATE=0;  //主机拉低500us
  nelaymS(1);
  WSD_DATE=1;  //主机拉高30us
  nelay_40us();
 
 if(WSD_DATE==1)
  a=1;//拉高判断是否从机拉低
 while(!(

评论

共有 条评论