基于单片机的节水灌溉系统的设计与实现毕业设计_第1页
基于单片机的节水灌溉系统的设计与实现毕业设计_第2页
基于单片机的节水灌溉系统的设计与实现毕业设计_第3页
基于单片机的节水灌溉系统的设计与实现毕业设计_第4页
基于单片机的节水灌溉系统的设计与实现毕业设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计题目:基于单片机的智能节水灌溉的设计与实现院系:信息与控制学院专业:自动化班级学号:学生姓名:指导教师:成绩:年月日目录TOC\o"1-3"\h\z\u211941方案设计 1182131.1设计任务要求 1134871.2硬件方案设计 1204581.3 编程语言与调试环境选择 3183351.3.1编程语言的介 3259811.3.2调试环境的选择 364962智能节水灌溉系统的硬件设计 5163752.1AT89S52单片机的硬件结构 513792.1.1单片机的结构及引脚 5188702.2显示电路的设计 9159702.2.1显示电路选择 9238402.2.2液晶显示接口电路设计 1014242.3A/D转换芯片ADC0832 10198272.3.1ADC0832具有以下特点 10315392.3.2ADC0832与单片机的接口电路 11105172.4按键电路方案的设计 12309652.4.1按键电路的选择 1246562.4.2按键电路的设计 12111622.5单片机晶振电路原理及作用 13289222.6复位电路的设计 14269292.7报警电路的设计 15286622.8土壤湿度传感器YL-69土壤湿度计检测模块 15297222.8.1YL-69土壤湿度计检测计特点 15108222.8.2使用说明 16235902.9步进电机驱动模块 17135152.9.1步进电机简介和原理 17240012.9.2ULN2003驱动芯片 1843852.9.3步进电机驱动模块 18223813系统软件设计 19250093.1软件系统总体工作流程 19286973.2湿度控制模块的设计 20120863.2.1湿度控制程序流程 2074423.3按键电路子程序 21213373.41602液晶显示模块设计 2227810参考文献 2431067附录A硬件原理图 2525250附录B程序代码 2627878附录C实物图片 311方案设计1.1设计任务要求1、能够检测土壤湿度,当达到设定值时,起动灌溉系统,能够通过键盘设定不同的灌溉速度,显示灌溉状态。2、湿度传感器对土壤多点采集信号转换后传给单片机,单片机对输入信号做出处理(灌溉与否)。显示模块将采集数据和灌溉信息显示在显示屏上。通过键盘可以设置灌溉阈值和灌溉速度。1.2硬件方案设计该课题以AT89S52单片机做为主要硬件模版,通过对软件的编程来实现对土壤温度、湿度值进行多点检测,当所测的实际湿度低于警戒值时,将会自动触发灌溉控制器系统,进行自动的灌溉,该系统还可以完成手动控制灌溉,随时进行灌溉,从而也体现了人性化、多用途的现代自动化、智能化系统设计要求。根据该设计的功能要求,确定方案:AT89S52单片机做为控制电路核心,采用模块化设计的方案。模块化设计简单地说,就是把产品的一些要素组合在一起来构成一个有特定功能的子系统,把该系统作为通用性的模块和其他的产品要素多种组合,构成新的系统,所产生多种相同功能或不相同功能、但不同性能的一系列产品。模块化是一种新的设计思想,是在传统的设计基础上新发展起来的,现在已经成为一种新的技术已被广泛应用在生活中,尤其现在正处于信息时代,电子产品不断推出新产品,应用模块化设计的产品也正在不断涌现。当代模块化设计已经被广泛应用于航空、航天、机床、电子产品等设计领域。模块化已经开始从理念转化成为比较成熟的设计方法也是绿色设计方法之一[1]。该设计总共分为:步进电机驱动模块、湿度采集模块、液晶显示模块、A/D转换模块、报警电路。本设计中步进电机采用28BYJ48型四相八拍电机,步进电机控制电路是以驱动芯片ULN2003做为核心。湿度采集模块中核心器件是YL-69土壤湿度传感器,A/D转换模块中主要器件是ADC0832A/D转换器,液晶显示器以LCD1602为显示电路核心,时钟模块是以DS1302做为核心器件,再配合上键盘电路,实现对土壤湿度检测。在本系统中,湿度灌溉系统可以分为两种控制方式:方案一闭环控制方式,方案二时间控制方式,所以用户可以在两种方式任选其一。采用方案一:用湿度采集模块把检测多处不同地点的湿度通过校准的数字信号数据处理,传送给单片机。单片机则将接收来的数据与单片机内存储的数据进行比对,如果收到的数据低于设定值,步进电机的控制电路模块将启动步进电机实行灌溉。如果收到的数据高于设定值,则步进电机不启动或者停止工作,与此同时单片机把采集到的数据与系统的灌溉情况在显示屏上显示出来。当灌溉进行到一定的时间时,自动停止工作,这个时间是由用户加载到单片机内部的数据来决定。在时间控制方式下时,用户通过灌溉周期和键盘输入的灌溉时间,对应的数据会显示在屏上。该灌溉方式主要应用在特殊情况之下,所以本设计采用方案一[2]。综上所述,该系统具有非常好的人机互交界面,更方便进行实时控制功能,且能及时的响应用户请求。该系统支持的灌溉系统方式非常灵活,用户可以根据实际情况选择模式。系统结构简单,各类功能很容易实现,极大提高了系统的实用性和可靠性。系统的模块原理图如图1.1所示。图1.1自动灌溉控制器系统基本模块原理框图编程语言与调试环境选择编程语言的介C语言是一种被广泛应用,并能够灵活的实现计算机编程语言。用C语言编出来的程序,可以应用在很多平台上,可移植性较强。计算机的操作系统和一些大型软件都可用C语言来完成。还有很多的聊天工具也可用C语言来编程。C语言有个突出的优点适合于多种操作系统如9338.html"UNIX、DOS,也适用于多种机型。C语言既有汇编语言的特点,又具有高级语言的特点;是一个很成功的系统设计语言,有时候一个使用的程序设计语言,既能用来编写各种系统程序,又能用来编写不依赖计算机硬件的应用程序;所以C语言是一种应用广泛且很受欢迎的程序设计语言。C语言不仅有高级语言的特点,还有汇编语言的特点,它是由美国贝尔实验室的DennisM.Ritchie在1972年推出的,1978年以后,C语言慢慢被移植到大、中、小以及微型机上,他可以作为工作系统的设计语言,编写系统HYPERLINK的应用程序。它具备很强的数据处理能力,不仅是在软件开发上,且各类科研也需要用到C语言,适用于编写系统软件,二维锥形,三维和动画等。1972年是由美国的DennisRitchie设计发明,且首次在UNIX操作系统的DECPDP-11计算机上使用,他是由早期的编程编程语言HYPERLINK发展而来的在1970年,贝尔实验室的KenThposon根据BCPL语言设计出比较先进的并且取名为B的语言,最后有了C语言的问世。然而B语言之前还有A语言,取名来自世界上第一位女程序员Ada(艾达)。在微型计算机的日益普及,C语言出现了许多版本。由于没有统一的标准,使的C语言之间出现了很多不一致的地方。为了改变这一情况,美国的国家标准研究所(ANSI)为C语言制定一套ANSI标准,是现行的C语言标准,所以C语言是世界上使用最广泛、最流行的高级程序设计语言之一[3]。调试环境的选择 软件部分应用C语言作为开发语言,开发工具使用的是keil作为开发工具。KeilC51是美国的KeilSoftware公司专门为单片机开发生产的51系列兼容C语言的软件开发系统,和汇编语言相比,C在结构性、功能上、可维护性、可读性上具有很明显的优势,所以很容易学习使用。Keil提供了宏汇编器、C编译器、连接、库管理器与一个功能强大的仿真器和调试器等在内的完整开发方案,且依靠一个集成开发环境(uVision)把这几个部分组合在一起。要运行Keil软件只需要WIN2000、WINXP、WIN98、NT等操作系统。若你用C语言进行编程,那么Keil就是你的最佳选择,即便你不使用C语言而使用的是汇编语言编程,其强大的仿真软件、集成环境、调试工具让你更加方便[4]。2智能节水灌溉系统的硬件设计2.1AT89S52单片机的硬件结构单片机的全称是微型计算机(SingleChipMicrocomputer)。在应用方面来看,单片机主要应用于控制,所以又叫微控制器(MicroControllerUnit)、嵌入式控制器(EmbeddedController)。单片机是集成计算机的基本部件在一块芯片上的最小系统计算机,其工作原理和基本组成与通用微型计算机是一样的。主要由I/O接口、微处理器(CPU)、存储器三大功能部分通过总线连接而成的,外部通过I/O接口,配置各种外部设备构成了微机的硬件系统。单片机成本低,运用灵活,易于产品化,体积小;面向控制,能很好的解决由简单到复杂的各类控制任务;适用范围较广,抗干扰能力强[5]。AT89S52是一种高性能、低功耗CMOS8位微控制器,在系统中可编程Flash存储器。片上Flash可将程序存储器在系统里可编程,也适用于常规编程器。在单芯片上,具有灵巧的8位CPU和系统编程Flash,以便AT89S52为众多嵌入式控制系统提供超有效、高灵活的解决方案。单片机的结构及引脚1、AT89S52型号的单片机的主要特性:和MCS-51单片机产品兼容;8K字节在系统可以编程Flash存储器;全静态操作:0Hz~33Hz;1000次擦写周期;三个16位定时器/计数器;三级加密程序存储器;32个可编程I/O口线;全双工UART串行通道;掉电标识符;双数据指针;看门狗定时器;掉电后中断可唤醒;低功耗空闲和掉电模式;八个中断源。AT89S52具有如下标准功能:256字节RAM,看门狗定时器,一个6向量2级中断结构,三个16位定时器/计数器,2个数据指针,32位I/O口线,,片内晶振及时钟电路全双工串行口,8k字节Flash。另外,AT89S52可降到0Hz静态的逻辑操作,支持2种软件可以选择节电模式。处于空闲模式下时,CPU停止工作,但允许RAM、计数器/定时器、中断、串口继续工作。当处于掉电保护方式时,振荡器被冻结,RAM内容被保存,单片机停止一切工作,直到下一个硬件或中断复位为止。2、芯片引脚封装:AT89S52引脚封装图如图2-1所示。图2-1AT89S52引脚封装图3、芯片引脚说明:VCC:电源端口。GND:接地端口。P0端口(P0.0-P0.7):P0口是个8位漏极开路双向I/O口。作为输出口,每位能够驱动8个TTL逻辑电平。当P0端口为“1”时,引脚处于高阻抗输入。当访问数据存储器时与外部程序,P0口也被当做低8位数据/地址复用。在这种模式时,P0具有内部上拉电阻。在flash编程时P0口也用于接收指令字节;在程序校验时输出指令字节。程序校验时,需要外部的上拉电阻。P1端口(P1.0-P1.7):P1口是个具有内部上拉电阻8位双向I/O口,p1输出缓冲器能够驱动4个TTL逻辑电平。当P1端口为“1”时,内部上拉电阻将端口拉高,这时可以作为输入口使用。当作为输入使用时,在被外部拉低的引脚由于内部电阻原因,将输出电流(IIL)。此外,P1.0和P1.2分别作计数器/定时器2的外部计数输入(P1.0/T2)和计数/定时器2的触发输入(P1.1/T2EX),具体如下表3-1所示。在flash编程与校验时,P1口接收低8位地址字节。表2-1P1口线的第二功能引脚号第二功能信号第二功能信号名称T2定时器/计数器T2的外部计数输入,时钟输出T2EX定时器/计数器T2的捕捉/重载触发信号和方向控制MOSI在系统编程用MISO在系统编程用SCK在系统编程用P2端口(P2.0-P2.7):P2口是个具有内部上拉电阻8位双向I/O口,P2输出缓冲器能够驱动4个TTL逻辑电平。当P2端口为“1”时,内部的上拉电阻把端口拉高,这时可以作为输入口使用。当作为输入使用时,在被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部的程序存储器或者用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口将送出高八位地址。在这种应用中,P2口使用较强的内部上拉发送1。当使用8位地址(如MOVX@RI)访问外部的数据存储器时,P2口输出P2锁存器的内容。在flash编程与校验时,P2口也接收到高8位地址字节与一些控制信号。P3端口(P3.0-P3.7):P3口是个具有内部上拉电阻8位双向I/O口,p2输出缓冲器能够驱动4个TTL逻辑电平。当P3端口为“1”时,内部上拉电阻将端口拉高,这时可以作为输入口使用。在作为输入使用时,被外部的拉低的引脚由于内部电阻原因,将输出电流(IIL)。P3口也作为AT89S52特殊功能(第二功能)使用,如下表3-2所示。在flash编程与校验时,P3口也接收一些控制信号。表2-2P3口线的第二功能引脚号第二功能信号第二功能信号名称RXD串行输入TXD串行输出INT0外部中断0INT0外部中断0T0定时器0外部输入T1定时器1外部输入WR外部数据存储器写选通RD外部数据存储器写选通RST:复位输入。当晶振工作时,该脚持续2个机器周期的高电平将使单片机复位。看门狗计时完成以后,RST脚输出96个晶振周期高电平,特殊寄存器AUXR(地址8EH)上的DISRTO位可使此功能无效。DISRTO默认状态后,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部的程序存储器时,锁存低8位地址输出脉冲。在flash编程时,此引脚(PROG)也用于编程输入脉冲。当在一般情况下时,ALE以晶振六分之一固定频率输出脉冲,可用来作为时钟或外部定时器使用。然而,特别声明,在每次访问外部数据存储器时,ALE脉冲会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVC或MOVX指令时有效。否则,ALE会被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器的选通信号(PSEN)是外部程序存储器选通信号,AT89S52从外部程序存储器执行外部的代码时,PSEN在每个机器周期被激活两次,在访问外部数据存储器时,PSEN将不能被激活。EA/VPP:访问外部程序存储器控制信号。为了使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应接VCC。在flash编程期间,EA也接收到12伏VPP电压。XTAL1:振荡器反相放大器与内部时钟发生电路的输入端。XTAL2:振荡器反相放大器输出端。2.2显示电路的设计显示电路选择 方案一:数码管显示LED数码管有动态和静态两种显示,使用数码管的动态显示成本较低,硬件部分结构简单明了,容易理解且使用方便。但是数据显示是需要进行动态扫描显示,这样会占用大量的单片机运行周期,显示位数比较多的时候,CPU需要逐一进行扫描,占用CPU很多的时间。数码管静态显示不需要占用单片机的系统内部资源,数码管只需要很小的电流可以获得很高的亮度,编程简单,占用CPU时间少,占用单片机的外部I/O口较少。但是占用系统的口线较多,硬件电路较复杂,且成本很高。所以适用于显示数码管个数少的设计。方案二:液晶显示器显示液晶显示器简称LCD,由于具有体积小、超薄型、功耗低、显示高品质等特点。很广泛的应分为应用于便携式电子产品中。我们现在使用的LCD是由LCD面板和驱动与控制电路组合而成,也称为液晶显示模块。LCD的种类很多,通常用的有字符型与点阵型。字符型的LCD只显示数字、字母与常用符号,而点阵型LCD不仅显示字符,还可以显示汉字及各种图形信息等。对于我们的设计需要显示字符所以只需要使用字符型的LCD1602便可以,其主要特性:具有字符发生器ROM还可以显示两行总32个字符或者数字,同时能够用字符标识显示的信息,具有80B的数据显示存储器,芯片的工作电压5V。字符型的LCD1602使用简单,方便,稳定性好,并带有液晶背光,更适用于夜间使用,且背光可控,可以通过光敏器件调节其亮灭,在与单片机通信是采用并口的方式,传输数据速度快,稳定性高[6]。其显示具有显示方便,能够显示足够的信息,在显示湿度信息的同时能够显示设置值的湿度的上下限。液晶显示接口电路设计本设计使用1602液晶显示屏与单片机相连,显示电路如图2.2所示,图2.2.单片机与液晶电路图2.3A/D转换芯片ADC0832ADC0832是由美国国家半导体公司出产的一种双通道、8位分辨率A/D转换芯片。它具有,兼容性强,体积小,性价比高而很受单片机爱好者与一些企业的欢迎,当前已经有了很高的普及率。使用并学习ADC0832可以使我们更多了解A/D转换器的工作原理,且有助于我们学习单片机技术水平进一步提高。2.3.1ADC0832具有以下特点5V电供电时输入电压在0~5V之间;双通道A/D转换;输入输出电平与TTL/CMOS相兼容;8位分辨率;工作频率为250KHZ,转换时间为32μS;商用级芯片温宽为0°Cto+70°C,工业级芯片温宽为−40°Cto+85°C;8P、14P—DIP(双列直插)、PICC多种封装;一般功耗仅为15mW;图2.3ADC0832引脚芯片接口说明:·Vcc/REF电源输入与参考电压的输入(复用)。·CLK芯片时钟输入。·DO数据信号的输出,转换数据输出。·DI数据信号的输入且选择通道控制。·GND芯片参考0电位地。·CH1模拟输入通道1,或者作为IN+/-使用。·CH0模拟输入通道0,或者作为IN+/-使用。·CS_片选使能端,低电平芯片使能。2.3.2ADC0832与单片机的接口电路ADC0832是8位分辨率的A/D转换芯片,它的最高分辨可以达到256级,可应于一般模拟量的转换要求。它的内部电源输入和参考电压的复用,使的芯片的模拟电压输入值在0~5V范围之内。芯片转换时间只有32μS,具有双数据输出可以作为数据校验,以便减少数据误差,稳定性能强且转换速度快。独立芯片的使能输入,使处理器控制与多器件挂接变的很方便。通过DI数据的输入端,可很容易的实现通道功能选择。单片机对ADC0832控制原理:正常情况时ADC0832和单片机接口应该为4条数据线,分别是CLK、CS、DI、DO。但是由于DO端和DI端在通信的时候并不能同时有效,且与单片机接口为双向,所以在设计电路时可以把DI与DO并联在一根数据线上使用。当ADC0832没有工作时CS输入端应该为高电平,这时芯片禁用,DO/DI和CLK的电平可以任意。当需要进行A/D转换时,必须先把CS使能端置于低电平且保持低电平一直到转换完全结束。这是芯片便开始转换工作,同时处理器可以向芯片时钟输入端CLK输入时钟脉冲,DO/DI端使用DI端输入通道功能选择的是数据信号。图2.4A/D转换接口电路2.4按键电路方案的设计按键电路的选择方案一:运用独立按键,将单片机I/O端口和按键一端相接,若I/O端口的电压发生变化时,软件将会检测电平的变化,同时做出相应的变化,另一端接地。方案二:运用行列式矩阵按键,通过反转的方法分别扫描列线和行线,来判断哪一个按键被按下,并执行相应操作。总结:通过两种方按比较,它们的区别在于按键的数量,矩阵按键更适合应用在需求按键较多的电路中。独立按键每一个按键都需要一个I/O口,则适用于使用按键数量较少的设计中。按键电路的设计根据我的设计需求,只需要4个按键即可,所以采用独立按即键方案一。按键电路如下图3.4所示,一端接单片机I/O口,另外一端接地,通过检测与之相连的I/O口,产生相应的动作,其中包括复位键,调速键,设置键和菜单键。电路图如图2.8所示。图2.5按键电路电路图2.5单片机晶振电路原理及作用在单片机的系统里都含有晶振,晶振作用很大,全程3全名叫晶体振荡器。晶振与单片机内部电路结合产生单片机需要的时钟频率,当晶振所提供的时钟频率越高,单片机运行的速度就越快,单片极接的所有指令执行都是在单片机晶振提供的时钟频率下进行的。通常工作条件下普通的晶振频率绝对精度可以达到百万分之五十,高级的精度更高。还有一些晶振可由外加电压在给定范围内调节频率,称作压控振荡器(VCO)。晶振用一种能够将电能与机械能互相转化的晶体共振的时候工作,可以提供精确,稳定的单频振荡。晶振的作用是给系统提供时钟信号的。常常一个系统共使用一个晶振,这样方便各部分保持同步。但是有的通讯系统的射频和基频使用不同的晶振,则需要通过电子调频的方法保持同步。晶振也通常和锁相环电路配合使用,用来提供系统所需要的时钟频率。若不同的子系统需不同的频率的时钟信号时,可用与同一个晶振连接的不同锁相环提供。图2.6时钟电路电路图2.6复位电路的设计MCS—51系列单片机有内部复位电路和外部复位电路而MCS—51复位是由外部复位电路实现的。单片机一般都在开机时要做复位,这样可以方便中央处理器CPU和存储器等其他功能部件处在一个确定稳定的初始状态,并从这个状态开始工作。外部复位电路通常有两种即上复位电路和开关复位电路两种方式。该电路兼有上复位和开关复位电路。复位电路图如图RESET。工作原理为:开关闭合,上电瞬间,RC电路充电,RESET引脚上出现正脉冲,只要正脉冲保持100ms以上的高电平,就能靠单片机实现有效复位。该设计时钟频率为12MHz,C取10μF,R取10KΩ。复位电路如图3-3所示。图复位电路原理图2.7报警电路的设计该设计采用了声光报警电路接口电路如图3-13所示。MCS-51的口线P26接报警电路的输入端,当P26口输出低电平时,发光二极管两端电压差接近5V,发光报警.压电蜂鸣器两条引线加上近5V的直流电压,由压电效应而发出蜂鸣音报警。图2.8声光报警电路接口电路2.8土壤湿度传感器YL-69土壤湿度计检测模块YL-69土壤湿度计检测计特点(1)YL-69是一个较简单的水分传感器可以用来检测土壤的水分,土壤缺水时,模块输出一高电平,否则输出低电平。(2)灵敏度可以调(3)工作电压为3.3V-5V

