基于DS18B20数字温度计设计报告正文 - 图文(4)

2020-04-14 23:16

西华大学电气信息学院智能化电子系统设计报告 先判断符号位显示在第一个数码管,之后分别为百位、十位、个位、个分位、十分位、百分位和千分位。先送位码再送段码,每一位显示完后延迟2us时间。在数码管动态显示中,由于扫描的时间足够快,虽然在一个时刻只有一位数码管发光,却可以看到8 位数码管“同时”显示的效果。

下图为温度显示流程框图。

图4.3 温度显示流程图

结束 小数部分显示 整数部分显示 符号位显示“0” 符号位显示“—” 温度为正 温度数据移入寄存器 4.2 温度设定模块

温度设定模块主要由按键程序和显示程序构成。按键扫描电路扫描调整键S18是否按下,检测到按键按下时,延时1ms,再次检测按键是否按下,若检测到按下,才确定此按键,本设计中每个按键设计都运用了防抖动功能,避免抖动产生的误差。当检测到按键S18按下一次时,显示为设定的上限值,此时S19和S20分别递增键和递减键,在上限或下限没超过125℃时,每次检测到按下时则上限值增加或减少1,并将bb标志位置1。当S18被按下两次时,显示为设定的下限值,此时S19和S20分别递增键和递减键,每次检测到按下时则下限值增加或减少1,并将bb标志位置2。当S18被第三次按下时,bb标志位置3,此时恢复到正常的测温模式,并将设定的上限值和下限值写入到传感器中。显示程序显示设定值的变化,当bb为0时,显示测量到的温度的值,当bb为1时,显示上限值,并随S19,S20按键按下的时上限值的变化而变化,当bb为2是,显示下限值,并随S19,S20按键按下时下限值的变化而变化。

第 14 页

西华大学电气信息学院智能化电子系统设计报告 4.3 报警模块

报警模块主要由由单片机输出电平来驱动蜂鸣器构成。当所测温度超过设定的上限(TH值)或下限温度(TL值)时置beepflag=1,表示温度值越界。在调用报警子程序时先判断beepflag的值,若为1则在蜂鸣器端口输出低电平信号beep=0,蜂鸣器报警,延时1000us,蜂鸣器报警持续,再产生一个高电平信号beep=1,蜂鸣器停止报警,循环此过程,则蜂鸣器间隙性报警。在蜂鸣器报警的同时,DS18B20处于正常测温状态,并用数码管显示出来,并不断闪烁。

第 15 页

西华大学电气信息学院智能化电子系统设计报告 5 系统整合调试

调试方法:写好一段程序后不能急于上机调试,而是先进行逻辑分析、可行性分析。用KeilμVision 2软件进行调试,不能出现错误,警告可以有,只要不影响生成HEX文件即可。理解其实现的功能,预想程序应该出现的结果。先进行软件仿真,出现错误马上修改,不断进行。先一个模块一个模块的仿真,准确后再连线总体仿真。仿真完后出现预期的效果后再下载程序到硬件进行验证,往往还有问题,还得反复修改,编译,调试,下载,验证。可以一个模块一个模块的下载调试这样就可以知道问题的所在。采用Proteus和Keil结合仿真的可以大大简化软、硬件电路的设计过程。

5.1 硬件调试

Proteus是英国Labeenter electronics公司研发的EDA工具软件。Proteus不仅是模拟电路、数字电路、模/数混合电路的设计与仿真平台,更是目前世界最先进、最完整的多种型号微控制器系统的设计与仿真平台。它真正实现了在计算机上完成从原理图设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证到形成PCB的完整电子设计与研发过程。Proteus产品系列也包含了革命性的VSM技术,可以对基于微控制器的设计连同所有的外围电子器件一起仿真。由于我们的设计外围电路比较简单实现的功能叶不是很复杂,所以在Proteus仿真时我们是将主程序直接下载到芯片中仿真,主要是验证是否采集到温度还有温度是否显示正确。仿真可以在实物没有出来前进行先期的验证。最后加上我们的扩展功能一起仿真调试。需要说明的是仿真正确不代表最后的下载程序不会出错。我们在下载程序的时候也遇到一点小问题。比如在仿真的时候,三极管始终处于导通状态,后来通过努力解决了这个问题。

