1、 I摘 要本设计的 LCD 电子时钟温度计,包括两大功能:实时显示年、月、日、时、分、秒;实时监测环境温度;本设计采用的是 AT89S52 单片机,该单片机采用的 MCU51 内核,内部带有 8KB 的 ROM,能够存储大量的程序。计时芯片采用 DS1302,该芯片通过简单的串行通信与单片机进行通信,时钟/日历电路能够实时提供年、月、日、时、分、秒信息,采用双电源供电,当外部电源掉电时能够利用后备电池准确计时。温度检测采用 DS18B20,该芯片采用的是独特的“ 一线总线”的方式与单片机进行通信,实时温度采用一线总线的方式传输大大的提高了信号的抗干扰性,分辨率可通过软件设置,其小巧的体积为各种
2、环境下测量温度提供了方便。显示器件采用通用型 LCD1602,可显示 32 个字符,该液晶显示方便,功能强大,完全能满足数字时钟温度计的显示要求。通过此次设计能够更加牢固的掌握单片机的应用技术,增强动手能力、硬件设计能力以及软件设计能力。关键词:单片机;Keil;DS1302;DS18B20 ;LCD 液晶II目 录第第 1 章章 绪论绪论 .11.1 研究意义研究意义 .11.2 国内外现状国内外现状 .1第第 2 章章 设计任务设计任务 .22.1 设计任务 .22.2 设计要求 .2第第 3 章章 总体方案论证与设计总体方案论证与设计 .33.1 液晶显示模块 .33.2 实时时间计算模
3、块 .33.3 实时环境温度采集模块 .43.4 设置模块 .4第第 4 章章 总体方案组成框图总体方案组成框图 .5第第 5 章章 系统硬件设计系统硬件设计 .6 5.1 LCD 显示模块设计 .65.2 实时环境温度检测模块 .105.3 时间计算模块设计 .115.4 设置模块 .135.5 系统硬件电路设计总图 .13第第 6 章章 系统软件设计系统软件设计 .166.1 主程序 .166.2 时间显示程序 .176.3 时间调整程序设计 .176.4 读取温度子程序 .186.5 温度转换命令子程序 .206.6 计算温度子程序 .206.7 显示数据刷新子程序 .216.8 温度数
4、据的计算处理方法 .22第第 7 章章 系统硬件系统硬件 PROTEUS 仿真原理图仿真原理图 .23结语结语 .24致谢致谢 .25参考文献参考文献 .26附录一:实物图附录一:实物图 .27附录二附录二 PCB 图图 .28附录三附录三 程序程序 .291第第 1 章章 绪论绪论1.1 研究意义近些年我国开始重视电子时钟温度计的开发与设计,但是在中国该产品出现的问题中,许多不容乐观,如产业结构不合理、产业集中于劳动力密集行业产品;技术密集型产品明显落后于发达工业国家;生产要素决定性作用正在减弱;产业能源消耗大、产出率低、环境污染严重、对自然资源破坏力大;企业总体规模偏小、技术创新能力薄弱;
5、管理水平落后等。在中国该产品的产业发展已到了岔口;产业生产企业急需选对发展方向。1.2 国内外现状国内外现状电气时代、电子时代和现已进人的电脑时代。不过, 这里的电脑, 通常是指个人计算机, 简称机。它由主机、键盘、显示器等组成。还有一类计算机, 大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机。顾名思义, 这种计算机的最小系统只用了一片集成电路, 即可进行简单运算和控制。因为它体积小, 通常都藏在被控机械的肚子里。它在整个装置中, 起着有如人类头脑的作用, 它出了毛病, 整个装置就瘫痪了。现在, 这种单片机的使用领域已十分广泛, 如智能仪表、实时工控、通讯设备、导航系统、家用电
6、器等。各种产品一旦用上了单片机, 就能起到使产品升级换代的功效, 常在产品名称前冠以形容词智能型 , 如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品, 不是电路太复杂, 就是功能太简单且极易被仿制。究其原因, 可能就卡在产品未使用单片机或其它可编程器件上。2第第 2 章章 设计任务设计任务2.1 设计任务利用单片机、时钟芯片 DS1302、温度传感器 DS18B20、1602 液晶等实现日期、时间、温度的显示。2.2 设计要求2.2.1 A/D 转换器可用 ADC0809,也可选用自带 A/D 的单片机,完成 1 个通道的温度数据采集; 2.2.2 温度控制单元可
7、采用 DS18B20 温度传感器,时钟控制部分可采用时钟芯片 DS1302;2.2.3 对采集的温度在 LCD 实时显示,并能保存一段时间内的温度值;2.2.4 能显示当前时间,并具有时间调校功能;2.2.5 采用“ 汇编语言” 或 “C 语言”进行编程,编译系统可用 WAVE 或 Keil C;2.2.6 用 Proteus 软件进行仿真;2.2.7 用 PROTEL 软件画出系统原理图与印制板电路图; 2.2.8 尽可能地做出实物。3第第 3 章章 总体方案论证与设计总体方案论证与设计本系统以 AT89S52 单片机为控制核心,通过与 DS1302 和 DS18B20 通信获取实时时间和实
8、时环境温度,并将得到的数据通过 1602 液晶显示出来,同时通过相应的按键调整相应的值。因此本设计可分为一下模块:显示模块、实时时间计算模块、实时环境温度采集模块、报警模块、设置模块(时间设置模块、最高温度设置模块、闹钟设置模块)。下面对各个模块逐一进行论证分析:3.1 液晶显示模块方案(1):数码管是利用发光二极管的特性组合而成数字显示器件,通过控制相应的二极管的状态显示相应的数字。要使数码管正常显示就得有驱动电路驱动相应的段码,数码管的现实方式可分为静态显示和动态显示,静态显示方式只适合显示单个的数字,因此本设计应采用动态显示方式。由于动态显示方式利用的是人眼视觉暂留的特性,扫描的时间应不
9、大于 20 毫秒,占用系统资源大,而且显示的个数和字型有限,在本设计中不易采用。方案(2):1602 液晶也叫 1602 字符型液晶 它是一种专门用来显示字母、数字、符号等的点阵型液晶模块 它有若干个 5X7 或者 5X11 等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔,每行之间也有也有间隔,起到了字符间距和行间距的作用。1602 的驱动电路带有11 条指令,可以很方便的控制液晶的现实效果如:清屏、左移右移、光标显示。而且 1602 显示的字符在下一条指令为到来之前不会改变,也就是能够维持显示的字符,1602 液晶占用的系统资源也少。综合比较上述两种方案,应采用
10、 1602 液晶组成本设计的显示模块。3.2 实时时间计算模块方案(1):AT89S52 单片机内部带有定时/计数功能,此定时功能是通过对外部晶振的脉冲进行计数,从而达到计时功能,只要使用 11.0592 的晶振就能实现零误差的计时,因此可以利用此功能实现计时,但因为只有单一的计时功能要实现“ 万年历” 的功能需要较复杂的程序,而且如果单片机掉电无法继续进行计时,所以使用不便。方案(2):DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗的实时时钟芯片,附加 31 字节静态 RAM,采用 SPI 三线接口与 CPU 进行通信,并可采用突发方式一次传送多个字节的时钟信号和 RAM
11、数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与 31 天时可以自动调整,且具有闰年补偿功能。工作电压宽达 2.55.5V。采用双电源供电(主电源和备用电源)4,可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。利用单片机强大的控制功能就可实现实时计时的功能,而且消耗的系统资源少,程序简单。综合上述两种方案,宜采用方案(2)实现实时计时功能。3.3 实时环境温度采集模块方案(1):热 敏 电 阻 是 开 发 早 、 种 类 多 、 发 展 较 成 熟 的 敏 感 元 器件 热 敏 电 阻 由 半 导 体 陶 瓷 材 料 组 成 , 利 用 的 原 理 是 温 度 引
12、起 电 阻 变 化 。通 过 一 定 的 电 路 可 以 将 周 围 环 境 的 温 度 变 化 转 化 成 电 压 的 变 化 , 通 过AD 转 化 器 件 将 信 号 传 输 给 单 片 机 进 行 分 析 , 从 而 测 出 当 前 环 境 温 度 , 但 误差 大 , 不 稳 定 , 对 环 境 要 求 较 高 。方 案 ( 2) : DS18B20 是 美 国 DALLAS 公 司 生 产 的 数 字 温 度 传 感 器 ,采 用 单 总 线 的 接 口 方 式 与 微 处 理 器 连 接 时 仅 需 要 一 条 口 线 即 可 实 现 微 处 理 器与 DS18B20 的 双 向
13、 通 讯 。 单 总 线 具 有 经 济 性 好 , 抗 干 扰 能 力 强 , 适 合 于 恶劣 环 境 的 现 场 温 度 测 量 , 使 用 方 便 等 优 点 , 使 用 户 可 轻 松 地 组 建 传 感 器 网 络 ,为 测 量 系 统 的 构 建 引 入 全 新 概 念 。 测 量 温 度 范 围 宽 , 测 量 精 度 高 , 在 使 用中 不 需 要 任 何 外 围 元 件 , 支 持 多 点 组 网 功 能 , 多 个 DS18B20 可 以 并 联 在惟 一 的 单 线 上 , 实 现 多 点 测 温 , 供 电 方 式 灵 活 DS18B20 可 以 通 过 内 部 寄
14、生 电 路 从 数 据 线 上 获 取 电 源 。 因 此 , 当 数 据 线 上 的 时 序 满 足 一 定 的 要 求 时 ,可 以 不 接 外 部 电 源 , 从 而 使 系 统 结 构 更 趋 简 单 , 可 靠 性 更 高 。 因 此 非 常 适 合本 系 统 使 用 。综 上 比 较 上 述 两 种 方 案 , 宜 采 用 方 案 ( 2) 构 成 本 设 计 的 实 时 温 度 采 集模 块 。3.4 设置模块因为设置模块只需编写相应的程序外加相应的按键即可实现,实现方法较简单,在此不再论述。5第第 4 章章 总体方案组成框图总体方案组成框图本系统包括 LCD1602 液晶显示模
15、块电路、AT89S52 微处理器模块电路、时间计算模块 DS1302 电路、实时温度采集模块 DS18B20 电路、设置模块电路。其中显示模块的主要功能是:与单片机接口相连,以点阵形式显示时间和温度;微处理器模块的主要功能是:接上晶振、复位电路和相应的接口电路,装载软件后就可以构成单片机应用系统;DS1302 的主要功能是:通过简单的串行通信与单片机进行通信,时钟/日历电路能够实时提供年、月、日、时、分、秒信息;DS18B20 电路的主要功能是:采 用 单 总 线 的 接 口 方 式 与 微 处 理 器 连 接 , 可 以实 现 对 环 境 温 度 的 实 时 监 测 。LCD 时钟温度计系统
16、组成框图如图 4-1 所示:图 4-1 总体方案组成框图6第第 5 章章 系统硬件设计系统硬件设计5.1 LCD 显示模块设计功耗较小可直接与单片机接口相接,电源直接与电源电路相接,使用单片机的 P0 口和 P1 口与 1602 进行数据传递。1602 相应功能有: +5V 电压,对比度可调; 内含复位电路; 提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能; 有 80 字节显示数据存储器 DDRAM; 内建有 160 个 5X7 点阵的字型的字符发生器 CGROM; 8 个可由用户自定义的5X7 的字符发生器 CGRAM。5.1.1 1602 引脚介绍,1602 引脚描述见
17、图 5-1 所示:图 5-1 1602 引脚介绍5.1.2 1602 液晶 11 条指令介绍1、 清屏指令介绍如图 5-2 所示:图 5-2 清屏指令7功能: 清除液晶显示器,即将 DDRAM 的内容全部填入 “空白”的字符码 20H; 光标归位,即将光标撤回液晶显示屏的左上方; 将地址计数器(AC)的值设为 0;2、光标归位指令介绍如图 5-3 所示: 图 5-3 光标归位指令功能: 把光标撤回到显示器的左上方; 把地址计数器(AC)的值设置为 0; 保持 DDRAM 的内容不变 ;3、输入模式设置指令介绍如图 5-4 所示: 图 5-4 输入模式设置指令功能:设定每次写入 1 位数据后光标
18、的移位方向,并且设定每次写入的一个字符是否移动。参数设定的情况如下所示: 位名 设置 I/D 0=写入新数据后光标左移;1= 写入新数据后光标右移 S 0=写入新数据后显示屏不移动;1=写入新数据后显示屏整体右移 1 个字 4、显示开关控制指令如图 5-5 所示:图 5-5 显示开关控制指令功能:控制显示器开/关、光标显示/关闭以及光标是否闪烁。参数设定的情况如下: 位名 设置D 0=显示功能关、 1=显示功能开 C 0=无光标、1= 有光标 B 0=光标不闪烁、1= 光标闪烁85、设定显示屏或光标移动方向指令如图 5-6 所示:图 5-6 光标移动方向指令功能:使光标移位或使整个显示屏幕移位
19、。参数设定的情况如下: 位名 情况S/C 0=光标左移 1 格,且 AC 值减 1;1=光标右移 1 格,且 AC 值加 1 R/L 0=显示器上字符全部右移一格,但光标不动 1=显示器上字符全部右移一格,但光标不动 6、功能设定指令如图 5-7 所示:图 5-7 功能设定指令功能:设定数据总线位数、显示的行数及字型。参数设定的情况如下: 位名 设置 DL 0=数据总线为 4 位;1= 数据总线为 8 位 N 0=显示 1 行; 1=显示 2 行 F 0=57 点阵/每字符 ;1=510 点阵/每字符 7、功能:设定下一个要存入数据的 CGRAM 的地址。设定 CGRAM 地址指令如图 5-8 所示: 图 5-8 设定 CGRAM 地址指令8、功能:设定下一个要存入数据的 CGRAM 的地址 。设定 DDRAM 地址指令如图 5-9 所示: