基于单片机的仓库温度检测报警系统
温湿度检测任务书

毕业设计(论文)任务书年月日毕业设计(论文)题目基于单片机的仓库温湿度检测系统设计题目来源自拟指导教师职称所在部门学生姓名学号班级所属院系专业外语翻译要求课题需要完成的任务本课题是基于单片机的仓库温湿度检测系统设计主要任务:本设计采用AT89C51作为主控模块,采用数字温度传感器DS18B20进行对仓库的温度实时监测,利用湿度传感器通过AD模数转芯片,将采集的数据交给单片机对仓库的湿度进行实时监测,并通过液晶LCD显示出当前的温度值,按键可以设置阈值的上下限,实现不同季节的智能化处理;如若减测到当前指标超过设定的阈值,即开启声光报警,呼叫人员通风处理。
1.明确仓库温湿度检测的主要任务;2.设计出基于单片机的仓库温湿度的检测系统的硬件电路,画出相应的电路原理图;3.通过keil软件来编写程序;4.完成proteus仿真调试,实现对仓库的温湿度的实时检测以及液晶LCD的当前温度值显示;5.论文撰写及完善,完成毕业设计。
课题计划安排序号内容时间安排1 确定设计课题,写开题报告2 查找资料,进行相关英文翻译3 绘制电路原理图,完成系统软件设计4 对系统进行相关调试,修改设计5 整理资料,完成毕业设计,准备毕业答辩计划答辩时间答辩提交资料开题报告,任务书,毕业设计说明书,英文翻译资料,相关图纸教研室主任审核意见**************************************************************************************************************************************又快到做毕业设计的时候了,大家这个时候忙碌找工作,忙于考研,无暇做毕业设计,本团队可为大家提供帮助,诚信第一,价格最低,黑狼团队由在校学生组成,作为过来人最懂您的指导老师,为您提供专业服务,三年代做经验,可做电子类和计算机类。
********************************************************************* ********************************************************************* *专抠专欢迎 **业抠为您的 **代群大加入 **做 2 学 **毕 4 生 **设 6 服 ** 3 务 ** 8 解 ** 2 决 ** 2 问 ** 3 题 ** *********************************************************************** *********************************************************************** *签名:。
基于单片机的激光器温度监测与报警系统设计

3 . 2 主 要 模 块 的 电路 3 . 2 . 1单片机 最小系统电路图 单片机最小 系统,或者称 为最小应用系 统 ,是指用 最少 的元件 组成 的单 片机可 以工 作 的系 统. 对5 l 系 列单 片机来 说 ,最小 系统 般 应 该 包 括 : 单 片 机 、 晶 振 电路 、 复 位 电 路. 复位 电路 : 由电容 串联 电阻构成 ,当系 统 一上 电 ,R S T 脚 将会 出现 高 电平 。这 个高 电平 持续 的时间 由电路 的R c 值来决 定。适 当 组合 R C 的取值 可以保证可靠的复位。 晶 振 电路 : 典 型 的 晶 振 取 I l , 0 5 9 2 M H z ( 因 为 可 以准 确 地 得  ̄ 9 6 0 0 波特 率和 1 9 2 0 0 波特 率 , 用 于 有 串 口通 讯 的 场 合 ) / 1 2 M H z ( 产生精 确 的U S 级时歇 ,方便定时操作) 。 3 . 2 . 2 蜂 鸣 器 报 警 电 路 本设计采用 蜂鸣音报警 电路 ,蜂鸣器 的 额 定 电流 ≤ 3 0 m A 。而 对 于A T 8 9 C 5 1 单 片 机 ,P 3 口 的 灌 电流 为 1 5 m A ,由此可见 ,紧靠单片机 的P 3口 电流 是 不 能 驱 动 蜂 鸣 的 ,必 须 使 用 晶 体 管 放 大 电 路 , 为 了单 片机 功 率 更 小 , 所 以 使 用P N P 型 晶 体 管 , 当 激 光 器 的温 度 超 度 预 设值 时,基 极变 为低 电平,蜂鸣器工作 。 3 . 2 . 3 显 示 电路 本文采用 的是共 阴极数码 管,因而各数 码 管 的公共极 接 电源G N D,要 显 示 某 字 段 则 相应 的移 位寄存 器 7 4 H C 3 7 3 的 输 出 线 必 须 是 高 电平。P O 口接 8 个按键 ,分别编 号为 K E Y 1 - K E Y 8 。 当某个按 键按 下时 。某个 数就 显示 在数码管上 。 3 . 2 . 4 传 感 器 电路
基于STC89C52单片机的数字温度计(附源代码,完美实现)

