基于51单片机的温度警报器的设计单片机课程设计.pdf

上传人:白大夫 文档编号:5433419 上传时间:2020-05-09 格式:PDF 页数:23 大小:1,007.64KB
返回 下载 相关 举报
基于51单片机的温度警报器的设计单片机课程设计.pdf_第1页
第1页 / 共23页
基于51单片机的温度警报器的设计单片机课程设计.pdf_第2页
第2页 / 共23页
基于51单片机的温度警报器的设计单片机课程设计.pdf_第3页
第3页 / 共23页
基于51单片机的温度警报器的设计单片机课程设计.pdf_第4页
第4页 / 共23页
基于51单片机的温度警报器的设计单片机课程设计.pdf_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《基于51单片机的温度警报器的设计单片机课程设计.pdf》由会员分享,可在线阅读,更多相关《基于51单片机的温度警报器的设计单片机课程设计.pdf(23页珍藏版)》请在三一文库上搜索。

1、单片机原理及应用课程设计任务书 二级学院:电子信息与电气工程学院专业: 班级: 学生姓名指导老师职称讲师 课题名称基于51单片机的温度警报器的设计 课题工作 内容 1、 设计内容:硬件电路的设计、软件电路的设计 2、 总体方案的选择、讨论确定。软件流程图的设计,硬件电路各 部分的设计,程序的软调试、整机的调试。 3、 撰写设计报告 指标要 求 1、LED能显示传感器的温度 2、温度高于 30度或者小于 15度,蜂鸣器发出警报 进程安排 第一天下达任务、讲授、查资料 第二天方案确定 第三天、第四天软、硬件设计 第五天第八天软、硬件调试 第九天撰写报告 第十天答辩考核 主要参考文 献 1 钟晓伟,

2、 宋哲存, 基于单片机的实验是温湿度控制系统设计A 林业机械 与木工设备 2 叶景,基于单片机的温度控制系统的设计经验与交流, 2008 3 杨光友 . 单片机微型计算机原理及接口技术M . 北京:中国水利水电出 版社, 2002 地点起止日期9.5-9.15 课 程 设 计 题目:基于单片机的数字温度报警器的设计 姓名: 学院: 专业: 班级: 学号: 指导教师: 2011年 9 月 15 日 目录 摘要 4 1 引言 4 1.1 课题背景 4 1.2 研究内容和意义 6 2 芯片介绍 6 2.1 DS18B20 概述 6 2.1.1 DS18B20 封装形式及引脚功能 7 2.1.2 DS

3、18B20 内部结构 7 2.1.3 DS18B20 供电方式 9 2.1.4 DS18B20 的测温原理 . 10 2.1.5 DS18B20 的 ROM 命令 . 12 2.2 AT89C52 概述 . 13 2.2.1 单片机 AT89C52 介绍 . 13 2.2.2 功能特性概述 . 13 3 系统硬件设计 . 14 3.1 单片机最小系统的设计 . 14 3.2 温度采集电路的设计 . 15 3.3 LED 显示报警电路的设计. 16 4 总结. 16 致谢. 17 参考文献 . 18 附录 A 总电路图 . 19 附录 B 原器件清单 . 19 附录 C 温度报警器部分程序. 2

4、0 摘要 随着时代的进步和发展,温度的测试已经影响到我们的生活、工作、科研、 各个领域,已经成为了一种非常重要的事情,因此设计一个温度测试的系统势在 必行。 本文主要介绍了一个基于AT89C52 单片机的数字温度报警器系统。详细描述 了利用数字温度传感器DS18B20 开发测温系统的过程, 重点对传感器在单片机下 的硬件连接, 软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也 一一进行了介绍, 该系统可以方便的实现温度的采集和报警,并可以根据需要任 意上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体 积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量

5、,也可 以当做温度处理模块潜入其他系统中,作为其他主系统的辅助扩展。DS18B20 与 AT89C52 结合实现最简温度报警系统,该系统结构简单,抗干扰能力强,适合于 恶劣环境下进行现场温度测量,有广泛的应用前景。 关键词:单片机;温度检测;AT89C52;DS18B20; 1 引言 1.1 课题背景 温度是工业对象中主要的被控参数之一,如冶金、机械、食品、化工各类工 业生产中,广泛使用的各种加热炉、热处理炉、反应炉等,对工件的温度处理要 求严格控制。 随着科学技术的发展, 要求温度测量的范围向深度和广度发展,以 满足工业生产和科学技术的要求。 基于 AT89C51单片机提高了系统的可移植性、

