智能水杯软件设计.docx

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

1.前言 (2)

2.总体设计框架 (2)

2.1实现的功能 (2)

2.2总体程序流程图 (3)

3.水温采集模块程序设计 (5)

3.1 DS18B20简介 (5)

3.2 DS18B20的初始化 (6)

3.3 DS18B20写周期 (8)

3.4 DS18B20读周期 (9)

3.5温度读取程序 (11)

4.显示模块程序设计 (14)

4.1 LCD1602初始化 (14)

4.2 LCD1602写周期 (16)

5.定时模块程序设计 (18)

5.1定时器设置 (19)

5.2定时器中断子程序 (20)

6.中断模块程序设计 (22)

6.1 外部中断设置 (22)

,.

6.2 键盘扫描中断子程序 (23)

7. 整体编程的实现 (25)

8. 设计过程中的问题及解决方案 (25)

9. 收获与感悟 (26)

1.前言

随着社会进步与经济发展,人们对生活质量的要求越来越高,每天的饮水量是衡量健康的重要指标。但有多少人因为忙碌的工作而全天忘记喝水?当你感到

口渴想要喝水的时候,体内的失水已经达到2% ,口渴本身其实是体内已经严重缺水的表现,这是造成“亚健康”状态的致命习惯之一。同时,越不注意喝水,

喝水的欲望就会越低,人就会变得越来越缺水。研究表明,通常情况下,正常人

每次喝水应控制在 300ml ,间隔时间为 30 到60 分钟。

本课程设计就此设计出一款智能水杯,用来智能显示水温和提醒喝水,既方便了生活,又保持了健康。本报告针对智能水杯的软件系统进行阐述,软件编程在keil 上操作。

2.总体设计框架

2.1 实现的功能

,.

定时开启按键

设置

外部中断定时器中断蜂鸣器提醒STC89C51温度读入

温度提示灯控制器DS18B20

LCD 温度显示

硬件结构框架图如图 1 所示。

图 1 硬件结构简图

(1)水温检测

使用 DS18B20 温度传感器,完成水温的时时检测功能。

(2)水温及定时时间显示

使用 LCD1602 液晶显示屏,完成水温及定时时间的显示功能。

(3)智能提醒

使用定时器 0 ,开启定时器中断,蜂鸣器提醒。

(4)定时时间设置

使用外部中断 0 扩展电路,用三个按键触发中断,完成对应定时开启和定时时间加减的功能。

2.2 总体程序流程图

总体程序流程图分为主程序和中断程序两部分,其中中断程序分为外部中断程序和定时器中断程序。流程图如下图所示。

开始

初始化

DS18B20 检测水温

LCD1602 显示水温

N

水温 >40℃?

Y

高温提示灯红灯亮

水温 <20℃?

N

Y

低温提示灯蓝灯亮

,.

外部 0 中断 ?

Y

执行按键扫描程序

N

按键 1 按下 ?

Y

定时时间增加, LCD 显示

N按键 2 按下 ?

适宜水温黄灯亮

结束

图 2 主程序流程图

按键 3 按下 ?Y

定时时间减少, LCD 显示

N

TR0=0?

Y

关闭计时器

开启计时器, LCD

显示定时器符号

图 3 外部按键中断流程图

,.

定时器中断 ?

Y

中断计数加 1

定时时间到达 ?一分钟时间到达?

Y

Y

蜂鸣器提醒,计数清零

LCD 显示定时时间减1

图 4 定时器中断程序设计流程图

3.水温采集模块程序设计

3.1 DS18B20简介

DS18B20单线数字温度传感器,即“一线器件”,其具有独特的优点:

(1)采用单总线的接口方式,与微处理器连接时,仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。单总线具有经济性好,抗干扰能力强,适

合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网

络,为测量系统的构建引入全新概念。

(2)测量温度范围宽,测量精度高DS18B20的测量范围为-55℃ ~+ 125℃;在 -10~+ 85 °C 范围内,精度为± 0.5 °C 。

(4)持多点组网功能多个DS18B20可以并联在惟一的单线上,实现多

点测温。

,.

(5)供电方式灵活 DS18B20可以通过内部寄生电路从数据线上获取电源。

因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋简单,可靠性更高。

(6)测量参数可配置DS18B20的测量分辨率可通过程序设定9~12位。

3.2 DS18B20的初始化

主机首先发出一个480 -960 微秒的低电平脉冲,然后释放总线变为高电平,并在随后的480 微秒时间内对总线进行检测,如果有低电平出现说明总线

上有器件已做出应答。若无低电平出现一直都是高电平说明总线上无器件应答。

作为从

图 5 DS18B20初始化时序图

器件的 DS18B20 在一上电后就一直在检测总线上是否有480 - 960 微秒的低电平出现,如果有,在总线转为高电平后等待15 - 60 微秒后将总线电平拉低60 -240 微秒做出响应存在脉冲,告诉主机本器件已做好准备。若没有检测到

就一直在检测等待。初始化时序图如图 5 所示。

相关文档
最新文档