毕业论文-基于AT89C52单片机的大棚仓库温湿度自动控制系统设计.docx

上传人:知****量 文档编号:91618379 上传时间:2023-05-27 格式:DOCX 页数:43 大小:1.21MB
返回 下载 相关 举报
毕业论文-基于AT89C52单片机的大棚仓库温湿度自动控制系统设计.docx_第1页
第1页 / 共43页
毕业论文-基于AT89C52单片机的大棚仓库温湿度自动控制系统设计.docx_第2页
第2页 / 共43页
点击查看更多>>
资源描述

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

1、摘 要 本设计是基于AT89C52单片机的大棚仓库温湿度自动控制系统,采用SHT11作为温湿度传感器,LCD1602液晶屏进行显示。SHT11使用类似于I2C总线的时序与单片机进行通信,由于它高度集成,已经包括A/D转换电路,所以使用方便,而且准确、耐用LCD1602能够分两行显示数据,第一行显示温度,第二行显示湿度。这个控制系统能够测量温室大棚或仓库中的温度和湿度,将其显示在液晶屏LCD1602上,同时将其与设定值进行对比,如果超出上下限,将进行报警并启动温湿度调节设备。此外,还可以通过独立式键盘对设定的温湿度进行修改。通过设计系统原理图、用Proteus软件进行仿真,证明了该系统的可行性。

2、关键词:AT89C52 SHT11 温湿度自动控制1Abstract This design is an automatic temperature and humidity controller for greenhouses, with the ATC89C52RC MCU being its main controller. It uses the SHT11 as the temperature and humidity sensor, and the LCD1602 to display the messages. The SHT11 uses a timing sequence m

3、uch like the I2C to communicate with the micro-controller. Because its a highly integrated chip, it already includes an analog to digital converter. Therefore, its quite convenient to use, and also accurate and durable. The LCD1602 can display two lines of messages, with the first line for temperatu

4、re and the second line for humidity. The design can measure the temperature and humidity in a greenhouse, and then display it on a LCD1602. Meanwhile, it compares the data with the set limit. If the limit is exceeded, then the system will send out a warning using a buzzer and activate the temperatur

5、e and humidity controlling equipment. Besides, the set limit can be modified with the independent keyboard. Through schematic design and Proteus simulation, the feasibility of this design has been proved.Keywords: AT89C52, SHT11,temperature and humidity control目录摘要. .1Abstract.21绪论.41.1研究目的和意义.41.2阅

6、读的主要参考文献及资料名称.41.3国内外现状和发展趋势与研究的主攻方向.51.4主要研究内容,关键问题的解决思路.52系统方案设计.62.1 温湿度控制系统的设计指标要求.62.2 系统设计的原则62.2.1 可靠性62.2.2 性价比72.3 方案比较72.3.1 方案一7图2.1 用PLC作为主控制器的控制系统72.3.2 方案二7图2.2 用单片机作为主控制器的控制系统82.5 方案选择83.1.2 液晶显示模块113.1.3 温湿度传感器模块113.1.4 报警电路的设计123.1.5 按键电路设计133.2 元件清单143.3 关键器件的介绍143.3.1 AT89C52144 系

7、统软件设计164.1 软件设计的总体结构164.2 主要模块的设计流程框图184.2.1 主程序流程图184.2.2 SHT11子程序流程图194.2.3 LCD1602子程序流程图204.2.4 输出控制子程序流程图214.3 软件设计所用工具224.3.1 Keil uVision4224.3.2 Proteus225 系统调试225.1 用Proteus搭建仿真总图225.2 用Keil对程序进行调试、编译236 结论256.1 系统的功能256.2 系统的指标参数256.3 系统功能分析267 总结与体会26附录1仿真图.27附录2源程序.271绪论1.1研究目的和意义 目前,我国农业