基于STC89C52单片机的数字温度计学院:信息科学与工程学院专业:电子信息科学与技术一、摘要温度的检测是工业生产中比较典型的应用之一,随着传感器在生产和生活中的更加广泛的应用,利用新型数字温度传感器实现对温度的测试与控制得到更快的开发。
本文设计了一种基于STC89C52单片机的温度检测系统,该系统将温度传感器DS18B20接在控制器的端口上,对温度进行采集,将采集到的温度值显示在1602液晶屏上。
经实验测试表明,该系统设计和布线简单,结构紧凑,有可读性高,反应速度快,测量准确,抗干扰能力强,性价比高,扩展方便等优点,具有关阔的应用前景。
关键词:STC89C52 数字温度计 DS18B20二、前言随着人民生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便是不可否定的,其中数字温度计就是一个典型的例子。
单片机控制温度检测系统的温感系统主要是DS18B20芯片,该芯片由一根总线控制,电压范围为3.0v--5.5v。
DS18B20具有测温方便、测温范围广、测温精度高等特点。
出于对此类问题的探索,我们设计并制作了此温度检测系统。
本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确。
其输出温度采用数字显示,主要用于对测温比较准确的场所,该设计控制器模块主要使用STC89C52单片机,测温传感模块使用DS18B20;显示模块使用1602液晶显示屏,可以只管、准确的显示所测温度值。
三、系统组成及工作原理3.1、总体设计方案经分析,将系统分为两个部分,一个是由温度传感器DS18B20组成的检测部分,另一个是由单片机和1602液晶组成的主控与显示部分。
如图所示DS18B20将检测到的数据送到单片机,单片机对接收到的数据进行处理并送到1602显示,6V电源给各个部分供电。
3.2系统单元的选择与论证3.2.1单片机控制模块的选择与论证方案一:采用XC9000系列的FPGA。
基于单片机温度采集报警系统设计论文

基于单片机的温度采集报警系统的设计摘要:设计了一种基于单片机at89s51和ds18b20温度传感器的温度采集报警系统。
该系统性能可靠,结构简单,能实现安全温度内正常显示温度值,超出设定的温度上限则进行声光报警。
关键词:单片机;温度检测;报警中图分类号:tp311.52文献标识码:a文章编号:1007-9599 (2011) 23-0000-03temperature acquisition alarm system design based mcu wang rongrong,liu haixia(inner mongolia technical college of mechanics and electrics,huhhot010070,china)abstract:it designs a microcontroller based on at89s51 and ds18b20 temperature sensor temperature collection and alarm system.the system has reliable performance,simple structure,can achieve safe temperature within a normal display temperature exceeds the set temperature,upper limit,sound and light alarm.keywords:mcu;temperature detection;alarm一、系统设计基本工作原理如图1所示为温度采集报警系统框图。
该设计将以单片机控制的温度采集系统为主,利用单片机完成对温度的检测,实现安全温度内正常显示温度值,超出设定的温度上限则进行声光报警。
系统在温度采集时主要应用了ds18b20芯片,该器件经过初始化后单片机首先进行rom匹配,当受到测温器件发回的信号时证明该器件正常工作,接着单片机发送温度转换命令进行温度采集,测温的精确度很高,可以精确到小数点后四位。
基于MSP430单片机和CC2500无线模块的仓库温度测量系统