6、扩展性,利于现代测控、 自动 化、电气技术等专业实训要求。 以单片机为核心设计的温度报警器,具有安全可 靠、操作简单方便、智能控制等优点。 温度对于工业生产如此重要, 由此推进了温度传感器的发展。 温度传感器主 要经过了三个发展阶段 1 : (1)模拟集成温度传感器。该传感器是采用硅半导体集成工艺制成,因此 亦称硅传感器或单片集成温度传感器。此种传感器具有功能单一( 仅测量温度 ) 、 测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等特点,适合 远距离测温、控温,不需要进行非线性校准,外围电路简单。它是目前在国内外 应用最为普遍的一种集成传感器,典型产品有AD590 、AD592

7、、TMP17 、LM135等; (2)模拟集成温度控制器。模拟集成温度控制器主要包括温控开关、可编 程温度控制器,典型产品有LM56 、AD22105和 MAX6509 。某些增强型集成温度控 制器( 例如 TC652/653)中还包含了 A/D转换器以及固化好的程序, 这与智能温度 传感器有某些相似之处。 但它自成系统, 工作时并不受微处理器的控制,这是二 者的主要区别; (3)智能温度传感器 ( 亦称数字温度传感器 )。智能温度传感器是在20 世 纪 90 年代中期问世的,其内部都包含温度传感器、A/D 转换器、信号处理器、 存储器 ( 或寄存器 ) 和接口电路。有的产品还带多路选择器、中

8、央控制器(CPU)、 随机存取存储器 (RAM) 和只读存储器 (ROM) 。 智能温度传感器的特点是能输出温度 数据及相关的温度控制量,适配各种微控制器(MCU) ;并且它是在硬件的基础上 通过软件来实现测试功能的,其智能化程度也取决于软件的开发水平。 现代信息技术的三大基础是信息采集 2 (即传感器技术)、信息传输(通信 技术)和信息处理(计算机技术) 。传感器属于信息技术的前沿尖端产品,尤其 是温度传感器被广泛用于工农业生产、科学研究和生活等领域, 数量高居各种传 感器之首。数字温度传感器可以直接将被检测的温度信息以数字化形式输出,与 传统的模拟式温度传感器相比,具有测量精度高、功耗低、

9、稳定性好、外围接口 电路简单特点。 而单片机微处理器越来越丰富的外围功能模块,更加方便了数字 式温度传感器输出信号的处理。 智能温度传感器内部都包含温度传感器、A/D 转化器、信号处理器、存储器 (或寄存器)和接口电路。有的产品还带多路选择器、中央处理器(CPU ) 、随机 存取存储器( RAM )和只读存储器( ROM ) 。并且它是在硬件的基础上通过软件来 实现测试功能的,其智能化程度也取决于软件的开发水平。进入21 世纪后,智 能温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚 拟传感器和网络传感器、 研制单片机测温系统等的方向发展。数字化温度传感器 可以直接将温度量

10、以数字脉冲信号形式输出,具有测量精度高、抗干扰能力强、 传输距离远、 外围接口电路简单等诸多优点。 同时数字温度传感器还可直接与微 AT89C52 单片机 数字温度传 感器 双限报警系 统 译码显示电 路 处理器进行接口,大大方便了传感器输出信号的处理. 数字单总线温度传感器是 目前最新的测温器件,它集温度测量,A/D 转换于一体,具有单总线结构,数字 量输出,直接与微机接口等优点。 1.2 研究内容和意义 本温度报警器以AT89C51单片机为控制核心 , 由一数字温度传感器DS18B20 测量被控温度, 结合 7 段 LED以及驱动 LED的 74LS245组合而成。当被测量值超 出预设范围

