基于at89c51单片机的蔬菜大棚温度控制系统的设计--本科毕业设计论文.doc

上传人:知****量 文档编号:86251441 上传时间:2023-04-14 格式:DOC 页数:41 大小:1.05MB
返回 下载 相关 举报
基于at89c51单片机的蔬菜大棚温度控制系统的设计--本科毕业设计论文.doc_第1页
第1页 / 共41页
基于at89c51单片机的蔬菜大棚温度控制系统的设计--本科毕业设计论文.doc_第2页
第2页 / 共41页
点击查看更多>>
资源描述

《基于at89c51单片机的蔬菜大棚温度控制系统的设计--本科毕业设计论文.doc》由会员分享,可在线阅读,更多相关《基于at89c51单片机的蔬菜大棚温度控制系统的设计--本科毕业设计论文.doc(41页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、目 录摘 要1ABSTRACT2第1章 绪论31.1 课题研究的背景31.2 课题的研究现状31.3 本文研究的主要内容和思路3第2章 系统方案选择和论证42.1 任务42.2 任务要求42.3 系统基本方案4 2.3.1 各模块电路的方案选择及论证4 2.3.2 系统各模块的最终方案6第3章 系统硬件设计73.1 单片机型号选择73.2 单片机最小系统电路设计113.3 温度采集部分设计123.4 按键电路设计133.5 数码管显示电路设计133.6 温度控制电路设计143.7 报警电路设计15第4章 系统软件设计164.1 主程序流程图164.2 键盘扫描子程序174.3 读取DS18B2

2、0温度模块子程序184.4 数据处理子程序18第5章 控制系统的仿真205.1 编程软件简介205.2 仿真软件Proteus介绍205.3 软件结合调试21第6章 结论24参考文献25附录:程序清单27致 谢39摘 要随着大棚技术的发展,温室大棚数量越来越多。对于温室,最重要的因素是大棚内部温度的管理控制。当温度低于适合蔬菜生长的温度时,蔬菜会停止生长甚至出现冻死的情况,因此要将温度控制在适合蔬菜生长的范围之内。以前的温室大棚温度控制是通过人工来控制的,工人依据温度计上测得的温度值来调整温室内的温度。如果仅依靠工人去人工控制,错误就会经常出现而且生产效率也会大大低下。现在,随着农业现代化的普

3、及,温室大棚数量质量的日益提高,以前的温度控制方法在操作中出现了很大的局限性。由于这种局限性的存在,在现在的蔬菜温室大棚中通常都需要有能够自己调节温度高低的设备,以控制温室大棚内部的温度,满足生产所需的温度条件。本设计是以AT89C51单片机为核心进行温度控制系统的设计,设计的主要内容包括对温度检测电路,温度显示电路,温度控制电路等方面的设计。通过Proteus仿真结果的显示,该系统能够模拟出大棚内部的实时温度,并且根据显示温度数据的高低来调整大棚内部温度达到适合蔬菜生长的温度要求。关键词:AT89C51单片机;温室大棚;温度控制ABSTRACT With the development of

4、 greenhouse technology, an increasing number of greenhouse, the greenhouse, the most important factor is management and control of the temperature inside the greenhouse.When the temperature is lower than the temperature for the growth of vegetables, vegetables will stop growing or even to freeze to

5、death, so to control the temperature within the range for the growth of vegetables.Before the greenhouse temperature control is controlled by manual, the workers according to the temperature of the thermometer measured value to adjust the temperature in the greenhouse.Ifonlyrely on the workerstocont

6、rolthe artificialerror willoften appear,and the productionefficiency will be greatlylowered.Now, with the popularization of agricultural modernization, increasing the quantity and quality of greenhouse, the previous temperature control method in operating the great limitations.Because of the limitat

7、ions, in now the vegetable greenhouses usually need to adjust the high and low temperature equipment, to control greenhouse inside temperature and meet the conditions needed for the production of temperature. The design is based on AT89C51 microcontroller as the core temperature control system desig

8、n, the design of the main contents include the temperature detection circuit, temperature display circuit, temperature control circuit design.Through the Proteus simulation results show that the system can simulate the real-time temperature inside the greenhouse, and according to the level of temper

9、ature data to adjust the temperature inside the greenhouse temperature for the growth of vegetables to meet the requirements. Key words: AT89C51 microcontrolle; Greenhouse;Temperature control第1章 绪论1.1 课题的研究背景我国北方,冬季寒冷漫长。蔬菜大棚技术的普及能够更好地满足人民对于生活水平日益提高的需要。冬季蔬菜大棚管理中最重要的一个因素是温度控制。温度控制一般分四个时段进行。上午要促进蔬菜的光合作

10、用增加同化量,温度要控制在25到30度。下午光合作用慢慢下降,要将温度降低5度左右。日落后要将温度下降到15度左右,这样有利于促进蔬菜体内同化物的运转。后半夜需要抑制呼吸消耗,增加蔬菜体内有机物的积累,需将温度下降到10至15度左右1。在蔬菜大棚温度控制系统中应用单片机技术可以对温度起到很好的控制作用,可完成对温室大棚内部温度控制相应方面的需求。1.2 课题的研究现状在现代化农业生产中,以蔬菜大棚为代表的现代农业设施在现代化农业生产中发挥着巨大的作用。在国外,温室控制技术己经趋于完善。而且形成了一定的水准,但是费用相对较贵。控制系统软件也与我国的气候特点不太符合。我国的温室大棚温度控制大都采用

11、人工控制,这种控制方式会有许多弊端。比如温度的测量不准、工作量大以及监控不及时等,这样容易对农业生产带来许多损失,这种温度控制方式测控精度低,人力物力耗费巨大,而且很难达到预期效果。为了实现温度控制准确性,推动我国温室大棚技术的发展,必须大力发展我国农业现代化建设。面对当今这种现状,设计出一种经济实用效率高的蔬菜大棚温度控制系统势在必行。1.3 本文研究的主要内容和思路该系统通过温度传感器测量温度信号,并将该信号传至单片机进行相应的处理。当温度传感器接受的温度信号高于设定的适合蔬菜生长的温度上限值时,单片机通过电机的运转带动排风扇排气,促进大棚内部空气的流动降低大棚内的温度;当温度传感器接受的

12、温度信号低于设定的适合蔬菜生长的温度下限值时,单片机通过控制电热炉加热来达到升高大棚内温度的目的。第2章 系统方案选择和论证2.1 任务设计出一个蔬菜大棚温度控制系统。该系统的温度上下限报警值可以通过人工设定,并能够在外界温度高于设置温度上限时实现排风扇自动运转通风降温,在外界温度低于设置温度下限时实现电热炉自动加热升温,以保持大棚内部的温度始终处于适合蔬菜生长的温度范围内。2.2 任务要求 设计基于AT89C51单片机的蔬菜大棚温度控制系统,用于自动调节大棚内部的温度。大棚内部温度始终控制在10-30之间。2.3 系统基本方案根据任务要求,该系统模块可以划分为以下几个部分:键盘模块,温度测量

13、模块,显示电路模块,报警模块。根据各个模块不同的功能特点,分别做了几种不同的设计方案并且进行了相关方面的论证。2.3.1 各模块电路的方案选择及论证(一)键盘模块方案一:采用4*4矩阵型按键 键盘中当按键的数量较多时。I/O口将被大量占用。为减少I/O口被大量占用,可将按键排列为矩阵样式。矩阵式按键一般在按键数量大于六个时使用。方案二:采用独立式按键 独立式按键接线非常容易,而且易于去理解。没有特定的键盘扫描程序,占用的空间也比较少。由于本设计中只用到了4个按键,属于按键较少的类型,因此本设计中的键盘模块选用独立式按键。(二)温度测量模块方案一: 利用热电阻传感器作为感温元件。热电阻随温度变化

14、而变化,用仪表测量出热电阻的阻值变化,从而得到与电阻值相应的温度值。最常用的是铂电阻传感器,铂电阻在氧化介质中,甚至在高温的条件下其物理,化学性质不变。由铂电阻阻值的变化经小信号变送器XTR101将铂电阻随温度变化的转换为420mA线形变化电路,再将电流信号转化为电压信号,送到A/D转换器,即将模拟信号转换为数字信号。电路结构复杂,误差较大。方案二: 采用数字温度传感器DS18B20。DS18B20为数字式温度传感器,无需其他外加电路,直接输出数字量。可直接与单片机通信,读取测温数据,电路简单。DS18B20 的测温范围-55至125,分辨率最大可达0.0625 。DS18B20 是Dalla

15、s 半导体公司的数字化温度传感器,它是一种支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。一线总线将独特的电源和信号复合在一起,并仅使用一条线,每个芯片都有唯一的编码,支持联网寻址,简单的网络化的温度感知,零功耗等待等特点2。 DS18B20温度传感器与传统的热敏电阻相比较,它能够直接读取测量温度,并且可以通过简单的编程实现9至12位的数字值读数方式。而且从DS18B20读出的信息或写入DS18B20的信息仅需要一根单线读写,因而使用DS18B20可使系统结构更加简单,可靠性更高。DS18B20在分辨率、测温精度、传输

16、距离、转换时间等方面有着很好的表现效果。 所以本设计中选用了DS18B20温度传感器,节省了A/D转换器,同时也节省了I/O输出口,误差小,测量准确。(三)显示电路模块方案一: 使用静态显示,此方法不用另加外界驱动直接与单片机输出口相连,不需要单独的程序来完成显示。但是占用I/O接口多。方案二: 使用动态显示,节省了I/O输出口,但是此方法需加外部驱动以此增加输出电流来更好的驱动数码管显示,电路简单,成本稍高,需要特定的编程来完成动态刷新。 本设计中使用的是动态显示,因为没有太多的输出口来完成静态显示,故选动态显示。(四)报警模块 按照设计要求,当温度低于下限或高于上限时,应具有报警功能。这样

17、就可以用一只蜂鸣器作为三极管 VT1 的集电极负载,当 VT1 导通时,蜂鸣器发出鸣叫声;VT1 截止时,蜂鸣器不发声3。2.3.2 系统各模块的最终方案 根据以上分析,结合器件和设备等因素,确定如下方案: 1.采用AT89C51单片机作为控制器,分别对温度采集、数码管显示、温度设定、升温降温控制。2.温度测量模块采用数字温度传感器DS18B20。此器件经软件设置可以实现高分辨率测量。 3.显示用数码管显示实时温度值。4.通过排风扇和电热炉控制升降温。 系统的基本框图如图1所示。图1 系统原理图CPU(AT89C51)首先写入命令给DS18B20,然后DS18B20开始转换数据,转换后通过AT

18、89C51来处理数据。数据处理后的结果就显示到数码管上。另外由键盘设定温度值送到单片机,单片机通过数据处理发出温度控制信息到继电器。第3章 系统硬件设计 本系统主要由4个大的模块构成,分别是主控模块、传感器模块、数码管显示模块及报警模块,其中主控模块是此次毕业设计的核心模块,主要是指AT89C51芯片,它控制整个系统的运行,利用其各个口分别控制其他模块,使其他模块能够成为一个整体,实现功能的需要;传感器模块用于实验室实时温度的检测,由于DHT11的数字一体性,集成了模数转换等模块。直接接单片机即可;传感器模块用于实验室实时温度的检测,由于DHT11的数字一体性,集成了模数转换等模块。直接接单片

19、机即可;报警模块主要指将蜂鸣器接入单片机电路,通过对时温度的检测,并给定所需要的温度区间,即给定上下限值,实现越限报警。3.1 单片机型号选择 单片机型号的选择是根据设计的内容而定的,并不是什么单片机都可以用。一方面要考虑选用的单片机能否在不需要外扩的情况下就可以满足要实现的功能。比如:单片机的存储器空间的大小、单片机的 I/O 口数等。另一方面还要考虑单片机的性价比,是否容易买到等一些外部因素。 由于实现该系统功能的程序不会超过 4K,而 AT89C51单片机内部有4K的 FlASH 程序存储器和 2K 的数据存储器,因而不需要外扩程序存储器和数据存储器。并且该型号单片机程序下载方便、价格便

20、宜的优点,因而被广泛的应用。AT89C51单片机引脚排列及功能见图 2所示。图2 AT89C51单片机引脚图 由图可知该单片机共有40个引脚,按其功能类别将他们分为三类:1.电源和时钟引脚。如VCC、GND、XTAL1、XTAL2。 2.编程控制引脚。如 RST、PSEN、ALE、 EA/VPP。3.I/O 口引脚。如 P0、P1、P2、P3,4 组 8 位 I/O 口。 管脚说明:VCC:电源接入引脚。GND:接地引脚。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写入1时,将会被定义为高阻输入。P0可以用为外部程序数据存储器,它可以被定义为数

21、据/地址的第八位。在FIASH编程中,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高4。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是

22、由于内部上拉的缘故。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 TX

23、D(串行输出口)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。因此它可用作对外部输出的脉冲

24、或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否会有内部程序存储器。加密方式为1时,/EA将内部锁定为RESET;当/EA端保持高

25、电平时,此间内部程序存储器。在FLASH编程过程中,此引脚也用于施加12V编程电源(VPP)。XTAL1:晶体振荡器接入的一个引脚。XTAL2:晶体振荡器接入的另一个引脚。 存储空间配置和功能:AT89C51单片机的存储器组织结构可以分为三个不同的存储空间,分别是:64KB程序存储器(ROM),包括片内ROM和片外ROM;64KB外部数据存储器(外RAM);256KB(包括特殊功能寄存器)内部数据存储器(内RAM); 三个不同的存储空间用不同的指令和控制信号实现读写功能操作:ROM空间用MOVC指令实现只读功能操作,用PSEN信号选通读外ROM;外RAM空间用MOVX指令实现读写功能操作,用R

26、D信号选通读外RAM,用WR信号选通写外RAM;内RAM(包括特殊功能寄存器)用MOV指令实现读写和其它功能操作; 程序存储器(ROM):ROM空间共64KB ,其中60KB在片外。地址范围为1000HFFFFH,无论片内片外,ROM地址空间是统一并且不重叠。对于有内ROM的AT89C51,EA应接高电平,复位后先从内ROM0000H开始执行程序,当PC值超出内ROM4KB空间时,会自动转向片外ROM1000H依次执行程序;读ROM是以程序计数器PC作为16位地址指针,依次读取相应的地址ROM中的指令和数据,每读一个字节,(PC)+1PC,这是CPU自动形成的。但是有些指令有修改PC的功能,例

27、如转移类指令和MOVC指令,CPU将按修改后的PC16位地址读ROM。读外ROM的过程:CPU从PC中取出当前ROM的16位地址,分别由P0口(低8位)和P2口(高8位)同时输出,ALE信号有效时由地址锁存器锁存低8位地址信号,地址锁存器输出的低8位地址信号和P2口输出的高8位地址信号同时加到外ROM16位地址输入端,当PSEN信号有效时,外ROM将相应地址存储单元中的内容送至数据总线(P0口),CPU读入后存入指定单元5。需要指出的是,64KB中有一小段范围是单片机系统的专用单元,0003H0023H是五个中断源中断服务程序入口地址,用户不能安排其它内容。单片机复位后,(PC)=0000H,

28、CPU从地址为0000H的ROM单元中读取指令和数据。从0000H到0003H只有3个字节,根本不可能安排一个完整的系统程序,而单片机又是依次读ROM字节的,因此,这3个字节只能用来安排一条跳转指令,跳转到其它合适的地址范围执行真正的主程序。 外部数据存储器(外RAM):外部数据存储器共64KB,读写外RAM用MOVX指令,控制信号是P3的WR和RD。读写外RAM的过程:外RAM16位地址分到由P0口(低8位)和P2口(高8位)同时输出,ALE信号有效时由地址锁存器锁存低8位地址信号,地址锁存器输出的低8位地址信号和P2口输出的高8位地址信号同时加到外RAM16位地址输入端,当信号有效时,外R

29、AM将相应地址单元中的内容送至数据总线(P0口),CPU读入后存入指定单元。或当信号有效时,外RAM将数据总线(P0口分别传送)上的内容写入相应地址存储单元中6。外部数据存储器主要用于存放数据和运算结果。一般情况下,只有在内RAM不能满足应用时,才接外RAM。其最大容量可达64K字节,外部数据存储器和内部数据存储器的功能基本相同,但前者不能用于堆栈操作。必须注意,由于数据存储器与程序存储器全部64K地址重叠,且数据存储器的片内外的低字节地址重叠。所以,对片内、片外数据存储器的操作使用不同的指令。对片内RAM读写数据时,无读写信号(RD,WR)产生;对片外RAM读写数据时,有读写信号产生。同样对

30、程序存储器和数据存储器的操作也是靠不同的控制信号PSEN、RD、WR来区分的。另外,在片外数据存储器中,数据区和扩展的I/O口是统一编址的,使用的指令也完全相同。因此,在系统设计时,必须合理的进行外部RAM和I/O口的地址分配,并保证译码的唯一性,如表1所示:表1 地址分配端 口管 脚备选功能P3.5T2定时器T2外部输入P3.6WR外部数据存贮器写选通道P3.7RD外部数据存储器读选通道3.2 单片机最小系统电路设计 单片机最小系统就是保证单片机能够正常工作的最基本的硬件电路。主要包括时钟电路、复位电路7。 单片机工作的时间基准是有时钟电路提供的。在单片机的 XTAL1和 XTAL2 管脚,

31、按图 3所示接上晶振和电容就够成了单片机的时钟电路。图3 时钟电路 图中电容C1、C2对晶振频率有微调的作用,通常的取值范围为(30+10pf)。石英晶体选择 12MHz,选择不同的石英晶体,其结果只是机器周期不同。 单片机的复位方式有上电复位和手动复位两种。本设计系统采用上电自动复位和手动复位组合电路,如图4所示复位电路。 图4 复位电路 图中可以看到单片机的RST引脚连接 R1(10K)、C3(10uf),按键 可以选择专用的复位按键,也可以选择轻触开关。只要 VCC上升时间不超过 1ms,他们都能很好的工作。 3.3 温度采集部分设计 本系统采用采用了DS18B20单总线可编程温度传感器

32、,来实现对温度的采集和转换,与单片机P3.7口相连,直接与单片机通讯,大大简化了电路的复杂度。DS18B20是美国DALLAS半导体公司推出的支持“一线总线”接口的温度传感器,它具有微小化、功耗低、性能高、高抗干扰能力、容易搭配微处理器等优点,可直接将温度转化为串行数字信号供处理器处理8。如图5所示。图5 温度采集3.4 按键电路设计基于单片机的温度控制系统工作时应具备以下功能:一、可以切换显示实时温度和温度上下限的值。二、可以调节温度上下限。要实现这些功能,可以通过按键输入电路9。键盘结构可分为独立式键盘和行列式键盘(矩阵式)两类,由于本系统只采用3个按键,因此可选用独立式按键。如图6所示,

33、电路有三个按键组成,按键采用轻触开关。图6 按键电路 各个按键的功能:S1:功能键(显示温度值、报警上限、报警下限三态循环。)S2:递减键(当显示温度报警上下限时,按此键则显示的报警上限和下限减1.)S3:递增键(当显示温度报警上下限时,按此键则显示的报警上限和下限加1.)3.5 数码管显示电路设计 单片机应用系统中,通常都需要进行人机对话,这包括人对应用系统的状态干预和数据输入,以及应用系统向外界显示运行状态和运行结果等。 数码管显示电路通过位驱动电路和段驱动电路组合而成。由于数码管显示器不能被单片机的并行口驱动,所以必须采用专门的驱动电路芯片,让它产生足够大的电流,显示器才能正常工作。如果

34、驱动电路能力差,即负载能力不够,显示器亮度就低,而且驱动电路长期在超负荷下运行非常容易损坏10。 数码管显示器的显示控制方式分为静态显示和动态显示两种,若选择静态显示,则数码管驱动器的选择较为简单,只要驱动器的驱动能力与显示器的电流相匹配即可,而且一般只需考虑断的驱动;动态显示则不同,由于一位数据的显示是由段和位选信号共同配合完成的,因此,要同时考虑段和位的驱动能力,而且段的驱动能力决定位的驱动能力11。 本系统采用并行驱动动态显示。采用单片机 P2 口的低3位作为数码管的位码输出信号,P0口作为段码输出信号。该驱动电路如图2-20所示,P0口作为段码输出信号需外接上拉电阻。由图7可以看到,原

35、理图中用3个三极管作为数码管的位驱动。图7 数码管显示电路3.6 温度控制电路设计本设计通过继电器控制外部负载来达到升降温的目的,当温度超过设置上限时,电机运转连接风扇降低大棚内部温度,当温度低于设置下限时,电热炉加热升高大棚内部温度。(LED灯管作用为判断当前负载的工作情况)如图8所示。图8 温度控制电路3.7 报警电路设计 当温度达到或超过上下限是就会报警,报警电路如图9所示:图9 报警电路报警电路与单片机的P3.6口相连当单片机输出一个低电平时,蜂鸣器就会发出报警信号,说明温度已经超过规定的上下限值,外部输出设备应该启动进行相应的措施。只用在人按下复位按钮或温度在允许的范围内报警电路就不

36、会触动。第4章 系统软件设计 该系统程序的编写采用模块化程序设计,采用模块化程序设计的优点在于:每个模块都可以分配给不同的程序员完成,从而缩短开发周;各个模块高聚合、模块之间低耦合,只要模块之间确定了参数递的接口,不管那个模块内部的改动,均不会影响其他模块,从而使件产品的生产更加灵活;系统细化到模块,条理清晰,系统更加容易理解和实现;容易维护、系统可靠12。系统程序主要包括以下几个部分:主程序、按键扫描、定时器0中断子程序。4.1 主程序流程图 总模块流程图如图10所示。本软件设计采用循环查询来处理各个模块,温度是缓慢变化量所以可以满足性能要求。以及主程序的中断流程图。 (a)(b)图10 主

37、程序流程图4.2 键盘扫描子程序 键盘扫描子程序如图11所示: 图11 键盘扫描子程序4.3 读取DS18B20温度模块子程序 每次对DS18B20操作时都要按照DS18B20工作过程中的协议进行。 初始化- ROM操作命令- 存储器操作命令- 处理数据。程序流程图如图12所示。 图12 读取DS18B20温度子程序流程图4.4 数据处理子程序 由于DS18B20转换后的代码并不是实际的温度值,所以要进行数据处理。由于本程序采用的是0.0625的精度,小数部分的值,可以用后四位代表的实际数值乘以0.0625,得到真正的数值,数值可能带几个小数位,所以采取四舍五入,保留一位小数即可。也就说,本系

38、统的温度精确到了0.1度。首先程序判断温度是否是零下,如果是,则DS18B20保存的是温度的补码值,需要对其低8位(LS Byte)取反加一变成原码。处理过后把DS18B20的温度复制到单片机的RAM中,里面已经是温度值的Hex码了,然后转换Hex码到BCD码,分别把小数位,个位,十位的BCD码存入RAM中13。数据处理子程序流程图如图13所示。图13 数据处理子程序流程第5章 系统的仿真5.1 编程软件简介本系统的编程软件选用Keil C51。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。与汇编相比,C语言具有语言简洁、紧凑,使用方便、灵活,

39、运算符丰富,数据类型丰富等特点。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Vision)将这些部分组合在一起14。Keil C51是一种支持8051微控制器体系结构的Keil开发工具,适合每个阶段的开发人员,不管是专业的应用工程师,还是刚学习嵌入式软件开发的学生。产业标准的Keil C编译器、宏汇编器、调试器、实时内核、单板计算机和仿真器,支持所有的251系列微控制器,帮助你如期完成项目进度。当你开始一个新项目,只需简单的从设备数据库选择使用的设备,Vision IDE将设置好所有的编译器、汇编器、链接器和存储器选项