8、正处于从传统农业到以优质,高效,高产为目标的现代化农业转化的新阶段。而大棚作为现代化农业实施的重要产物,在国内多数地区得到了广泛应用。现代农业生产离不开环境控制,农业大棚控制系统是实现温室生产管理自动化、科学化的基本保证。结合作物生长规律,控制环境条件,使作物在不适宜生长的反季节中,可获得比室外生长更优的环境条件,从而使作物达到优质、高产、高效的栽培目的。由于大棚中各种环境因素是可以人为控制的,因此控制技术直接决定着大棚中农作物的产量和质量。1.2阅读的主要参考文献及资料名称1黄遵熹 单片机原理接口与应用M西北工业大学出版社,20001471502刘文涛. 单片机应用开发实例. 清华大学出版社

9、 2005.3韩太林. 单片机原理及应用. 电子工业出版社. 2005.4张毅刚. 单片机原理及应用. 高等教育出版社. 2004. 5何立民. 单片机应用技术选编第三版. 北京航空航天大学出版社.2003.6付家才. 单片机控制工程实践技术. 北京化学工业出版社.2004.7严天峰. 单片机应用系统设计与仿真调试. 北京航空航天大学出版社,20058徐爱钧. 8051单片机实践教程M.电子工业出版社. 20061.3国内外现状和发展趋势与研究的主攻方向美国是将计算机应用于大棚和管理最早,最多的国家之一。美国开发的大棚计算机控制与管理系统可以根据作物的特点和生长所需要的条件,对大棚/仓库内的光

10、照,温度,湿度等诸多因素进行自动控制。这种自动控制系统需要种植者输入温室作物生长所需的环境的目标参数,计算编机根据传感器的实际测量值与事先设定的目标进行比较,以决定大棚/仓库温湿度的控制过程,按照相应的机构进行加热,降温或者是浇水,通风等。目前,我国绝大部分自主开发的大棚温湿度控制或者进口的国外设备都属于这种系统。虽然这种自动控制系统实现了自动化,适合规模化生产,提高了劳动生产率,通过改变大棚温室度的设定目标,可以自动的对大棚内温湿度进行调节,但是这种调节对作物的生长来说还是相对滞后的,难以介入作物生长的内在规律。所以在这种自动控制系统和实践的基础上,温湿度自动控制向着适合不同作物生长的智能化

11、控制发展。国外大棚业正致力于高科技发展,遥测技术,网络技术,控制局域网已逐渐应用于大棚的管理和控制中,近几年各国温度控制技术提出建立大棚行业标准,朝着网络化,大众化,大规模,无人化的方向发展的思路。1.4主要研究内容,关键问题的解决思路 本系统的设计的硬件主要包括:主要是单片机AT89C52,检测系统,显示电路,报警电路等。利用传感器测量大棚内的温湿度经过信号处理,将传感器测得的数据送至控制系统(AT89C52),与预设的农作物最适合生长的温湿度值的上下限进行对比,并通过显示电路将测得的温湿度进行实时显示。如果不同作物的适合生长的温度不一样,可以通过键盘电路修改预设值。控制系统根据比较的结果对

12、调节系统发出相应的指令,启动相应的调节设备如喷水机,吹风机,加热器,降温等,调节大棚内的温湿度状态。如果测得的数据超过了预设值的上下限,则报警电路会报警。这样就实现了对大棚温湿度的自动控制。 本文主要研究内容如下: 1.进行温湿度控制系统的整体研究与设计。 2.利用数字温湿度传感器测量大棚内的温湿度。 3.利用LCD对温湿度进行实时显示。4.当大棚温湿度值超出设定范围值时,系统可自动报警,并输出驱动信号控制继器对大棚温湿度进行调节。2系统方案设计2.1 温湿度控制系统的设计指标要求本文要设计的大棚温湿度自动控制系统,要能够及时、准确地对温室大棚内的温度、湿度进行采集,将其显示在LCD1602液

13、晶显示器上,然后与设定的上下限值进行比较,如果超出限制则启动温度、湿度控制设备,并通过蜂鸣器报警,直到温湿度回到规定的范围。另外,还要能够通过按键修改设定的上下限。为了能够满足农业生产的需要,此次设计要达到一下指标:(1)工作环境:温室大棚;(2)温度测量误差:1;(3)测温范围:0+55;(4)湿度测量误差:5%RH;(5)测湿范围:0100%RH;(6)通过键盘电路修改上下限:有;(6)温湿度报警:有;2.2 系统设计的原则2.2.1 可靠性可靠性是在设计过程中应该优先考虑的一个因素,一个控制系统必须要能稳定、可靠地工作,才能投入到生产实践中去。如果系统的可靠性不能达标,那么系统出现故障的

