基于单片机的多点温度检测系统设计

上传人:mg****85 文档编号:34152872 上传时间:2018-02-21 格式:DOC 页数:23 大小:273KB
返回 下载 相关 举报
基于单片机的多点温度检测系统设计_第1页
第1页 / 共23页
基于单片机的多点温度检测系统设计_第2页
第2页 / 共23页
基于单片机的多点温度检测系统设计_第3页
第3页 / 共23页
基于单片机的多点温度检测系统设计_第4页
第4页 / 共23页
基于单片机的多点温度检测系统设计_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《基于单片机的多点温度检测系统设计》由会员分享,可在线阅读,更多相关《基于单片机的多点温度检测系统设计(23页珍藏版)》请在金锄头文库上搜索。

1、 集成电路课程设计课 题:基于 AT89C51 单片机的多点温度测量系统设计 姓 名: 韩颖 班 级: 测控 12-1 学 号: 120123107073 指导老师: 汪玉坤 日 期: 2014-11 目 录一、绪论 二、总体方案设计三、硬件系统设计1 主控制器2 显示模块3 温度采集模块(1)DS18B20 的内部结构(2) 高速暂存存储器(3) DS18B20 的测温功能及原理(4)DS18B20 温度传感器与单片机的连接(5)单片机最小系统总体电路图四、系统软件设计五、系统仿真六、设计总结七、参考文献八、附源程序代码一、绪论在现代工业控制中和智能化仪表中,对于温度的控制,恒温等有较高的要

2、求,如对食品的管理,冰箱的恒温控制,而且现在越来越多的地方用到多点温度测量,比如冰箱的保鲜层和冷冻层是不同的温度这就需要多点的测量和显示可以让用户直观的看到温度值,并根据需要调节冰箱的温。它还在其他领域有着广泛的应用,如:消防电气的非破坏性温度检测,电力、电讯设备之过热故障预知检测,空调系统的温度检测。 。 。 。 。 。温度检测系统应用十分广阔。本设计采用 DALLAS 最新单线数字温度传感器 DS18B20 简介新的一线器件体积更小、适用电压更宽、更经济 DALLAS 半导体公司的数字化温度传感器 DS18B20 是世界上第一片支持一线总线,测量温度范围为-55C+125C,在-10+85

3、C 范围内,精度为0.5二、设计过程及工艺要求1、基本功能(1)检测两点温度(2)两秒间隔循环显示温度2、主要技术参数测温范围:-30到+99 测量精度: 0.0625显示精度: 0.1显示方法:LCD 循环显示3、系统设计系统使用 AT89C51 单片机对两个 DS18B20 进行数据采集,并通过 1602LCD 液晶显示器显示所采集的温度。DS18B20 以单总线协议工作,51 单片机首先分别发送复位脉冲,使信号上所有的DS18B20 芯片都被复位,程序先跳过 ROM,启动 DS18B20 进行温度变换,再读取存储器的第一位和第二位读取温度,通过 I/O 口传到 1602LCD 显示。DS

4、18B201 2 3图(1)DS18B20 引脚图引脚定义如图(1):(1) GND 为电源地;(2) DQ 为数字信号输入/输出端;(3) Vcc 为外接供电电源输入端(在寄生电源接线方式时接地) 。4、设计原理框图DS18B20(1)DS18B20(2)1620LCD图(2)原理框图三、硬件设计1、主控制器(单片机)基于设计的要求要使用 AT89C51 单片机作为本系统设计的核心器件。 由于 AT89C51 单片机是一种带 4K 字节闪烁可编程可擦除只读存储器的低电压,高性能 cMOS8 位微处理器。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集

5、和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,所以本系统采用 AT89C51 单片机作为系统的主控制器。其特点如下: 4K 字节可编程闪速程序存储器:1000 次循环写/擦 全静态工作:OHz-24MHz 三级程序存储器锁定 128 X 8 位内部数据存储器,32 条可编程 I/0 线 两个十六位定时器/计数器,六个中断源 可编程串行通道,低功耗闲置和掉电模式2. 显示模块本设计要求用 LCD 显示器来显示测出的温度。LCD 系列中 LM016L 型号的为2

6、行 16 列液晶,可显示 2 行 16 列英文字符,有 8 位数据总线 D0-D7,RS,R/W,EN 三个控制端口(共 14 线) ,工作电压为 5V。没背光,和常用的 1602B 功能和引脚一样(除了调背光的二个线脚) 。可以完全实现本设计的显示功能。3.温度采集模块本设计用的是 DS18B20 温度传感器,它是美国 DALLAS 半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现 912 位的数字值读数方式。DS18B20 内部结构(1) DS18B20 的内部结构如下图所示。最小AT89C51系统图(

7、3) DS18B20 内部结构图DS18B20 有 4 个主要的数据部件: 64 位激光 ROM。64 位激光 ROM 从高位到低位依次为 8 位 CRC、48 位序列号和 8 位家族代码(28H)组成。 温度灵敏元件。 非易失性温度报警触发器 TH 和 TL。可通过软件写入用户报警上下限值。 配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。DS18B20 在 0 工作时按此寄存器中的分辨率将温度转换成相应精度的数值,其各位定义如图(4)所示。TM R1 R0 1 1 1 1 1MSB DS18B20 配置寄存器结构图 LSB图(4)其中,TM:测试模式标志位,出厂时被写入 0,不能改变

