基于STC89C52的温湿度检测,包含有单片机烧写的源程序,可直接烧进你的单片机,温湿度检测采用DHT11。里面还有我的WORD报告,非常完整~
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3233280 2014-04-02 16:15 林炳文-传感器作业传感器作业 .doc
文件 442 2012-12-21 09:30 林炳文-传感器作业程序MY_DHT11MY DHT11.LST
文件 3052 2012-12-21 09:53 林炳文-传感器作业程序MY_DHT11MY_DHT11
文件 5078 2012-12-26 14:21 林炳文-传感器作业程序MY_DHT11MY_DHT11.c
文件 1761 2012-12-21 09:53 林炳文-传感器作业程序MY_DHT11MY_DHT11.hex
文件 33 2012-12-21 09:53 林炳文-传感器作业程序MY_DHT11MY_DHT11.lnp
文件 9438 2012-12-21 09:53 林炳文-传感器作业程序MY_DHT11MY_DHT11.LST
文件 14528 2012-12-21 09:53 林炳文-传感器作业程序MY_DHT11MY_DHT11.M51
文件 4847 2012-12-21 09:53 林炳文-传感器作业程序MY_DHT11MY_DHT11.OBJ
文件 967 2012-12-21 11:36 林炳文-传感器作业程序MY_DHT11MY_DHT11.Opt
文件 716 2012-12-21 11:36 林炳文-传感器作业程序MY_DHT11MY_DHT11.plg
文件 1675 2012-12-21 11:36 林炳文-传感器作业程序MY_DHT11MY_DHT11.Uv2
文件 836 2012-12-21 09:31 林炳文-传感器作业程序MY_DHT11MY_DHT11_Opt.Bak
文件 0 2012-12-21 09:32 林炳文-传感器作业程序MY_DHT11MY_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
#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_DHT11MY DHT11.LST
文件 3052 2012-12-21 09:53 林炳文-传感器作业程序MY_DHT11MY_DHT11
文件 5078 2012-12-26 14:21 林炳文-传感器作业程序MY_DHT11MY_DHT11.c
文件 1761 2012-12-21 09:53 林炳文-传感器作业程序MY_DHT11MY_DHT11.hex
文件 33 2012-12-21 09:53 林炳文-传感器作业程序MY_DHT11MY_DHT11.lnp
文件 9438 2012-12-21 09:53 林炳文-传感器作业程序MY_DHT11MY_DHT11.LST
文件 14528 2012-12-21 09:53 林炳文-传感器作业程序MY_DHT11MY_DHT11.M51
文件 4847 2012-12-21 09:53 林炳文-传感器作业程序MY_DHT11MY_DHT11.OBJ
文件 967 2012-12-21 11:36 林炳文-传感器作业程序MY_DHT11MY_DHT11.Opt
文件 716 2012-12-21 11:36 林炳文-传感器作业程序MY_DHT11MY_DHT11.plg
文件 1675 2012-12-21 11:36 林炳文-传感器作业程序MY_DHT11MY_DHT11.Uv2
文件 836 2012-12-21 09:31 林炳文-传感器作业程序MY_DHT11MY_DHT11_Opt.Bak
文件 0 2012-12-21 09:32 林炳文-传感器作业程序MY_DHT11MY_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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)