基于18b20的电子温度计课程设计,可用两位小数显示开式,华氏,摄氏温标,三个按键。可设置上限,下限报警。程序均经过上电调试。(不含硬件图,仅供参考。)
电子温度计(基于18B20)课程设计报告
可以实现:
数码管能够显示当前的温度值(两位小数); 能够通过按键设定报警温度;
温度上限或下限时能够通过蜂鸣器报警,警线可设; 开式,华氏,摄氏温标的转化。
实验要求(略)
一.设计目的
通过课程设计使学生达到以下能力训练:调查研究、分析问题的能力;查阅中外文献的能力;计算机软件应用的能力;设计计算和绘图的能力;语言文字表达的能力。对软件的灵活运用,适时开发并创新的能力。
二、设计内容
利用数字温度传感器DS18B20设计一个电子温度计,通过数码管来实时显示测得的温度值。
基本要求: ⑴、设计实验电路 ⑵、分析实验原理 ⑶、列出实验接线表
⑷、采用汇编语言编写实验程序 ⑸、通过实验验证功能的实现 ⑹、编写课程设计说明书 三、设计方案
在单片机电路设计中,大多都是使用传感器,所以可以采用一只温度传感器
基于18b20的电子温度计课程设计,可用两位小数显示开式,华氏,摄氏温标,三个按键。可设置上限,下限报警。程序均经过上电调试。(不含硬件图,仅供参考。)
DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
预计功能:(从主界面开始)
1.按下键1,可显示当前温度(整数部分),和温度上限设定值;
并且在3秒的有效时间内可用键2减小设定温度上限,键3可增加上限值。最后一次按下按键后3秒自动返回主显示界面。
2. 按下键3,可显示当前温度(整数部分),和温度下限设定值;
并且在3秒的有效时间内可用键1减小设定温度上限,键2可增加上限值。最后一次按下按键后3秒自动返回主显示界面。
3.按下键2,可实现开式,华氏,摄氏温标的循环转换。
4.温度小于下限温度警线,或是温度高于上限警线时,产生声光报警。
四、设计框图
温度计电路设计总体设计框图如图1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用八位LED数码管以并口传送数据实现温度显示。
图1总体设计框图
五、显示电路
显示电路采用两个4位共阳LED数码管,从P1口RXD,TXD串口输出段码。
基于18b20的电子温度计课程设计,可用两位小数显示开式,华氏,摄氏温标,三个按键。可设置上限,下限报警。程序均经过上电调试。(不含硬件图,仅供参考。)
温度传感器设计
DS18B20是1-wire器件,1-wire单总线是Maxim全资子公司Dallas的一项专有技术,与目前多数标准串行数据通信方式,如SPI/I2C/MICROWIRE不同,它采用单根信号线,既传输时钟,又传输数据,而且数据传输是双向的。它具有节省I/O口线资源,结构简单,成本低廉,便于总线扩展和维护等诸多优点。
DS18B20的性能特点如下:
●独特的单线接口仅需要一个端口引脚进行通信;
●多个DS18B20可以并联在惟一的三线上,实现多点组网功能; ●无须外部器件;
●可通过数据线供电,电压范围为3.0~5.5V; ●零待机功耗;
●温度以9或12位数字; ●用户可定义报警设置;
●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; ●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;
DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图2所示。
图2 DS18B20内部结构
基于18b20的电子温度计课程设计,可用两位小数显示开式,华氏,摄氏温标,三个按键。可设置上限,下限报警。程序均经过上电调试。(不含硬件图,仅供参考。)
表2 一部分温度对应值表
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
分别说明如下:
1、初始化 单总线的所有处理均从初始化开始。初始化过程是主机通过向作为从机的DS18B20芯片发一个有时间宽度要求的初始化脉冲实现的。初始化后,才可进行读写操作。
2 、ROM操作命令 总线主机检测到DS18B20的存在 便可以发出ROM操作命令之一 这些命令表3:
基于18b20的电子温度计课程设计,可用两位小数显示开式,华氏,摄氏温标,三个按键。可设置上限,下限报警。程序均经过上电调试。(不含硬件图,仅供参考。)
3、存储器操作 命令如表4:
表4 存储器操作命令
六.调试结果:
四个预计功能全部实现,且实现了两位小数显示。
主程序流程图:
基于18b20的电子温度计课程设计,可用两位小数显示开式,华氏,摄氏温标,三个按键。可设置上限,下限报警。程序均经过上电调试。(不含硬件图,仅供参考。)
基于18b20的电子温度计课程设计,可用两位小数显示开式,华氏,摄氏温标,三个按键。可设置上限,下限报警。程序均经过上电调试。(不含硬件图,仅供参考。)
DS18B20复位子程序 度温度值子程序
基于18b20的电子温度计课程设计,可用两位小数显示开式,华氏,摄氏温标,三个按键。可设置上限,下限报警。程序均经过上电调试。(不含硬件图,仅供参考。)
度温度值子程序
写DS18B20命令子程序
基于18b20的电子温度计课程设计,可用两位小数显示开式,华氏,摄氏温标,三个按键。可设置上限,下限报警。程序均经过上电调试。(不含硬件图,仅供参考。)
外部中断口
显示上限温度
2\3 键是否按下?
获得键值
调用一次显示
是否放开?
按键子程
计数 210 次则 返回
RETI
基于18b20的电子温度计课程设计,可用两位小数显示开式,华氏,摄氏温标,三个按键。可设置上限,下限报警。程序均经过上电调试。(不含硬件图,仅供参考。)
电子温度计汇编程序代码(经过STC89C52上电验证)