标题: 单片机温度报警器报告及说明+仿真程序(注释详细) [打印本页]

作者: llff    时间: 2019-3-4 13:06
标题: 单片机温度报警器报告及说明+仿真程序(注释详细)
K1是用来进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限调节模式,再按一下退出调节模式。在调节上下限温度模式下,K2是实现加1功能,K1是实现减1功能,K3是用来设定上下限温度正负的。
在正常模式下,按一下K2进入查看上限温度模式,显示1s左右自动退出;按一下K3进入查看下限温度模式,显示1s左右自动退出。
K4正常模式下用来设置和取消按键音。
上下限设置模式下是用来设置温度的正负。

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. /********************************************************************
  2. * 程序名;  基于DS18B20的测温系统
  3. * 功  能: 实时测量温度,超过上下限报警,报警温度可手动调整。K1是用来
  4. * 进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限
  5. * 调节模式。在正常模式下,按一下K2进入查看上限温度模式,显示1s左右自动
  6. * 退出;按一下K3进入查看下限温度模式,显示1s左右自动退出;按一下K4消除
  7. * 按键音,再按一下启动按键音。在调节上下限温度模式下,K2是实现加1功能,
  8. * K1是实现减1功能,K3是用来设定上下限温度正负的。         
  9. * 编程者: ZPZ
  10. * 编程时间:2009/10/2                    
  11. *********************************************************************/
  12. #include<reg52.h>                                   //将AT89X52.h头文件包含到主程序
  13. #include<intrins.h>                                   //将intrins.h头文件包含到主程序(调用其中的_nop_()空操作函数延时)
  14. #define uint unsigned int                      //变量类型宏定义,用uint表示无符号整形(16位)
  15. #define uchar unsigned char                   //变量类型宏定义,用uchar表示无符号字符型(8位)

  16. uchar max=0x00,min=0x00;                   //max是上限报警温度,min是下限报警温度

  17. bit   s=0;                                                   //s是调整上下限温度时温度闪烁的标志位,s=0不显示200ms,s=1显示1s左右
  18. bit   s1=0;                                                   //s1标志位用于上下限查看时的显示
  19. void display1(uint z);                            //声明display1()函数(display.h头文件中的函数,ds18b20.h要用应先声明)
  20. #include"ds18b20.h"                                   //将ds18b20.h头文件包含到主程序
  21. #include"keyscan.h"                                   //将keyscan.h头文件包含到主程序
  22. #include"display.h"                                   //将display.h头文件包含到主程序

  23. /***********************主函数************************/
  24. void main()
  25. {
  26.          beer=1;                                           //关闭蜂鸣器
  27.          led=1;                                                   //关闭LED灯
  28.          timer1_init(0);                           //初始化定时器1(未启动定时器1)
  29.          get_temperature(1);                    //首次启动DS18B20获取温度(DS18B20上点后自动将EEPROM中的上下限温度复制到TH和TL寄存器)
  30.          while(1)                                           //主循环
  31.          {         
  32.                  keyscan();                                   //按键扫面函数
  33.                  get_temperature(0);           //获取温度函数
  34.                  //keyscan();                                   //按键扫面函数
  35.                  display(temp,temp_d*0.625);//显示函数
  36.                  alarm();                                           //报警函数
  37.                  //keyscan();                                     //按键扫面函数
  38.          }
  39. }   
复制代码

所有资料51hei提供下载:
原理图及仿真.zip (103.82 KB, 下载次数: 362)
报告及说明.rar (535.12 KB, 下载次数: 273)



作者: wahaha1    时间: 2019-3-6 17:03
很有用
作者: lssover    时间: 2019-4-1 21:12
有用,感谢楼主
作者: zhangjin123    时间: 2019-4-2 10:52
感谢分享!!!
作者: nikiski    时间: 2019-5-27 09:05
正好也在做这个,感谢分享,参考一下
作者: 12356HHH    时间: 2019-6-28 11:53
不错  感谢分享!!!
作者: wqwqw111    时间: 2019-7-2 18:50
最近在看温度传感器
作者: wqwqw111    时间: 2019-7-2 19:10
你这温度传感器初始化函数就写的乱七八糟,差评
作者: 李总不    时间: 2019-12-11 09:15
楼主,能不能发一份资料给我看看,谢谢
作者: liubiyuan    时间: 2019-12-25 17:45
protues 的版本号什么的没有影响吗,用新版有些东西找不到。
作者: 1844953236    时间: 2019-12-31 09:30
都没有连上啊
作者: yt6798653    时间: 2019-12-31 16:12
谢谢分享
作者: bay11    时间: 2020-1-4 13:45
感谢分享
作者: Elf7788    时间: 2020-6-19 12:57
谢谢你
作者: Elf7788    时间: 2020-6-19 12:57
感谢分享




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1