8、;R0、R1:温度计分辨率设置位,其对应四种分辨率如下表所列,出厂时 R0、R1 置为缺省值:R0=1,R1=1(即 12 位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。配置寄存器与分辨率关系表 :R0 R1 温度计分辨率/bit 最大转换时间/us0 0 9 93.750 1 10 187.51 0 11 3751 1 12 750图(5)(2) 高速暂存存储器高速暂存存储器由 9 个字节组成,其分配如下图所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第 0 和第 1 个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格

9、式如图所示。对应的温度计算:当符号位 S=0 时,直接将二进制位转换为十进制;当 S=1 时,先将补码变为原码,再计算十进制值。温度低位 温度高位 TH TL 配置 保留 保留 保留 8 位 CRCLSB DS18B20 存储器映像图 MSB图(6)(3) DS18B20 的测温功能及原理温度值格式图 DS18B20 温度数据表:23 22 21 20 2-1 2-2 2-3 2-4MSB LSBS S S S S 26 25 24图(7)典型对应的温度值表:温度/ 二进制表示 十六进制表示+125 +25.0625+10.125+0.50-0.5-10.125-25.0625-5500000

10、111 1101000000000001 1001000100000000 1010001000000000 0000100000000000 0000000011111111 1111100011111111 0101111011111110 0110111111111100 1001000007D0H0191H00A2H0008H0000HFFF8HFF5EHFE6FHFC90H图(8)典型对应的温度值表(4)DS18B20 温度传感器与单片机的连接XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD3

11、36P0.4/AD435P0.5/AD534P0.6/AD63P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD1P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2.2/A1023P2.3/A1 24P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51X112MHzC12pF C22pFGNDC320uFR11k+5VGND图(9)单片机最小系统LCD 显示屏电

12、路:+5VD714D613D512D41D310D29D18D07E6RW5RS4VS1VD2VE3LCD1LM016L234567891RP110K+5V图(10)LCD 显示屏电路(5)具体总体电路图如下:XTAL218XTAL119ALE301PSN29RST9P0./AD039.1/18P0.2/AD237.3/36P0.4/AD435.5/54P0.6/AD63.7/72P1.01.2P1.23.34P1.45.56P1.67.78P3.0/RXD10.1/TP3.2/IN012./IT13P3.4/014P3.7/RD17.6/W6.5/T15P2.7/A1528P2.0/A821

13、.1/9P2./A023.3/14P2.4/A225.5/136.6/47U1AT89C51 30.8DQ2VC3GN1FIRSTDS18B20+5VD71463D5124D31029D1807E6RW5S4VS1D2VE3LCD1LM016LX112MHzC12pFC2pFGNDC320uFR11k+5VGND234567891RP110K+5V17.2DQ2VC3GN1SEONDDS18B20图(11)总体硬件图四、软件设计1、主程序方案主程序调用了 4 个子程序和一个欢迎开机画面的程序,4 个子程序分别是液晶初始化、DS18B201 的初始化、DS18B202 的初始化、和液晶显示数据的

14、程序。(1) 液晶初始化程序:8 位数据端口,2 行显示,5*7 点阵、开启显示, 无光标、清屏、AC递增, 画面不动。(2) 分别对两个 DS18B20 温度传感器初始化程序:初始化,读写一个字节,(3) 液晶显示的子程序:确定液晶字符的输入位置,将字符输出到液晶显示(4) 液晶显示温度程序:先读 DS18B20 当前温度,将温度转化成液晶字符显示。将各个功能程序以子程序的形式写好,当写主程序的时候,只需要调用子程序调用指令使得程序结构清晰,无论是修改还是维护都比较方便。将功能程序段写成子程序的形式,除了方便调用之外,还有一个好处那就是以后写程序的时候如果要用到,就可以直接调用这个单元功能模

15、块。2、流程图主程序流程图:开始液晶初始化两个 DS18B20初始化显示开机画面延时 2 秒显示第一个温度延时 2 秒显示第二个温度延时 2 秒图(11)主程序流程图开始功能设置(0x38)16*2 显示8 位数据、5*7 点阵不忙检测,执行三次延时 5ms开显示,无光标(0xc0)延时 5ms设置输入模式(0x06)延时 5ms清除显示器(0x01)延时 5ms退出返回图(12)液晶初始化流程图DS18B20 初始化发跳过 ROM 命令发温度读取命令清 DQ 准备发送延时 1us 以上读一位数据延时#include #include #define uint unsigned int#define uchar unsigned charuchar temp_value; /温度值uchar TempBuffer7;void show_time(); /液晶显示程序uchar temp_value1; /温度值uchar TempBuffer17;char xiaoshu=0;char xiaoshu1=0;void show_time1();/*1602 液晶显示部分子程序 */char done,count,temp,flag,up_flag,down_flag;/Port Definitions*

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号