加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

基于51单片机的温度报警系统

09/13 08:49
489
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
实物图
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

功能:

设计一个温度报警系统,可以设定温度上、下限的值,到达设定值时,蜂鸣器响;按键设定有设置、确定、取消、减少与增加功能,LCD1602实时显示相关温度信息

设定界面:

温度超过设定值,蜂鸣器响:

温度超过设定值,蜂鸣器响:温度超过设定值​​​​​​

温度低于设定值,蜂鸣器响:

部分程序:

#include <reg52.h>

#include "SETTEM.h"      //设置报警的上下限值头文件

#include "Lcd1602.h"     //LCD显示模块功能头文件

#include "DS18B20.h"     //DS18B02模块功能头文件

#include "IntToChar.h"   //存放整型数转换为字符串头文件

#include "Alarm.h"        //报警功能头文件

bit flag1s = 0;          //1s定时标志

unsigned char T0RH = 0;  //T0重载值的高字节

unsigned char T0RL = 0;  //T0重载值的低字节

int key=0;

char Hint1[]={"Current temperature"};

void ConfigTimer0(unsigned int ms);

void main()

{

bit res;

int temp;                                 //读取到的当前温度值

int intT, decT;                           //温度值的整数和小数部分

unsigned char len;

unsigned char str[12];

EA = 1;                                   //开总中断

ConfigTimer0(10);                         //T0定时10ms

Start18B20();                             //启动DS18B20

InitLcd1602();                            //初始化液晶

ConfigInt0();                             //设置温度

while (1)

{

if (flag1s)                           //每秒更新一次温度

{

flag1s = 0;

res = Get18B20Temp(&temp);        //读取当前温度

if (res)                          //读取成功时,刷新当前温度显示

{

intT = temp >> 4;             //分离出温度值整数部分

decT = temp & 0xF;            //分离出温度值小数部分

len = IntToString(str, intT); //整数部分转换为字符串

str[len++] = '.';             //添加小数点

decT = (decT*10) / 16;        //二进制的小数部分转换为1位十进制位

str[len++] = decT + '0';      //十进制小数位再转换为ASCII字符

str[len++] = key + '0';

while (len < 6)               //用空格补齐到6个字符长度

{

str[len++] = ' ';

}

str[len] = '�';              //添加字符串结束符

LcdShowStr(0, 0, Hint1);      //提示显示到液晶屏上

LcdShowStr(0, 1, str);        //温度显示到液晶屏上

}

else                              //读取失败时,提示错误信息

{

LcdShowStr(0, 0, "error!");

}

Start18B20();                     //重新启动下一次转换

Alarm((float)temp*0.0625,Htem,Ltem);

}

}

}

资料包括:

 

需要完整的资料可在我的资源里下载,也可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。

纷传点击用微信打开即可,过程有点繁琐请见谅。

  • 有需要资料的可了解一下.docx

相关推荐

电子产业图谱