基于51单片机与DS18B20的数字温度计设计(3)

2018-11-21 23:42

4.5 键盘输入电路

四个键分别连接单片机P3^4、P3^5、P3^6、P3^7构成独立式键盘,分别实现加、减、报警温度设定功能键和温度查询功能键。

图11 键盘输入电路

5 软件设计

5.1 主程序模块

主程序需要调用3个子程序,分别为:

? 实时温度显示子程序:驱动数码管把实时温度值送出在LED数码管显示 ? 查询记录温度值子程序:查询过去存储的温度值,最多可查询10个值 ? 温度设定、报警子程序:设定报警温度值,当温度超过该值时产生报警,

即驱动蜂鸣器鸣叫、8个发光二极管发光 主程序流程图:

开始

定时器初始化、启动 显示实时温度 温度设定、报警

查询记录温度值

图12 主程序流程图

5.2 读温度值模块

读温度值模块需要调用4个子程序,分别为:

? DS18B20初始化子程序:让单片机知道DS18B20在总线上且已准备好操

? DS18B20写字节子程序:对DS18B20发出命令

? DS18B20读字节子程序:读取DS18B20存储器的数据 ? 延时子程序:对DS18B20操作时的时序控制 1. 读温度值模块流程图:

入口

DS18B20初始化 跳过读序列号 启动温度转换 延时 DS18B20初始化 跳过读序列号 读取温度值高低位

数据转换处理 返回

图13 读温度值子程序流程图

2. DS18B20初始化子程序流程图:

入口

DQ置高电平 稍延时 DQ复位0 延时>480ms DQ拉高电平 延时15~60ms DQ为低电平? N Y 返回 图14 DS18B20初始化子程序流程图

3. DS18B20写字节和读字节子程序流程图:

图15 DS18B20写字节子程序流程图

图16 DS18B20读字节子程序流程图

5.3 中断模块

中断采用T0方式1,初始值定时为50ms。 中断模块需调用两个子程序:

? 读温度值子程序:定时读取温度值,实时更新温度值 ? 记录温度值子程序:定时记录温度值,供查询使用

把这两个子程序放在中断的原因是,不会因为调整报警温度或查询历史温度值而停止更新温度值和记录温度值。 中断模块流程图:

中断入口 定时器重置初值 计数值加1 1秒? Y 读温度值 N 记录温度值 中断返回

图17中断模块流程图

5.4 温度查询模块

温度查询模块需要接受按键输入,进入查询界面后,按加减键分别查询上一个和下一个历史温度值,并驱动数码管显示需要查询的温度值。 温度查询模块流程图如下:

入口

N 功能键按下?

Y

延时消抖

N 确认按下?

Y 显示温度值与位次


基于51单片机与DS18B20的数字温度计设计(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《招标拍卖挂牌出让国有建设用地使用权规定》(部39号令)详解

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: