• 大小: 2.43MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-29
  • 语言: 其他
  • 标签: STC89C52  DHT11  

资源简介

基于STC89C52的温湿度检测,包含有单片机烧写的源程序,可直接烧进你的单片机,温湿度检测采用DHT11。里面还有我的WORD报告,非常完整~

资源截图

代码片段和文件信息

#include 
#define uint unsigned int 
#define uchar unsigned char

typedef bit BOOL  ; 

sbit io = P1^0 ;//DHT11信号接收端
sbit rs = P2^4 ; //寄存器选择信号,高表示数据、低表示指令
sbit rw = P2^5 ; //读写控制信号,高表示读、低表示写
sbit ep = P2^6 ;//片选使全能信号,下降沿触发
uchar data_byte;
uchar RHRLTHTL;
/***********************************************************************************************************
************************************************延时模块***************************************************/
void delay(uchar ms)
{       // 延时子程序
 uchar i ;
 while(ms--)
 {
   for(i = 0 ; i<250;i++) ;
 }
}

void delay1()//延时10us
{
uchar i;
i--;
i--;
i--;
i--;
i--;
i--;
}
void longdelay(uchar s) //长延时
{
 while(s--)
 {
   delay(60) ;
 }
}
/**************************************************************************************************************
***********************************************LCD模块********************************************************/
BOOL lcd_bz()//测试LCD忙碌状态
{      
 BOOL result ;
 rs = 0 ;//指令
 rw = 1 ;//读
 ep = 1 ;//使能
 result = (BOOL)(P0 & 0x80) ;//读忙标志和地址计数器ACC值,P0口如果等于0x80,则说明不忙碌,数据总线的高位为1
 ep = 0 ;//使能下降沿触发
 return result ; 
}

void write_cmd(uchar cmd)// 写指令
{       
  while(lcd_bz()) ;
rs = 0 ;
rw = 0 ;
ep = 0 ;//下降沿
P0 = cmd ;//写指令数据
ep = 1 ;
ep = 0 ;  
}

void write_addr(uchar addr)//写地址
{       
  write_cmd(addr|0x80) ;
}

void write_byte(uchar dat)//写字节
{      
  while(lcd_bz()) ;
   rs = 1 ;
   rw = 0 ;
   ep = 0 ;
   P0 = dat ;
   ep = 1 ;
   ep = 0 ; 
}

void lcd_init()// LCD初始化
{       
 write_cmd(0x38) ; //打开显示开头、允许移动位置、允许功能设置8位2行
 delay(1);
 write_cmd(0x08) ;  
 delay(1);
 write_cmd(0x01) ; //清除LCD的显示内容
 delay(1);
 write_cmd(0x06) ;//设置输入方式、光标返回,读写字符指针加1屏幕不移
 delay(1);
 write_cmd(0x0c) ; //打开显示开头、设置输入方式
 delay(1);
}

void display(uchar addr uchar q)//在某一地址上显示一字节
{   
 delay(10) ;
 write_addr(addr) ;
     write_byte(q) ;
 longdelay(2) ;
 
}
/*************************************************************************************************************
************************************************ DHT11测试模块***********************************************/

void start()//开始信号
{
io=1;
delay1();
io=0;//总线拉低必须大于18ms,保证DHT11能检测到起始信号
delay(20);//>18ms
io=1;//总线拉高,读取DHT11的响应信号
delay1();//20-40us
delay1();
delay1();
delay1();
delay1();
}
uchar receive_byte()//接收一个字节
{
uchar itempcount;
for(i=0;i<8;i++)//每次采集8位数据
{
count=2;
while((!io)&&count++)//拉低50us 为接受一bit数据作准备
temp=0;
delay1();delay1();delay1();delay1(); //因为0的高电平只持续26-28us,所以延时40us左右再判断是什么电平
if(io==1)temp=1; //temp代表本次读到的是1还是0
count=2;
while((io)&&count++);//延时等待电位降低进行下一次循环 
if(count==1)break;
data_byte<<=1;
data_byte|=temp;//将值赋给data_byte每次赋一位
}
return data_byte;
}
void receive()//接收数据
{
uchar T_HT_LR_HR_Lchecknum_check;
uchar count;
start();//开始信号
io=1;
if(!io)/

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件    3233280  2014-04-02 16:15  林炳文-传感器作业\传感器作业 .doc

     文件        442  2012-12-21 09:30  林炳文-传感器作业\程序\MY_DHT11\MY DHT11.LST

     文件       3052  2012-12-21 09:53  林炳文-传感器作业\程序\MY_DHT11\MY_DHT11

     文件       5078  2012-12-26 14:21  林炳文-传感器作业\程序\MY_DHT11\MY_DHT11.c

     文件       1761  2012-12-21 09:53  林炳文-传感器作业\程序\MY_DHT11\MY_DHT11.hex

     文件         33  2012-12-21 09:53  林炳文-传感器作业\程序\MY_DHT11\MY_DHT11.lnp

     文件       9438  2012-12-21 09:53  林炳文-传感器作业\程序\MY_DHT11\MY_DHT11.LST

     文件      14528  2012-12-21 09:53  林炳文-传感器作业\程序\MY_DHT11\MY_DHT11.M51

     文件       4847  2012-12-21 09:53  林炳文-传感器作业\程序\MY_DHT11\MY_DHT11.OBJ

     文件        967  2012-12-21 11:36  林炳文-传感器作业\程序\MY_DHT11\MY_DHT11.Opt

     文件        716  2012-12-21 11:36  林炳文-传感器作业\程序\MY_DHT11\MY_DHT11.plg

     文件       1675  2012-12-21 11:36  林炳文-传感器作业\程序\MY_DHT11\MY_DHT11.Uv2

     文件        836  2012-12-21 09:31  林炳文-传感器作业\程序\MY_DHT11\MY_DHT11_Opt.Bak

     文件          0  2012-12-21 09:32  林炳文-传感器作业\程序\MY_DHT11\MY_DHT11_Uv2.Bak

     目录          0  2014-04-02 12:37  林炳文-传感器作业\程序\MY_DHT11

     目录          0  2014-04-02 12:37  林炳文-传感器作业\程序

     目录          0  2014-04-02 16:15  林炳文-传感器作业

----------- ---------  ---------- -----  ----

              3276653                    17


评论

共有 条评论