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


     

    功能:

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

    设定界面:

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

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

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

    部分程序:

    #include

    #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] = '\0';              //添加字符串结束符

                   

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

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

                }

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

                {

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

                }

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

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

            }

        }

    }

    资料包括:

     

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

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

  • 相关阅读:
    NRK3301语音芯片在智能窗帘上的应用
    小型企业建立人力资源团队的 5 个步骤
    python采集认证认可网站
    git删除分支命令
    京东技术负责人纯手写:小团队构建大网站中小研发团队架构实战
    HLS + ffmpeg 实现动态码流视频服务
    git通过port转发间接实现代码下载(git clone不能直接克隆代码,通过第三台服务器跳转实现代码克隆)
    知识讲解类短视频如何定位?分享三种类型,帮你选择短视频方向
    HLA-Face: Joint High-Low Adaptation for Low Light Face Detection 论文阅读笔记
    STC51单片机33——液晶12864显示
  • 原文地址:https://blog.csdn.net/qq_63964231/article/details/127873695