基于STM32单片机的数码管温湿度检测报警器:Proteus仿真实现

编号:27

基于STM32单片机的温湿度检测报警器(数码管)

功能描述:

       本设计由STM32F103单片机最小系统+DHT11温湿度传感器+数码管显示模块+声光报警模块+独立按键组成。
1、主控制器是STM32F103单片机
2、DHT11传感器测量温度和湿度数据
3、数码管显示温度、湿度,精度1℃、1%RH
4、三个按键可设置温度、湿度上限报警值,温度或者湿度超过上限时,蜂鸣器LED声光报警

Proteus 8.11版本才可使用

视频演示链接:

27、基于STM32单片机的温湿度检测报警器(数码管)

仿真图:

程序源码:


#include "delay.h"
#include "seg.h" 
#include "key.h"
#include "led.h"
#include "timer.h"
#include "dht11.h"

#include "stdio.h" 	
#include "stdlib.h" 	


short Tpup = 35 ,Huup = 60 ;				//温度上限 默认35 湿度默认60


_Bool flag_timer = 1;

int main(void)
{	
	char buf[18];
    unsigned char temperature = 0,humidity = 0; 	//温度 湿度

	unsigned char key_value = 0;	//按键返回值
	
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级

	LED_Init();
	Seg_Init();
	Smg_Get(0,0,0);
	DHT11_Init();
 
	KEY_Init();										//初始化端口
    
 	while(1)
	{	
		
		if(flag_timer==1)					    //600毫秒赋一次值 flag_timer是标志位
		{
			flag_timer = 0;					    //清除标志  等待下一次600ms
			if(DHT11_Read_Data(&temperature,&humidity)==0)	//读取温湿度值 读取成功?
			{
				Smg_Get(0,temperature,humidity);
			}      
            
            if(temperature>(Tpup)
			||humidity>(Huup))			    //当温度或者湿度超过上限 报警
            {

                BEEP = 0;
            }
            else
            {
				BEEP = 1;
                
            }	
		}
		
		key_value = KEY_Scan(0);		 	//按键单击
		switch(key_value)
		{
			case 1:
				KEY_Set();
			break;
		}
		delay_ms(50);



		
	}	
}
//定时器2中断服务程序
void TIM2_IRQHandler(void)   		//TIM2中断
{
	static unsigned int Cnt = 0;
	if(TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET)  //检查TIM2更新中断发生与否
	{
		TIM_ClearITPendingBit(TIM2, TIM_IT_Update  );  //清除TIMx更新中断标志 
		Smg_display();		//数码管显示函数
		if(++Cnt>200)
		{
			Cnt = 0;
			flag_timer = 1;	//时间到 打开标志位 读取一次传感器数据
		}
	}
}

软件免费下载地址:

1、Proteus仿真软件
文件内容:Proteus7.8安装包、Proteus8.6安装包、Proteus.8.10安装包、Proteus Professional 8.11 SP0安装包

链接:https://pan.baidu.com/s/11LNUZ9BJXWvXf1C4dPc3_w 
提取码:2756 

3、KEIL5 MDK软件(STM32开发软件)
链接:https://pan.baidu.com/s/1t3eY-3yRdTa7jZMlijq_jg 

提取码:ab58 

文件下载:

https://pan.baidu.com/s/1nE851aWwK07p79j0larQiw?pwd=5zab

物联沃分享整理
物联沃-IOTWORD物联网 » 基于STM32单片机的数码管温湿度检测报警器:Proteus仿真实现

发表评论