宠物自动饮水喂食器的设计与开发_第1页
宠物自动饮水喂食器的设计与开发_第2页
宠物自动饮水喂食器的设计与开发_第3页
宠物自动饮水喂食器的设计与开发_第4页
宠物自动饮水喂食器的设计与开发_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

龙龙岩学院毕毕业设计 题目: 宠物自动饮水喂食器的设计与开发 专业: 电子信息工程 学号: 2014041833 作者: 张惠珊 指导教师(职称):陈晶晶(讲师) 2016年 5月 25日年宠物自动饮水喂食器的设计与开发【摘要】为了解决主人不在家而无法正常对宠物进行饮水喂食,导致宠物身体不健康这一情况,本文设计了宠物自动饮水喂食器。宠物自动饮水喂食器主要由单片机最小系统、水位检测系统、温度检测系统、饲料检测系统、按键控制系统、LCD1602液晶显示系统组成。单片机系统需要正常工作必须保证最小系统工作正常,宠物自动饮水喂食器的饮水过程是通过超声波检测水位,若检测到的水位低于设定水位就开启加水功能;通过DS18B20温度传感器检测当前温度,若检测到的温度低于设定温度则开启加温功能;液晶屏显示当前水位及温度和设定水位及温度。喂食过程是通过光电传感器检测饲料是否存在,若检测到饲料不存在,则开启加饲料功能。【关键字】宠物自动饮水喂食器 单片机 饲料检测 LCD1602液晶The design and development of pet automatic drinking water feeder 【Abstract】In order to solve the problem that the owner is not at home and can not normally carry on drinking water to the pet, the pet body is not healthy, the automatic drinking water feeding device is designed.Pet automatic drinking feeding device mainly consists of a single chip microcomputer system, a water level detection system, a temperature detection system, a feed detection system, a key control system and a LCD1602 liquid crystal display system. SCM system need to work properly to ensure the normal work of the minimum system, pet automatic drinking water feeder is through ultrasonic detection of water level, if the detected level is lower than the set water level open water function; through DS18B20 temperature sensor to detect the current temperature, if the detected temperature is lower than the set temperature open heating function; LCD screen display and setting water level and temperature of the water level and temperature. Feeding process is through the photoelectric sensor to detect the existence of the feed, if the feed does not exist, then open the feed function.【Key Words】Pet automatic drinking feeder single chip feed detection LCD1602 liquid crystal宠宠物自动饮水喂食器目 录第1章 引 言11.1 研究意义11.2发展与现状11.3研究内容与要求1第2章 总体方案设计32.1 设计思路32.2 设计方案32.2.1 单片机的选择32.2.2 显示器的选择42.2.3 主检测模块器件的选择42.3 总体方案4第3章 硬件设计63.1 单片机模块设计63.1.1 STC89C52介绍63.1.2 单片机最小系统73.2 LCD1602模块设计83.2.1 LCD1602原理83.2.2 LCD1602接口电路设计83.3 按键模块设计93.4 DS18B20模块设计93.4.1 DS18B20介绍103.4.2 DS18B20接口电路设计103.5 HC-SR04模块设计113.5.1 HC-SR04原理113.5.2 HC-SR04接口电路设计113.6 TLN104/TLP104红外对管光电传感器模块设计123.6.1 TLN104/TLP104红外对管光电传感器模块介绍123.6.2 TLN104/TLP104红外对管光电传感器接口电路设计123.7 加水加温喂食模块设计13第4章 软件设计144.1 主程序模块设计144.2 子模块设计154.2.1 按键模块154.2.2 DS18B20模块164.2.3 HC-RC04模块174.2.4 LCD1602显示模块17第5章 系统调试195.1 调试过程195.2 测试结果19第6章 结 论22致 谢23参考文献24附 录25附录1:原理图25附录2 :PCB图26附录3:程序27第1章 引 言 本章主要介绍宠物自动饮水喂食器的研究意义,国内外发展与现状,以此提出本论文的研究主题。1.1 研究意义随着我国社会经济水平的快速发展以及城市化进程的不断加速,很明显我国国民的生活水平不断得到提高,而宠物业也因此得到飞速的发展。现如今家庭宠物的饲养已经成为城市居民生活消遣的新方式,而且饲养宠物的观念也与以往大不相同,其中宠物的喂养就是人们最为关心的问题。不过目前宠物主要还是依靠人工进行喂养。而且随着人们生活水平不断的提高,人们开始侧重于精神的追求,很多年轻人和老年人都会收养自己的宠物,但是年轻人大多时间都忙于工作,老年人可能由于记忆或者身体不便等原因,有时候可能顾及不到自己的宠物,那么宠物很有可能因为缺水或者饥饿而导致不健康成长或者死亡。如果是这样的话对于宠物的伤害是非常大的。因此就急需一种能自动加水喂食的装置,以保证宠物饮食正常。人们可以在对宠物喂水和喂料上无需发费多余的时间即可很好的照顾自己的宠物,具有极大的市场价值和经济效益。1.2发展与现状随着微处理器及传感器技术的不断发展,人们开始将单片机应用到宠物自动饮水喂食器上,由于单片机具有智能特性,就非常容易可以实现自动化的控制。目前市场上也有很多这样的宠物自动喂食控制装置,比如定时喂食装置,但是大多数宠物自动饮水喂食器都只是简单的功能,并不能确保宠物是否正常饮食。所以市场上的宠物自动饮水喂食器都有一些不足之处。首先目前市场上的宠物自动饮水喂食器装置不能实现温度的检测,如果宠物对食物或水位的温度有要求,那么它将不符合这个需求。其次市场上的宠物自动饮水喂食器装置没有人机界面,人们不能很好地去查看当前宠物喂食器的一些信息。最后市场上的宠物自动饮水喂食器装置没有按键设定功能,只是一个简单的控制加水和加料,不能很好地去控制自动装置在什么情况下进行加水什么情况下加料,其应用的范围比较局限。1.3研究内容与要求针对市场上的宠物自动饮水喂食器的不足之处,本设计采用了新一代高速、低功耗、超强抗干扰的单片机作为该系统的主控制器,通过多种传感器应用的结合以及软件的编写,制作一个多种功能于一身的宠物自动饮水喂食器。本次设计的重点在于对宠物自动饮水喂食器做出产品需求分析和可行性分析。在分析的过程中,我们还要简化一些需求,保证每一个功能都是用户需求的,而不是简单的功能叠加,同时前期正确的产品需求分析也有利于产品的顺利开发,避免了一些不必要的麻烦,如功能问题。除此之外,还必须对产品整体设计进行可行性分析,确保产品没有失误。我的设计主要是实现一下功能:(1)加水:通过超声波检测水位,若检测到的水位低于设定水位(设定水位可通过按键调节),则开启加水功能,并在液晶屏显示当前与设定的水位;(2)加温:通过温度传感器检测当前温度,若检测到的温度低于设定温度(设定温度可通过按键调节),则开启加温功能,并在液晶屏显示当前与设定的温度;(3)加料:通过光电传感器检测饲料是否存在,若检测到饲料不存在,则开启加饲料功能。系统只要一次设定好温度值和水位高度值就可以实现自动控制加水和加温及加料,就可真正实现了自动控制,节省了人们的实践,也保障了宠物的身体饮食正常,具有极大的市场价值和经济效益。第2章 总体方案设计2.1 设计思路 本文设计的是宠物自动饮水喂食器,它主要要实现自动加水加温喂食功能。即检测到的水位与温度低于我的设定值,就开启加水加温喂食功能,还能按键调整设定水位与温度,并能显示设定与检测水位与温度值。在电路设计中,系统主要由主控器,测温模块,水位检测模块,食物检测模块,显示模块,按键模块和加温加水喂食模块组成。如图2-1所示:核心控制器水位检测模块 测温模块食物检测模块 按键模块加水加温加料mokuai显示模块mmokuaimokuai图2-1 设计思路图2.2 设计方案2.2.1 单片机的选择到目前为止,实用的单片机型号已经非常多了,AT89C51,AT89S51和52,还有功能增强型的STC51系列等,对于51系列比较常用的是这些。除了51单片机还有比较常用的有AVR和STM32型号的单片机,再上去就是ARM处理器了,对于这种的单片机我们设计中不考虑,主要是由于实际当中用这个芯片浪费,而且操作比较难。因此在51和AVR还有STM32当中我们可以选择其中一种作为本设计系统内的主控制器。对于AVR单片机,现在市场上的应用已经比较少了,此芯片功能比较多,但是其价格是非常贵的,由于后面出现了STM32芯片,AVR的应用已经非常小了,因此出于成本考虑,设计中不采用AVR芯片。对于STM32,STM32是ARM处理器内的一种,其内部功能是非常强大的,由于本设计只需要对温度和水位进行检测并显示和控制,因此应用的功能是非常少的。而且由于STM32配置是很复杂的,不易于操作,因此STM32芯片也不加考虑,最后可以在51单片机内进行选择,由于51系列的单片机非常多,其中STC系列的单片机,STC内存比较大,功能也比较多,可以选择此芯片,但是STC51系列的芯片有非常多,基于内存大小及价格考虑,我们最终选择中等合适的STC89C52RC单片机。此单片机除了拥有51单片机全部功能外,还有就是其价格非常便宜,对于一般设计者都非常容易上手。2.2.2 显示器的选择由于系统需要对检测的温度和水位高度数据进行显示,因此电路设计中还需要一个显示装置,现在的显示装置是非常多的,有数码管,LCD液晶,还有TFT彩屏。由于我们需要对数字和字符进行显示,如果使用数码管显示的话,那么对于数码管数量要求比较多,数码管如果使用过多的话,对于单片机IO口就要占用很多,而且需要专门设计数码管驱动电路并且数码管对显示字符是非常不方便的,对于整个设计的成本及电路体积将会增大,因此我们不采用数码管显示。由于LCD液晶中有LCD1602和LCD12864;LCD1602显示的内容很多,可以显示2行,每行字符16个。LCD12864可以显示汉子还可以显示字符,可以显示4行,显示的信息非常多。因为我们只需要显示数字和一些字符,因此采用LCD1602液晶就可以。对于TFT彩屏就不需要考虑,除了它驱动复杂,还有就是对于芯片处理速度要求非常高。2.2.3 主检测模块器件的选择 对于测温电路我们采用数字温度传感器DS18B20,此温度传感器测量的精度是非常高的,而且体积也非常小,只有一个三极管那么大,对于安装在宠物自动饮水喂食器是非常合适的。水位高度的检测我们采用HC-RC04超声波传感器进行检测,由于超声波检测的范围是4m之内,所以已经足够适用了,并且HC-RC04超声波传感器通信非常简单,占用的数据线很少,只需要使用2根数据线就可以通信,而且HC-RC04超声波传感器价格非常便宜,所以在宠物自动饮水喂食器中采用HC-SR04超声波传感器检测水位的高度。系统还需要检对食物进行检测,检测食物是否存在。所以可以选择一个TLN104/TLP104红外对管光电传感器进行检测,TLN104/TLP104红外对管光电传感器检测原理非常简单,如果宠物自动饮水喂食器中有食物,那么光电传感器就会返回一个低电平信号,如果喂食器中没有食物则会返回一个高电平信号,根据这个原理就可以很容易的检测喂食器是否有食物,而且TLN104/TLP104红外对管光电传感器价格非常便宜,体积也非常小。2.3 总体方案通过数字温度传感器DS18B20、HC-SR04超声波传感器及TLN104/TLP104红外对管光电传感器对温度、水位和食物存在进行检测,将采集到的信号传送给单片机STC89C52RC进行处理,若检测的温度或水位低于设定温度值或水位值,或没有检测到食物信号,单片机将控制加温加水喂食电路进行工作, 按键电路用于对温度及水位报警值进行设定,LCD1602显示电路用于显示检测的温度水位及设定的温度和水位信息值,系统方框图如下所示:STC89C52单片机按键电路HC-SR04测水位电路DS18B20测温电路TLN104/TLP104红外对管光电传感器检测食物存在电路加温驱动电路加水驱动电路喂食驱动电路1602液晶显 示电路图2-2 系统总框图第3章 硬件设计本文设计的是宠物自动饮水喂食器,它是要实现自动加水加温喂食功能,而本章主要是介绍该设计各个模块的功能与工作原理。此次设计主要由:单片机STC89C52芯片的中央控制器模块、LCD1602液晶显示模块、加水加温喂食模块、按键模块、DS18B20测温模块、HC-SR04测水位模块、TLN104/TLP104红外对管光电传感器测食物存在模块组成。整个系统的运行控制全依赖单片机STC89C52芯片的中央控制器模块,通过控制对应的I/O来实现其他模块的控制,让模块组合成一个整体,逐一实现各个功能。通过数字温度传感器DS18B20、HC-SR04超声波传感器及TLN104/TLP104红外对管光电传感器对温度、水位和食物存在进行检测,将采集到的信号传送给单片机STC89C52RC进行处理,若检测的温度或水位低于设定温度值或水位值,或没有检测到食物信号,单片机将控制加温加水喂食电路进行工作, 按键电路用于对温度及水位报警值进行设定,LCD1602显示电路用于显示检测的温度水位及设定的温度和水位信息值。3.1 单片机模块设计 单片机的英文缩写是MCU,也叫做单片微处理器。通俗的讲就是说,一块单片机就相当于一台电脑的处理器。如果在单片机的外围加上输入输出接口那就相当于一台简单的电脑了。以单片机为核心的系统具有功能齐全,抗干扰能力强、易于普及,前景广阔、嵌入容易,用途广泛。3.1.1 STC89C52介绍单片机STC89C52是从传统MCS51基础上进行升级过来,在内部资源分布上更加丰富,比如时钟模块,单片机管脚第2功能等。芯片内部含有8K字节大小的程序存储器Flash和256字节的静态RAM,整个芯片提供给我们使用的有32个IO口,分别是P0P1P2P3口。内部还具有2个定时器,它们是16位的。在单片机P3管脚还有第二功能,其中有2个IO口具有外部中断功能和串口通信功能。芯片正常工作电压是在3.3V到5.5V之间,通常使用5V电源系统进行供电。单片机的外部中断触发,可以使用低电平触发,也可以使用下降沿触发。芯片的串口通信接口直接可以和单片机进行通信,如果需要和电脑串口通信的话需要使用一个电平转换芯片,因为电脑串口电压是12V,所以通常使用一个MAX232芯片进行转换。芯片工作频率可以在0到40Mhz下运行,最高工作频率可以达到48Mhz,超过这个频率运行可能会出现干扰。我们选择的单片机封装采用的是插件封装,也就是DIP封装,芯片的管脚图如图3-1所示:图3-1 STC89C52单片机引脚图3.1.2 单片机最小系统单片机的最小系统是由晶振电路、电源电路、复位电路以及单片机STC89C52组成,给单片机正常工作提供必要条件。系统如果要正常工作必须给它一个稳定合适的电源系统,而单片机STC89C52的工作电压范围是3.3V到5.5V之间。如果要让系统稳定工作,我们需要给单片机电源管脚加上一个稳定的直流5V电源。本系统只要按下电源开关即可让电路恢复到初始状态。通常系统需要复位也是在程序瘫痪或者系统死机的情况下进行,一般情况我们是不需要复位的。晶振电路采用12M的晶振作为系统时钟发生器,如果当单片机电源启动,晶振电路即可工作,这个时候就可以提供连续时钟频率的脉冲给单片机。图3-2 单片机最小系统图3.2 LCD1602模块设计 本设计要准确清晰地显示出水位与温度的设定与检测值,用LCD1602就具有这种功能。本产品可以准确显示动态的信息,程序也相对简单,且物小、轻薄、省电,对于安装在宠物自动饮水喂食器是非常合适的。3.2.1 LCD1602原理液晶显示器LCD1602一般是用在显示字符数字上,由于其能显示2行,每一行只能显示16个字符,因此也叫做1602。LCD1602内部含有许多个RAM,我们使用到的是40个,相应的字符在RAM内部都有相应的地址。如果需要在第一行显示的话,我们需要在其第一行地址写入数据,对应的第一行首个地址是0x80,由于一行只能显示16个字符,因此第一个最后一个地址是0x8f。同样的第二行首个地址是0x80+0x40,最后一个地址是0x8f+0x40。依据LCD上显示的字符的指令,可从RAM相对应的的地址中提取所要显示的字符,设置光标,送上该字符相对应的代码,显示器显示的代码是ASCII码表中的编码。LCD1602具有8位数据口,通过3个控制管脚进行通信。其通讯时序采用6800方式。其具体的图形如图3-3所示:图3-3 LCD1602液晶图3.2.2 LCD1602接口电路设计设计中使用单片机P0口控制LCD的数据口,D0-D7对应着P00-P07,需要加上拉电阻。液晶LCD1602 寄存器选择RS管脚接在MCU的P2.7口,液晶读写管脚RW接在MCU的P2.5管脚上,液晶LCD1602使能端 EN口接在MCU的P2.6口上,液晶LCD1602的第三脚是调节背光信号,采集电压的信号脚,连接R9。液晶LCD1602与单片机STC89C52RC的接口分配图如图3-4所示:图3-4 LCD1602接线电路图3.3 按键模块设计按键电路是为了能够使系统实现自动加水和加温功能而设计。电路设计中使用了4个按键作为温度和水位的设定,按键S3和按键S7作为温度调节功能,按键S4和S8作为水位高度调节功能。这4个按键采用独立按键的接法,也就是说将4个按键一端进行共地。另一端接在单片机的管脚上,当按键按下的时候单片机的管脚就会被拉低,因此只需要判断对应管脚是否为低电平即可知道哪个按键按下。按键S3和S7是温度的加减,按键S4和S8是水位高度的加减调节。按键S3与单片机的P2.2相接,按键S4与单片机的P3.6相接,按键S7与单片机的P2.1相接,按键S4与单片机的P3.5相接,具体电路如图3-5所示:图3-5 按键电路图3.4 DS18B20模块设计 本设计是采用DS18B20数字温度传感器去测水温。此温度传感器测量的精度是非常高的,而且体积也非常小,只有一个三极管那么大,对于安装在宠物自动饮水喂食器是非常合适的。3.4.1 DS18B20介绍DS18B20是美国Dallas半导体公司生产的世界上第一片支持“一线总线” 接口的数字式温度传感器,采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位)。供电电压范围为35.5V,测温范围为-55+125,可编程的912位分辨率,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,内含64位经过激光修正的只读存储器ROM,出厂设置默认为12位,在12位分辨率时最多在750ms内把温度值转换为数字。用户可分别设定各路温度的上、下限,内含寄生电源。DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。DS18B20适配各种单片机或系统机。其具体管脚如图3-6所示:图3-6 DS18B20温度传感器图3.4.2 DS18B20接口电路设计由于温度传感器DS18B20具有单总线接口,而我们使用的单片机是不具有此接口的,因此我们需要将单片机管脚模拟单总线通信时序。电路设计中我们使用数字温度传感器DS18B20的数据口接到单片机的P1.5管脚上,通过此管脚模拟单总线时序与DS18B20进行通信。在测温电路中我们还在数据口上加了一个5.1K的上拉电阻,这个主要是保证总线空闲的时候为高电平,防止外界的干扰。具体电路接线图如图3-7所示:图3-7 DS18B20接线电路图3.5 HC-SR04模块设计 我们采用HC-SR04超声波传感器进行检测,由于超声波检测的范围是4m之内,所以已经足够适用了,并且HC-SR04超声波传感器通信非常简单,占用的数据线很少,只需要使用2根数据线就可以通信,而且HC-SR04超声波传感器价格非常便宜,对于安装在宠物自动饮水喂食器是非常合适的。3.5.1 HC-SR04原理采用IO触发测距,给至少10us的高电平信号;模块自动发送8个40khz的方波,自动检测是否有信号返回;有信号返回,通过IO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S)/2; 本产品使用方法简单,一个控制口发一个10US以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离。如此不断的周期测。该模块对应的原理图如图3-8所示:图3-8 HC-SR04原理图3.5.2 HC-SR04接口电路设计由于HC-SR04超声波测距模块预留2个管脚进行通信,所以我们将它和单片机相连,将回响信号引脚ECHO连接在单片机的P1.4管脚上,将触发信号引脚TRIG连接在单片机的P1.3管脚上。只需要通过单片机这两个管脚即可实现测距。由于传感器模块内部含有信号放大等电路,所以在实物中只需要留好一个模块的接线口即可,具体电路如图3-9所示:图3-9 HC-RC04接线电路图3.6 TLN104/TLP104红外对管光电传感器模块设计 TLN104/TLP104红外对管光电传感器检测原理非常简单,根据输出电平信号就可以很容易的检测喂食器是否有食物,而且TLN104/TLP104红外对管光电传感器价格非常便宜,体积也非常小。该传感器的探测距离可以通过电位器调节、具有干扰小、便于装配、使用方便等特点。对于安装在宠物自动饮水喂食器是非常合适的。3.6.1 TLN104/TLP104红外对管光电传感器模块介绍该传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接口输出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离,有效距离范围 230cm,工作电压为3.3V-5V。实物图如3-10所示:图3-10 TLN104/TLP104红外对管光电传感器图3.6.2 TLN104/TLP104红外对管光电传感器接口电路设计TLN104/TLP104红外对管光电传感器模块内部集成了信号检测和放大电路,只留出了一个数字信号输出口,通过输出信号可以判断是否有食物。将输出信号管脚接入到单片机的P3.7管脚上,如果检测到P3.7口为低电平表明喂食器中有食物,如果为高电平表明喂食器中无食物。接线电路如图3-11所示:图3-11 TLN104/TLP104红外对管光电传感器接线电路图3.7 加水加温喂食模块设计电路的设计中我们使用了3个LED作为加温加水和喂食的控制指示灯,由于单片机的IO口驱动能力有限,所以使用了PNP三极管作为电流放大器件,将单片机的管脚连接到PNP三极管的基极,发射极接入LED作为指示灯,集电极接地。D2指示灯用来表示加水,D3指示灯用来表示喂食,D4指示灯用来表示加温。他们分别通过单片机的P2.3,P2.4和P2.2管脚控制,当单片机管脚输出一个低电平的时候,三极管PNP导通,对应的指示灯就会点亮,表明正在工作。如果输出一个高电平的话,三极管将截止,对应的LED不发光,表明不工作。具体电路如图3-12所示:图3-12 加温加水喂食控制电路第4章 软件设计本章主要介绍了主程序流程图、LCD1602液晶显示子程序流程图、DS18B20测温子程序流程图、HC-SR04测水位子程序流程图、按键流程图。在硬件电路设计完成后,现在对本次设计有了全面了解,就来进行软件设计。首先需要建立程序流程图,将整个软件程序分模块来进行,最后再把各个模块合理的串联起来。4.1 主程序模块设计首先先给单片机上电,系统软件设计需先对LCD1602与T0、T1先初始化,然后进行温度与水位读取转换,其次按键扫描,再完成对宠物自动饮水喂食器的温度和水位检测以及判断是否含有食物。如果当检测的温度或者水位低于设定值29或15cm或者没有检测到食物,将使喂食器自动实现加温加水以及喂食功能,以此不断运行。主函数的功能就是对程序设计中使用的变量及模块初始化并将各功能子模块进行调用。主函数流程图如图4-1所示: 开始LCD1602初始化定时器0和1初始化温度读取转换水位检测读取转换按键扫描没有食物?温度或水位低于设定值?驱动加温加水电路工作LCD1602显示结束Y N Y 驱动喂食电路工作N 图4-1 主函数流程图4.2 子模块设计4.2.1 按键模块硬件电路中使用4个独立按键用来作为温度和水位阀值的设定装置,由于采用独立式接法,因此只需要判断对应的输入电平即可确认按键是否按下以及是哪个按键按下。凡是在按键处理的过程中都需要对其消抖处理,因为按键在按下和松开的过程中会产生抖动,如果不进行消抖处理,那么当按键按下后就判断其状态,这个很有可能是按键抖动所产生的误操作。由于硬件电路中并没有做消抖处理,所以需要通过软件来进行消抖。按键控制流程图如图4-2所示:N N 开始S8键按下?S4键按下?S3键按下?S7键按下?水位阀值减1水位阀值加1温度阀值加1温度阀值减1结束YYYYN NN NN N图4-2 按键模块流程图4.2.2 DS18B20模块硬件电路中使用了单总线接口的数字温度传感器DS18B20作为喂食器的温度检测装置,由于我们使用的单片机没有单总线接口,必须通过管脚来模拟时序通信。根据温度传感器的初始化及读写时序图可以模拟,温度传感器在读写数据的时候是先读写低位,然后再是高位。所以需要一个循环函数及移位操作来读写8次。然后通过发送温度转换及读取命令就可以读取到温度数据,读取到的温度数据还需要对其进行处理才能转换为实际的温度。温度转换读取流程图如图4-3所示: 开始DS18B20初始化延时一段时间发送跳过ROM指令发送温度读取指令读取2个字节温度数据结束 图4-3 温度检测转换流程图 4.2.3 HC-RC04模块硬件电路中使用了HC-SR04超声波传感器模块来检测水位的变化,由于使用超声波来测距需要对时间进行计算,所以需要使用到单片机内的定时器功能,通过定时器计算超声波返回的高电平持续时间就可以计算距离,水位距离检测流程图如图3-4所示:开始定时器初始化根据定时寄存器值计算时间把时间转换为距离 检测水位低于设定值?LCD显示水位值结束加水YN 图4-4 水位距离检测流程图4.2.4 LCD1602显示模块在对LCD液晶初始化的时候我们需要了解其具有步骤,根据数据手册可以知道,要对LCD1602液晶初始化,首先需要一段时间的延时,然后根据个人要求选择具体的显示模式,可以选择显示光标或者光标闪烁等,最后需要对LCD进行一次清屏,将内部RAM的数据全部清除,等待下一次的显示。初始化结束以后根据时序编写写命令函数和写数据函数,最后就是使用这2个函数来进行数据显示,流程图如图3-5所示: 开始液晶的功能设定液晶模式设置和开启光标液晶显示开启液晶清屏开启液晶显示位置开启结束图4-5 LCD显示模块流程图第5章 系统调试5.1 调试过程首先通过keil软件编写下载程序,仿真软件Proteus绘制一个仿真电路,由于系统内使用的一些传感器在仿真内没有,所以将显示部分及按键控制部分做一个简单的仿真,用来测试显示电路和按键控制电路及测温电路正确。测试完以后通过Protel绘图软件绘制具体的系统电路图,使用万用板按照原理图进行焊接实物,期间在每焊接一个模块电路的时候可以使用万用表进行线路的测量,可以测量是否有短路或者虚焊。5.2 测试结果硬件与软件都调试成功后,就要检查功能是否可以实现。将电源接口接外电源5V供电,按下上电按钮,电源指示灯亮起,系统通电正常工作。LCD1602显示设定的水位15.0与温度值29,如图5-1所示。 图5-1 上电液晶显示图 当用HC-RC04超声波传感器检测到的水位低于设定水位15mm时,就驱动加水电路,即加水绿灯亮起,液晶屏显示检测到的水位值;当用DS18B20检测到的温度低于设定温度29时,驱动加温电路,即加温红灯亮起,液晶屏显示检测到的温度值。如图5-2、图5-3所示。 图5-2 加水显示图 图5-3 加温显示图当用TLN104/TLP104红外对管光电传感器在5cm内检测不到食物存在时,就驱动喂食电路,即喂食黄灯亮起,如图5-4所示。图5-4 喂食图通过按键可设置水位上下限范围为0cm20cm;温度上下限范围0+125,根据用户需求可通过按键去调整设定水位与温度值,如图5-5所示。图5-5 按键调节设定值显示图测试的数据记录表如5-1所示:表5-1数据检测记录表温度()水位(cm)食物(cm)测试结果设定值29155 检测值30163不加水加温喂食30143加水,不加温喂食28163加温,不加水喂食30166喂食,不加水加温28146加水加温喂食第6章 结 论此次毕业设计,让我很是用心,也花费了我不少的时间。在这段时间内,我体验到一次真正的设计,不再是老师教我们做的设计。做一次设计,包括原理图,编程,代码调试,实物焊接调试,都要亲身操作,通过这个艰辛的过程使我体验到了工程师研发的感觉。项目虽小,却五脏俱全。我设计的包含着数字电路,单片机接口电路,模拟电路,传感器电路,可以说几乎把所学的各个知识都集在一起。因为平时上课都以理论为主,到了实践操作的时候,还是会遇到不少的问题与困难。如电路的搭建、MCU的选型、LCD1602的驱动问题、按键的消抖以及温度传感器单总线的时序模拟等。一开始,我对设计延时函数会有点纠结,虽然网上有很多的延时函数可以借鉴,但是想着可以多学习就学习一点,就使用KEIL内的软件仿真去计算出具体的时间。虽然费时又麻烦了点,但这样让我在设计中更加有成就感与满足感。接下来还有对定时器初始化和中断以及按键消抖的分析,尤其是后面对单总线时序处理的操作,都需要时间去思考操作,所以就需要参考一些单片机书籍,还有关于对这些讲解的资料,这些细节的东西不是看一遍书就能记得的,需要认真动手在编译器上敲代码,多去熟悉。遇到问题,需查阅资料认真去解决,若是实在不懂的话,还要懂得去请教他人。只有真正去搞懂每一个细节问题,才能加深理解,知道怎么去好好运用。实践永远是检验真理的唯一标准,这次毕业设计给我上了一堂好课。当然我的设计还有很多不足之处,比如简单的定时功能都没去做,不过这已让我收获颇多了。致 谢在做毕业设计的时候我花了很多时间去准备,包括参考许多关于单片机的书籍,也问了有经验的人,最终完成了。这其中的功劳还有我的指导老师一份,我非常的感谢她,要是没有她的耐心指导,没有她的和蔼可亲,相信也没有这么顺利完成此次的毕业设计。每次当我遇到问题我都会找到我的指导老师,然后她就会耐心的给我分析讲解,即使是一些很低级的问题她也会耐心的解答。在这个过程中我的指导老师都会给我们分享一些她的经验,全部都是毫无保留的分享。我还要感谢大学期间的那些任课老师,没有他们悉心的教导,我们也不能一步步的成长进步。最后还要谢谢的那些可爱的同学们,要是没有他们平时的支持和帮助,大学生活的我也会感觉到很枯燥,也不能给我带来那么多的丰富多彩。参考文献1张志良主编.单片机原理与控制技术M.机械工业出版社, 2001. 2王庆友.光电传感器应用技术(第2版).机械工业出版社,2014.04.3张谦琳.超声波检测原理和方法M. 北京:中国科技大学出版社,1993.10.4刘畅生,宣宗强,雷振亚,张昌亚. 传感器简明手册及应用电路J. 西安电子科技大学出版社,2015.5 冯国珍. 基于数字温度传感器DS18B20的分布式测温系统的设计.吉林化工学院学报, 2003 (03). 6 康健.采用脉冲调制的红外光电传感器J.电子技术.1989(09).7 王晓华.自动喂食器 掘金宠物经济好机遇J. 大众商务. 2008(08). 8徐爱军.单片机高级语言C51应用程序设计.电子工业出版社,1997.7. 9陈思羽,于浩,白冰,杨俊杰,史小旭,周玮玮,牛国玲. 基于单片机控制的智能萌宠小屋设计J. 佳木斯大学学报(自然科学版). 2016(02). 10 金雨.宠物定时喂食器 让主人省心J. 现代营销(创富信息版). 2005(12).11 Steven F.Barrett.Daneil J.Pack.Embedded SystemM.北京:电子工业出版社,2006.附 录附录1:原理图附录2 :PCB图附录3:程序#include #include #include LCD1602display.h#define TX P1_3 /定义串行通信的数据发送#define RX P1_4 /定义串行通信的数据接收#define uchar unsigned char#define uint unsigned intsbit P4_0=0xc0; /定义P4口/按键定义sbit DS18B20_up =P21;sbit DS18B20_down =P20;sbit Watet_up =P36;sbit Watet_down =P35;/切换定义sbit wendu=P34; sbit DS=P15; /定义DS18B20接口sbit Light=P37; /定义光电传感器接口/定义加水加温加料驱动接口sbit hot=P22; /红灯 sbit water=P23;/绿灯sbit food=P24; /黄灯void Delay400Ms(void);/延时400毫秒函数 / unsigned char code Range =H: ;unsigned char code ASCII13 = 0123456789.-M;unsigned char code table=H: ;/unsigned char code table=H:000.0cm;/unsigned char code table1=! Out of range;/unsigned char code ASCII13 = 0123456789.;unsigned char code table1= temp: ;unsigned char disbuff4=0,0,0,0;/用于分别存放距离的值0.1mm、mm、cm和m的值unsigned char disbuff14=0,0,0,0;/用于分别存放距离的值0.1mm、mm、cm和m的值unsigned char disbuff24=0,0,0,0;/用于分别存放距离的值0.1mm、mm、cm和m的值/unsigned char disbuff12=0,0;/unsigned char disbuff22=0,0;void Count(void);/距离计算函数void key() ; unsigned int time=0;/用于存放定时器时间值unsigned int S=0;/用于存放距离的值unsigned int H=0,V1=150,V2=29.0,V2_T;bit flag =0;

温馨提示

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

评论

0/150

提交评论