14、可能就会增大,造成很大的损失。这种损失不仅包括经济上和信誉上的损失,而且可能会对人身安全产生威胁。要提高控制系统的可靠性,那么就要注意以下几个方面:选用的元器件要有很高的可靠性;由于供电电源很容易产生干扰,所以应该对其采用抗干扰措施;对输入输出通道也一样,要采用抗干扰措施;在对电路板的设计时,要合理的布线和接地;软硬件都要进行滤波;系统要有自己诊断功能等。2.2.2 性价比性价比也是一个系统设计中所要考虑的重要因素。性价比高的产品更容易被消费者接收,但是设计过程中不能盲目地追求性价比,它应该建立在对产品性能要求的基础上,首先要满足性能要求,然后再设法降低产品成本。2.3 方案比较2.3.1 方

15、案一采用PLC作为主控制器。使用PLC的最大优点在于PLC使用梯形图进行编程,编程语言形象直观,难度较低,因此开发周期短,便于扩展。而且PLC抗干扰能力强,工作稳定可靠,这一点已被长期的工业控制实践所证明。继电器键盘输入加热器制冷器加湿器除湿器液晶显示 蜂鸣器报警温湿度传感器 PLC温室大棚图2.1 用PLC作为主控制器的控制系统2.3.2 方案二使用单片机进行控制。采用AT89C52单片机作为主控制器,可以用C语言进行编程,由于它支持ISP在线编程,因此可以通过RS232串口将程序烧录到单片机中,很方便。温湿度传感器SHT10通过I2C总线与单片机连接。温湿度传感器 单片机加热器制冷器加湿器

16、除湿器键盘输入 蜂鸣器报警继电器液晶显示温室大棚图2.2 用单片机作为主控制器的控制系统2.4 方案论证从功能上看,两种控制器都能满足要求。PLC在工业控制领域用得比较多,编程简单,而且抗干扰能力强。但是本系统是用于温室大棚,并没有其他大型工业设备的干扰。单片机用C语言编程,相对PLC的梯形图要复杂得多,但是编程更为灵活,可以实现复杂的功能。从价格方面上看,单片机就比PLC具有很大的优势。一个单片机只要几块钱,而一个很一般的PLC一般也要几百上千元。另外,中国是农业大国,随着温室大棚越来越普及,农村对温湿度控制系统的需求也会越来越旺盛,因此虽然用单片机开发的周期较长,但是一旦完成开发,后期生产

17、环节的边际成本很小;而基于PLC的控制系统受制于PLC的高昂价格,价格难以降低。2.5 方案选择PLC和单片机都能作为主控制器进行设计,但是在价格方面单片机具有巨大优势。综上所述,本次设计采用单片机作为主控制器。3 单元模块设计3.1 各单元模块功能介绍及电路设计3.1.1 单片机最小系统 图3.1 单片机最小系统单片机的最小系统应包括振荡电路和复位电路等。振荡电路(时钟电路)的主要任务是为AT89C52单片机正常工作需要的时钟电路提供一个稳定的工作频率。根据AT89C52单片机时钟周期的要求,回路需要选用频率为12MHz的晶振。晶振回路由电容和陶瓷谐振器并联组成,作为单片机的时钟源。AT89

18、C52内部有一个用于构成振荡器的高增益反相放大器,此放大器的输入和输出端分别是引脚XTAL1和XTAL2,在XTAL1和XTAL2端口接上时钟电源即可构成时钟电路。本设计中采用内部时钟产生方式。在XTAL1和XTAL2两端跨接晶振,与内部的反相器构成稳定的自激振荡器。其发出的时钟脉冲直接送入单片机内定时控制部件。电容C1和C2对频率有微调作用,应尽可能的安装在单片机芯片附近,以减少寄生电容,保证振荡器稳定可靠的工作。复位电路的功能就是对CPU进行实时监测,当CPU落入死循环之后,能及时发现并使整个系统复位。为确保微机系统中电路稳未定可靠工作,复位可靠工作,复位电路是必不可少的一部分,复位电路的