11、则发出警报,且精度高,适用于大多数工业生产以及教育教学领域。 温度是一种最基本的环境参数, 它是与人类的生活、 工作关系最密切的物理 量,也是各门学科与工程研究设计中经常遇到和必须精确测量的物理量。从工业 炉温、环境气温到人体温度;从空间、海洋到家用电器,各个技术领域都离不开 测温和控温。因此,研究温度的测量和控制方法具有重要的意义。 设计原理 2 芯片介绍 2.1 DS18B20 概述 DS18B20是 Dallas公司继 DS1820后推出的一种改进型智能数字温度传感 器,与传统的热敏电阻相比, 只需一根线就能直接读出被测温度值,并可根据实 际需求来编程实现912位数字值的读数方式 3 。

12、 2.1.1 DS18B20 封装形式及引脚功能 图 2.1 DS18B20 封装形式和引脚功能 如图 2.1 所示, DS18B20 的外形如一只三极管,引脚名称及作用如下: GND: 接地端。 DQ :数据输入 / 输出脚,与 TTL电平兼容。 VDD :可接电源, 也可接地。 因为每只 DS18B20 都可以设置成两种供电方式, 即数据总线供电方式和外部供电方式。采用数据总线供电方式时VDD 接地,可以 节省一根传输线, 但完成数据测量的时间较长; 采用外部供电方式则VDD 接+5V, 多用一根导线,但测量速度较快。 2.1.2 DS18B20 内部结构 64位 ROM 和单 线接 口

13、存储和控制逻 高 速 缓 存 器 温度传感器 高 温 触 发 器 低 温 触 发 器 匹配寄存器 8 位 CRC 发 电 源 检 C DQ VDD 内 部 图 2.2 DS18B20内部 图 2.2 中出示了 DS18B20 的主要内部部件,下面对DS18B20内部部分进行 简单的描述 4 : (1)64 位 ROM 。64 位 ROM 是由厂家使用激光刻录的一个64 位二进制 ROM 代 码,是该芯片的标识号,如表2.1 所示: 表 2.1 64位 ROM 标识 8 位循环冗余检验48 位序列号8 位分类编号(10H) MSB LSB MSB LSB MSB LSB 第 1 个 8 位表示产

14、品分类编号, DS18B20 的分类号为 10H ;接着为 48 位序列 号。它是一个大于281*1012 的十进制编码,作为该芯片的唯一标示代码;最后 8 位为前 56位的 CRC 循环冗余校验码,由于每个芯片的64 位 ROM 代码不同,因 此在单总线上能够并接多个DS18B20 进行多点温度实习检验。 (2)温度传感器。温度传感器是DS18B20 的核心部分,该功能部件可完成 对温度的测量通过软件编程可将-55125范围内的温度值按9 位、10 位、11 位、12 位的分辨率进行量化,以上的分辨率都包括一个符号位,因此对应的温 度量化值分别为 0.5 、 0.25 、 0.125、 0.

15、0625, 即最高分辨率为0.0625。 芯片出厂时默认为12 位的转换精度。当接收到温度转换命令(44H )后,开始转 换,转换完成后的温度以16 位带符号扩展的的二进制补码形式表示,存储在高 速缓存器 RAM 的第 0,1 字节中,二进制数的前5 位是符号位。如果测得的温度 大于 0,这 5 位为 0,只要将测得的数值乘上0.0625 即可得到实际温度; 如果温 度小于 0,这 5 位为 1,测得的数值需要取反加1 再乘上 0.0625 即可得到实际温 度。 (3)高速缓存器。 DS18B20内部的高速缓存器包括一个高速暂存器RAM 和 一个非易失性可电擦除的EEPROM。非易失性可点擦除

16、EEPROM用来存放高温触发 器 TH 、低温触发器 TL和配置寄存器中的信息。 (4) 配置寄存器。配置寄存器的内容用于确定温度值的数字转换率。DS18B20 工作是按此寄存器的分辨率将温度转换为相应精度的数值,它是高速缓存器的第 5 个字节,该字节定义如表2.2 所示: 表 2.2 匹配寄存器 TM R0 R1 1 1 1 1 1 TM 是测试模式位,用于设置 DS18B20 在工作模式还是在测试模式, 在DS18B20 出厂时该位被设置为0,用户不要去改动; R1和 R0用来设置分辨率;其余5 位 均固定为 1。DS18B20 分辨率的设置如表2.3 所示: 表 2.3 DS18B20分