(4)模块双输出模式,模拟量输出更精确,数字量输出简单。

(5)设有固定的螺栓孔,方便安装

(6)小板PCB尺寸:3cm*1.6cm

(7)数字开关量输出指示灯(绿色)电源指示灯(红色)(8)比较器采用LM393芯片,工作稳定

小板接口说明(4线制)

1.GND

外接GND

2.VCC

外接3.3V-5V3.AO

小板模拟量输出接口

4.DO

小板数字量输出接口(0和1)使用说明1.土壤湿度模块对环境湿度最敏感常用来检测土壤的湿度。2.小板模拟量输出AO可以与AD模块相连,并通过AD转换,可获得土壤湿度更精确的数值;3.小板数字量输出DO也可以直接驱动继电器模块与蜂鸣器模块等,所以可以组成一个土壤湿度报警系统;4.小板数字量输出D0和单片机直接相连,利用单片机检测高低电平,由此检测土壤湿度;5.在土壤湿度大于设定阈值时,模块D0输出为低电平模块当土壤湿度不超过设定阈值时,DO口输出为高电平;YL-69土壤湿度传感器是个简单的传感器,土壤缺水时输出高电平,否则输出低电平。利用起来简便、快速,传感器原理图如图所示,传感器的两个极片把土壤看作一个电阻来用,当湿度越大电阻就越小,电阻变化后流过基极的电流增大,三极管发射极端输出的电压增高,运用这个原理来测量土壤的湿度。图2.9土壤传感器检测原理图湿度采集模块组成和单片机的连接示意图如图所示。该设计检测模拟信号需要外部接上AD转换器,把传感器检测到的模拟信号通过AD转换器在送到单片机即可,该设置中试用两个土壤传感器。图2.10湿度采集模块组成和单片机的连接图2.9步进电机驱动模块步进电机简介和原理步进电机是把给定的电脉冲信号变为线位移或角位移的开环控制元件。在给定一个电脉冲信号,步进电机的转子就转过相应一个角度,这个角度就称为该步进电机的步距角。当前常用的步进电机步距角大多为0.9度(俗称半步)或1.8度(俗称一步)。用步距角为0.9度的步进电机为例,当给步进电机一个电脉冲信号时,步进电机转过0.9度;当给了两个脉冲信号时,步进电机转过1.8度。由此,连续的给定脉冲信号时,步进电机便可以连续的运转。由于电脉冲信号和步进电机的转角存在一定的线性关系,使步进电机在位置控制、速度控制等方面应用较广【7】。步进电机使用时需要三个方面配合,一电脉冲信号发生器必须按照给定的设置重复的为步进电机传送电脉冲信号,当前这种信号大多数由单片机或可编程控制器来完成;二是驱动器即信号放大器,除了对电脉冲的信号进行放大,驱动步进电机转动外,还可用来改善步进电机使用的性能,实际中在步进电机的系统中起着很重要作用,通常一种步进电机根据不同的工作情况具有很多种驱动器;三是步进电机它有多种的型号和控制原理,目前常用的有混合式、反应式、感应子式等。