40、。该软件包含大量的例程,帮助你着手使用最流行的嵌入式8051设备。Keil Vision调试器准确地模拟8051设备的片上外围设备。模拟帮助你了解硬件配置,避免在安装问题上浪费时间。此外,使用模拟器你可以在没有目标设备的情况下编写和测试应用程序15。5.2 仿真软件Proteus介绍 Proteus是英国Labcenter公司开发的电路分析与实物仿真软件,是一个电子设计的教学平台、实验平台和创新平台,涵盖了电工电子实验室、电子技术实验室、单片机应用实验室等的全部功能。其革命性的功能是将电路仿真和微处理器仿真进行协同,直接在基于原理图的虚拟原型上进行处理器编程调试,并进行功能验证,通过动态器件如

41、电机、LED、LCD开关等,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,可以实时看到运行后的输入输出的效果16。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:(1)实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;(2)提供了多种虚拟仪器,如示波器、逻辑分析仪、信号发生器等,极利于调试;(3)支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、P

42、IC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片;(4)提供软件调试功能,同时支持第三方的软件编译和调试环境,如Keil等软件;(5)具有强大的原理图绘制功能。Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况乱。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。同时,当硬件调试成功后,利用Proteus软件,很容易获得其PCB图,为今后的制造提供了方便17。5.3 仿真调试本设计通过Proteus作

