• 基于STM32单片机的温度报警器(数码管)(Proteus仿真+程序)


    编号:26

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

    功能描述:

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

    Proteus 8.11版本才可使用

    视频演示链接:

    26、基于STM32单片机的温度报警器(数码管)

    仿真图:

    程序源码:

    1. #include "delay.h"
    2. #include "ds18b20.h"
    3. #include "key.h"
    4. #include "led.h"
    5. #include "timer.h"
    6. #include "SEG.h"
    7. #include "stdio.h"
    8. #include "stdlib.h"
    9. short Tpup = 37,Tpdw = 10; //温度上限 默认37 下限默认10
    10. unsigned char Dmode = 0; //0:显示实时温度 1:显示设置温度上限
    11. short Dis_dat = 0; //最终显示的赋值数据
    12. _Bool flag_timer = 1; //定时时间到标志位
    13. int main(void)
    14. {
    15. short temprature; //定义温度变量
    16. NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
    17. LED_Init();
    18. Seg_Init();
    19. DS18B20_Init();
    20. while(DS18B20_Init()!=0) //ds18b20初始化检测
    21. {
    22. Smg_Get(3,0); //显示----代表故障
    23. }
    24. KEY_Init(); //初始化端口
    25. while(1)
    26. {
    27. if(flag_timer==1) //flag_timer是标志位
    28. {
    29. flag_timer = 0; //清除标志 等待下一次
    30. temprature=DS18B20_Get_Temp(); //读取温度
    31. Smg_Get(0, temprature); //显示数值
    32. if(temprature>(Tpup*10)
    33. ||temprature<(Tpdw*10)) //当前温度超过上下限 上下限值没有扩大十倍 所以要*10
    34. {
    35. BEEP = 0;
    36. }
    37. else
    38. {
    39. BEEP = 1;
    40. }
    41. }
    42. KEY_Set();
    43. }
    44. }
    45. //定时器2中断服务程序
    46. void TIM2_IRQHandler(void) //TIM2中断
    47. {
    48. static unsigned int Cnt = 0;
    49. if(TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) //检查TIM2更新中断发生与否
    50. {
    51. TIM_ClearITPendingBit(TIM2, TIM_IT_Update ); //清除TIMx更新中断标志
    52. Smg_display(); //数码管显示函数
    53. if(++Cnt>150)
    54. {
    55. Cnt = 0;
    56. flag_timer = 1; //时间到 打开标志位 读取一次传感器数据
    57. }
    58. }
    59. }

    软件免费下载地址:

    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 

    文件下载:

  • 相关阅读:
    【At Coder begin 345】[D - Tiling] 回溯
    常用命令(Linux、Git、g++、gdb)
    SSL证书系列--又拍云Let’s Encrypt免费DV SSL证书使用教程
    Python 模拟Laguerre Polynomial拉盖尔多项式
    基于SVm和随机森林算法模型的中国黄金价格预测分析与研究
    谈谈前端的本地存储indexedDB
    微调 Code Llama 完整指南
    SSM 图书管理在线销售系统
    【网站架构】1小时1亿订单是否能扛住?压力、性能测试的步骤
    c#中switch常用模式
  • 原文地址:https://blog.csdn.net/bxy415655001/article/details/128160626