基于ds18b20的温度监控系统设计内容摘要:

检测系统根据用户设定的温度范围完成一定范围的温度控制。 本设计使用的温度控制器结构简单、测温准确,具有一定的实际应用价值。 该智能温度控制器只是 DS18B20 在温度控制领域的一个简单实例,还有许多需要完善的地方。 此外,还能广泛地应用于其他一些工业生产领域,如建筑,仓储等行业。 本温度控制系统可以应用于多种场合,像的温度、育婴房的温度、水温的控制。 用户可灵活选择本设计的用途,有很强的实用价值。 心得体会 两周的课程设计 已经 接近尾声, 我通过自己的努力和同学们给予我的帮助,基本上完成了本次设计的要求,虽然很多功能还有待提高和完善,但这次的课程设计还是让我学到了很多。 在 这期间 我 遇到过许多问题,比如 DS18B20 的时序如何控制,数码管 动态显示时的闪烁问题等等。 特别是按键 处理子程序 , 流程图也比较复杂,但通过网上搜集资料,图书馆查阅文献,和同学老师积极沟通,最终还是圆满完成任务。 17 通过这次课程设计,我深刻的体会到了写程序时逻辑的重要性。 对整个程序的把握,如果 没有清晰的逻辑、思路,程序就很容易出错,在程序的调试中尤为明显。 纸上学来终觉浅,绝知此事要躬行。 只有不断的实践,才能提高自己的能力。 附 参考文献 : [1]刘鸣、车立新 主编, 《温度传感器 DS18B20 的特性及程序设计方法》 , 天津大学精仪学院 出版社, 2020 年 10 月。 [2]王金亮、张强 主编, 《数字温度传感器的应用》 ,电子工业出版社, 2020 年 8月。 [3]刘坤、宋戈、赵洪波、张宪栋主编,《 51 单片机 C 语言应用开发技术大全》,北京人民邮电出版社, 2020 年 2 月。 [4]马壮 主编 ,《基于单片机的 DS18B20 温度采集系统》 ,电子科技大学出版社,2020 年 1 月。 [5]赵鹏 组编, 《 基于单片机的测温系统 》 , 中小企业管理与科技下旬刊 , 2020 年4 月。 18 19 附 2:完整汇编程序。 *****************************************************************。 ***************************主程序 ******************************** TEMP_L EQU 47H。 47H 存放温度的低八位 TEMP_H EQU 48H。 48H 存放温度的高八位 TEMP_ZS EQU 49H。 49H 存放温度的整数部分 DQ EQU。 口定义为 DQ TEMP_SX EQU 60H。 60H 存放温度的上限值 TEMP_XX EQU 61H。 61H 存放温度的下限值 BZW1 EQU 71H。 按键处理中的标志字节 1 BZW2 EQU 72H。 按键处理中的标志字节 2 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV TEMP_SX,30 MOV TEMP_XX,25 MAIN1:LCALL CHUSHI。 调用初始化子程序 MOV A,0CCH。 发送跳 ROM 指令 LCALL WRITEWORD。 调用写字节子程序 MOV A,44H。 启动温度转换指令 LCALL WRITEWORD。 调用写字节子程序 LCALL CHUSHI。 调用初始化子程序 MOV A,0CCH。 跳转 ROM 指令 LCALL WRITEWORD。 调用写字节子程序 MOV A,0BEH。 开始读取温度指令 LCALL WRITEWORD。 调用写字节子程序 20 LCALL READT。 调用读字节子程序 LCALL DATAT。 调用数据处理子程序 LCALL DISPLAY。 调用数码管显示子程序 LCALL TEMP_COMPART。 调用温度上下限值比较的子程序 LCALL AJCL。 调用按键处理子程序 AJMP MAIN1。 ********************************************************************。 ************************ *初始化子程序 ******************************* CHUSHI: SETB DQ。 DQ 拉高 MOV R0,12 DJNZ R0,$。 延时 2uS CLR DQ。 DQ 拉低 MOV R1,12 DELAY1: MOV R0,255 DJNZ R0,$ DJNZ R1,DELAY1。 延时 560uS SETB DQ。 拉高 DQ MOV R0,180 DJNZ R0,$。 延时 30uS MOV C,DQ。 读取 DQ 值 JNC LOOP1。 判断 DQ 是否为 0,是则跳转 LOOP1 CLR F0。 DQ 不为 0,则标志位清零 LJMP LOOP2 LOOP1:SETB F0。 DQ 为 0,则标志位值 1 LOOP2:JNB F0,CHUSHI。 判断标志位是否为 0 MOV R1,6 DELAY2:MOV R0,120 DJNZ R0,$ 21 DJNZ R1,DELAY2。 延时 120uS SETB DQ。 DQ 拉高 MOV R1,10 DELAY3:MOV R0,170 DJNZ R0,$ DJNZ R1,DELAY3。 延时 283uS RET。 返回。 ********************************************************************。 ************************写字节子程序 ******************************** WRITEWORD:SETB DQ。 DQ 拉高 MOV R0,7 DJNZ R0,$。 延时 1uS MOV R2,8。 写 8 次,一个字节 CLR C WRITEWORD2:CLR DQ MOV R0,18 DJNZ R0,$。 延时 3uS RRC A MOV DQ,C MOV R1,6 DELAY4:MOV R0,90 DJNZ R0,$ DJNZ R1,DELAY4。 延时 90uS SETB DQ MOV R0,18 DJNZ R0,$。 延时 3uS DJNZ R2,WRITEWORD2。 是否写完 8 次。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。