目录
一、主要功能
1、LCD1602显示当前检测的温度值以及温度阈值
2、超过上限温度,降温模块启动
3、PT100热敏电阻测量-60°C-135°C
4、按键设置温度阈值
5、超过阈值,蜂鸣器报警
二、使用步骤
系统运行后,LCD1602显示传感器检测的温度值;
当温度高于上限,降温模块启动,报警器启动。
三、硬件资源
1、31单片机核心模块
2、按键模块
3、PT100热敏传感器模块
4、蜂鸣器模块
5、继电器模块
6、LCD1602显示模块
四、软件设计
五、实验现象
#include "delay.h"
#include "sys.h"
#include "1602.h"
#include "key.h"
#include "ADC.h"
#include "Tool.h"
u16 PT100_value; //热敏检测值
u16 PT100_value_L=25; //热敏检阈值
u16 symbol = 0;//0正温度
u8 Set_num=0; //设置标志位
u8 Key_num=0;//按键值
void key_san(void);//按键判断函数
void Work(void);//工作运行函数
void Delay(int num)
{
while(num--) ;
}
void display_data(void)///显示
{
LcdWriteCom(0x0C); //取消光标闪烁
LcdWriteCom(0x80+6); //第一行
if(symbol)
LcdWritestr("-");
else
LcdWritestr(" ");
LcdWriteData(PT100_value%1000/100+0x30);
LcdWriteData(PT100_value%100/10+0x30);
LcdWriteData(PT100_value%10+0x30);
LcdWriteCom(0x80+0x40+9); //第二行
LcdWriteData(PT100_value_L%1000/100+0x30);
LcdWriteData(PT100_value_L%100/10+0x30);
LcdWriteData(PT100_value_L%10+0x30);
}
int main()
{
delay_init(); //延时函数初始化
LCD1602_Init(); //lcd函数初始化
ADC1_Init(); //adc函数初始化
TOOL_Init(); //工具初始化
KEY_Init(); //按键函数初始化
while(1)
{
key_san();//按键判断函数
middleAverageFilter();//获取ad值
Work();//工作运行函数
display_data();///显示
}
}
void Work()//工作运行函数
{
if(Key_num==0)
{
if(PT100_value>PT100_value_L)//温度过高
BEEP = MOT1 = 0;//开启
else
BEEP = MOT1 = 1;//关闭
}
else
BEEP = MOT1 = 1;//关闭
联系作者
作者B站链接:https://space.bilibili.com/3493294220773802
专注于51单片机、STM32、Proteus、物联网软件开发,PCB设计。