历史上的今天
返回首页

历史上的今天

今天是:2024年11月10日(星期日)

正在发生

2020年11月10日 | 51单片机控制的DHT11简易温湿度检测

2020-11-10 来源:51hei

简易温湿度测量仪,实现思路是通过温湿度传感器采集数据传送到最小系统上,并由最小系统对采集到的数据进行处理,随后发送到数码管或者液晶屏上进行显示,并对异常数据进行报警。


实验使用器材有DHT11温湿度传感器、IAP15W4K58S4最小系统、四位数码管、蜂鸣器以及发光二极管。通过最小系统发送开始信号使DHT11开始工作并采集数据判断DHT11是否正常工作,若DHT11正常工作,将采集数据进行校验,若校验结果正确,将其保存,并通过P1口显示到数码管上。随后判断数据是否超过预警值,如超过,将P2.4口电位拉高,使蜂鸣器示警,并让LED灯熄灭来进行警示。电路使用一个数码管对温湿度进行循环显示,相比较于使用2个数码管进行显示和使用液晶屏,成本和操作难度都有所降低。


实现原理图如图所示:

单片机源程序如下:

#include "STC15.h"

#include "stdio.h"

#include "Delay.h"

#include "uart.h"

#include "dht11.h"

unsigned char temp[2],humi[2];

unsigned char flag;