43、为仿真平台,通过该软件首先按照设计要求画出电路图,再将编好的程序输入到电路中,按下仿真按钮开始仿真。仿真主要测试以下几点:(1) 当实时温度在控制范围之内时,系统工作是否正常;(2) 当实时温度超过设置温度上限时,系统能否报警并且自动开启降温模块降低大棚内部温度;(3) 当实时温度低于设置温度下限时,系统能否报警并且自动开启升温模块升高大棚内部温度。 具体仿真结果如下: (1)当实时温度在控制范围之内时,仿真结果如图14所示:图14 温度正常仿真效果图 正常情况下温度在控制范围之内,显示屏上显示当前大棚内部实时温度,LED灯没有亮,蜂鸣器没有报警。(2)当温度超过设置上限时,仿真效果如图15所

44、示:图15 降温仿真效果图 当大棚内部温度超过设置温度上限时,显示屏上显示当前大棚内部温度,同时单片机输出一个低电平,蜂鸣器报警,LED灯管闪烁,电机运转带动风扇工作从而达到降温的目的。(3)当温度低于设置下限时,仿真结果如图16所示:图16 升温仿真效果图当大棚内部温度低于设置温度下限时,显示屏上显示当前大棚内部温度,同时单片机输出一个低电平,蜂鸣器报警,LED灯管闪烁,电热炉加热达到升温的目的。通过仿真调试,仿真得到的结果表明该控制系统已经实现了设计的要求。第6章 结论 本次蔬菜大棚温度控制系统是以AT89C51单片机为核心,采用软件编程,通过控制外部负载的工作来控制大棚内部的温度。仿真调