在实物做出来之前,我们采用Proteus仿真调试,通过将软件编译通过的程序下载到画好的仿真图中,这样便于检查软、硬件设计的不足。但是Proteus仿真也存在不足的情况,仿真模拟的是理想的环境,不会差生误差但是实际的测试会出现一定的误差。通过硬件仿真可以查找出硬件设计的不足。

5.2 软件调试

KeilμVision 2是Keil公司关于8051系列MCU的开发工具,可以用来编译C源码、汇编源程序、连接和重定位目标文件和库文件、创建HEX文件、调试目标程序等,是一种集成化的文件管理编译环境。它集成了文件编辑处理、编译连接、项目管理、窗口、工具引用和软件仿真调试等多种功能,是相当强大的开发工具。实验中我们采用KeilμVision 2来对我们编写的程序进行编译、链接和生成HEX文件。在下载程序出错时进行必要的调试,再下载验证。同时采用Proteus和Keil结合仿真的方法对设计的单片机测温系统进行了虚拟仿真和性能检测,得到了比较好的仿真结果和分析结果。结

第 16 页

西华大学电气信息学院智能化电子系统设计报告 果证明采用Proteus和Keil结合仿真的可以大大简化硬件电路的设计过程,可以降低单片机系统的开发成本、提高效率和开发速度,具有很好的实际应用和指导意义。 软件仿真的优势在于,可以设置断点、单步运行等,这在用实物调试是不能实现的,通过软件仿真,可以知道程序哪儿出错了,便于及时改正。若直接下载在芯片中用实物调试,只能知道程序错了,只能去盲目查找程序的错误之处。在程序的编写之中难免会出现一些无法错误,用KeilμVision 2编译会得到及时的提示,方便立即修改,大大缩短了设计的时间,提高设计效率。 在设计初期,我们通过软件仿真发现了很多错误,比如语法错误,乱码,字符闪烁问题,后来这些问题都一一克服,语法错误一样是缺少括号,乱码是由于共阴、共阳译码的错误,还有就是由于人眼的“滞留”问题,必须要位选,在进行译码。字符闪烁一般是由于延时过短等问题。这些问题都是通过软件调试找出来的,从而说明软件调试的必要性。

第 17 页

西华大学电气信息学院智能化电子系统设计报告 6 系统功能、指标参数

6.1 系统功能

本设计实现的主要功能是通过DS18B20温度传感器采集温度并通过8位七段数码管显示所测温度,可显示零度以下温度,温度测量范围为-55℃-128℃,后四位显示小数位。可以精确到小数点后4位,测量精度为0.0625℃, 并可以产生报警。通过三个按键的配合使用可以设定温度报警的上限值和下限值,当所测的温度超过所设定的上限或下限温度时产生报警信号,在报警的同时,系统处于正常的测温模式,当温度回到所设定的范围时,报警停止。

6.2 系统指标参数测试

下图是采用Proteus软件对本系统温度测量范围的仿真,仿真模拟温度输入为-55℃,系统8位七段显示数码管显示的也为-55℃,由于仿真软件不考虑测量误差,所以测量的温度没有误差,做出的实物出现了一点误差,但误差在允许的范围内。

图6. 1 对系统测量最低温度仿真

下图是采用Proteus软件对本系统温度测量范围的仿真,仿真模拟温度输入为127℃,系统8位七段显示数码管显示的为127℃,本系统的测量温度上限为128℃,若测量的温度等于128℃,系统则输出一个负数,这是由于DS18B20传感器的对数据的处理所引起的,当所测的温度刚好为128时,128用二进制表示为11111111,本传感器处理数据的高五位为符号位,当出现11111111时,系统默认所测温度为负数。

第 18 页


基于DS18B20数字温度计设计报告正文 - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:图形变换复习讲义

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: