51单片机DS18B20温度报警器proteus仿真设计_可调上下限

(仿真+源码+原理图+报告)

原理图:Altium Designer

仿真版本:proteus 7.8

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0008

目录标题

  • 51单片机DS18B20温度报警器proteus仿真设计_可调上下限
    • 主要功能
    • 仿真图
    • 硬件设计:
      • 主控制模块
      • 显示模块电路
      • 数码管显示驱动电路
    • 程序设计
    • 报告
    • 资料清单

主要功能

本设计系统是18b20温度报警系统数码管显示,可设置温度上限高温报警和下限低温报警,报警温度可精确到0.1度,并具有掉电保存功能,数据保存在单片机内部EEPOM中,进入设置界面后如果没有键按下系统会在15秒后自动退出设置界面,人性化的按键设置,按键还具有连加、减功能。

  1. 按“确定键” :有两种操作方式

1)按下就松开,高温设置、低温设置、正常显示温度,

三个界面按一下就切换一次。

2)按下不松开,进入自动切换,每500ms自动切换一次,

  1. 按“加键” :有两种操作方式

1)按下就松开,设定的温度值就加0.1度。

2)按下不松开,进入按键连加功能,每500ms自动加一

次,前三次自动加0.1度,之后就是自动加1度。

  1. 按“减键” :有两种操作方式

1)按下就松开,设定的温度值就减0.1度。

2)按下不松开,进入按键连减功能,每500ms自动减一次,前三次自动减0.1度,之后就是自动减1度。

  1. 第一次按下“确定键”进入高温报警设置:

按下“加、减”键可设置高温报警,最高设置成99.0度,最低可设置成比低温报警高0.1度。

  1. 第二次按下“确定键”进入低温报警设置:

按下“加、减”键可设置低温报警,最低设置成1度,最高可设置成比高温报警低0.1度。

  1. 第三次按下“确定键”进入正常温度显示。

资料下载链接

仿真图

硬件设计:

主控制模块

主控制最系统电路如图4所示。

图4 单片主控电路

显示模块电路

显示采用四位数码管显示,当位选打开时,送入相应的段码,则相应的数码管打开,关掉位选,打开另一个位选,送入相应的段码,则数码管打开,而每次打开关掉相应的位选时,时间间隔低于20ms,从人类视觉的角度上看,就仿佛是全部数码管同时显示的一样。显示电路如图5

图5 数码管显示

数码管显示驱动电路

三极管8550来驱动4位数码管,不仅简单,而且价格便宜。

程序设计

主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,主程序的主要功能是负责温度的实时显示,读出并处理DS18B20的当前温度值,与设定的报警温度比较,其程序流程见图9所示。

通过调用读温度子程序把存入内存储中的整数部分与小数部分开分存放在不的的两个单元中,然后通过调用显示子程序显示出来。

程序代码

/****************主函数***************/
void main()
{beep = 0;                     //开机叫一声   delay_1ms(150);P0 = P1 = P2 = P3 = 0xff;temperature = read_temp();       //先读出温度的值   init_eeprom();  //开始初始化保存的数据delay_1ms(650);             temperature = read_temp();              //先读出温度的值dis_smg[0] = smg_du[temperature % 10];    //取温度的小数显示dis_smg[1] = smg_du[temperature / 10 % 10] & 0x7f; //取温度的个位显示dis_smg[2] = smg_du[temperature / 100 % 10] ;    //取温度的十位显示time_init();                    //初始化定时器 while(1){     key();                  //按键程序if(key_can < 10){key_with();           //设置报警温度    }if(flag_300ms == 1)      //300ms 处理一次温度程序{      flag_300ms = 0; temperature = read_temp(); //先读出温度的值clock_h_l();        //报警函数if(menu_1 == 0){   smg_i = 3;dis_smg[0] = smg_du[temperature % 10];   //取温度的小数显示dis_smg[1] = smg_du[temperature / 10 % 10] & 0x7f; //取温度的个位显示dis_smg[2] = smg_du[temperature / 100 % 10] ;    //取温度的十位显示}}}
}

DS18B20初始化程序流程图

在DS18B20工作之前需要进行初始化,流程图如下:


/*************读取温度的值 读出来的是小数***************/
uint read_temp()
{uint value;uchar low;             //在读取温度的时候如果中断的太频繁了,就应该把中断给关了,否则会影响到18b20的时序init_18b20();         //初始化18b20write_18b20(0xcc);    //跳过64位ROMwrite_18b20(0x44);    //启动一次温度转换命令delay_uint(50);         //500usinit_18b20();        //初始化18b20write_18b20(0xcc);    //跳过64位ROMwrite_18b20(0xbe);    //发出读取暂存器命令EA = 0;low = read_18b20();     //读温度低字节value = read_18b20();  //读温度高字节EA = 1;value <<= 8;         //把温度的高位左移8位value |= low;          //把读出的温度低位放到value的低八位中value *= 0.625;          //转换到温度值 小数return value;        //返回读出的温度 带小数
}