45、试的结果表明,本次设计整体而言完全可以实现对蔬菜大棚内部温度的控制。但是不当之处在所难免。当温度传感器检测出当前大棚内部温度时,不能和预置温度一起以数字形式很直观的对比显示出来,工人无法同时看到大棚内部当前温度和预置温度。在实际使用过程中,由于电热炉加热时有一定得温度缓冲,即当电热炉停止工作时,加热并不是立即停止,而是过一段时间后温度才慢慢下降。这样就使得我们对温度的控制不是很准确,会出现严重超温现象。鉴于此种情况,我们应在大棚内部温度接近我们设定的温度时,由连续加热改为断续加热。参考文献1杨培林,郭晶等.国内外设施农业的现状及发展态势J.山东:农机化学报,2009:692彭其圣,刘松龄.单片

46、机温室大棚种植参数监控系统J.北京:自然科学报,2004:453李晓龙,王志国.基于单片机的温室大棚温度控制系统设计与实现J.北京:中国农机化学报,2012:364王梅红.基于单片机的温度控制系统设计与仿真J.重庆:四川兵工学报,2012:575江绍春,包军.基于单片机的蔬菜大棚温度控制系统研究设计J.北京:中国农机化学报,2012:45 6韩毓.基于单片机的蔬菜大棚温度控制系统D.硕士学位论文,2009:13277李全利.单片机原理及接口技术M.北京:高等教育出版社,2007:31608李泉溪.单片机原理与应用实例仿真M.北京:北京航空航天大学出版社,2012:57629冯博琴.微型计算机原理与接口技术M.北京:清华大学出版社,2004:497010王化祥,张淑英.传感器原理及应用M .天津:天津大学出版社,2012:22023011赵亮,侯国锐.单片机C语言编程与实例M.北京:人民邮电出版社,2003:8396 12 翁嘉民.基于Proteus单片机仿真和C语

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com