17、辨率的设置 R1 R0 分辨率最大转换时间 /ms 0 0 9 位93.75 0 1 10 位187.5 1 0 11 位375 1 1 12 位750 DS18B20 依靠一个单线端口通讯。 在单线端口条件下, 必须先建立 ROM 操作 协议,才能进行存储器和控制操作。 因此,控制器必须首先提供下面5 个 ROM 操 作命令之一: 1)读 ROM ; 2)匹配 ROM ; 3)搜索 ROM ; 4)跳过 ROM ; 5)报警搜索。 这些命令对每个器件的激光ROM 部分进行操作,在单线总线上挂有多个器 件时,可以区分出单个器件, 同时可以向总线控制器指明有多少器件或是什么型 号的器件。成功执行

18、完一条ROM 操作序列后,即可进行存储器和控制操作,控 制器可以提供6 条存储器和控制操作指令中的任一条。一条控制操作命令指示 DS18B20 完成一次温度测量。测量结果放在DS18B20 的暂存器里,用一条读暂存 器内容的存储器操作命令可以把暂存器中数据读出。温度报警触发器TH 和 TL 各由一个 EEPROM字节构成。如果没有对DS18B20 使用报警搜索命令,这些寄存 器可以做为一般用途的用户存储器使用。可以用一条存储器操作命令对TH 和 TL 进行写入,对这些寄存器的读出需要通过暂存器。所有数据都是以最低有效位在 前的方式进行读写。 2.1.3 DS18B20 供电方式 DS18B20

19、 可以采用外部电源供电和寄生电源供电两种模式。外部电源供电模 式是将 DS18B20 的 GND 直接接地,DQ 与但单总线相连作为信号线, VDD 与外部电 源正极相连。如图2.3 所示: 图中 DS18B20 的 DQ端口通过接入一个4.7K 的上拉电阻到 VCC ,从而实现外 部电源供电方式。 寄生电源供电模式如图2.4 所示:从图中可知, DS18B20 的 GND 和 VDD 均直 接接地, DQ 与单总线相连,单片机其中一个I/O 口与 DS18B20 的 DQ 端相连。 2.1.4 DS18B20 的测温原理 DS18B20 的测温原理如图 2.5 所示, 其主要由斜率累加器、

20、温度系数振荡器、 减法计数器、温度存储器等功能部件组成。 单片机 DS18B20 外部+5V电源 VDD DQ 4.7K VCC 其它单线器件 图 2.3 DS18B20 外部供电方式 单片机 DS18B20 GND 4.7K 图 2.4 DS18B20 寄生电源供电方式 +5V VCC 图 2.5 DS18B20 的测温原理 DS1820 是这样测温 5 的:用一个高温度系数的振荡器确定一个门周期,内 部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温 度值。计数器被预置到对应于-55的一个值。如果计数器在门周期结束前到达 0,则温度寄存器(同样被预置到-55)的值增加,表

21、明所测温度大于-55。 同时,计数器被复位到一个值, 这个值由斜坡式累加器电路确定,斜坡式累加器 电路用来补偿感温振荡器的抛物线特性。然后计数器又开始计数直到0,如果门 周期仍未结束,将重复这一过程。 斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分 辨率。这是通过改变计数器对温度每增加一度所需计数的的值来实现的。因此, 要想获得所需的分辨力, 必须同时知道在给定温度下计数器的值和每一度的计数 值。 DS18B20 内部对此计算的结果可提供0.5 的分辨率。温度以16bit带符号 位扩展的二进制补码形式读出,表2.4 给出了温度值和输出数据的关系。数据 通过单线接口以串行方式

22、传输。 DS18B20 测温范围 -55+125,以 0.5 递增。 表 2.4 温度数据关系 温度数据输出(二进制)数据输出(十六进制) +125 00000000 11111010 00FA +25 00000000 00110010 0032 +0.5 00000000 00000001 0001 0 00000000 00000000 0000 -0.5 11111111 11111111 FFFF -25 11111111 11001110 FFCE -55 11111111 10010010 FF92 S18B20遵循单总线协议,每次测温时都必须有4 个过程 6 : ? 初始化;