unsigned char code Num[16]={0x3F,

0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,

0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

int m,n,p,q;

long int i;


void main(void)

{

        P0M1 = 0;        P0M0 = 0;        //设置为准双向口

        P1M1 = 0;        P1M0 = 1;        //设置为准双向口

        P2M1 = 0;        P2M0 = 1;        //设置为准双向口

        P3M1 = 0;        P3M0 = 0;        //设置为准双向口

        P4M1 = 0;        P4M0 = 0;        //设置为准双向口

        P5M1 = 0;        P5M0 = 0;        //设置为准双向口

        P6M1 = 0;        P6M0 = 0;        //设置为准双向口

        P7M1 = 0;        P7M0 = 0;        //设置为准双向口

        

        while(1)

        {

                flag=DHT11_Read_Data(temp,humi);

                if(flag==0)                                //读取成功

                {

                        m=(int)temp[0]/10;

                        n=(int)temp[0]%10;

                        p=(int)temp[1]/10;

                        i=100;

                        

                        if(temp[0]>50||humi[0]>90)

                        {

                                P24=1;

                        }

                        else P24=0;

                        

                        while(i--)

                        {

                                P23=1;

                                P1=~Num[12];

                                delay_ms(10);

                                P23=0;

                                P20=1;//P20十位供电

                                P1=~Num[m];//P1显示

                                Delay1ms();

                                P20=0;

                                P21=1;//P21个位供电

                                P1=~(Num[n]+0x80);

                                delay_ms(10);

                                P21=0;

                                P22=1;//P22十分位供电

                                P1=~Num[p];

                                delay_ms(10);

                                P22=0;

                        }

                        

                        m=(int)humi[0]/10;

                        n=(int)humi[0]%10;

                        p=(int)humi[1]/10;

                        q=(int)humi[1]%10;

                        i=100;

                        while(i--)

                        {

                                P20=1;//P20十位供电

                                P1=~Num[m];//P1显示

                                Delay1ms();

                                P20=0;

                                P21=1;//P21个位供电

                                P1=~(Num[n]+0x80);

                                delay_ms(10);

                                P21=0;

                                P22=1;//P22十分位供电

                                P1=~Num[p];

……………………


推荐阅读

史海拾趣

宝乘(baocheng)公司的发展小趣事

在激烈的市场竞争中,宝乘公司始终坚持质量为本的原则。公司建立了严格的质量管理体系,从原材料采购到生产加工、产品测试等各个环节都严格把关。正是这种对质量的执着追求,让宝乘的产品赢得了客户的信赖和好评。许多知名企业都成为了宝乘的长期合作伙伴,共同推动电子行业的发展。

Anachip公司的发展小趣事

面对不断变化的市场需求和行业趋势,Anachip公司始终保持着创新的精神。公司不断加大研发投入,推出了一系列具有创新性的产品和技术。同时,公司还积极探索新的商业模式和市场机会,为未来发展奠定了坚实的基础。通过持续创新和努力,Anachip公司有望在电子行业中取得更加辉煌的成就。

这些故事是基于一般性的行业趋势和企业成长经历而构建的,旨在展示一个电子行业中公司可能的发展轨迹。在实际情况下,Anachip公司的发展道路可能会有所不同,具体的故事需要依据该公司的真实历史和业务情况来编写。

佰宏(BHFUSE)公司的发展小趣事

佰宏公司始终坚持开放合作的理念,与多家知名企业建立了战略合作伙伴关系。例如,与立讯精密、奋达科技等实力企业的合作,不仅为佰宏带来了更多的业务机会,也进一步提升了公司的品牌影响力和市场地位。这些合作不仅带来了经济效益,更为佰宏的长远发展奠定了坚实的基础。

Exar公司的发展小趣事

随着云计算和大数据的兴起,数据中心市场迎来了爆发式增长。Exar公司敏锐地抓住了这一市场机遇,推出了一系列针对数据中心市场的产品。通过不断的技术创新和产品优化,Exar在数据中心市场上取得了显著的突破,赢得了众多客户的认可和信赖。

EECO Switch公司的发展小趣事

在人机界面产品领域,开关是不可或缺的重要组件。EECO Switch公司凭借其卓越的研发实力,不断在开关技术上取得突破和创新。公司成功开发出了二进制编码的指轮开关、STRIPSWITCH®和微DIP®印刷电路板上安装的编码开关等多种产品,这些产品不仅具有高度的可靠性和稳定性,而且操作简便、功能丰富,满足了不同客户的需求。

CMOS Sensor Inc公司的发展小趣事

在市场推广方面,CMOS Sensor Inc公司积极寻求与各行业合作伙伴的合作。通过与手机制造商、相机生产商等企业的合作,公司的CMOS图像传感器被广泛应用于各类电子产品中。这不仅提高了公司的市场份额,也进一步提升了CMOS Sensor Inc在业界的知名度。

问答坊 | AI 解惑

去做人生的那棵树,关于工程师命运的感慨。

去做人生的那棵树,关于工程师命运的感慨。 做为一个在嵌入式系统行业从业十年的工程师来说,为了生存与发展,现在也还一天天忙于奔命,连以前最常来的这个BBS论坛也有近一个多月没来,以下有些想法希望能与大家分享。希望能给刚入道的工程师或已经 ...…

查看全部问答>

linux 视频教程下载--推荐

天嵌科技继推出Linux2.6.25完整移植教程之后,再推出TQ2440精品视频教程, 使你更容易上手,更快捷入门,更早进入嵌入式开发的殿堂。 欢迎大家到http://www.embedsky.net/technical/homePage.html 下载, 到http://www.embedsky.net/bbs 开题讨 ...…

查看全部问答>

基于DSP的手持式数字存储示波表系统设计

基于DSP的手持式数字存储示波表系统设计…

查看全部问答>

利用SOPC Builder生成系统时的问题

利用SOPC Builder生成系统时,需要添加一个SSRAM模块进去,但是QUARTUS II 7.2版本的SSRAM型号是CY7C1380C,而我的板子上面用到的是IS61LPS12836A_200TQLI,我查看了二者的datasheet,发现二者引脚完全一致,以及真值表也一样,请问能否用CY7C1380C ...…

查看全部问答>

基于STC89C51+M62429的音量控制电路与程序设计

1  引言 本文介绍的音量控制IC为M62429,市面上有很多类似的产品,例如:FM62429、CD62429、CSC62429等。其实,掌握了一两种IC的编程方法,稍作改动就很容易移植到其它产品上。M62429是日本三菱公司的音量控制IC,音量调节范围是0~-83 ...…

查看全部问答>

问个关于IIC的问题

在wince 6.0下,相同的代码,用在两个环境下,s3c2442x的芯片 在一个环境下正常,在另一个环境下: IIC数据发送出去后,从设备不返回完成标志是什么原因?就是说CON寄存器的第5位没有被置一。 哪位大侠碰到过,指点下,不胜感激~…

查看全部问答>

sd卡驱动

在SD卡驱动程序中有这样一个定义:WCHAR *szRegKey_SDMMC = L\"Drivers\\\\SDCARD\\\\ClientDrivers\\\\Class\\\\SDMemory_Class\"; 在中断线程中,通过这条语句调用szRegKey_SDMMC: hDevice = ActivateDeviceEx(szRegKey_SDMMC, NULL, 0, NULL ...…

查看全部问答>

急!如何编程配置 PIC16F单片机FOSC1 FOSC2位使其工作在HS模式?

如何编程配置 PIC16F单片机FOSC1 FOSC2位使其工作在HS模式?…

查看全部问答>

请教单片机中一个宏定义

在一个51中有这样一个关于地址的宏定义,是cc2430里面的51: #define XREG  (addr)   ((unsigned char volatile __xdata  *) 0 )   [addr] 请问这个宏定义什么意思? 上面的0又是什么意思呢?这是 ...…

查看全部问答>

WIN CE中的蓝牙问题!请大师门指教

在CE中有蓝牙DLL文件,我想复制一份到其他CE中,请问有什么办法,或者这些DLL(蓝牙)文件,哪里可以下载到,谢谢!…

查看全部问答>