资源简介
基于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
相关资源
- EESkill NRF24L01 无线模块用户手册
- 基于STC89C52的瓦斯检测及红外控制系统
- RC522读写MI卡程序,STC89C52RC调试通过,
- STC89C52+LCD12864+18B20+1302万年历
- STM32+DHT11+OLED+RTC+MQ2+NRF24L01+串口12
- 单片机89c52与MLX90614红外的测温程序
- proteus仿真、keil4、DHT11、LCD1602
- DHT11 21 22库文件
- 基于zigbee温湿度传输及控制带wifiAPP查
- stm32之传感器DHT11.zip
- [Altium_Designer]_STC89C52单片机最小系统原
- 51单片机控制步进电机软硬件实现
- DS18B20温度+DHT11湿度+LCD1602
- 基于STC89C52的GSM智能家居报警系统
- DHT11温湿度传感器项目代码.rar
- STM32F103C8T6+DHT11+SGP30+CH340+ADC
- STM32F103C8T6+DHT11+OLED
- 基于STM32的DHT11的温湿度采集GSM报警系
- 基于STC89C52单片机的数字时钟
- 基于STC89C52单片机空气PM2.5系统设计资
- cc2530-contiki读取DHT11并发送数据例程
- STM32温湿度传感器DHT11代码,通过串口
- 基于proteus 的 STM32 采集DHT11 仿真 +
- DTH11温湿度显示在IIC_OLED上,好用,自
- STM32F103C8T6-DHT11温湿度传感器.rar
- STC89C52中文资料
- 基于FPGA的DHT11的温湿度数据采集
- 基于STC89C52单片机智能温控风扇设计资
- 内含RC522与51单片机硬件设计与程序,
- SampleApp_dht11.zip
评论
共有 条评论