23、? 传送 ROM 操作命令; ? 传送 ROM 操作命令; ? 数据交换; 2.1.5 DS18B20 的 ROM 命令 read ROM (读 ROM ). 命令代码为 33H ,允许主设备读出DS18B20 的 64 位二 进制 ROM 代码。该命令只适用于总线上存在单个DS18B20. Match ROM (匹配 ROM ) 。命令代码为 55H ,若总线上有多个从设备时,适用 该命令可选中某一指定的DS18B20 ,即只有和 64 位二进制 ROM 代码完全匹配的 DS18B20 才能响应其操作。 Skip ROM(跳过 ROM) 。命令代码为 CCH ,在启动所有 DS18B20 转

24、换之前或系 统只有一个 DS18B20 时,该命令将允许主设备不提供64 位二进制 ROM 代码就适 用存储器操作命令。 Search ROM( 搜索 ROM) 。命令代码为 F0H,当系统初次启动时,主设备可能不 知纵向上有多少个从设备或者它们的ROM 代码, 适用该命令可确定系统中的从设 备个数及其 RON 代码。 Alarm ROM (报警搜索 ROM ) 。命令代码为 ECH ,该命令用于鉴别和定位系统 中超出程序设定的报警温度值。 Write scratchpad( 写暂存器 ) 。命令代码为 4EH ,允许主设备向 DS18B20 的 暂存器写入两个字节的数据,其中第一个字节写入T

25、H 中,第二个字节写入TL 中。可以在任何时刻发出复位命令终止数据的写入。 Read scratchpad( 读暂存器 )。命令代码为BEH ,允许主设备读取暂存器中 的内容。从第一个字节开始直到读完第九个字节CRC 读完。也可以在任何时刻发 出复位命令中止数据的读取操作。 Copy scratchpad( 复制暂存器 )。命令代码为 48H ,将温度报警触发器TH和 TL 中的字节复制到非易失性EEPROM。若主机在该命令之后又发出读操作,而 DS18B20 又忙于将暂存器中的内容复制到EEPROM时, DS18B20 就会输出一个“0”, 若复制结束,则 DS18B20 输出一个“ 1”

26、。 Convert T( 温度转换 )。命令代码为44H,启动一次温度转换,若主机在该 命令之后又发出其它操作,而DS18B20 又忙于温度转换, DS18B20 就会输出一个 “0” ,若转换结束,则DS18B20 输出一个“ 1” 。 Recall E2( 拷回暂存器 ) 。命令代码为 B8H 。将温度报警触发器TH和 TL中 的字节从 EEPROM中拷回到暂存器中。该操作是在DS18B20 上电时自动执行,若 执行该命令后又发出读操作,DS18B20 会输出温度转换忙标识: 0 为忙,1 完成。 Read power supply( 读电源使用模式 ) 。命令代码为B4H 。主设备将该命

27、令 发给 DS18B20 后发出读操作, DS18B20 会返回它的电源使用模式: 0 为寄生电源, 1 为外部电源。 2.2 AT89C52 概述 2.2.1 单片机 AT89C52 介绍 AT89C52 是一个低电压,高性能CMOS8 位单片机,片内含8k bytes 的可反复擦写的Flash 只读程序存储器和256 bytes 的随机存取数据存储器(RAM ) ,器件采用ATMEL 公司的高 密度、非易失性存储技术生产,兼容标准MCS-51 指令系统,片内置通用8位中央处理器和 Flash 存储单元, AT89C52 单片机在电子行业中有着广泛的应用。 2.2.2 主要功能特性 1、兼容

28、MCS51指令系统2、8k 可反复擦写 (大于 1000次) Flash ROM ;3、 32个双向 I/O 口;4、256x8bit 内部 RAM ;5、3个16位可编程定时 /计数器中断; 6、时钟频率 0-24MHz ;7、2个串行中断,可编程UART 串行通道;8、2个外部 中断源,共 8个中断源;9、2个读写中断口线,3级加密位;10、低功耗空闲和掉 电模式,软件设置睡眠和唤醒功能;11、有 PDIP、PQFP、TQFP 及 PLCC 等几种封 装形式,以适应不同产品的需求。 3 系统硬件设计 3.1 单片机最小系统的设计 单片机是一种集成电路芯片, 是采用超大规模集成电路技术把具有