19、第一功能是上电复位。一般微机电路正常工作需要供电电源为4.755.25V。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC上电时,只有当VCC超过4.75V,低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。为了确保系统中的电路温度可靠工

20、作,复位电路是必不可少的部分,其第一功能就是高电平复位,高电平复位是在通电瞬间通过充电来实现的。手动复位是指通过接通一按键开关,使单片机进入复位状态。系统上电运行后,如果需要复位,只需通过手动复位就可以实现。图3.2 上电+手动复位电路单片机的复位主要有上电复位和手动复位,之所以要进行复位,目的就是为了让单片机进入初始状态,比如让PC指向0000H,这样单片机才能从头运行程序。因此上电的时候就要让单片机复位一次;在运行过程中,如果程序出错,也需要进行手动复位。 本设计中的复位电路就是上电+手动复位电路,复位时要让STC89C52RC的RST引脚得到2个机器周期以上的高电平。先说说上电复位的工作

21、原理,当单片机上电时,电源+5V的Vcc通过10K的电阻对10uF的电容进行充电。刚上电时,有较大的电流从Vcc经电容、电阻流向GND,由于电容两端的电压不可突变,因此仍然为0V,于是电阻的两端分得5V的电压,即RST引脚此时的电势为5V。随着充电的继续进行,电流会逐渐减小,电阻两端的电压UR=IR也逐渐减小,即RST引脚的电势逐渐减小。过了一定时间,RST引脚两端的电压下降到不再是高电平,只要这个充电的时间大于单片机两个机器周期,就能使单片机复位。程序运行过程中如果跑飞了、程序运行出错或操作错误使系统处于死锁状态时,就需要用到手动复位。手动复位就是在上电复位电路的电容两边并联一个微动开关,需

22、要手动复位时将其按下,使之接通,RST获得高电平,而且人按动按钮的时间肯定是超过两个机器周期的,于是单片机复位。3.1.2 液晶显示模块测量到的温湿度值将显示到液晶屏LCD1602上,它可以显示2行,每行16个字符。LCD1602共有三个存储器,它们是CGROM、CGRAM和DDRAM。CGROM用来保存LCD1602内部固化的一些字符的字模,比如英文的26个字母的大小写;CGRAM用来保存用户自己取的字模,比如,如果要显示汉字,就必须自己去汉字字模,在这里我们都用英语字母,故不用CGRAM;DDRAM用来存储要显示的字符的字模,它和屏幕上的位置是对应的,第一行为00H到0FH,第二行为40H

23、到4FH。在这里需要注意的是,在向LCD1602写入显示数据存储器地址时,根据控制指令的格式,最高位D7为1,所以写入的数据为,第一行80H到8FH,第二行C0H到CFH。它与单片机的接口电路如下图所示: 图3.3 LCD1602与单片机的接口电路 3.1.3 温湿度传感器模块温湿度传感器选用瑞士Sensirion公司生产的SHT10。SHT1X系列共有三个型号:SHT10、SHT11、SHT15,他们都是SMD贴片封装的,他们依次性能越来越好,其中SHT11属于经济型的温湿度传感器。三者的温湿度性能如下图所示。图3.4 SHT1X系列各型号传感器的湿度、温度最大误差从曲线中可以看出,无论是湿

24、度还是温度,SHT10的误差都是最大的,SHT15误差最小,但是它们的价格也相差很大,SHT10多为二三十元一个,而SHT15价格上百。因此,从满足大棚温湿度监测的要求来看,SHT11已经足够,故选用SHT11。SHT11与单片机的接口电路如下所示:图3.5 SHT11与单片机的接口电路SHT11采用类似于I2C的两线制串行总线,一根是时钟线,一根是数据线。数据线要通过一个上拉电阻接到VCC,目的是避免信号冲突,使单片机的引脚只提供低电平,要得到高电平则使该引脚悬空,由上拉电阻提供高电平。3.1.4 报警电路的设计当大棚内的温湿度超过上下限时,除了需要启动温湿度调节器之外,还需要进行报警,这里

