P0口连接,用单片机P21,P22,P23来分别与1602LCD的RS、RW、E三个管脚连接,VDD接5V电源,VEE与VSS接地即可。传感器的DQ与单片机P33相连,晶振和复位电路不作说明,该系统连接图如图2所示
图2数字温度计硬件原理连接图
该系统是基于这样的原理进行设计首先因为DS18B20传感器采集的温度
2
f单片机原理及系统课程设计报告
数据是以两个字节的数据存放,用DQ口串行传输并与单片机P33相连,通过这根线单片机读取数据和写入指令。数据进入单片机后经处理由P0口送入显示块DB口,因为单片机的P21,P22,P23与液晶屏的RS、RW、E相连以起到对液晶屏命令写入和数据读取的控制作用使液晶块实时读入命令和数据。
4数字温度计软件设计
软件编写有三个模块,传感器温器度读取和液晶屏数据显示及单片机对采集来温度数据的计算。因为DS18B20温度传感器与单片机之间单总线串行传输,时序非常的重要,所以我们编写的程序时序为:传感器复位→发送存在脉冲→发送传感器存储器操作指令→执行数据读写指令周→传感器复位周而复始的做温度的采集。因为是单片测量在温度传感器进行测量流程图中跳过ROM指令,传感器流程序程图如附录A图(a)所示。1602LCD与单片机之间有八条数据线负责二者之间的通信。这里我们要注意D7口是作为忙碌位,当单片机在向液晶屏写入数据时必须当该位为检测为低电平时才可以写入数据。显示模块的程序流程图如附录图A(b)所示。综上主程序流程如下图3所示。源代码详见附录C。
开始液晶屏初始化
检测传感器是否存在?Y温度传感器初始化传感器检测温度
N
液晶屏显示温度
显示报错信息显示
图3主程序流程图
在KeilUvisio
3上将编写的源代码录入生成后缀名为c的文件,经过编译可将生成的hex格式的文件。程序编译调试结果如附录B图所示。
3
f单片机原理及系统课程设计报告
6数字温度计的硬件仿真调试及说明
将生成的hex其烧入单片机后接通单片机电源,系统开始工作。刚开始界面会显示85℃约有1秒,后恢复正常测得室温下如图4所示。经过查询资料得因为在初始化时传感器的寄存器中会默认一个国定数值,经计算后显示正好为85,所以不可避免但能通过修改延时程序改变其显示时间。
图4测量室内温度
由上图可知室内温度为2413℃,为了证明其是否可以测量实时温度用手捏住DS18B20温度传感器,发现其温度有所变化,上升至3205℃,如下图6所示。
图5手捏住传感器的温度
当拔掉DS18B20温度传感器,重新启动传感器时,屏幕会显r