29、数据处理 能力的中央处理器CPU 随机存储器 RAM 、只读存储器 ROM、多种 I/O 口和中 断系统、定时器 /计时器等功能集成到一块硅片上构成的一个小而完善的计算机 系统。本次课程设计中选用AT89C52 式单片机,其最小系统主要由电复位、振 荡电路组成。单片机的最小系统如图3 所示。 单片机的复位电路原理是在单片机的复位引脚RST 上电阻和电容,实现上 电复位。当复位电平持续两个时钟周期以上时复位有效。复位电路由按键复位和 上电复位两部分组成,上电复位是在复位引脚上连接一个电容到VCC ,再连接一 个电阻到 GND ;按键复位是在复位电容上并联一个开关,当开关按下时电容被放 电、RST

30、也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使 单片机复位。 AT89C51 单片机使用 12MHZ 的晶振最为振荡源,由于单片机内部有振荡电路, 所以外部只要连接一个晶振和两个电容即可,电容一般在 15pF至 50pF之间。外 部晶振结合单片机内部电路产生单片机所需的时钟频率。 图 3 单片机最小系统 3.2 温度采集电路的设计 温度采集电路部分,采用数字温度传感器DS18B20 进行温度采集。 DS18B20 是 DALLAS 公司生产的一线式数字温度传感器,具有3 个引脚;温度侧量范围为 -55+125,测量精度为 0.5 ;被测温度用符号扩展的16 位数字量方式串 行输

31、出;CPU只需用一个端口线就可以与DS18B20 通信。温度采集电路如图4 所 示。 图 4 温度采集电路 3.3 LED 显示报警电路的设计 LED数码管与单片机的P0 口相连,单片机将采集到的温度值转化为与数码管对 应的数据, 通过 P0口输出显示。 即信号通过译码管的端口a、b、c、d、e、f、g 、 dp 端来控制每段译码管的亮灭与否,同时通过端口1、2、3、4 四个端口来控 制四个译码管。在本次设计中,用集成芯片74HC245 驱动数码管。同时当采集 到的温度值超过所设置的范围时,单片机会输出一信号, 通过三极管放大后驱动 蜂鸣器发出报警信号。 LED数码管报警电路 4 总结 本设计

32、是以温度采集及控制过程设计为总目标,以 89C52单片机最小应用系 统为总控制中心,辅助设计有温度采样电路、A/D 转换接口、加热电路、 LED数 码管动态串行显示器等。 本设计的重点、难点是: (1) 要掌握温度传感器的原理、结构、应用等; (2) 考虑从非电量信号到电量信号的电路实现原理以及与单片机的接口; (3) 熟悉 MCS-51编程的技术,实现单片机对温度的调节控制; (4) 整体电路的仿真调试。 本次设计优点: 采用的单片机 AT89C51 性价比高;热敏电阻温度传感器转化 温度的方法非常简洁且精度高、测试范围较广。 由于时间及精力所限, 对温度控制系统做了整体设计, 具体实现了其

33、中的温 度报警部分设计,即温度控制系统的采集、显示及报警模块。 实物图如下: 致谢 在论文完成之际,我首先要想车晓岩老师表示最真挚的谢意。车老师时常督 促我抓紧时间做毕业设计, 并经常讨论, 给我提出好的建议。 车老师不仅工作认 真, 她严谨的治学态度令我受益匪浅, 相信在我以后的生活学习带来深远的影响。 在此衷心的向车老师表达我的感激之心。 我还要特别感谢各位同学给予了我无私的帮助,他们帮我解决了很多设计中 遇到的难题,并帮我测试程序。 由于本人学识有限,加之时间仓促,文中不免有错误和待改进之处,真诚欢 迎各位师长、同学提出宝贵意见。 参考文献 : 1 钟晓伟,宋哲存,基于单片机的实验是温湿