25、用到的是蜂鸣器。蜂鸣器为一种采用一体化结构的电子器件, 采用了直流电压来供电,广泛的应用到了计算机、报警器、复印机、电子玩具、电话机、汽车电子设备、定时器等电子产品之中用作发声器。蜂鸣器分为有源蜂鸣器和无源蜂鸣器。有源蜂鸣器由于内部集成了振荡源,所以使用直流电压就可以驱动它鸣叫;无源蜂鸣器内部没有振荡源,因此一般使用2K5K方波来驱动。本设计中使用的是有源蜂鸣器,在它两端加载5V的直流电压就可以使之鸣叫。报警电路设计如下图: 图3.6 报警电路图蜂鸣器工作电流一般为10mA,而单片机的I/O口只能承受几毫安的电流,因此需要加三极管进行驱动。如上图所示,单片机的I/O口中的P1.6接PNP型三极

26、管的基极,当P1.6为低电平时,三极管导通,5V的电压加载到蜂鸣器两端,于是蜂鸣器鸣叫;当P1.6高电平时,三极管截至,蜂鸣器不鸣叫。3.1.5 按键电路设计 图3.9 按键电路图键盘分为编码式和非编码式键盘。其中,非编码式键盘又包括矩阵式键盘和独立式键盘。矩阵式键盘较为复杂,一般用于按键数目较多,而单片机可用的I/O口又比较有限时。本控制系统中只需要用到4个按键,数目较少,并且可用的I/O口充足,故采用独立式键盘,一个按键对应一个单片机的I/O口管脚。本设计中总共用到4个按键式开关,他们用来改变设定的温湿度上下限数值。从S1到S4,分别控制进入温度上下限设置、进入湿度上下限设置、数值加、数值

27、减、确认并退出。本设计中的键盘是低电平有效。未按键时,上拉电阻保证了单片机的I/O口是确定的高电平;当某个键按下时,I/O口变为低电平。 3.2 元件清单本次设计需要用到的元器件如下表所示:表3.1 所需元件列表型号个数AT89C521LCD16021SHT111RES9RESPACK-81CRYSTAL1LED-RED1SPEAKER1BUTTON4PNP1B760011206N23.3 关键器件的介绍3.3.1 AT89C52AT89C52是一种低功耗、高性能CMOS8位微控制器,存储器是采用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品的指令和引脚完全兼容。在单芯片上,

28、拥有灵巧的8位CPU和在系统可编程Flash,使得AT89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89C52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作;掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机停止一切工作,直到下一个中断或硬件复位为止。3.3.2 AT89C52引脚图A

29、T89C52的引脚结构图。P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。在Flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对

30、P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平,单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时

