资源描述
郑州航空工业管理学院毕业设计(论文)郑州航空工业管理学院毕 业 论 文(设 计)2013届 电气工程及其自动化 专业 1106971 班级题 目 蔬菜公司恒温库微机监控系统 姓 名 张宁 学号 110697137 指导教师 何琳琳 职称 副教授 二 年 月 日蔬菜公司恒温库微机监控系统摘 要如今随着农业的飞速发展,产业规模的提高,传统的温度控制措施就呈现出很大的局限性。所以,在现代化的蔬菜管理中出现了恒温库的微机监控系统,它在保证蔬菜质量、减少蔬菜损耗等方面发挥了巨大的作用。在政府以及市场的引导下,恒温库将规范化发展,逐步的淘汰不符合节能减排和可持续发展战略要求的,日益成熟化。 本设计主要阐述了基于AT89C51单片机的蔬菜公司恒温库微机监控系统的设计原理,包括了主要的电路设计及软件设计等。该系统采用AT89C51单片机作为温度控制器,可以实现把恒温库的温度控制在设定值允许的误差范围内。同时采用了数字式温度传感器DS18B20,对温度进行采样。显示部分采用4位LED数码管以动态扫描方式实现温度显示,设计上下限,超限报警。关键词:恒温库;AT89C51;DS18B20;单片机;传感器;LED显示器IIMicrocomputer monitoring system of constant temperature storehouse in vegetable companyABSTRACTIn modern times,with the development of agriculture and its large size,traditional temperature control measures showed great limitations.Therefore,the microcomputer monitoring system of constant temperature storehouse appeared in modern vegetable management.It plays an important role in ensuring the quality of the vegetable and reducing the loss of vegetable.Under the guidance of government and market,constant temperature storehouse will develop normative,eliminate those do not meet the requirements of energy-saving emission reduction and sustainable development strategy, becomes more and more mature. This design mainly expounds the design principle of microcomputer monitoring system of vegetable company's constant temperature storehouse.It's based on AT89C51 single chip microcomputer and including the main circuit design and software design.This system uses AT89C51 as the temperature controller,it can make the storehouse's temperature controlling in the error range that the setting point allowed.At the same time uses digital temperature sensor DS18B20, sampling of the temperature. The display part uses 4 LED digital tube and a dynamic scan mode to realize the temperature display.Besides,it also designs limits.When the temperature exceeds the set point,it will alarm.KEY WORDS:constant temperature storehouse;AT89C51;DS18B20;single chip microcomputer;sensor;LED display目 录前 言3第一章 蔬菜公司恒温库微机监控系统概述51.1 蔬菜公司恒温库微机监控系统的目的51.2 蔬菜公司恒温库微机监控系统的功能6第二章 总体设计方案72.1 简述72.1.1 实现的基本功能72.1.2 技术参数72.2 总体设计方案确定72.2.1 系统框图82.2.2 控制部分82.2.3 显示部分82.2.4 温度采集部分9第三章 系统硬件设计103.1 单片机模块的设计103.1.1 单片机的特性介绍103.1.2 单片机的管脚介绍113.2 温度采集系统的设计133.2.1 DS18B20的主要特性133.2.2 DS18B20的结构143.2.3 DS18B20的工作原理153.3 显示模块的设计163.4 按键及声光报警电路的设计173.5 单片机与PC机的通讯193.6 温度调节系统的设计20第四章 系统的软件设计214.1 软件设计的整体思想214.2 主程序流程图214.3 温度检测子程序流程图234.4 按键扫描子流程图24结 论25致 谢26参考文献27附 录28前 言随着现代科学技术的发展,温度的监测与控制在各行各业都有着广泛的应用,尤其是在现代农业中发挥着巨大的作用。但是,监测对象不同,系统的设计也不一样。在如今的监测系统中,温度是一个重要的指标,因此,采用先用先进的人工智能技术,合理的控制影响环境的因子,通过计算机控制设备进行环境监测,这样既提高了产品的质量、产量、社会效益和经济价值。本文的自动控制系统是针对蔬菜公司的恒温库的温度监测和控制而设计。恒温库是储藏蔬菜、水果和其它易烂易腐商品的专用商储设施,它保证商品储藏质量的关键是科学的严格的温度控制。恒温库以特殊的建筑理念替代了原有冷库类建造模式及运营方式,建筑规模越来越大,实用范围也越来越广,具有很好的发展前景。本设计中采用温度传感器DS18B20对恒温库的温度进行实时监测,利用单片机AT89C51对温度数据进行处理,然后用4位的LED显示出来。其中温度的设定值可以根据恒温库中储存的蔬菜种类的适宜温度进行按键调整,一旦温度超过设定值,报警设置就会工作。该设计充分利用了AT89C51单片机软、硬件资源,辅之数字式温度传感器,具有测量精度高范围广的特点,保证了恒温库里的蔬菜防潮、防腐和防霉。目前国内外在此领域出现了高性能、高可靠性的数据采集系统,检测元件种类繁多,应用范围较广泛。经过不断的发展,对温度的检测和控制系统将做详细的设计与实现,向模块化、高速化、智能化的单片机数据采集系统靠近。采取有效的技术措施,对恒温库区域空间温差进行工艺调节和严格控制,最大限度地缩小恒温库中各个区域和不同空间的温度差异,使所储商品全部处在最佳的温度状态。这也是恒温库整体管理水平的一项重大技术课题要进一步研究和探讨。第一章 蔬菜公司恒温库微机监控系统概述1.1 蔬菜公司恒温库微机监控系统的目的在蔬菜的储存中,温度扮演着至关重要的角色。蔬菜公司必须把蔬菜储存的环境控制在一定的温度,以防止其腐烂变坏不新鲜,恒温库就是一项特别有效的措施。它就是建立一个适合蔬菜存放的气候条件,创造一个人工气象环境,来消除温度对蔬菜的影响。而且,恒温库使季节对农作物的储存不再产生过度影响,部分或完全摆脱了蔬菜对自然条件的依赖。由于恒温库能带来可观的经济效益,所以恒温库微机监控系统技术越来越普及,已成为蔬菜公司存放各类蔬菜的主要设置和手段。蔬菜公司的恒温库作为一个相对封闭的环境,其内部形成了一个小气候环境,良好的温度环境是蔬菜正常储存的重要条件。近几年来,一部分发达国家的果蔬自给率一直下降,比如日本和瑞士分别为50%和42·6%,国际果蔬市场的需求量和年贸易总量不断上升,国际市场果蔬贸易额已达到100亿美元。如今,类似美国和欧洲的发达国家都在大力倡导以素食为主,而果蔬具有无法取代的保健作用。所以,必导致全球果蔬的需求量剧增,同时也为我国的果蔬出口带来了巨大的机遇。这就要求在大量生产果蔬的同时,必须建立规范化的储藏设备,有效解决高档果蔬贮存和反季节销售问题,提高经营效益,同时还能提高产品的市场档次、知名度和市场竞争力。本论文中所介绍的恒温库微机监控系统就是基于单片机和传感器。该系统能够对恒温库中的温度进行采集,利用温度传感器将温度的变化,变换成数字量,由单片机处理数据,然后去控制LED显示器,显示恒温库内的实际温度,并且同时通过与事先设定值相比较,对恒温库内的温度进行自动调节,一旦超过事先设定的温度限制,报警设置将进行报警。此种设计方案实现了温度的实时测量、显示和控制。这种系统抗外界干扰能力强,测量精度较高,安装比较方便,性价比高,容易维护。在过去,对类似设备的温度控制一般是由人工完成,而且不够重视。所以传统的人工的测试方法费时费力、效率低,并且测试的温度误差很大,随机性也大。但是其实在生活中很多的场合都需要对温度进行监控以防止发生意外情况,本文即是针对这一问题,设计出了能够实现温度自动检测,显示,设置上下限报警等多功能的温度监测控制系统。它是一种可连续高精度调温的温度控制系统,它测量方便,应用广泛,功能强大,是一项非常实用的温度控制系统。1.2 蔬菜公司恒温库微机监控系统的功能本文中的设计是对蔬菜公司恒温库的温度进行实时监测与控制,所设计的微机监控系统实现了最基本的温度控制功能:当蔬菜恒温库内温度低于设定下限或者高于设定上限温度时,报警装置开始启动。温度在上下限温度之间时,执行机构不执行。此次设计采用单片机AT89C51作为数据处理与控制单元,为了进行数据处理,温度传感器DS18B20经过处理的信号,把信号传递到单片机上。单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到4位LED显示器上进行显示,这个系统可以实现温度信号采集与显示,通过进行温度数据的运算处理,发出控制信号以达到控制对象正常的目的。本设计装置完成封装后正面视图应如下图1-1所示: 工作 状态 指示 灯及 报警 区域按键调整区域显示检测到的实时温度图1-1 装置正面封装视图第二章 总体设计方案2.1 简述本设计的温度测控系统是由温度数据采集系统、处理系统和报警系统组成,由单片机、温度传感器、显示器与报警电路等组成。通过对温度信号的采集、分析、处理,然后输出信号来执行相应的部件进行动作,使蔬菜恒温库达到所要求的参数。2.1.1 实现的基本功能 对蔬菜公司恒温库温度参数的实时监测与采集,测量封闭空间的温度,然后由单片机对采集的温度数据进行循环检测、数据处理、显示,实现温度的智能化检测。 利用数字温度传感器DS18B20测量恒温库内的温度。 利用LED对温度进行实时显示。 事先设定上下限值,一旦超越上下限,报警系统及时报警,并启动控制系统,实现恒温库的目的。 现场检测设备应具有较高的灵敏度、可靠性和抗干扰能力。2.1.2 技术参数测温范围:0-40测温精度:±0.5控制方式:手动/自动可切换参数调整:手动设定/程序控制2.2 总体设计方案确定2.2.1 系统框图温度控制系统使用DS18B20,结合单片机电路设计,用一只DS18B20,直接读取恒温库内被测温度值,依次完成设计要求。本系统的电路设计方框图如图2-1所示,它由部分组成:控制部分主芯片采用单片机AT89C51;数据显示部分采用4位LED数码管以动态扫描方式实现温度显示;温度采集部分采用DS18B20温度传感器;加热制冷控制电路。显示模块温度传感器DS18B20 单片机 主控 模块 AT89C51报警电路键盘温度过限电路图2-1 恒温库温度控制原理图2.2.2 控制部分AT89C51是一种带4K字节FLASH存储器(FPEROM-Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位单片机。2.2.3 显示部分显示电路采用4位共阳LED数码管。2.2.4 温度采集部分这一部分主要完成对恒温库温度信号的采集工作,由数字式传感器DS18B20及其与单片机的接口部分组成。数字式温度传感器DS18B20把采集到的温度传送给单片机,单片机接受温度并存储。此部分只用到DS18B20和单片机,硬件很简单。第三章 系统硬件设计3.1 单片机模块的设计3.1.1 单片机的特性介绍根据系统的功能需求,选择目前市场上性价比较高的AT89C51单片机作为该系统的控制核心。AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方法。 另外,AT89C51设计和配置了振荡频率,并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式。AT89S51单片机综合了微型处理器的基本功能。按照实际需要,同时也考虑到设计成本与整个系统的精巧性,所以在本系统中就选用价格较低、工作稳定的AT89C51单片机作为整个系统的控制器。图3-1 AT89C51单片机实物图与此同时,AT89C51单片机是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方式。主要特性有:与MCS-51兼容4K字节可编程闪烁存储器32可编程I/O线两个16位定时器/计数器可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 3.1.2 单片机的管脚介绍芯片89C51共有40个引脚,其中电源引脚有4个,控制引脚有4个,并行的I/O接口有32个,其引脚图如图3-2所示:图3-2 AT89C51管脚图各引脚功能简单介绍如下:VCC:供电电压;GND:接地;P0口:P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。当P1口的管脚写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必须被拉高;P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收;P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号;P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INT0(外部中断0)P3.3 INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 WR (外部数据存储器写选通)P3.7 RD (外部数据存储器读选通)同时P3口同时为闪烁编程和编程校验接收一些控制信号;RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高平时间;ALE / PROG :当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令时ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效;PSEN:外部程序存储器的选通信号。在由外部程序存储器取址期间,每个机器周期PSEN两次有效。但在访问内部部数据存储器时,这两次有效的PSEN信号将不出现;EA/VPP:当EA保持低电平时,访问外部ROM;注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,访问内部ROM。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP);XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入;XTAL2:来自反向振荡器的输出。3.2 温度采集系统的设计3.2.1 DS18B20的主要特性美国DALLAS公司近年来推出了以DS18B20为代表的系列集成温度传感器,其器件的管芯内集成了温敏软件、数据转换芯片和计算机借口芯片等多功能模块。该器件可直接输出二进制温敏信号,并通过串行输出方式与单片机通信。用其组成的测温系统稳定性、可靠性、维护工作量和工程造价等一系列指标都具有明显的优势。 适应电压范围3.05.5V,在寄生电源方式下可由数据线供电。 独特的单线借口方式,DS18B20在与微处理器连接时,仅需要一根口线即可实现微处理器与DS18B20的双向通信。 DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。 DS18B20在使用中,不需要任何外围元件,全部传感元件及转换电路集成在形如一只晶体管的集成电路中。 测温范围-55125,在-1085时精度为±0.5。 可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125、0.0625,可实现高精度测温。 在9位分辨率时,最多在93.75ms内把温度转换成数字;12位分辨率时,最多在750ms内把温度值转换为数字,速度更快。 测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。 负压特性,电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。3.2.2 DS18B20的结构DS18B20只有三个外部引脚,其引脚排列如图3-3所示:图3-3 DS18B20引脚排列图DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20中的温度传感器可完成对温度的测量。它的内部存储器包括高速暂存RAM和一个非易失性的可电擦除的E2PRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。暂存寄存器包括了8个连续字节,前2个字节是测得的温度信息,第1个字节的内容是温度的低8位,第2个字节是温度的高8位,第3个和第4个字节是TH、TL的易失性拷贝,第5个字节是结构寄存器的易失性拷贝,这3个字节的内容在每一次上电复位时被刷新,第6、7、8个字节用于内部计算,第9个字节是冗余检验字节。DS18B20完成温度转换后,就把测得的温度值与TH、TL做比较。若T>TH或T<TH,则将该器件内的报警标志置位,并对主机发出的报警搜索命令做出响应。因此,可用多个DS18B20同时测量温度并进行报警搜索,一旦某测温点超限,主机利用报警搜索命令即可识别正在报警的器件,并读出其序号,而不必考虑非报警器件。3.2.3 DS18B20的工作原理DS18B20测温原理如图3-4所示.图中,低温度系数晶体振荡器的频率受温度影响很小,用于产生固定频率的脉冲信号送给上方计数器;高温度系数晶体振荡器随温度变化,其震荡率明显改变,所产生的信号作为下方计数器的脉冲输入。上方计数器和温度寄存器被预置在-55所对应的一个技术值。上方计数器对低温度系数晶体振荡器产生的脉冲信号进行减法计数,当上方计时器的预置值减到0时,温度寄存器的值将加1,上方计数器的预置将重新被装入,上方计数器重新开始对低温度系数晶体振荡器产生的脉冲信号进行计数,如此循环,直到下方计数器计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3-4 DS18B20测温原理本系统中DS18B20与单片机的连接图如图3-5所示:如图,DS18B20 只需要接到控制器(单片机)的一个I/O 口上,由于单总线为开漏所以需要外接一个4.7K 的上拉电阻。如要采用寄生工作方式,只要将VCC 电源引脚与单总线并联即可。027.0DQ2VCC3GND1DS18B20R24k7温度检测图3-5 DS18B20与单片机的连接图DS18B20使用中需要注意的事项有: 较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。 当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 在DS1820测温程序设计中,向DS1820发出温湿度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。3.3 显示模块的设计常用的数码管显示器为8段,每一段对应一个发光二极管,分为共阳和共阴两种。共阴极LED显示的发光二极管的阴极连接在一起,通常此公共阴极接地。当发光二极管的阳极为高电平时,发光二极管被点亮,相应的段被显示。同样,共阳极LED的发光二极管的样机连接在一起,通常此公共阳极接高电平,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。一般情况下,用硬件实现速度比较快,可以节省CPU的时间,但系统的硬件接线复杂、系统成本较高。用软件实现则较为经济,但要更多的占用CPU的时间。所以在CPU时间不紧张的情况下,应尽量采用软件。如果系统回路多、实用性要求强,则考虑用硬件完成。例如,在显示接口电路设计时,为了降低成本可以采用软件译码的动态显示电路。但是如果系统的采样路数多、数据处理量大时,则应改为硬件静态显示。当显示位数较多时,因静态显示器所需的I/O线太多,一般采用动态显示方法。动态显示是一位一位地轮流点亮各位数码管,对于每一位数码管来说,每隔一段时间点亮一次,这种逐位点亮数码管的方式称为位扫描。通常,各位数码管的段选线相应并联在一起,由一个8位的I/O控制;动态方式显示时,各数码管分时轮流选通,要使其稳定显示,必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应的段码。依此规律循环,即可使各位数码管显示将要显示的字符。虽然这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够就可以给人以同时显示的感觉。图3-6 LED显示器的结构3.4 按键及声光报警电路的设计按键部分设计采用6个独立按键完成对温、湿度上下限的设定。6个按键的功能分别是: 选择温度进行设限 选择温度上限进行改变 选择温度下限进行改变 加1 减1 退出设定界面,显示监测到的温度另外,在微型计算机控制系统中,为了安全的生产,对于一些重要的参数或系统部位,都设有紧急状态报警系统,以便提醒操作人员注意,或采取紧急措施。其方法就是把计算机采集的数据或记过计算机进行数据处理、数字滤波,标度变换之后,与该参数上下限给定值进行比较,如果高于上限值(或低于下限值)则进行报警,否则就作为采样的正常值,进行显示和控制。报警部分设计采用峰鸣音报警电路。峰鸣音报警接口电路的设计只需购买市售的压电式蜂鸣器,然后通过AT89C51的1根口线经驱动器驱动蜂鸣音发声。压电式蜂鸣器约需10mA的驱动电流,可以使用TTL系列集成电路7406或7407低电平驱动,也可以用一个晶体三极管驱动。在图中,当输出高电平“1”时,晶体管导通,压电蜂鸣器两端获得约+5V电压而鸣叫;当输出低电平“0”时,三极管截止,蜂鸣器停止发声。 图3-7是一个简单的使用三极管驱动的峰鸣音报警电路。如图所示:图3-7 三极管驱动的峰鸣音报警电路3.5 单片机与PC机的通讯利用AT89C51单片机的标准串行接口,通过简单的外围接口电路,可以方便地实现单片机与PC机之间的数据通讯。本文对数据通讯无特殊要求,因此选择RS-232串行通讯。在接口电路和计算机接口芯片中大都为TTL或CMOS电平,所以在通信时,必须进行电平转换,以便与RS-232C标准的电平匹配 MAX232芯片可以完成电平转换这一工作。MAX232芯片是MAXIN公司生产的低功耗、单电源双RS232发送/接收器 适用于各种EIA-232E和V.28/V.24的通信接口MAX232芯片内部有一个电源电压变换器,可以把输入的+5V电源变换成RS-232C输出电平所需±10V电压,所以采用此芯片接口的串行通信系统只要单一的+5V电源就可以 。MAX232的管脚说明:C1+,C1-,C2+,C2-:外接电容端;R1IN,R2IN:2路RS-232电平信号接收输入端;R1OUT,R2OUT:2路转换后的TTL电平接收信号输出端,送单片机的RXD接收端;T1IN,T2IN :2路TTL电平发送输入端,接单片机的TXD发送端;T1OUT,T2OUT:2路转换后的发送RS-232电平信号输出端,接传输线;V+:经电容接+5V电源;V-:经电容接地。MAX232的芯片引脚如3-8图所示。接线图如3-9所示。图3-8 MAX232引脚图 图3-9 接线图3.6 温度调节系统的设计温度调节系统包括加温模块和制冷模块。它是由单片机的IO 口控制的,有效控制电平为+5V,执行机构的各种设备都是在市电下正常工作的,必须采用IO口控制继电器的导通和切断来控制市电的通断,也即控制执行设备的工作状态。由于单片机的IO不能提供足够的电流,不能直接驱动继电器导通,因此,我们采用达林顿管,将进行两级放大,提供了足够大的驱动电流,让继电器中的电感线圈产生足够大的磁力,将开关吸合。用户预先输入温度报警值到程序中,该值作为系统阈值。温度传感器监测值传输给单片机,当单片机比较监测到的数值超出所设定阈值时,驱动蜂鸣器报警,并为温度调节系统提供控制信号,实现自动控制。第四章 系统的软件设计4.1 软件设计的整体思想对于系统而言,要完成各项功能,首先必须要有较完善的硬件作保证。同时还必须得到相应设计合理的软件的支持,尤其是单片机应用高速发展的今天。许多由硬件完成的工作,都可通过软件编程来代替,甚至有些用很复杂的硬件电路才能完成的工作,用软件编程的时候,往往会变得很简单,如数字滤波,信号处理等等。系统进行软件设计时,先要对本设计硬件有一个熟练的掌握,知道系统的组成,数据的传输,信号是如何被控制的,以及信号的显示。然后进行软件设计时,先搞清楚各个部分的子程序及他们的流程图,最后将它们系统的编程。本系统设计的工作流程是:开始并初始化后,先从键盘上输入要设定的温度的上下限值;传感器读取温度值,读取成功后, LCD显示数据,如果温度过限,则报警装置启动并且启动控制设备;如果数据在温度上下限范围内,则显示温度值。4.2 主程序流程图图4-1 主程序流程图4.3 温度检测子程序流程图图4-2 温度传感器子程序流程图4.4 按键扫描子流程图 图4-3 按键扫描子程序流程图结 论以上内容为毕业前几个月所设计的蔬菜公司恒温库微机监控系统,它经过多次修改和整理,可以满足设计的基本要求。采用AT89C51单片机、DS18B20数字式温度传感器、LED液晶显示模块和报警装置等器件设计蔬菜公司恒温库微机监控系统,实现温度采集、数字显示;温度自动调节,湿度越限报警功能。由于本人专业知识不够过硬,水平有限,所以此设计肯定存在一定的问题。譬如系统抗干扰能力差。但是由于使用的是单片机作为核心的控制元件,配合其它器件,使此温度控制系统具有功能强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使之有很高的智能化水平。致 谢通过这段时间的资料收集、论证和设计,此次毕业设计已经接近尾声,作为一个本科生的毕业设计,由于缺乏实践经验,肯定难免有很多考虑不周到的地方,如果没有导师的极力督促和悉心指导、同学们的支持和帮助,我想要完成这个设计是很难的。首先我要感谢我的导师何琳琳老师。本论文是在何老师的悉心指导下完成的,何老师一直对我们严格要求、热情鼓励,使我们得到了不少学习和研究的机会。从课题的选择到设计的最终完成,何老师都始终给予我们细心的指导和不懈的支持。从开题报告到毕业设计论文,何老师对每一次修改都严格把关,指出文章中出现的问题。何老师认真负责的工作态度、对事业的执着追求、诲人不倦的教师风范和对问题的敏锐观察力,都将使我们毕生受益。在此我谨向我的指导老师以及在毕业设计过程中给予我帮助的同学们们致以最真诚的谢意!毕业临近,我也特别感谢郑州航空工业管理学院,让我在大专毕业后进一步深造,在这个大家庭里我学到了很多专业方面的知识和技能,在现代化的实验室里我实际动手操作了一些实验,自己亲手完成了一些实习项目,课程设计,这使得我的动手能力有了显著提高,对专业知识的掌握更加牢固与灵活,更有能力去迎接未来的挑战!参考文献1孙育才.MCS-51系列单片微型计算机及其应用(第四版) M.南京:东南大学出版社,20042徐爱钧.单片机原理实用教程.电子工业出版社,20113李朝青.PC 机及单片机数据通信技术 M .北京: 北京航空航天大学出版社, 20004谢自美.电子线路设计实验测试M.武汉:华中科技大学出版社,20005赖麒文.8051 单片机 C语言开发环境实务与设计 M.北京:科学出版社,20026王雪文.传感器原理及应用M.北京:北京航空航天大学出版社,20097张剑平.智能化检测系统及仪器M. 北京:国防工业出版社,20058王毅单片机器件应用手册M.人民邮电出版社,19949张琳娜.传感检测技术及应用M中国计量出版社,199910李光飞.单片机课程设计实例指导M.北京航空航天大学出版社,200411刘艳玲采用MAX232实现MCS-51单片机与PC机的通信J天津理工学院学报,199912周航慈单片机应用程序设计M北京航空航天大学出版社,1991附 录系统程序ORG 0000HTEMP_L EQU 29H ;保存读出温度的低8位TEMP_H EQU 28H ;保存读出温度的高8位T_DF EQU 27H ;保存读出温度的小数部份FLAG1 EQU 38H ;是否检测到DS18B20标志位A_BIT EQU 20H ;百位数存放内存位置B_BIT EQU 21H ;十位数存放内存位置C_BIT EQU 22H ;个位数存放内存位置D_BIT EQU 23H ;个位小数存放内存位置S_BIT EQU 24H ;正负号存放内存位置 ORG 0100HMAIN: LCALLGET_TEMPER ;调用读温度子程序MOVA,29H ;将28H中的低4位移入29H中的高4位MOVT_DF,A ;温度低字节暂存,待后作小数处理MOVA,#0FH ;取小数值 ANLA,T_DFMOVD_BIT,AMOVA,28H JNBACC.7,POSI CLRC ;为负,求其绝对值MOVA,29H SUBBA,#01H CPLAMOV T_DF,A ;温度低字节暂存 MOVA,#0FH ;取小数值 ANLA,T_DFMOVD_BIT,AMOVA,28H SUBBA,#00H CPLA MOV28H,A AJMPNEGPROD: MOVA,T_DF MOV C,40H ;将28H中的最低位移入C RRC A MOV C,41H RRC A MOV C,42H RRC A MOV C,43H RRC A MOV 29H,A RETPOSI:MOVS_BIT,#00H ;正号不显示ACALLPRODAJMPMAIN1NEG:MOVS_BIT,#40H ;显示“-”ACALLPRODMAIN1: LCALL DISPLAY ;调用数码管显示子程序 AJMP MAININIT_1820: ;这是DS18B20复位初始化子程序SETB p2.2 NOP CLR p2.2 MOV R1,#3TSR1: MOV R0,#107 ;主机发出延时537微秒的复位低脉冲 DJNZ R0,$ DJNZ R1,TSR1 SETB p2.2 ;然后拉高数据线 NOP NOP NOP MOV R0,#25HTSR2: JNB p2.2,TSR3 ;等待DS18B20回应 DJNZ R0,TSR2 ;延时 LJMP TSR4TSR3: SETB FLAG1 ;置标志位,表示DS1820存在 LJMP TSR5TSR4: CLR FLAG1 ;清标志位,表示DS1820不存在 LJMP TSR7TSR5: MOV R0,#117TSR6: DJNZ R0,TSR6 ;时序要求延时一段时间TSR7: SETB p2.2 RET ;读出转换后的温度值GET_TEMPER: SETB p2.2 LCALL INIT_1820 ;先复位DS18B20 JB FLAG1,TSS2;判断DS1820是否存在?若DS18B20不存在则返回 RET TSS2: MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE_1820 MOV A,#44H ;发出温度转换命令 LCALL WRITE_1820 LCALL DISPLAY;调用显示子程序实现延时,等待AD转换结束 LCALL INIT_1820 ;准备读温度前先复位 MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ;发出读温度命令 LCALL WRITE_1820 LCALL READ_18200 RET WRITE_1820: ;写DS18B20的子程序(有具体的时序要求)MOV R2,#8 ;一共8位数据 CLR CWR1: CLR p2.2 MOV R3,#6 DJNZ R3,$ RRC A MOV p2.2,C MOV R3,#23 DJNZ R3,$ SETB p2.2 NOP DJNZ R2,WR1 SETB p2.2 RET READ_18200: ;读DS18B20的程序,读出两个字节的温度数据MOV R4,#2 ;将温度高位和低位从DS18B20中读出 MOV R1,#29H ;低位存入29H(TEMP_L),高位存入28H(TEMP_H)RE00: MOV R2,#8 ;数据一共有8位RE01: CLR C SETB p2.2 NOP NOP CLR p2.2 NOP NOP NOP SETB p2.2 MOV R3,#9RE10: DJNZ R3,RE10 MOV C,p2.2 MOV R3,#23RE20: DJNZ R3,RE20 RRC A DJNZ R2,RE01 MOV R1,A DEC R1 DJNZ R4,RE00 RETPOFF: MOVA,B MOV P0,#0FEHJMP JAMP1RET DISPLAY: ;显示子程序MOV A,29H ;将29H中的十六进制数转换成10进制 MOV B,#100 DIV ABMOVA_BIT,A MOVA,B MOV B,#10 DIV ABMOVB_BIT,A SETB C MOV A,29HCJNE A,#28H,RER ;40度RER:JNC POFF MOV P0,#0FFH JAMP1: MOVB,#10 DIVAB MOVC_BIT,BMOV R0,#2DPL1: MOV R1,#250 ;显示500次DPLOP: MOVA,D_BIT MOVDPTR,#DFTABMOVC A,A+DPTR ;查个位小数的7段代码 MOV P1,A ;送出个位小数的7段代码 CLR P3.7 ;开个位小数显示ACALL D1MS ;显示1ms SETB P3.7MOV A,C_BIT ;取个位数 MOV DPTR,#NUMTAB ;指定查表启始地址 MOVC A,A+DPTR ;查个位数的7段代码 MOV P1,A ;送出个位数的7段代码 CLR P3.6 ;开个位显示 SETBP1.7 ;个位小数点显示 ACALL D1MS ;显示1ms SETB P3.6 MOV A,B_BIT ;取十位数 CJNEA,#00H,DISP1SETBP3.5AJMPDISP2DISP1:MOVC A,A+DPTR ;查十位数的7段代码MOV P1,A ;送出十位的7段代码CLR P3.5 ;开十位显示ACALL D1MS ;显示1ms SETBP3.5DISP2:MOVA,A_BIT ;取百位数CJNEA,#00H,DISP3 ;百位数是0,转DISP4AJMPDISP4DISP3:MOVA,B_BITMOVC A,A+DPTR ;查十位数的7段代码MOV P1,A ;送出十位的7段代码CLRP3.5ACALL D1MSSETBP3.5MOVA,A_BITMOVCA,A+DPTRMOVP1,ACLRP3.4ACALLD1MSSETBP3.4DISP4: MOVA,S_BITMOVP1,ACJNEA,#00H,D41 AJMPDISP5D41:CLRP3.4 ;因负温度最小55度,-移到百位ACALLD1MSSETBP3.4DISP5: DJNZ R1,DPLOP ;250次没完循环 DJNZ R0,DPL1 ;2个250次没完循环 RET ;1MS延时(按12MHZ算)D1MS: MOVR7,#2MOV R6,#250 DJNZ R6,$DJNZR7,$-4 RETNUMTAB: DB 3FH ;0 DB 06H ;1 DB 5BH ;2 DB 4FH ;3 DB 66H ;4 DB 6DH ;5 DB 7DH ;6 DB 07H ;7 DB 7FH ;8 DB 6FH ;9DFTAB:DB3FH,06H,06H,5BHDB4FH,4FH,66H,66HDB6DH,7DH,7DH,07HDB7FH,7FH,6FH,6FH END33
展开阅读全文