找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9205|回复: 20
打印 上一主题 下一主题
收起左侧

51单片机+DS18B20温度上下限报警可调数字温度计程序+仿真设计

  [复制链接]
跳转到指定楼层
楼主
基于51单片机及DS18B20温度传感器的数字温度计设计(包含实物程序,proteus仿真,元件清单,原理图以及设计说明)

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


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

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

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

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

所有资料51hei提供下载:
基于51单片机及DS18B20温度传感器的数字温度计设计.rar (704.05 KB, 下载次数: 892)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏34 分享淘帖 顶2 踩
回复

使用道具 举报

沙发
ID:399475 发表于 2019-4-19 16:47 来自手机 | 只看该作者
谢谢分享ヾ(A`)ノ
回复

使用道具 举报

板凳
ID:353063 发表于 2019-8-4 10:17 | 只看该作者
谢谢分享
回复

使用道具 举报

地板
ID:427818 发表于 2019-8-20 22:35 | 只看该作者
回评,楼主NB。菜鸟仰慕
回复

使用道具 举报

5#
ID:610503 发表于 2019-9-16 11:17 | 只看该作者
谢谢分享
回复

使用道具 举报

6#
ID:610998 发表于 2019-9-16 13:26 | 只看该作者
学习了,谢谢楼主
回复

使用道具 举报

7#
ID:4765 发表于 2019-12-30 15:03 | 只看该作者
没有intrins.h和AT89X52.h的头文件呀
回复

使用道具 举报

8#
ID:417194 发表于 2020-1-10 19:08 | 只看该作者
学习了,谢谢楼主
回复

使用道具 举报

9#
ID:468209 发表于 2020-1-20 01:31 来自手机 | 只看该作者
谢谢 有你更精彩
回复

使用道具 举报

10#
ID:756240 发表于 2020-5-20 08:19 | 只看该作者
设置的温度上限 和下限 那么实际检测到的温度是超限的吧?
回复

使用道具 举报

11#
ID:718370 发表于 2020-5-22 22:47 | 只看该作者
谢谢分享
回复

使用道具 举报

12#
ID:737508 发表于 2020-5-25 10:25 | 只看该作者
agangwang 发表于 2019-9-16 13:26
学习了,谢谢楼主

兄弟可以实现吗
回复

使用道具 举报

13#
ID:706222 发表于 2020-5-25 11:21 | 只看该作者
楼主可以的,厉害,谢谢
回复

使用道具 举报

14#
ID:768667 发表于 2020-6-17 08:46 | 只看该作者
感谢分享,棒
回复

使用道具 举报

15#
ID:784631 发表于 2020-6-19 23:51 | 只看该作者
谢谢分享  楼主牛批
回复

使用道具 举报

16#
ID:785152 发表于 2020-6-21 07:39 | 只看该作者
感谢分享
回复

使用道具 举报

17#
ID:782666 发表于 2020-6-21 14:03 | 只看该作者
能实现零下的负温度显示么?
回复

使用道具 举报

18#
ID:611568 发表于 2020-6-21 18:42 | 只看该作者
学习一下,非常感谢
回复

使用道具 举报

19#
ID:850160 发表于 2020-12-1 11:04 来自手机 | 只看该作者
不能用啊,程序错了
回复

使用道具 举报

20#
ID:845549 发表于 2020-12-8 17:33 | 只看该作者
哪走 发表于 2020-6-21 14:03
能实现零下的负温度显示么?

同问
回复

使用道具 举报

21#
ID:830435 发表于 2020-12-14 19:57 | 只看该作者
谢谢楼主分享,很有用的学习资料
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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