资源简介
基于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
相关资源
- DHT11温湿度传感器例程
- 基于STC89C52单片机温度系统控制资料
- 基于stc89c52红外语音通信装置
- 数字温湿度传感器DHT11详解及例程利用
- stc89c52原理图及PCB布局图
- STM32DHT11程序
- 里程表 STM32+霍尔传感器+EEPROM+LCD+DHT
- stm32f103+dht11温湿度传感器例程
- DHT11.rar
- 完整工程串口12、DHT11、BH1750、mh-z14
- 温湿度传感器DHT11资料+程序
- 乐鑫Esp8266驱动 ds18b20、dht11 温湿度传
- STM32F103C8T6按键调整参数断电保护,温
- CC2530+DHT11温湿度传感器+HC-SR04超声波传
- RFID-RC522+STC89C52+串口通信+新手教程+中
- STM32F103+温湿度+光照强度+LN33无线网络
- 基于modbus的dht11温湿度采集
- 环境监测系统
- 正点原子mini开发板+DHT11测量温湿度上
- 蓝牙显示温湿度
- STM32+超声波传感器HC_RS04+光照传感器
- 多功能小车 51单片机控制 超声测距
- stm32 + dht11温度报警器
- 基于STC89C52 16*16点阵贪吃蛇
- 基于stm32的OLED 屏幕显示温湿度历程
- DHT11温湿度.rar
- STC89C52RC+DS1302电子时钟设计
- HT32f53252使用DHT11+光强+oled+gprs
- 基于stm32f103c8t6温湿度显示屏.rar
- 基于STM32单片机的DHT11数字传感器代码
评论
共有 条评论