找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3992|回复: 4
打印 上一主题 下一主题
收起左侧

51单片机SHT11传感器温湿度监控系统仿真设计

[复制链接]
跳转到指定楼层
楼主
设计要求
1.设计一套基于51单片机的温湿度Proteus仿真监控系统;              
2.采用SHT11、DHT11或DS18B20传感器模块;                       
3.LCD液晶实时显示当前环境温湿度值;                                 
4.设计报警单元,实现系统对超限温湿度监控报警;                       
5.设计输入单元,可对系统正常温湿度范围进行调节;                  
6.仿真系统能够可靠、稳定地运行;

概述
系统通过SHT11温湿度传感器感应周围的环境的温度和湿度,通过单片机对采集到的数据进行读取处理,经过LCD1602显示模块实时显示温湿度数据,同时可以通过按键模块对温湿度报警上、下限值进行设定。当SHT11读取的温湿度值不再设定范围内时,报警模块LED灯指示故障信息,同时蜂鸣器报警;当温湿度读取数据正常后,LED灯熄灭,蜂鸣器关闭。

系统运行

仿真总电路图

部分程序:
/*********************************************************/
// 往SHT11写入一个字节
/*********************************************************/
char ShtWriteByte(unsigned char value)
{
        unsigned char i,error=0;
        for(i=128;i>0;i>>=1)  // 高位为1,循环右移
        {
                if (i&value)
                        Data_P=1;               // 和要发送的数相与,结果为发送的位
                else
                        Data_P=0;
                Sck_P=1;
                _nop_();                                                // 延时3us
                _nop_();
                _nop_();
                Sck_P=0;
        }
        Data_P=1;                                            // 释放数据线
        Sck_P=1;
        error=Data_P;                                  // 检查应答信号,确认通讯正常
        _nop_();
        _nop_();
        _nop_();
        Sck_P=0;
        Data_P=1;
        return error;                                 // error=1 通讯错误
}
/*********************************************************/
// 从SHT11读出一个字节
/*********************************************************/
char ShtReadByte(unsigned char ack)
{
        unsigned char i,val=0;
        Data_P=1;                                                 // 释放数据线
        for(i=0x80;i>0;i>>=1)        // 高位为1,循环右移
        {
                Sck_P=1;
                if(Data_P)
                        val=(val|i);            // 读一位数据线的值
                Sck_P=0;
        }
        Data_P=!ack;                            // 如果是校验,读取完后结束通讯
        Sck_P=1;
        _nop_();                                                        // 延时3us
        _nop_();
        _nop_();
        Sck_P=0;
        _nop_();
        _nop_();
        _nop_();
        Data_P=1;                                                 // 释放数据线
        return val;
}
/*********************************************************/
// SHT11启动传输
/*********************************************************/
void ShtTransStart(void)
{
        Data_P=1;
        Sck_P=0;
        _nop_();
        Sck_P=1;
        _nop_();
        Data_P=0;
        _nop_();
        Sck_P=0;
        _nop_();
        _nop_();
        _nop_();
        Sck_P=1;
        _nop_();
        Data_P=1;
        _nop_();
        Sck_P=0;

}


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:683814 发表于 2020-1-9 19:46 来自手机 | 只看该作者
可以给完整的仿真图和程序吗
回复

使用道具 举报

板凳
ID:692677 发表于 2020-2-13 10:02 | 只看该作者
给sht11的时序图也行,不然不会用
回复

使用道具 举报

地板
ID:360572 发表于 2020-2-13 19:48 | 只看该作者
这套资料可以分享一下吗?
回复

使用道具 举报

5#
ID:739578 发表于 2020-5-26 23:10 来自手机 | 只看该作者
师兄。可以
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表