LCD1602的内存已经存储了160个不同的字符点阵图形,每个字符对应一个固定代码,比如字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
在单片机编程中也可以使用字符常量或变量赋值,如'A’。因为CGROM存储代与我们电脑字符的代码基本上是相同的,所以我们在C51字符代码写入DDRAM甚至可以直接与P1 = ' A '。
3.4 温度传感器模块设计
DS18B20芯片具有体积小,成本低,抗干扰性强,精度高,独特的单线接口等优点。独特的单线接口,并且每一个DS18B20包含一个独特的序号,使得一条总线上可以存在多个DS18B20.外围硬件简单,采用数据总线供电,电压范围为3.0 V至5.5 V ,测量温度范围为-55 ° C至+125 ℃ 。DS18B20芯片封装如图3-11所示。
图3-11
3.4.1 DS18B20的管脚配置和内部结构 引脚定义:
(1)DQ为单数据总线,是数字信号输入/输出端; (2)GND为电源地;
13
(3)VDD为外接供电电源输入端。 内部结构如下图所示:
图3-12 DS18B20内部结构图
3.4.2 DS18B20的工作原理
DS18B20的温度检测与数字数据输出全部集成在一个芯片上,使用单总线通信方式,抗干扰能力很强。
使用DS18B20 进行温度测量的步骤为:初始化DS18B20→跳过ROM 操作命令→启动温度转换命令→等待转换完成→初始化→跳过ROM 操作命令→读取温度寄存器命令,这样就可以读出被测温度的数据了[4]。流程图3-13所示。
14
图3-13
3.4.3 DS18B20的硬件设计
图3-14 DS18B20硬件连接图
第四章 软件系统的设计
4.1 各模块软件设计
4.1.1 显示模块软件设计
15
流程图如图4-1所示
4-1 显示部分软件流程图
4.1.2 温度检测
温度检测软件设计遵循单总线协议,MCU通过时序来写入和读出DS18B20中的数据。DS18B20通过如下步骤完成操作:复位,接收应答,读取ROM序列号,启动温度转换,等待转换完成,保持数据[7]。流程图如4-2所示。
16
相关推荐: