1、创新项目报告项目名称: 基于单片机的数字温度控制系统设计 专 业: 电子信息工程技术 班 级: 电信 141 指导 老师: 乔志勇 姓 名: 卢德寅 地 点: 教学楼 时 间: 2015 年 12 月成绩评定二一六 年 一 月 十 日摘 要随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同种类的传感器,可实现诸如电压、湿度、温度、速度、硬度、压力等的物理量的测量。本文将介绍一种基于单片机控制理论及其应用系统设计的数字温度计。本文主要介绍了一个
2、基于 AT89C51 单片机的测温系统,详细描述了利用数字温度传感器 DS18B20 开发测温系统的过程,重点对传感器在单片机喜爱的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也进行一一介绍,该系统可以方便的是实现温度采集和显示,并可以根据需要任意设定上下限报警温度,它使用起来方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合我们日常生活和工农业生产中的温度测量,也可以当做温度处理模块嵌入其他系统中,作为其他主系统的辅助扩展。DS18B20 和 AT89C51 结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合与恶劣环境下进行现场温度测量,有广泛的应
3、用前景。本设计首先是确定目标,气候是各个功能模块的设计,再在 Proteus 软件上进行仿真,修改,仿真。本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警,同时根据设定的温度范围通过升降温电路控制环境的温度达到恒温效果。 【关键词】 单片机,数字控制,温度计, DS18B20,STC89C52RC目录第 1 章 绪 论 .11 研究意义及背景 .12 设计目的 .13 主要工作 .1第 2 章 系 统概述 .21 系统方案 .22 系统组成 .2第 3 章 系统硬件设计 .31 AT89S52 单片机的介绍 .32 显示电路 .43 DS18B20 介绍 .63
4、.1 温度传感器测温原理 .74 系统工作原理 .75 系统整体电路 .8第 4 章 系统软件设计 .91 主程序设计 .92 DS18B20 初始化 .103 DS18B20 温度传感器与单片机的接口电路 .124 数码管显示与单片机对接 .145 仿真结果 .166 总程序 .19第五章 实物图 .30总 结 .311第 1 章 绪 论1 研究意义及背景随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度
5、的采集和数据处理问题能够得到很好的解决。本设计使用单片机作为核心进行控制。单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字化、智能化方面有广泛的用途。2 设计目的1. 温度显示基本范围 1030。2. 精度误差小于 0.01。3. 所测温度值由 LCD1602 液晶显示屏显示。4. 可以设定温度的上下限控制及报警功能。3 主要工作本设计的研究重点是设计一种基于单片机的数字温度计控制系统。设计采用数字温度传感器 DS18B20,此传感器读取被测量温度值,并进行转换。将转换后的数据送到单片机处理,再通过 LCD1602 液晶显示
6、屏显示出来。2第 2 章 系统概述1 系统方案数字温度传感器DS18B20输出信号全数字化,便于单片机处理及控制,省去传统测温方法的很多外围电路。且该芯片的物理性、化学性很稳定,能用做工业测温元件。采用51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,硬件实现简单,体积小,安装方便。所以该系统利用AT89C51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可根据需要设定上下限控制及报警温度。2 系统组成本设计是以 AT89S52 单片机为核心的一种数字温度显示控制系统,系统整体硬件电路包括:采集模块、显示模块、设置模块和单片机
7、最小系统模块四大模块组成。系统框图如图 2-1 所示。图 2-1 系统基本方框图单片机最小系统显示模块采集模块设置模块报警/控制模块3第 3 章 系统硬件设计1 AT89S52 单片机的介绍AT89S52 有 40 个引脚,4 个 8 位并行 I/O 口,1 个全双工异步串行口,同时内含 5 个中断源,2 个优先级,2 个 16 位定时/计数器。AT89S52 的存储器系统由 4K 的程序存储器(掩膜 ROM),和 128B 的数据存储器(RAM)组成,具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计,使用系统可用 USB 供电。AT89
8、S52 单片机的基本组成框图见图 3-1。时钟电路R O M / E P R O M / F l a s h 4 K BR A M 1 2 8 BS F R 2 1 个定时个 / 计数器 2C P U总线控制中断系统5 个中断源2 个优先级串行口全双工 1 个4 个并行口X T A L 2 X T A L 1R S TE AA L EP S E NP 0 P 1 P 2P 3V s sV c c图 3-1 AT89S52 单片机结构由图 3-1 可见,AT89S52 单片机主要由以下几部分组成:1. CPU 系统8 位 CPU,含布尔处理器;时钟电路;总线控制逻辑。2. 存储器系统4K 字节的
9、程序存储器(ROM/EPROM/Flash,可外扩至 64KB) ;128 字节的数据存储器(RAM,可再外扩 64KB) ;特殊功能寄存器 SFR。3. I/O 口和其他功能单元4 个并行 I/O 口;42 个 16 位定时计数器;1 个全双工异步串行口;中断系统(5 个中断源,2 个优先级) 。2 显示电路1602 液晶简介LCD1602 分为带背光和不带背光两种,基控制器大部分为 HD44780,带背光的 比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如图 3-2 所示。图 3-2 LCD1602 规格引脚功能LCD1602 采用标准的 14 脚(无背光)或 16 脚(带背光)
10、接口,各引脚接口说明如表 3.1所示。表 3.1 LCD1602 引脚说明编号 符号 引脚说明 编号 符号 引脚说明1 VSS 电源地 9 D2 数据2 VDD 电源正极 10 D3 数据3 VL 液晶显示偏压 11 D4 数据4 RS 数据/命令选择 12 D5 数据5 R/W 读/写选择 13 D6 数据6 E 使能信号 14 D7 数据7 D0 数据 15 BLA 背光源正极58 D1 数据 16 BLK 背光源负极指令说明LCD1602 液晶模块内部的控制器共有 11 条控制指令,如表 3.2 所示。表 3.2 LCD1602 内部控制器序号指令RS R/W D7 D6 D5 D4 D
11、3 D2 D1 D01清显示0 0 0 0 0 0 0 0 0 12光标返回0 0 0 0 0 0 0 0 1 *3置输入模式0 0 0 0 0 0 0 1 I/D S4显示开/关控制0 0 0 0 0 0 1 D C B5光标或字符移位0 0 0 0 0 1 S/C R/L * *6置功能0 0 0 0 1 DL N F * *7置字符发生存贮器地址0 0 0 1字符发生存贮器地址8置数据存0 0 1显示数据存贮器地址6贮器地址9读忙标志或地址0 1 BF计数器地址10写数到CGRAM或DDRAM)1 0要写的数据内容11从CGRAM或DDRAM读数1 1读出的数据内容3 DS18B20 介
12、绍DS18B20 引脚如图 3-3 所示。图 3-3 DS18B20 引脚图数字温度传感器 DS18B20 是一种新型的“一线器件”, 采用单总线的数据传输,其体积小,输出信号全数字化,便于单片机处理及控制,在 0100 摄氏度时,其最大线形偏差小于 1 摄氏度。工作电源既可以在远端引入,也可以采用寄生电源方式产生。多个DS18B20 可以并联到 3 根或 2 根线上,CPU 只需一根端口线就能与诸多 DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,线路十分简单。3.1 温度传感器测温原理低温度系数晶振的振荡频率受温度影响很小,用于产生固定
13、频率的脉冲信号送给计数器 1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器 2 的脉冲7输入。计数器 1 和温度寄存器被预置在55所对应的一个基数值。计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当计数器 1 的预置值减到 0 时,温度寄存器的值将加 1,计数器 1 的预置将重新被装入,计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。其内部结构图如图 3-4 所示。6 4位R O M和单线接口高速缓存存储器与控制逻辑温度传感器低温触发器 T L8 位 C R C 发生器高温触发器 T H配置寄存器V d d图 3-4 DS18B20 内部结构4 系统工作原理温度传感器 DS18B20 将模拟温度值经过 DS18B20 处理后转换为数字值,然后送到单片机中进行数据处理,单片机将处理后的数据通过 LCD1602 显示屏显示出来,同时判断测得的温度和设置控制及报警的温度限进行比较,超过限度则通过蜂鸣器发出报警声音。