找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 13448|回复: 14
收起左侧

单片机温度报警器报告及说明+仿真程序(注释详细)

  [复制链接]
ID:478832 发表于 2019-3-4 13:06 | 显示全部楼层 |阅读模式
K1是用来进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限调节模式,再按一下退出调节模式。在调节上下限温度模式下,K2是实现加1功能,K1是实现减1功能,K3是用来设定上下限温度正负的。
在正常模式下,按一下K2进入查看上限温度模式,显示1s左右自动退出;按一下K3进入查看下限温度模式,显示1s左右自动退出。
K4正常模式下用来设置和取消按键音。
上下限设置模式下是用来设置温度的正负。

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

单片机源程序如下:
  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, 下载次数: 361)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:485713 发表于 2019-3-6 17:03 | 显示全部楼层
很有用
回复

使用道具 举报

ID:501886 发表于 2019-4-1 21:12 | 显示全部楼层
有用,感谢楼主
回复

使用道具 举报

ID:465246 发表于 2019-4-2 10:52 | 显示全部楼层
感谢分享!!!
回复

使用道具 举报

ID:546000 发表于 2019-5-27 09:05 | 显示全部楼层
正好也在做这个,感谢分享,参考一下
回复

使用道具 举报

ID:573993 发表于 2019-6-28 11:53 | 显示全部楼层
不错  感谢分享!!!
回复

使用道具 举报

ID:425846 发表于 2019-7-2 18:50 | 显示全部楼层
最近在看温度传感器
回复

使用道具 举报

ID:425846 发表于 2019-7-2 19:10 | 显示全部楼层
你这温度传感器初始化函数就写的乱七八糟,差评
回复

使用道具 举报

ID:659524 发表于 2019-12-11 09:15 来自手机 | 显示全部楼层
楼主,能不能发一份资料给我看看,谢谢
回复

使用道具 举报

ID:512309 发表于 2019-12-25 17:45 | 显示全部楼层
protues 的版本号什么的没有影响吗,用新版有些东西找不到。
回复

使用道具 举报

ID:677631 发表于 2019-12-31 09:30 来自手机 | 显示全部楼层
都没有连上啊
回复

使用道具 举报

ID:678509 发表于 2019-12-31 16:12 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:678331 发表于 2020-1-4 13:45 | 显示全部楼层
感谢分享
回复

使用道具 举报

ID:784028 发表于 2020-6-19 12:57 | 显示全部楼层
谢谢你
回复

使用道具 举报

ID:784028 发表于 2020-6-19 12:57 | 显示全部楼层
感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表