31、钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。应注意的是:每当访问外部数据存储器时,将跳过一个ALE脉冲。PSEN:程序储存允许输出(PSEN)是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器(其地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。4 系统软件设计系统的工作流程是,操作人员在计算机上输入

32、需要设定的温湿度限定值,当设定的温湿度值与检测温湿度值不同时,单片机控制系统则会采取相应的调节动作。此程序流程包括五个部分,第一部分是主程序,其描述总体结构;第二部分是SHT10温度采集程序,其功能是通过SHT10传感器采集温湿度值,并进行修正;第三部分是LCD1602显示子程序,对LCD1602进行初始化,将温湿度进行显示;第四部分是输出控制子程序,对设定值和实际值进行判断以决定是否进行温湿度的调节;第五部分是按键输入电路,用来修改温湿度上下限值。4.1 软件设计的总体结构本次设计的大棚温湿度自动控制系统由一个主程序调用多个子程序,它们包括SHT10温湿度采集子程序、LCD1602液晶显示子

33、程序、输出控制子程序、键盘扫描子程序,如下图所示: 主程序SHT10温湿度采集子程序LCD1602液晶屏显示子程序输出控制子程序键盘扫描子程序图4.1 程序总体结构主程序主要就是调用各个子程序的C语言文件中定义的函数,实现SHT11、LCD1602初始化等操作,然后测量温湿度,调用函数对数据进行处理,最后进行显示并输出控制信号。在Keil工程中编写程序的时候,为了让整个工程看起来条理清晰,要按照各个模块分别新建C文件写子程序。某个C文件要调用其它C文件中的函数时,要在当前C语言文件中先进行声明,然后再调用,或者也可以把每个C文件中定义的函数都写到相同名字下的.h头文件中,其他C文件要调用该函数

34、时要在前面加上#include ,将头文件包括进来。对于变量也是如此,如果某个变量也在其他C文件中使用,那么要在一个C文件总将它定义为全局变量,即在函数外面定义。其他C文件要使用该变量时,要先使用extern将全局变量的作用域扩展到本C语言文件。4.2 主要模块的设计流程框图4.2.1 主程序流程图Yes是否超限?将温湿度与设定值比较启动温湿度调节设备对温湿度数据进行修正No在液晶屏上显示温湿度测量温湿度是否有按键?初始化LCD1602Yes开始进入键盘扫描子程序SHT11复位No 图4.2 主程序流程图4.2.2 SHT11子程序流程图开始发送启动时序发送控制字接收数据测量结束?接收校验位结

35、束NoYes图4.3 SHT11子程序流程图温湿度传感器SHT11使用类似于I2C总线的时序与单片机通信,由于51单片机没有I2C接口,所以需要编写程序,用单片机的某两个I/O口管脚模拟I2C总线的时序,从而与SHT11通信。SHT11有4种时序:启动传输时序、写字节时序、读字节时序及复位时序。复位时序和启动传输时序可通过依次拉低或拉高时钟线和数据线,因而实现起来比较简单;而写时序和读时序就比较复杂。写时序用来发送控制字,即发送命令,测量结束后,发出读时序读回测量数据。向SHT11的8个数据位的写入,于第9个时钟周期之后,读取应答位,应答位为0时,表示SHT11正确接收。SHT11读写数据的规

36、则是:在时钟线的下降沿之后数据线改变状态,并在时钟线的上升沿有效。4.2.3 LCD1602子程序流程图开始LCD1602初始化设置首行数据指针写入首行字符设置第二行数据指针写入第二行字符结束图4.4 LCD1602子程序流程图4.2.4 输出控制子程序流程图开始返回主程序温度、湿度是否超出上下限?启动温湿度调节设备蜂鸣器报警温湿度是否回到限定值内?停止报警停止温湿度控制设备温湿度是否留有足够的裕量?结束NoYesYesYesNoNo图4.5 输出控制子程序YesNo4.3 软件设计所用工具4.3.1 Keil uVision4本次设计采用Keil uVision4来编写C语言程序,通过它的编

37、译器进行编译、连接,最后将生成的机器码下载到单片机上。Keil编译器是目前最流行的单片机开发的软件,它是美国Keil Software公司开发的C语言开发系统。它提供了一个完整的开发方案,包括宏汇编、C编译器、库管理、连接器和一个功能强大的仿真调试器等,通过一个集成开发环境将这些部份组合在一起。Keil C51整合了丰富的库函数和功能强大的集成开发调试工具。此外,Keil C51生成的目标代码效率非常高,这一点从生成的汇编语言就可以看出,大多生成的汇编语句很紧凑,容易理解。4.3.2 ProteusProteus用来对电路进行仿真,它的功能强大,包括单片机在内的众多元器件都可以仿真。把Keil

38、编译、连接后生成的hex文件导入Proteus单片机中即可对单片机进行仿真。Proteus软件是英国Labcenter electronics公司出版的EDA工具软件,它不仅具有其它EDA软件的仿真功能,还可以对单片机及其外围器件进行仿真,是目前在这方面做得最好的EDA工具软件。Proteus在国内已受到众多单片机开发者的喜爱。Proteus实现了从概念到产品的完整设计,可以实现从原理图绘制和代码调试到1与其外围电路仿真,一键切换到印刷电路板的设计。目前世界上只有Proteus做到了将电路仿真、印刷电路板设计和虚拟模型仿真整合到一个设计平台,其处理器模型支持8051、HC11、AVR、ARM、

39、8086和MSP430、PIC10/12/16/18/24/30/DsPIC33等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。5 系统调试5.1 用Proteus搭建仿真总图 打开Proteus ISIS,在 Proteus ISIS 编辑窗口中单击元件列表之上的“P”按钮 ,添加元件及放置元件。选放好元器件后,要对元器件进行一个重新的布局,使之看起来很清晰,并且所占面积较小。若想移动某个元件或多个,单击其元件,待其颜色变红后,在按下鼠标左键不放,即可拖动元件。 为了使仿真图看起来更整洁,我们部

40、分电路连线选择连线标签模式,以单片机19引脚为例,将其用线引出,如然后再点击左侧任务栏中再单击引线得到对话框如图5.2所示,在窗口中输入X1得到此效果 图5.2连线标签窗口若要对某个元件或一部分电路做出说明,则单击任务栏中的Text Script Mode得到如图5.3效果,在界面中输入文字即可。 图5.3说明窗口按照正确的方法将元器件进行合理的排布及连线后,得到图5.4 图5.4系统仿真电路图5.2 用Keil对程序进行调试、编译先打开keil uvision4 这款软件,新建工程,点击菜单栏里的 new uvision project ,然后对工程进行保存。再新建文件,点击菜单栏中File

41、 下的 new 新建文件,进行保存。最后把新建的文件添加到工程文件里,右键点击project视图窗口里的Source Group1,选择Add files to group “source group1”,如图所示: 图5.5 添加文件到工程 这样,刚才新建的文件便添加到了Source Group1中。现在开始在右边的主界面编写C语言程序,编写完成后为了把程序烧录到单片机上,还需要把它转换成机器码,生成hex文件:右击工程视图窗口中的Target1,选择Options for Target “target1” 把Output选项卡里面的Create HEX File 前面的勾打上,这样编译后会

42、生成机器码,如图所示。图5.6 生成机器码6 结论6.1 系统的功能本系统能测量温室大棚内的温湿度数据,将其显示在液晶屏上。如果温湿度超出了设定的上下限,将进行报警,并启动温湿度调节设备。温度回到限定值内后,停止报警。当温度不仅回到上下限以内,而且留有一定裕量后,停止温湿度调节设备。如果需要修改温湿度上下限,可以通过按键进行修改。6.2 系统的指标参数系统的指标参数完成情况如下表所示:表6.1 系统指标参数表实现功能结果完成程度测量温度范围-4040完成测量温度误差0.5%完成测量湿度范围0100%RH完成测量适度误差4.5%完成液晶屏显示用LCD1602显示完成超限报警用蜂鸣器报警完成修改上

43、下限通过独立式键盘修改完成6.3 系统功能分析该大棚仓库温湿度自动控制系统能通过独立式键盘设置温湿度上下限,通过LCD1602显示温湿度,并在超限的情况下报警、启动调节设备。其中输出控制和通过键盘设置上下限都是通过调用子程序实现的。键盘的工作方式分两种,一种是查询方式,一种是中断方式。中断方式比较节省系统资源,只有当有按键按下时才会进入键盘中断子程序,进一步扫描是那些键被按下;而查询方式则是在主程序中调用键盘扫描子程序,不管有没有键按下,每次程序循环中都要一一判断每个键是否按下,故这种方式占用的单片机的处理时间更多。但是由于本次设计用到的按键不多,只有五个,功能比较简单,而且单片机工作比较空闲,因此使用的是查询方式来处理键盘的输入。此外,还应注意到的是,当温湿度超限后,要报警并启动温湿度调节设备。当温湿度回到规定范围内时,只是停止报警,而温湿度调节设备应该继续保持工作,直到温湿度留有一定裕量时才停止。本设计中的输出控制子程序中设置了温度5和湿度5%RH的裕量,这样当温度上限是30度时,如果超出上限,那么温度回到30度时停止报

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

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

本站为文档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