34、度控制系统设计A 林业机械与木工设备 2 叶景,基于单片机的温度控制系统的设计经验与交流, 2008 3 杨光友 . 单片机微型计算机原理及接口技术M . 北京:中国水利水电出版社,2002 4 李丹妮,单片机温度控制系统设计J 九江学院报2005 5ATMLE Corporation,8-Bit Microcontroller AT89C51 DATE SHEET.0265F-A-12/97 6 胡寿松,自动控制原理M 北京:科学出版社,2007 7 刘笃仁,韩保君,传感器原理及应用技术西安电子科技大学出版社,2008 8 梅丽凤,王艳秋,汪毓铎,张军,单片机原理及接口技术清华大学出版社20

35、06 9 深圳市计算机行业协会,2005 年全国单片机与嵌入式系统学术交流会,北京航空航天大 学出版社, 2005 10 张义和,陈敌北,例说8051M 北京:人民邮电出版社,2006 11 张开生,郭国法,MCS-51单片机温度控制系统的设计J 微型计算机信息,2005 12Dallas Semiconductor,Programmable Resolution 1-WIRE Digital Thermometer DS18B20 DATE SHEET. 附录 A:总电路图 附录 B:原器件清单 序号编号名称型号数量 1 R1 电阻4.7K 1 2 R2 电阻100K 1 3 R3 电阻5K

36、 1 4 RP1 排阻5K 1 5 C1、C2 电容33P 2 6 C3 电容100u 1 7 S1 按键开关1 8 X1 晶振12M 1 9 Q1 三极管PNP 1 10 LS1 蜂鸣器1 11 U1 51 单片机AT89C52 1 12 U2 温度传感器DS18B20 1 13 U3 集成芯片74HC245 1 14 U4 4 位 7 段数码管共阳1 附录 C :温度报警器部分程序 #include #include #define uchar unsigned char #define uint unsigned int sbit DQ=P37; sbit beep=P30; void

37、reset(); /DS18B20 复位函数 void write_byte(uchar val); /DS18B20 写命令函数 uchar read_byte(void); /DS18B20 读 1 字节函数 void read_temp(); /温度读取函数 void LED_display(); void alarm(); uchar tempH,tempL,num; uchar table10= 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /09 的 LED 字符编码 uchar setValue_low=15; uchar

38、setValue_high=30; main() while(1) read_temp(); LED_display(); alarm(); void delay(uint t) for(;t0;t-); void reset() /DS18B20 的复位 uchar presence=1; while(presence) while(presence) DQ=1;_nop_();_nop_(); DQ=0; delay(50); DQ=1; delay(6); presence=DQ; delay(45); presence=DQ; DQ=1; void write_byte(uchar v

39、al) /DS18B20 写一个字节 uchar i; for(i=8;i0;i-) DQ=1;_nop_();_nop_(); DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_(); DQ=val delay(6); val=val1; DQ=1; _nop_(); uchar read_byte(void) /DS18B20 读一个字节 uchar i; uchar value=0; for(i=8;i0;i-) DQ=1;_nop_();_nop_(); value=1; DQ=0; _nop_();_nop_();_nop_();_nop_(); D

40、Q=1;_nop_();_nop_();_nop_();_nop_(); if(DQ) value|=0x80; delay(6); DQ=1; return(value); void read_temp() /从 DS18B20 读取温度值 uchar ch1,ch2; reset(); write_byte(0xcc); write_byte(0x44); reset(); write_byte(0xcc); write_byte(0xbe); ch1=read_byte(); /DS18B20 的温度数值是 16位的二进制,精度高,最后四位 是温度的小数部分,最高五位为符号位(即正负温度) ch2=read_byte(); num=(ch24); /只取温度值的中间八位,小数部分舍去,符号位舍 去四位。 tempH=num/10; /温度的十位 tempL=num-tempH*10; /温度的个位 void LED_display() /显示检测的温度 P2=0x0; P2=2; P0=tabletempL; delay(50); P2=0x0; P2=1; P0=tabletempH; delay(50); P2=0x0; void alarm() /报警 if(setValue_low=num) beep=1; /在温度允许范围,不报警 else beep=beep;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1