1、基于AT89C51单片机的蔬菜大棚温度控制系统设计大学毕业论文毕业设计学位论文范文模板参考资料摘要:本设计以AT89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路、温度显示电路。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还着重介绍了软件设计部分,在这里采用模块化结构,主要模块有:数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、继电器控制程序、超温报警程序。通过对基于单片机的相对温度控制器设计,加深对传感器技术及检测技术的了解,巩
2、固对单片机知识的掌握,并系统的复习本专业所学过的知识。关键词:AT89C51单片机 DS18B20温度检测芯片 温度控制Abstract:This design as the core of the AT89C51 temperature control system of the working principle and design method. Temperature signal chipDS18B20collection by the temperature, and the way to digital signal transfer to the microcontrolle
3、r. The paper introduces the hardware part of the control system, including: temperature detection circuit, temperature control circuit, temperature display circuit. SCM through to signal processed, so as to achieve the purpose of temperature control. This paper has mainly introduced the software des
4、ign part, here the modularized structure, main module has: digital tube show program, keyboard scanning and key processing program, temperature signal processing program, relay control procedures, super temperature alarming program.Through to the relative temperature controller based on single chip
5、design, deepen our understanding of the sensor technology and testing technology of understanding, consolidate the SCM grasp the knowledge and the system review this professional the learned knowledge.Keywords: AT89C51 single-chip microcomputer temperature detection chipDS18B20temperature control基于A
6、T89C51单片机的蔬菜大棚温度控制系统设计引言:蔬菜的生长与温度息息相关,对于蔬菜大棚来说,最重要的一个管理因素是温度控制。温度太低,蔬菜就会被冻死或则停止生长,所以要将温度始终控制在适合蔬菜生长的范围内。如果仅靠人工控制既费时费力, 效率低,又容易发生差错,为此,在现代化的蔬菜大棚管理中通常有温度自动控制系统,来监控采集大棚内各个角落的温度变化情况,以控制蔬菜大棚温度,适应生产需要。要时刻对蔬菜大棚的温度进行测量,就离不开温度传感器。传统的继电器调温电路简单实用 ,但由于继电器动作频繁 ,可能会因触点不良而影响正常工作。控制领域还大量采用传统的PID控制方式,但PID控制对象的模型难以建立
7、,并且当扰动因素不明确时,参数调整不便仍是普遍存在的问题。而采用数字温度传感器DS18B20,因其内部集成了A/D转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。数字温度传感器DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。由于DS18B20芯片的小型化,更加可以通过单跳数据线就可以和主电路连接,故可以把数字温度传感器DS18B20做成探头,探入到狭小的地方,增加了实用性。1. 系统方案选择和论证1.1 任务设计一个大棚温度自动控制系统。系统温度可以在一定范围内由人工设定,并能在环境温度降低时实现自动通风降
8、温,在环境温度升高时实现自动加温,以保持设定的温度基本不变。1.2 任务要求设计基于AT89C51单片机的大棚温度温度控制器,用于控制温度。具体要求如下:大棚温度控制在15-28之间。控制10台50KW三相电阻炉为加热设备。采用5台单相100W通风机作为通风散热设备。易于操作,方便人机对话。1.3 系统基本方案根据题目要求系统模块分可以划分为:键盘模块,温度测量模块,显示电路模块,升温降温模块,报警模块。为实现各模块的功能,分别做了几种不同的设计方案并进行了论证。1.3.1 各模块电路的方案选择及论证(一)键盘模块方案一:采用4*4矩阵型按键在键盘中按键数量较多时,为了减少I/O口的占用,通常
9、将按键排列成矩阵形式。矩阵按键对应独立按键,可以节约数据线,但需要特定的键盘扫描程序,占用空间较大。通常在按键大于6个的时候是用矩阵式按键。方案二:采用独立按键,接线简单,易于理解,不需要特定的键盘扫描程序,占用空间比较少。在本设计中用到了5个按键,所以选用独立按键比较合适。(二)温度测量模块方案一:利用热电阻传感器作为感温元件,热电阻随温度变化而变化,用仪表测量出热电阻的阻值变化,从而得到与电阻值相应的温度值。最常用的是铂电阻传感器,铂电阻在氧化介质中,甚至在高温的条件下其物理,化学性质不变。由铂电阻阻值的变化经小信号变送器XTR101将铂电阻随温度变化的转换为420mA线形变化电路,再将电
10、流信号转化为电压信号,送到A/D转换器,即将模拟信号转换为数字信号。电路结构复杂,误差较大。方案二:采用数字温度传感器DS18B20。DS18B20为数字式温度传感器,无需其他外加电路,直接输出数字量。可直接与单片机通信,读取测温数据,电路简单。DS18B20 的测温范围-55125,分辨率最大可达0.0625 。DS18B20 是Dallas 半导体公司的数字化温度传感器,它是一种支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。一线总线将独特的电源和信号复合在一起,并仅使用一条线,每个芯片都有唯一的编码,支持联网寻址
11、,简单的网络化的温度感知,零功耗等待等特点。DS18B20与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,因而使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面带来了令人满意的效果。所以比设计中选用DS18B20温度传感器,节省了A/D转换器,同时也节省了I/O输出口,误差小,测量准确。(三)显示电路模块方案一: 使用静态显示,此方法不用另加外界驱动直接与单片机输出口相连,不需要单独的程序来完成显示。但
12、是占用I/O借口多。 方案二: 使用动态显示,节省了I/O输出口,但是此方法需加外加外部驱动以此增加输出电流来更好的驱动数码管显示,电路简单,成本稍高,需要特定的编程来完成动态刷新。本设计中使用的是动态显示,因为没有太多的输出口来完成静态显示,故选动态显示。(四)升温降温模块根据题目,可以使用电热炉进行加热,控制电热炉的功率即可以控制加热的速度。当温度过高时,关掉电热炉打开通风机进行降温处理。当需要加热时开启电炉关闭通风机。由于电热炉和通风机的功率较大,考虑到简化电路的设计,我们直接采用220V电源。对升温降温模块有以下两种方案:方案一:采用继电器控制。使用继电器可以很容易实现地通过较高的电压
13、和电流,在正常条件下,工作十分可靠。继电器无需外加光耦,自身即可实现电气隔离。这种电路无法精确实现电热丝功率控制,电热丝只能工作在最大功率或零功率,对控制精度将造成影响。方案二: 应用了光耦合器,光耦合器一般由三部分组成:光的发射、光的接收及信号放大。输入的电信号驱动发光二极管(LED),使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放大后输出。这就完成了电光电的转换,从而起到输入、输出、隔离的作用。由于光耦合器输入输出间互相隔离,电信号传输具有单向性等特点,因而具有良好的电绝缘能力和抗干扰能力。又由于光耦合器的输入端属于电流型工作的低阻元件,因而具有很强的共模抑制能力。所以,
14、它在长线传输信息中作为终端隔离元件可以大大提高信噪比。在计算机数字通信及实时控制中作为信号隔离的接口器件,可以大大增加计算机工作的可靠性。所以选择光耦合器更安全控制更准确。通过比较,我们选择方案二。(五)报警模块按照设计要求,当温度低于下限或高于上限时,应具有报警功能。这样就可以用一只蜂鸣器作为三极管 VT1 的集电极负载,当 VT1 导通时,蜂鸣器发出鸣叫声;VT1 截止时,蜂鸣器不发声。1.3.2 系统各模块的最终方案根据以上分析,结合器件和设备等因素,确定如下方案: 1. 采用AT89C51单片机作为控制器,分别对温度采集、数码管显示、温度设定、升温降温控制。2. 温度测量模块采用数字温
15、度传感器DS18B20。此器件经软件设置可以实现高分辨率测量。 3.电热炉和通风机控制采用光耦合器控制。4. 显示用数码管显示实时温度值。系统的基本框图如图1.1所示。AT89C51CPU(AT89C51)首先写入命令给DS18B20,然后DS18B20开始转换数据,转换后通过AT89C51来处理数据。数据处理后的结果就显示到数码管上。另外由键盘设定温度值送到单片机,单片机通过数据处理发出温度控制信息到继电器。2. 系统硬件设计2.1 单片机型号选择单片机型号的选择是根据设计的内容而定的,并不是什么单片机都可以用。一方面要考虑选用的单片机能否在不需要外扩的情况下就可以满足要实现的功能。比如:单
16、片机的存储器空间的大小、单片机的 I/O 口数等。另一方面还要考虑单片机的性价比,是否容易买到等一些外部因素。由于实现该系统功能的程序不会超过 4K,而 AT89C51 单片机内部有 4K 的 FlASH 程序存储器和 2K 的数据存储器,因而不需要外扩程序存储器和数据存储器。并且该型号单片机程序下载方便、价格便宜的优点,因而被广泛的应用。AT89C51单片机引脚排列及功能见图 2-3 所示。由图可知该单片机共有40个引脚,按其功能类别将他们分为三类:1.电源和时钟引脚。如Vcc、GND、XTAL1、XTAL2。 2.编程控制引脚。如 RST、PSEN、ALE、 EA/Vpp。3.I/O 口引
17、脚。如 P0、P1、P2、P3,4 组 8 位 I/O 口。 管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
18、在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口,可
19、接收输出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脚两个机
20、器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次
21、/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2.2 单片机最小系统电路设计单片机最小系统就是保证单片机能够正常工作的最基本的硬件电路。主要包括时钟电路、复位电路。单片机工作的时间基准是有时钟电路提供的。
22、在单片机的 XTAL1和 XTAL2 管脚,按图 2-4 所示接上晶振和电容就够成了单片机的时钟电路。图 2-4 时钟电路 图中电容C2、C3对晶振频率有微调的作用,通常的取值范围为(30+10pf)。石英晶体选择 12MHz,选择不同的石英晶体,其结果只是机器周期不同。单片机的复位方式有上电复位和手动复位两种。本设计系统采用上电自动复位和手动复位组合电路,如图 2-5 所示复位电路。图 2-5 复位电路图中可以看到单片机的 RST 引脚连接 R1(10K)、C1(10uf),按键 S2 可以选择专用的复位按键,也可以选择轻触开关。只要 Vcc上升时间不超过 1ms,他们都能很好的工作。 2.
23、3 温度采集部分设计本系统采用采用了DS18B20单总线可编程温度传感器,来实现对温度的采集和转换,与单片机P2.6口相连,直接与单片机通讯,大大简化了电路的复杂度。DS18B20是美国 DALLAS 半导体公司推出的第一片支持“一线总线”接口的温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,可直接将温度转化成串行数字信号供处理器处理。1.DS18B20 温度传感器特性 适应电压范围宽,电压范围在3.0-5.5V,再寄生电源方式下可有数据线供电。 独特的单线接口方式,它与微处理器连接时仅需一条口线即可实现微处理器与DS18B20的双向通信。 支持多点组网功能,多个D
24、S18B20可以并联在唯一的三线上,实现组网多点测温。 在使用中不需要任何外围元件,全部传感器元件及转换电路集成在形如一只三极管的集成电路内。 测温范围-55-+125,在-10-+85时精度为+0.5。 可编程分辨率为9-12位 ,对应的可分辨率温度为0.5,0.25,0.125和 0.0625,可实现高精度测温。 在9位分辨率时,最多在93.75ms内把温度转换为数字;12位分辨率时,最多在750ms内把温度值转换为数字,显然速度更快。 测量结果直接输出数字温度信号,以“一线总线”串行传给CPU,同时可传送 CRC 校验码,具有极强的抗干扰纠错能力。 负压特性。电源极性接反时,芯片不会因为
25、发热而烧毁,但不能正常工作。2.应用范围 冷冻库、粮仓、储罐、电信机房、电力机房、电缆线槽等测温和控制领域。 轴瓦、缸体、纺机、空调等狭小空间工业设备测温和控制。 汽车空调、冰箱、冷柜以及中低温干燥箱等。 供热、制冷管道热量计量、中央空调分户热量计量等。3.引脚介绍 DS18B20 有两种封装:三脚TO-92直插式和八脚SOIC贴片式,封装引脚见图2-10 所示。列出了引脚定义。图 2-10 DS18B20 引脚封装图DS18B20引脚定义如下:(1)DQ为数字信号输入/输出端;(2)GND为电源地;(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。4.总线连接我们首先来了解“单总
26、线”的概念。目前常用的单片机与外设之间进行数据传输的串行总线主要有IC总线以同步串行二线方式进行通信(一条时钟线,一条数据线),SPI总线则以同步串行三线方式进行通信(一条时钟线,一条数据输入线,一条数据输出线),而SCI总线是以异步方式进行通信的(一条数据输入线,一条数据输出线)。这些总线至少需要两条或两条以上的信号线,而DS18B20使用的单总线技术与上述总线不同,它采用单条信号线,即可传输时钟,又可传输数据,而且数据传输是双向的,因而这只中单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。单总线实用与单主机系统,能够控制一个或多个从机设备。主机可以是微控制器,从机可
27、以是单总线器件,他们之间的数据交换只通过一条信号线。当只有一个从机设备时,系统可按单节点系统操作;当有从机设备时,系统则按多节点系统操作。设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放出总线,而让其他设备使用总线。单总线要求外接一个约为4.7k的上拉电阻。本设计系统的温度采集电路图如图 2-12 所示。图 2-12 DS18B20 温度传感器采集电路有图可以看出,DS18B20和单片机的连接非常简单,单片机只需要一个I/O口就可以控制DS18B20。这个图的接法是单片机于一个DS18B20通信,如果要控制多个DS18B20进行温度采集,只要将所有的D
28、S18B20的I/O口全部连在一起就可以了。在具体操作时,通过读取每个DS18B20内部芯片的序列号来识别。本系统仅操作一个DS18B20进行温度采集。 5.工作原理 硬件电路连接好后,单片机需要怎样工作才能将DS18B20中的温度数据读取出来呢?下面将给出详细的分析。首先我们来看控制DS18B20的指令: 33H读ROM。读DS18B20温度传感器ROM中的编码(即64位地址)。 55H匹配ROM。发出此命令之后,接着发出64位ROM编码,访问单总线上与改编码对应的DS18B20并使之做出响应,为下一步对该DS18B20的读/写做准备。 F0H搜索ROM。用于确定挂接在同一总线上的DS18B
29、20的个数,识别64位ROM 地址,为操作各器件做好准备。 CCH跳过ROM。忽略64位ROM地址,直接向18B20发送温度变换命令,适用于一个从机工作。 ECH告警搜索命令。执行后只有温度超过设定值上限或下限芯片才做出响应。以上这些指令涉及的存储器是 64位光刻录ROM。64位光刻录ROM中的序号是出厂前被光刻录好的,它可以看做该DS18B20的地址序列号。其各位排列顺序是:开始8位为产品类型标号,接下来48位是该DS18B20自身的序列号,最后8位是前面56位的CRC循环冗余校验码(CRC=X8+X5+X4+1)。光刻录 ROM的作用是使每一个 DS18B20都各不相同,就这样可以实现一条
30、总线上挂接多个DS18B20 的目的。 下面介绍以上几条指令的用法。当主机需要对众多在线DS18B20中的某一位进行操作时,首先应将主机逐个与DS18B20挂接,读出其序列号;然后再将所有的DS18B20挂接到总线上,单片机发出匹配ROM命令(55H),紧接着主机提供的64位序列(包括该DS18B20 的48位序列号)之后的操作就是针对该DS18B20的。如果主机只对一个DS18B20进行操作,就不需要读取ROM编码以及匹配ROM编码了,只要用跳过ROM(CCH)命令,就可以进行如下温度转换和读取操作。 44H温度转换。启动DS18B20进行温度转换,12位转换时最长为750ms(9位为93.
31、75ms)。结果存入内部9字节 RAM 中。 BEH度暂存器。读内部 RAM 中9字节的温度数据。 4EH写暂存器。发出向内部RAM的第2、3字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。 48H复制暂存器。将 RAM 中第2、3字节的内容复制到EPROM中。 B8H重调 EPROM。将EPROM中内容恢复到RAM中的第3,4字节。 B4H读供电方式。读DS18B20的供电模式。寄生供电时,DS18B20发送 0;外接电源供电时,DS18B20发送1。 以上这些指令涉及的存储器为高速暂存器RAM和可电擦除EPROM,见表 2-14 所示。表 2-14 高速寄存器寄存器内容字节地址温度值低位(LSB)0温度值高位(MSB)1高温限值(TH)2低温限制(TL)3配置寄存器4保留5保留6保留7CRC 校验值8高速暂存器 RAM 由 9 个字节的存储器组成。第 0-1 个字节是温度的显示位;第 2 和第 3 个字节是复制的 TH 和 TL,同时第 2 和第 3 个字节的数字可以更新;第四个字节是配置寄存器,同时第 4 个字节的数字可以更新;第 5,6,7 三个字节是保留的。可电擦除 EPROM 又包括温度触发器 TH 和 TL,以及一个配置寄存器。表 2-15 列出了温度
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1