基于ds18b20的数字温度计设计

  • 格式:doc
  • 大小:565.00 KB
  • 文档页数:7

《单片机原理及应用》课程设计实验报告

学年学期:2014-2015第1学期

专业班级:12级自动化B

指导教师:徐敏、关健生

设计时间:第17周

学时周数:每班/周

一、设计目的(基于ds18b20的数字温度计设计)

课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训练,让学生把学过的比较零碎的知识系统化,真正的能够把学过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深一步学习的热情,进一步掌握和利用C语言进行单片机程序设计的能力,熟练掌握键盘、显示、单总线,温度传感器DS18B20等知识点。

二、设计任务及要求

本课程设计的题目设计内容自选,学生可以根据平时的观察,了解单片机实验的应用系统,弄清其结构和功能,结合单片机课程及其相关的知识,充分发挥自身的想象力和创造力,自行选定设计项目,但总体应达到以下要求:

1、用89C51CPU,12M时钟,常规的上电和手动复位电路

2、包括3×4矩阵键盘

3、LCD显示显示器及接口

4、一路蜂鸣器输出

5.至少有1路输入信号,可以是模拟量或数字量

三、设计项目简介

本设计以检测温度并显示温度提供上下限报警为目的,按照系统设计功能的要求,确定系统由5个模块组成:单片机主控器,测温电路,按键电路,显示电路,报警电路。

1.单片机模块:主要实现数据的处理,输出执行,报警设置功能以及矩阵键盘的使用。通过从DS18b20读取的温度超过上下限的初始值时候,调用报警程序进行报警。通过按键来改变上下限的初始值;

2. 温度传感模块:主要功能是通过DS18B20对温度的采集及将测量的温度值读到单片机内,并在LCD1602上显示出来。

3. 显示模块:可以显示实时的温度值以及设置的上下限。

四、电路原理图

(1)仿真电路图

(2)实际电路图

五、系统功能描述

1.运用DS18B20将测量温度值读到单片机内,将其在LCD1602上显示出来。

2.利用3*4矩阵键盘设定温度值的上下限,并在LCD上显示出来。

3.将读进来的温度和设置的上下限值进行比较,若测量温度值超出上下限,就调用报警程序进行报警;若测量温度值在设定范围之内,则不报警。

4.当温度变化时,读取温度值并在LCD上显示。

六、程序框图

(1)系统框图

(2)主程序流程图

按键输入电路

温度检查 复位电路 STC89C51

单片机

LCD显示器

蜂鸣器电路

开 始 LCD驱动电路

(2)LCD初始化程序框图 初始化

读取测量温度值

读取按键值

键盘处理

温度比较处理

温度大于上限值

温度小于下限值

温度显示

结 束 蜂鸣器报警 Y

Y N

N

开 始

初始化

LCD是否忙

写指令数据

复 位

LCD是否忙

写显示数据

复 位

读完数据

结 束 N N

YU Y

Y N (4)温度传感器DS18B20初始化程序框图

七、程序清单

#include <> 开 始

初始化

延时

复 位

读取温度

显示温度

温度值超出上下限范围

结 束 蜂鸣器报警 Y N 温度转换 #include <>

#define uchar unsigned char

#define uint unsigned int

uchar buf1;

uchar buf2;

uchar buf3;

uchar tt;

uchar n=0; ......忽略此处.......