报告

摘要

随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术, 本文主要介绍了一个基于STC89C52单片机的温度报警系统,详细描述了利用温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度采集和显示,并可根据需要任意设定报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度控制,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与STC89C52结合实现最简温度控制系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度的控制,有广泛的应用前景。

**关键词:**单片机;温度控制;STC89C52;DS18B20;

资料清单

资料下载链接(可点击)

51单片机DS18B20温度报警器proteus仿真设计_可调上下限相关推荐

  1. S0011基于51单片机DS18B20温控风扇仿真设计

    基于51单片机DS18B20温控风扇仿真设计 (仿真+原理图+源码+设计报告) 原理图:Altium Designer 仿真原版本:proteus 7.8 程序编译器:keil 4/keil 5 编程 ...

  2. 基于51单片机的电子秤proteus仿真设计

    本设计仅供学习参考 基于51单片机的电子秤proteus仿真设计(仿真+程序+原理图+报告+讲解) 原理图:Altium Designer 仿真图proteus 7.8 程序编译器:keil 4/ke ...

  3. 51单片机全自动洗衣机proteus仿真设计

    51单片机全自动洗衣机proteus仿真设计 目录标题 51单片机全自动洗衣机proteus仿真设计 设计介绍 仿真图 电动机驱动模块电路设计 电源模块电路设计 控制按键 进水阀和排水阀控制继电器 程 ...

  4. 基于51单片机篮球计分器proteus仿真设计

    本设计是51单片机篮球计分器proteus仿真(源码+原理图+PCB+仿真+报告) 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编号C0004 资料文件下载 ...

  5. 基于51单片机手动计步器protues仿真设计

    基于51单片机手动计步器protues仿真设计 (源码+仿真) 仿真原版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0021 目录标题 基于51单 ...

  6. 51单片机简易电阻测量仪仿真设计

    51单片机简易电阻测量仪仿真设计( proteus仿真+程序+报告+讲解视频) 仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0037 51单 ...

  7. 基于51单片机简易数字示波器Proteus仿真

    功能介绍: 采用51单片机作为主控CPU:LCD12864可显示方波,三角波,锯齿波,正弦波等,可通过光标对波形进行测量,可以调节显示波形的幅度和频率,也可以将波形进行左右拖拉,完美的仿真出一个51单 ...

  8. 51单片机 AT24C04+蜂鸣器+Proteus仿真

    51单片机 AT24C02+蜂鸣器+Proteus仿真 Proteus仿真截图 由于是音频效果,只能以截图展示基本电路 实例代码 #include <reg52.h> #include & ...

  9. 51单片机模拟电子琴+Proteus仿真

    51单片机模拟电子琴+Proteus仿真 Proteus仿真 示例程序 #include<reg51.h> #include<intrins.h>#define uchar u ...

最新文章

  1. 在javascript中判断类型
  2. SAP WM初阶之2-Step Picking创建的Group查询报表
  3. 解决Flink输出日志中时间比当前时间晚8个小时的问题
  4. LaTeX半小时速成究极进化版(修改版)
  5. TextView属性大全
  6. Mysql---之Mysqladmin修改账号密码方式
  7. 第22章:MongoDB-聚合操作--聚合管道--$out
  8. 在 Oracle 中使用正则表达式
  9. maven+Tomcat热部署
  10. 批量检查pdb数据库某些蛋白质的pdb文件是否存在
  11. VTP技术及相关配置
  12. win10计算机设备感叹号,Win10资源管理器无法显示iphone,设备管理器中存在黄色感叹号。...
  13. Win32_NetworkAdapter 网卡 参数说明
  14. 英语口语练习系列-C41-食物词汇-鹊桥仙
  15. Android studio File Explorer sdcard文件怎么访问
  16. ​从小样本学习出发,奔向星辰大海
  17. Spring Cloud Alibaba 微服务详细笔记
  18. loj 573 单枪匹马
  19. SQL三种连接:内连接、外连接、交叉连接
  20. 怎么做网站?做网站就是这么简单

热门文章

  1. STM32开发实例 基于STM32单片机的教师灯光控制系统
  2. 谷歌百度以图搜图 感知哈希算法 C#简单实现
  3. 网页设计常用的12种颜色
  4. python 贴吧盖楼_ es6 + canvas 开源 盖楼小游戏 完整代码注释 从零教你做游戏(一)...
  5. 反恐精英ol永恒python武器强化_用python语言实现反恐精英基础版-案例
  6. 一个忙着找实习工作的大三在校生的真实感受!!!
  7. 今日前端小知识—— width:auto 与 width:100% 的区别
  8. python写一个智能AI的狼吃羊
  9. ArcGIS制图技巧让地图更有立体感
  10. 冲压工艺:四十种工艺详细介绍,值得收藏