仓 库作 为一个 工厂 的物料和 成品集 散地 , 于生产 和货 物的流 通起着 非常重要 的作用 。除银 行外 , 厂 对 工 里几乎 所有 的流动 资产都 集 巾在仓 库 , 库 的流 动顺 畅 与否 , 料 的收发 是 否正 常有 序 , 仓 物 直接 关 系到 工厂 的 各种生 产效率 是否达成 有效 目标 。因此 , 有特殊 要求 的仓库 内安装仓 库温 度监控 系统是 非常有必 要 的 , 在 同 时为 了防止火灾 的发生 , 仓库对 电源 的使用也 有着严 格 的要 求 , 因此 , 低功耗 … 的仓库 温度 管理 系统 应运 而
入)G 0 (, D 2 一般 用途 ) G O 一般 用途 ) , D 0( 。MS 4 0 2 7 P 3 F 2 4与 C 2 0 C 5 0连接 原 理 图如 图 2所 示 , 中 G 0 其 D 0可
以被用 来 作为 温度 传感 器 , 过 A 通 D检测 G O D 0的电压 , 计算 出温度 。
生。
1 设 计原 理
本 系 统 是 以 rs4 02 7 a p 3 12 4举片 机 和 C 2 0 -j 线 C 5 0 3无
通 讯芯 片为基 础来实 现 的。由于 仓库 的复 杂性及列‘ 温 具体 度 采集 的要求 , 仓库 可 能需 要 设置 多 个温 度 采集 点 。如 在 果采 用有 源的 温 度 采集 方 式 , 会增 加 火 灾 发 生 的可 能 性 。 采用超 低功耗 的 4 0单片机 和 超低 待 机功 耗 的 C 2 0 3 C 5 0无 线通讯 芯 片 , 大大降低 了对 电源 的要 求 , 2节 5号 电池 完 以 全 可 以实 现 对 温 度 采 集 点 的供 电 。分 别 利 川 MS 4 0和 P3 C 20 C 5 0实现对 温度 采集 的节 点 和 手持 式 温度 采 集 控 制器
基于51单片机的温度控制系统设计

基于51单片机的温度控制系统设计引言:随着科技的不断发展,温度控制系统在现代生活中应用广泛,例如空调、冰箱、温室等。
本文基于51单片机设计一个简单的温度控制系统,用于控制温度在一些合适的范围内。
一、系统功能设计本系统主要包括以下功能:1.温度采集:通过温度传感器实时采集环境温度数据;2.温度显示:将采集到的温度数据显示在液晶屏上,方便用户查看;3.温度控制:当环境温度超过设定的范围时,系统将自动启动风扇或制冷装置来降低温度;4.温度报警:当环境温度超过设定范围时,系统将通过报警器发出警报。
二、系统硬件设计1.51单片机2.LM35温度传感器:用于采集环境温度数据;3.ADC0804模数转换芯片:将LM35传感器输出的模拟电压转换为数字信号;4.LCD1602液晶屏:用于显示温度数据和系统状态;5. Buzzer报警器:用于发出警报;6.风扇或制冷装置:用于降低温度。
三、系统软件设计1.初始化:设置各个硬件模块的工作模式和初始化参数;2.温度采集:通过ADC0804芯片将LM35传感器输出的模拟信号转换为数字信号;3.温度显示:将采集到的数字信号转换为温度值,并通过LCD1602液晶屏显示;4.温度控制:根据设定的温度上下限值,判断当前温度是否超过范围,若超过则启动风扇或制冷装置进行温度控制;5. 温度报警:当温度超过设定范围时,通过Buzzer报警器发出声音警报;6.系统循环:以上功能通过循环执行,实现实时监控和控制。
四、系统流程图软件设计流程如下所示:```开始初始化系统循环执行以下步骤:采集温度数据显示温度数据温度控制判断温度报警判断结束```五、系统总结本文基于51单片机设计了一个简单的温度控制系统,通过温度采集、显示、控制和报警功能,实现了温度的实时监控和控制。
该系统可以广泛应用于家庭、办公室、温室等环境的温度控制,提高生活质量和工作效率。
六、系统展望本系统可以进行进一步的优化和扩展,例如添加温度传感器的校准功能,提高温度采集的精度;增加温度曲线图显示功能,方便用户了解温度变化趋势;引入无线通信模块,使用户可以通过手机或电脑远程监控和控制温度等。
基于单片机的温度报警器设计(方案)
天津滨海职业学院全日制高等职业教育毕业实践环节毕业设计(典型性项目)说明书基于单片机的温度报警器设计(方案)作者:李佳璐院系:天津滨海职业学院机电工程系专业:电子信息工程技术年级:2012级学号:20120012113指导教师:×××时间:2015年4月主要内容简介在农业生产中,温室的温度很难把握。
往往超过或低于允许值,致使大批良种的报废,耽误农时,影响生产。
这就需要设计一个温度报警器,在环境温度超过一定范围时报警,来提醒使用者。
基于以上背景设计基于单片机的温度报警器。
本设计采用ATMEL公司的ATmega16单片机为硬件核心系统,添加数码管、按键和温度传感器芯片,组成完整的硬件系统。
采用C语言为编程语言,进行系统的软件系统开发。
通过本系统硬件、软件部分设计完成如下目标:1、完成系统的硬件部分设计,硬件部分包括电源、显示、按键、温度接口、报警触发等部分设计。
在此基础上保证软件功能实现。
2、温度报警器可以通过按键方便设定报警范围。
3、温度报警器通过数码管显示实时显示测量的环境温度。
当环境温度温度超出设定范围时,启动报警。
本设计硬件制作方便,通过C语言程序实现软件设计,可移植性强,能够精准的对环境进行温度测量并显示,实用性强。
关键字:M16;18B20;温度控制;C语言目录一、绪论 (4)(一)研究背景与现状 (4)(二)设计内容及要求 (4)二、关键技术简介 (5)三、M16单片机概述 (6)(一)ATmega16 的主要性能 (6)(二)M16的基本组成及引脚 (6)(三)M16的引脚基本功能 (6)(四)外部晶体振荡器 (8)四、温度传感器18B20介绍 (8)(一)温度传感器18B20的特性 (8)(二)温度传感器18B20的基本组成,见下图4所示。
(9)(三)温度传感器18B20的测温操作 (10)五、硬件设计 (12)(一)硬件电路设计 (12)(二)电源和复位电路设计 (13)(三)输入、输出部分设计 (14)(四)驱动部分设计 (15)六、软件设计 (15)(一)显示部分设计 (15)(二)按键检测设计 (21)(三)1-wire 是一种通讯协议实现 (23)(四)软件总体设计 (27)一、绪论(一)研究背景与现状1.在农业生产中,温室的温度很难把握。
基于单片机的温度测量系统[1]
随着现代信息技术的飞速发展和传统工业改造的逐步实现,温度自动检测和显示系统在很多领域得到广泛应用。
人们在温度检测的准确度、便捷、快速等方面有着越来越高的要求。
而传统的温度传感器已经不能满足人们的需求,其渐渐被新型的温度传感器所代替。
本文设计并制作了一个简易温度计。
本设计采用了单片机AT89S52和温度传感器DS18B20组成了温度自动测控系统,可根据实际需要任意设定温度值,并进行自动控制。
在此设计中利用了AT89S52单片机作为主控制器件,DS18B20作为测温传感器通过LCD数码管串口传送数据,实现温度显示。
通过DS18B20直接读取被测温度值,进行数据转换,能够设置温度上下限来设置报警温度。
并且在到达报警温度后,系统会自动报警。
本文设计是从测温电路、主控电路、报警电路等几个方面来分析说明的。
该器件可直接向单片机传输数字信号,便于单片机处理及控制。
另外,该温度计还能直接采用测温器件测量温度。
从而简化数据传输与处理过程。
此设计的优点主要体现在可操作性强,结构基础简单,拥有很大的扩展空间等。
关键词:单片机;温度传感器;温度计;报警With the rapid development of modern information technology and the gradual transformation of traditional industries to achieve, automatic temperature detection and display systems are widely used in many fields. People in the temperature measurement accuracy, convenient, rapid, and has a growing demand.This article was designed and produced a simple thermometer. This design uses a microcontroller AT89S52 and temperature sensor DS18B20 automatic temperature control system formed can be arbitrarily set the temperature according to the actual value and for automatic control. In this design using the AT89S52 microcontroller as the main control device, DS18B20 as an LCD digital temperature sensor tube through the serial transmission of data, to achieve temperature display. DS18B20 measured by direct reading temperature values, data conversion, to set the temperature to set the alarm on the lower temperature. And the temperature reaching the alarm, the system will automatically alarm.This design is from the temperature measurement circuit, main control circuit, alarm circuit, and several other aspects of the note. The device can transmit digital signals directly to the microcontroller, easy to handle and control MCU. In addition, the thermometer temperature measurement device can be used directly to measure temperature. The major advantages of this design is reflected in operable structural basis is simple, lots of expansion space.Keywords:AT89S52;DS18B20;thermometer;alarm目录摘要 (I)Abstract (II)目录 (III)1 引言 (1)1.1 选题的背景 (1)1.2 选题的目的及意义 (2)1.3 论文结构 (2)2 设计的整体方案 (3)2.1 设计的主要内容 (3)2.2 设计性能要求 (4)3 器件的选择 (5)3.1 单片机的选择 (5)3.1.1 AT89S52的特点及选择原因 (5)3.1.2 AT89S52的工作模式及注意事项 (6)3.2 温度传感器的选择 (8)3.2.1 DS18B20的特点及选择原因 (8)3.2.2DS18B20的测温原理 (12)3.3 显示器的选择 (15)4 电路原理 (17)4.1 晶振电路与复位电路 (17)4.2 温度采集电路 (20)4.3 显示电路 (21)4.4 报警系统 (22)4.5 按键电路和指示灯电路 (23)5 程序原理及系统流程图 (23)5.1 主程序 (23)5.2 读出温度子程序 (24)5.3 温度数据显示子程序 (27)5.4设置温度上下限程序 (28)5.4 计时时间设置 (29)6 软件仿真 (31)6.1 软件介绍 (31)6.2 仿真过程 (32)7 实物的焊接与调试 (34)8 体会与展望 (36)8.1 设计总结 (36)8.2设计前景 (37)致谢 (38)参考文献 (39)附录A 系统总图 (40)1 引言1.1 选题的背景随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的。
基于单片机的多路温度采集控制系统的设计
基于单片机的多路温度采集控制系统的设计一、系统设计思路1、系统架构:本系统的所有模块分为两个主要的部分:单片机部分和PC部分。
单片机部分是整个温度控制系统的中心模组,它负责多路温度传感器的信号采集、温度计算和显示,还有一些辅助操作,如温度上下限报警等;PC部分主要实现数据采集、分析、处理、显示等功能,与单片机的交互可通过RS485、USB等接口进行。
2、硬件设计:本系统设计确定采用AT89C52单片机作为系统的处理核心,在系统中应用TLC1543数据采集芯片,采用ADC转换器将多个温度传感器的数据采集,使系统实现多路温度检测同时显示.另外,为了实现数据采集记录,系统可以选用32K字节外部存储封装。
二、系统总控程序设计系统总计程序采用C语言进行编写,根据实际情况,主要分为以下几个主要的模块:(1)初始化模块:初始化包括外设初始化、中断处理程序初始化、定时器初始化、变量初始化等功能。
(2)温度采集模块:主要对多路温度传感器的采集、计算并存储等操作,还可以实现温度的报警功能。
(3)录波模块:提供数据的实时采集、数据的存取、数据的滤波处理等功能。
(4)通信模块:主要是用于实现数据透传,采用RS485接口与PC端的上位机联网,可实现远程调试、远程控制等功能。
(5)用户界面模块:实现数据显示功能,可以根据用户的要求显示多路温度传感器检测到的数据。
三、实验检验(1)检查系统硬件的安装是否良好;(2)采用实测温度值与系统运行的实测温度值进行比对;(3)做出多路温度信号的对比,以确定系统读取的数据是否准确;(4)检查温度报警功能是否可以正常使用,也可以调整报警范围,试验报警功能是否可靠;(5)进行通信数据采集的联网检测,确保上位机和系统可以进行实时、准确的通信。
基于51单片机温度报警器的设计
目录摘要 (2)第一章绪论 (4)1.1 系统背景 (4)1.2 温度控制系统设计的意义 (5)1.3 温度控制系统完成的功能 (5)第二章系统方案设计 (6)2.1 方案一 (6)2.2 方案二 (6)2.3 方案论证 (7)第三章硬件电路设计 (8)3.1系统总体设计 (8)3.2 各部分硬件电路设计 (9)3.2.1时钟电路设计 (9)3.2.2系统复位电路 (10)3.2.3报警与控制电路设计 (11)3.2.4 LED显示电路设计 (12)3.2.4温度检测电路设计 (14)3.2.5按键电路设计 (16)第四章软件设计 (17)4.1 主程序方案 (17)4.2 各个模块子程序设计 (20)4.2.1温度采集程序 (20)4.2.2数码管显示模块 (23)4.2.3温度处理程序 (24)第五章系统调试 (25)5.1测试环境及工具 (25)5.2测试方法 (25)5.3测试结果分析 (26)结论 (26)致谢 (26)参考文献 (27)附录一:系统原理图 (29)附录二:程序代码 (30)摘要随着现代信息技术的飞速发展,在生产中温度的准确测量是一个比较困难的事情从最初的酒精、水银温度计到现在的数字化、集成化的温度检测系统。
可见传感器的发展是飞快的。
它快速的发展必将带来新一轮的工业化的革命和社会发展的飞跃。
本文从硬软件两个方面介绍了基于AT89S52单片机温度自动检测系统的设计。
系统硬件由控制电路、温度采集电路、键盘和LED显示电路组成。
软件设计从设计思路、软件系统框图出发,先介绍整体的思路后,再逐一分析各模块程序算法的实现,最终编写出满足任务需求的程序。
最终通过DS18B20采集温度并显示出来,由此对周围环境的温度进行有效检测与报警。
基本上满足了温度检测与报警的要求,具有超调量小,采样值与设定值基本一致,操作简单等优点。
本设计创新点在于采用数字式温度传感器DS18B20 作为感温元件, 占用单片机引脚少, 因而可以利用空余引脚通过软件模拟和温度显示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 , 基于单片机的 仓库温度检测报警系统
队员学号:200800170257 队员学号:200800170097 2
摘要 本系统是一个专门为仓库温度控制而设计的智能系统。通过温度传感器采集温度信号,经过AD转换成数字信号,经无线传输模块传送给单片机,经单片机处理后,在显示设备(数码管或液晶屏)上实时显示温度。手动设定温度监测值,当监测温度超过设定温度时,向主机设备传送信号,发出报警,同时向主机发出应采取的措施信号,提高应急效率。另外,系统在监测温度正常时,自动进入低功耗状态,直到温度打破平衡,可有效节省能源。 3 1.0课题背景 温度是衡量仓库的重要指标,它直接影响到仓库内货物的安全储藏,为了能使仓库内温度适宜于货物的储存,首要问题是加强温度的检测,但传统的方法是通过人工进行检测,对不符合温度要求的库房进行通风、降温等工作。这种人工测试方法费时费力、效率低,且测量的温度误差大、随机性大。因此,我们需要一种造价低廉、使用方便且测量准确的温度测量仪。该设计即是针对这一问题,设计出了能够实现温度自动检测、显示、上下限报警等多功能的温度监测控制系统。 1.1预期目标 系统完成后可以通过温度传感器对仓库内的温度进行测量,通过单片机对采集到的数据进行处理,用LED显示出当前环境的温度状况,并且温度可以进行调节,当环境温度与设置的最适宜温度之差大于4℃时,报警装置即会启动。 2.1 系统总体方案设计简述 该温度测控系统是由数据采集及处理系统和报警系统组成,由温度传感器、A/D转换、显示器与报警电路等组成。通过对信号的采集、分析、处理、然后输出信号来使执行部件进行动作,是仓库达到所要求标准。 2.2 系统的工作原理 温度监控系统能完成数据采集和处理、显示、输出控制信号等多种功能。由数据采集、数据处理、单片机、控制等4个大的部分组成。该测控系统具有实时采集(检测仓库内的温度)、实时处理(对监测到的温度值进行比较分析,决定下一步控制进程)、实时控制(根据处理的结果发出控制指令,只会被控对象动作)的功能。主要硬件包括温度传感器、宏晶单片机、数据采集电路、LED显示器等。 首先设计出温度参考值与显存处于单片机中。系统的数据采集部分是将温度传感器置于仓库内部,测出室内的温度值,经过放大、A/D转换为数字量之后送入单片机中,然后LED显示出温度测量值。单片机将预设的参考值与测量值进行比较,根据比较结果作出判断。 当温度值超过允许的误差范围,系统将发出报警,如果有必要,工作人员还可以根据实际情况来修改片内存储的预设值。通过对整个系统的核心单片机部分的设计,达到优化控制温度的目标。 3.1 单片机的确定 宏晶单片机
3.2 温度传感器 常见的温度传感器有热敏电阻、热电偶、PN结温度传感器、集成温度传感器、热电阻等。对于仓库内部温度的检测,温度传感器选择DALLAS公司生产的一线制数字温度传感器DS18B20,它具有3引脚TO-92小体积封装形式;温度检测范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,检测分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输 4
出。 DS18B20有三个引脚,GND接地;DQ数字信号的输出/输入;Vdd为外电源输入端。 3.3 温度采集电路的设计 由于DS18B20只有一个串行通行接口,与单片机的连接电路非常简单,只需和单片机的一个I/O端口连接即可。DS18B20的I/O口属于漏极开路输出,外接上拉电阻后常态下呈高电平。该器件内含寄生电源,其供电方式可以选择寄生电源方式,也可选择外部电源。为方便起见,采用外部电源供电。 3.4 显示部分 显示部分采用1602字符液晶。工业字符型液晶,能够同时显示16x02即32个字符。1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线。 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的 点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符 号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。 因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A’。 3.5 报警电路的设计 本设计采用蜂鸣音报警电路。蜂鸣音报警接口电路的设计只需购买市售的压电式蜂鸣器,然后通过单片机的1根口线经驱动器驱动蜂鸣音发声。压电式蜂鸣器约需10mA的驱动电流,可以使用TTL系列集成电路7406或7407低电平驱动,也可以用一个晶体三极管驱动。当输出高电平“1”时,晶体管导通,压电蜂鸣器两端获得约+5V电压而鸣叫;当输出低电平“0”时,三极管截止,蜂鸣器停止发声。 3.6 传输部分的设计 本设计采用RF905无线传输模块,传输方便、可靠,可以避免仓库内复杂环境的影响。 4 程序部分 #include #define uchar unsigned char #define uint unsigned int sbit RS=P3^5; sbit EN=P3^4; sbit beep=P3^3; unsigned char code str1[]={"temperature: "}; unsigned char code str2[]={" "}; uchar data disdata[5]; uchar tflag; /*************************lcd1602 **************************/ void delay1ms(unsigned int ms)//延时1毫秒(不够精确的) 5
{ unsigned int i,j; for(i=0;i for(j=0;j<100;j++);
} void wr_com(unsigned char com) { delay1ms(1); RS=0; EN=0; P0=com; delay1ms(1); EN=1; delay1ms(1); EN=0; }
void wr_dat(unsigned char dat) { delay1ms(1);; RS=1; EN=0; P0=dat; delay1ms(1); EN=1; delay1ms(1); EN=0; }
void lcd_init()//初始化设置// { delay1ms(15); wr_com(0x38);delay1ms(5); wr_com(0x08);delay1ms(5); wr_com(0x01);delay1ms(5); wr_com(0x06);delay1ms(5); wr_com(0x0c);delay1ms(5); }
void display(unsigned char *p) { while(*p!='\0') 6
{ wr_dat(*p); p++; delay1ms(1); } }
init_play() { lcd_init(); wr_com(0x80); display(str1); wr_com(0xc0); display(str2); }
/*******************************************************************/ void ds1820disp(uint tvalue) { uchar flagdat; disdata[0]=tvalue/1000+0x30; disdata[1]=tvalue%1000/100+0x30; disdata[2]=tvalue%100/10+0x30; disdata[3]=tvalue%10+0x30;
if(tflag==0) flagdat=0x20; else flagdat=0x2d;
if(disdata[0]==0x30) { disdata[0]=0x20; if(disdata[1]==0x30) {disdata[1]=0x20;} }
wr_com(0xc0); wr_dat(flagdat); wr_com(0xc1); wr_dat(disdata[0]); wr_com(0xc2); wr_dat(disdata[1]); wr_com(0xc3); 7
wr_dat(disdata[2]); wr_com(0xc4); wr_dat(0x2e); wr_com(0xc5); wr_dat(disdata[3]); if(disdata[1]>=3||disdata[0]>0) beep=0; else beep=1; } void main() { init_play(); TMOD=0x20; TH1=0xfd; TL1=0xfd; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; while(1);
} void ser() interrupt 4 { uchar a; RI=0; a=SBUF; ds1820disp(a);
}