步进电机是通过输入脉冲频率快慢来实现速度控制。当发生脉冲的频率增加时,步进电机的速度就加快;当频率减小时,速度就降低。还可通过对频率的改变从而提高步进电机速度和位置精度。ULN2003驱动芯片通常ULN2003是用于灌溉电流的驱动。ULN2003是大电流、高耐压达林顿陈列,由七个硅NPN达林顿管组成的。ULN2003的每对达林顿都串联了一个2.7K的基极电阻,且在5V工作电压下能够和CMOS与TTL电路直接相连,也可以直接得处理原来需要的标准逻辑缓冲器处理的数据。ULN2003工作电流大,工作电压很高,灌溉电流可以达到500mA,且能在关的状态时承受50V的电压,输出还可在高负载电流时并行运行【8】。(1)ULN2003引脚说明:1-7号引脚:为输入端10-16号引脚:为输出端8号引脚:地端9号引脚:电源+(2)达林顿驱动的典型应用:①用于电机调速,逆变电路,大功率开关电路,利用CMOS电路通过达林顿管驱动高灵敏度的继电器的电路;②驱动LCD显示屏LCD智能显示屏由微型计算机控制的,以LCD矩阵板作为显示的系统,可以用来显示各种图案与文字。注意的是,达林顿管的内部由多只管子和电阻组成,当用万用表测试时基极的正反向阻值和普通的三极管不同。步进电机驱动模块单片机的输出波形信号脉冲宽度可以由延时子程序确定。但只要改变延时时间,便可改变驱动脉冲频率,同时改变了步进电机转速。很显然使用灵活、方便。单片机向P2口输出驱动代码并由程序进行。在实际的编程过程中,将单片机的驱动代码存入存储器构成控制表。只要CPU执行传送的命令,数据也依次取出,送入P2口便可以了。每输出一个代码,步进电机就旋转一步,连续的循环输出,步进电机也就连续运行;倒序输出时,步进电机便反向运行;停止输出,步进电机也停止工作。当数据输出的速度改变,同时输出脉冲的频率也改变,步进电机运行的速度也就改变。图2.11步进电机驱动模块电路图3系统软件设计3.1软件系统总体工作流程主程序实现的功能首先设定土壤湿度上下限值,对系统子程序初始化,土壤湿度传感器启动对土壤湿度进行检测,将测量到的湿度值和设定值比较,如果测量值大于了设定值,返回重新测量,如果测量到的值小于设定值,报警电路进行报警,灌溉系统启动,进行灌溉。当系统通电时,各模块电路开始启动,将设定的上下限值输入,检测模块中土壤湿度传感器开始检测土壤湿度,把采集到的湿度值送给单片机,单片机将送入的值和设定值进行比较,如果检测值小于设定的下限值,步进电机驱动灌溉,如果检测值大于设定的下限值,停止灌溉。如此的将检测到的当前湿度和设定湿度循环比较,保持土壤湿度,实现良好的灌溉。图3.1主程序流程图3.2湿度控制模块的设计湿度控制程序流程在该设计中利用湿度检测模块把多处地点检测到的湿度模拟值,通过AD转换器进行模数转换,转换后对数据综合处理,再传给给单片机。单片机会将接收到数值与单片机内存中的设定值比较,如果接收到的数值低于了设定值,步进电机控制电路模块开始启动步进电机且进行灌溉。如果收到的数值大于设定值,步进电机不启动进行灌溉。与此同时单片机把检测到的数值与系统的灌溉与否在实物模块中显示出来。灌溉同时进行湿度的判断,整个系统在这个闭环控制系统中运行。图3.2A/D转换流程图3.3按键电路子程序按键用于人机界面的输入,子程序用于按键的检测。考虑按键软件去抖成本要比硬件去抖成本低,所以电路使用软件去抖。其过程为:扫描按键、去抖延时、再检测、执行对应程序。图3.3按键程序流程3.41602液晶显示模块设计液晶显示模块是一个慢显示器件,在执行每条指令之前要确认模块的忙标志为低电平,表示不忙,则此指令失效,要显示字符时要先输入显示字符地址,告诉模块在哪里现实了字符。1602液晶显示模块可与STC89C52直接接口的。软件流程图所示:图3.4显示模块子程序流程图参考文献[1]童时中.模块化设计原理方法及应用[M].北京:中国标准出版社,2000:20-43[2]节水灌溉编委会.节水灌溉技术手册[M].北京:中国大地出版社,2003:112-136[3]何立民.单片机初级教程[M].北京:北京航空航天大学出版社,1999:73-94[4]宋彩利,孙友仓,吴宏岐.单片机原理与C51编程[M].西安:西安交通大学出版社,2000:190-191[5]刘湘涛,江世明.单片机原理与应用[M].北京:电子工业出版社,2007:134-139,142-148.[6]王毅.单片机器件应用手册[M].北京:人民邮电出版社,1994:60-65[7]王鸿钰.步进电机控制技术入门[M].上海:同济大学出版社,1990:29-65[8]朱兵,彭宣戈.汇编语言程序设计[M].北京:北京航空航天大学出版社,2009:18-39附录A硬件原理图 图A1硬件原理图附录B程序代码#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong/*八拍方式驱动,顺序为AABBBCCCDDDA*/unsignedcharcodeclockWise[]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};ucharH_temp=80;ucharL_temp=20;ucharC_temp=30;uintMOTOR_SPEED=2000;ucharset_flag=0;ucharSpeed_flag=1;//速度标志位uchartime1_num=0;uintad_dat1=0;//读取滤波后的AD值bitrun_flag=0;sbitkey1=P1^4;sbitkey2=P1^5;sbitkey3=P1^6;sbitkey4=P1^7;voiddelay(uintz){ uintx,y; for(x=z;x>0;x--) for(y=11

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论