基于单片机的数字温度计和数字钟设计内容摘要:

图 10 主程序流程图 图 11 读温度流程图 读出温度子程序 读出温度子程序的主要功能是读出 RAM 中的 9 字节,在读出时需进行 CRC 校验,校验有错时不进行温度数据的改写。 其程序流程图如 上 图 图 11 所 示。 初始化 调用显示子程序 1S 到。 初次上电 读温度值并处理显示数据刷 新、显示时间日历 发温度转换开始命令 N Y N Y Y 发 DS18B20 复位命令 发跳过 ROM 命令 发读取温度命令 读取操作, CRC 校验 9 字节完。 CRC 校验正。 确。 移入温度暂存器 结束 N N Y 武汉理工大学《专业课程设计 2》课程设计说明书 11 发 DS18B20 复位命令 发跳过 ROM 命令 发温度转换开始命令 结束 温度转换命 令子程序 温度转换命令子程序主要是发温度转换开始命令,当采用 12 位分辨率时转换时间约为 750ms,在本程序设计中采用 1s 显示程序延时法等待转换的完成。 温度转换命令子程序流程图如上图,图 12 所示。 图 12 温度转换流程图 计算温度子程序 计算温度子程序将 RAM中读取值进行 BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图 13 所示。 图 13 计算温度流程图 开始 温度零下 ? 温度值取补码置“ — ”标志 计算小数位温度 BCD值 计算整数位温度 BCD值 结束 置“ +”标志 N Y 武汉理工大学《专业课程设计 2》课程设计说明书 12 显示数据刷新子程序 显示数据刷新子程序主要是对显示缓冲器中 的显示数据进行刷新操作,当最高显示位为 0 时将符号显示位移入下一位。 程序流程图如图 14。 图 14 显示数据刷新流程图 温度数据移入显示寄存器 十位数 0。 百位数 0。 十位数显示符号百位数不显示 百位数显示数据(不显示符号) 结束 N N Y Y 武汉理工大学《专业课程设计 2》课程设计说明书 13 5 功能测试 温度测试 用一只精度为 ℃ 的水银温度计作对照标准,把它和温度传感器 DS18B20 一起放入 同 一杯冷水中,水银温度计读数为 ℃ ,调节数字温度计电位器,使其显示值也为 ℃ ,然后逐次向烧杯加热水改变水温,记下每次两 只 温度计的读数 θ1(标准值)与 θ2(测试值),其数据表格如表 3 所示。 表 3 温度数据列表 θ1/℃ θ2/℃ 经 对 对照,两 只 温度计读数相差最大为 ℃ ,平均相差 仅有 ℃。 总体上讲,符合设计要求。 通过按键 key1 键、 key2 键(增 1 键)和 key3 键(减 1 键)可任意 设定温度的上下限报警功能,当所测温度超出设定的上下限温度范围,则液晶显示屏会产生报警提示。 时间测试 本系统上电后, 会以前一次 的 时间为基础显示同步时间,将此时间与北京时间相比,误差小于 1 秒钟,数字钟计时准确。 若按下 key1 键,年份开始闪动,表示可以通过 key2 键(增 1 键)和 key3 键(减1 键) 校 整年份,若再按下 key1 键,则选择月份可以 校 整,日期、时分、秒、周均可通过key1 键选定后经 key2 键(增 1 键)和 key3 键(减 1 键)进行 校 整。 经反复测试,本系统很好的完成了各项 功能,完全符合系统 设计要求。 武汉理工大学《专业课程设计 2》课程设计说明书 14 6 总结与体会 经过 2 周 紧张的 单片机课程设计,终于完成了 基于单片机的 数字温度计 和数字钟 的设计。 在这 2 周 的课程设计中,有很多的心得体会,有关于单片机方面的,更多的是关于 与人 合作 方面的。 在这次课程设计的整个过程中,我做了一次全面、较规范的设计练习,全面地温习了以前所学过的知识,用理论联系实际并结合单片机原理课程和解决实际问题,巩固、加深和扩展了有关单片机设计方面的知识。 尤其重要的是让我们养成了科学的习惯,在设计过程中一定要注意掌握设计进度,按预定计划完成阶段性的目标,在底图设计阶段,注意设计计算与结构设计画图交替进行,采用正确的设计方法。 在整个设计过程中注意对设计资料和计算数据的保存和积累,保持记录的完整性。 在课程设计的实践中进行了设计基本技能的训练,掌握了查阅和使用标准、规范、手册、图册、及相关技术资料的基本技能以及计算、数据处理等方面的能力。 在本次设计 过程中,我 也 发现很多的问题,虽然以前 学习并 设计 过简单单片机电路,但这次 课程 设计 仍然 让我 学到 了很多。 本次 单片机课程设计重点就在于软件算法的设计 及液晶显示 , 不仅 需要巧妙的程序算法, 而且需要一些单片机编程经验。 在编程设计过程中,遇到了许多困难,每当这个时候,我就再仔细检查几遍,如果自己仍然不能解决,就主动去找其他同学帮忙,相互讨论,相互学习,逐步解决遇到的一个个问 题,最终完成整个系统的设计。 通过对通用 89C52 单片机机处理器铁电存储器芯片、常用元器件的设计,掌握了一般单片机设计的程序和方法,让我对整个单片机程序的设计, C 语言有了一个比较深的理解。 从这次的课程设计中,我真正的意识到,在学习过程中理论联系实际的重要性。 只有把所学的理论知识用到实际当中,所学的知识才会有价值,学习单机片机更是如此, 软件编程能力 只有在经常的写与读的过程中才能 得到 提高,这是我在这次课程设计中的最大收获。 武汉理工大学《专业课程设计 2》课程设计说明书 15 参考文献 [1] 全国大学生电子设计竞赛组委会 .全国大学生电子设计竞赛获奖作品选编 .北京 : 北京理工大学出版社 ,2020 [2] 陈永真 .全国大学生电子设计竞赛试题精解选 .北京 : 电子工业出版 社 ,2020 [3] 李朝青 .单片机原理及接口技术 .北京 : 北京航空航天大学出版社 ,1998 [4] 张琳娜 ,刘武发 .传感检测技术及应用 .北京 : 中国计量出版社 ,1999 [5] 李广弟 .单片机基础 .北京 : 北京航空航天大学出版社 ,1994 [6] 李建民 .单片机在温度控制系统中的应用 .江汉大学学报 ,1996 [7] AT89S52 DATA SHEEP Philips Semiconductors ,1999 [8] A Technical Tutorial on Digital Signal Device Inc.,1999 [9] , Sadiku Fundamentals of electric Circuits,2020 武汉理工大学《专业课程设计 2》课程设计说明书 16 附录 1 实物图 2 主程序 /**********************************************/ /**********时钟日历显示温度控制器 **************/ /******************2020/1/6*********************/ /**********************************************/ include include include define LCM_RS P2_0 //1602 定义引脚 define LCM_RW P2_1 define LCM_E P2_2 define LCM_Data P0 define Busy 0x80 //用于检测 LCM 状态字中的 Busy 标识 define uchar unsigned char uchar id,timecount,dipsmodid。 bit lmcinit_or_not。 武汉理工大学《专业课程设计 2》课程设计说明书 17 bit flag,sflag。 //flag 是时钟冒号闪烁标志, sflag是温度负号显示标志 void Disp_line1(void)。 //显示屏幕第一行 void Disp_line2(void)。 //显示屏幕第二行 void Disp_line3(void)。 //显示屏幕第二行 void Disp_line4(void)。 //显示屏幕第二行 void id_case1_key()。 void Dispmod_id_case_key(void)。 //选择显示模式 void D。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。