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

制器 主控制器选用 Atmel 公司 89 系列 单片机 中 AT89C51。 AT89C51单片机片内有 4KB 的 Flash 存储器,可以在线下载程序,方便在系统的开发过程中进行程序的调试。 晶振采用 12MHZ。 图 5 AT89C51 外部芯片及引脚排列图 显示电路 采用液晶显示屏 LCD1602 显示,第一行显示“ Current temp” ,第二行显示实时温度。 用 P0 口进行 LCD1602 的数据写操作, ~ 口进行 LCD1602 的命令控制端口。 电路图 如下: 8 图 6 温度显示电路 DS18B20 与单片机的接口电路 DS18B20 与单片机的连接有两种方法,一种是 VDD 接 外部电源,GND 接地, DQ 与单片机的 I/O 线相连 ;另一种是用寄生电源供电;本设计采用外接电源方式, DQ 端( 2 脚)接 AT89C51 的 脚与微处理器通信。 图 7 DS18B20 与单片机的接口电路 9 五、 系统的软件设计 系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。 主程序 主程序 的主要功能是测温系统初始化,温度的实时显示、读出并处理 DS18B20 的测量温度值。 主程序流程图如图 8 所示。 图 8 主程序流程图 读出温度子程序 读出温度子程序的 主要功能是读出 RAM 中的 9 字节。 在读出时须进行 CRC 校验,校验有错时 不进行温度数据的改写。 读出温度子程序流程图如图 9 所示。 Y N 初始化 调用显示子程序 初次上电 读出温度值 温度计算处理 显示数据刷新 发温度转换开始命令 10 图 9 读出温度子程序流程图 温度转换命令子程序 温度转换命令子程序主要是发温度转换开始命令。 当采用 12位分辨率时,转换时间约为 750ms。 程序流程图如图 10 所示。 N N Y Y 发 DS18B20 复位命令 发跳过 ROM 命令 发读取温度命令 读取操作, CRC 校验 9 字节完。 CRC 校验正确 移入温度暂存器 结束 结束 发读取温度命令 发跳过 ROM 命令 发 DS18B20 复位命令 11 计算温度子程序 计算温度子程序将 RAM 中的读取值进行 BCD 码的转换、运算,并进行温度值正负的判定。 程序流程图如图 11 所示。 图 11 计算温度子程序流程图 六、 测试与仿真 本设计是在 ISIS 7 Professional 环境下进行仿真的, 仿真所用到的器件有:单片机 AT89C51,温度传感器 DS18B20,蜂鸣器,液晶显示器,一些电阻,电容等。 以下是仿真电路图: N Y 开始 温度零下 温度值取补码 置“ — ”标志 计算小数位温度 BCD 值 计算整数位温度 BCD 值 结束 置“ +”标志 12 由图可知:本设计在仿真条件下可以 正确的显示温度,且可以精确到 ℃ ,满足要求。 七、 心得体会 总的来说, 这次课程设计还是挺成功的。 但在这个过程中,还是遇到了不少了问题,最后在老师和同学的帮助下,终于成功的解决了问题。 通过这次对数字温度计的设计与制作,让我了解了设计电路的程序,也让我了解了关于数字温度计的原理与设计理念。 单片机课程设计的重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过一些程序,但觉的要写好一个程序并不是一 13 件简单的事, 我们只有 不断的调试 , 不断的修改才能把程写的更好。 很多时候 ,只有我们去试着做了,才能真正的掌握,只 学习理论往往是不够的, 实践才是硬道理。 参考文献。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。