【基于STC89C52单片机的宠物喂食设计实现7500字(论文)】_第1页
【基于STC89C52单片机的宠物喂食设计实现7500字(论文)】_第2页
【基于STC89C52单片机的宠物喂食设计实现7500字(论文)】_第3页
【基于STC89C52单片机的宠物喂食设计实现7500字(论文)】_第4页
【基于STC89C52单片机的宠物喂食设计实现7500字(论文)】_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

--PAGEI-目录-PAGEII-基于STC89C52单片机的宠物喂食设计实现本文详细介绍了一款基于STC89C52单片机的宠物喂食设计,通过压力传感器测得每次投放的食物重量,温湿度传感器测得环境内的温湿度。按键设置早中晚三个时间段进行投食和每次投放食物的重量。步进电机正转模拟投放食物,如果测得的食物重量大于设置的值,单片机控制步进电机反转,表示此时投食结束。当前的食物重量,时间和温湿度信息LCD1602液晶屏显示,同时可以手动打开电机,进行食物的投放。关键词:STC89C52单片机;宠物喂食;压力传感器;步进电机目录TOC\o"1-4"\h\u20768第一章引言 128603第二章设计方案 276672.1设计思路 2168022.2系统构成 29792第三章硬件电路设计 4146773.1系统硬件原理图 4280283.2STC89C52概述 10144063.3按键控制电路 12214633.4电源电路 15144113.5温湿度传感器模块电路 1593883.6压力传感器模块电路 1753113.7电机控制电路 1923955第四章软件系统设计 24199374.1软件主程序架构 2468564.2LCD1602显示流程图 2582054.3温湿度检测流程图 25153654.4按键子程序 2621941第五章系统调试 28115295.1焊接调试 28128825.2功能调试 2922358第六章结论 301440参考文献 31第一章引言在日常生活中,越来越多的宠物出现在家庭中,给人们带来欢乐的同时,也促进了宠物用品行业经济的发展。当人们外出时,宠物由于不方便携带的原因,只能放在家中或托人寄养,一旦家里没人照顾时,宠物的饮食得不到保障,时间久了则会引发疾病甚至死亡,所以宠物的喂食是一项非常重要的事情。那么怎么才能保证没人照顾时宠物的饮食呢,为了解决这一问题,市面上出现了一系列智能宠物喂食设备,这些智能宠物喂食装置都是基于单片机设计的,利用按键设置每次投食的时间和投食的重量,利用压力传感器测得每次投食的重量,并进行喂食。为了更好地了解智能宠物喂食的原理,深入的分析其实现方法,本次实验设计了一款基于STC89C52单片机的智能宠物喂食系统。本次设计的主要内容是展示基于STC89C52单片机的宠物喂食系统,通过HX711压力传感器检测当前食物重量,DHT11温湿度模块用于温湿度检测,通过AD数模转换模块,将数据发送给单片机,LCD1602液晶显示屏显示当前检测到的温度值、湿度值、食物重量和时间,按键用于设置早中晚三个时间段进行宠物喂食,还可设置每次投食的食物重量。当时间来到投食点时,单片机驱动步进电机正转模拟投食,如果食物重量大于设置值,反转电机表示投食结束。还可以直接打开电机,进行投放食物。第二章设计方案第二章设计方案2.1设计思路设备硬件设计思路:确定该系统所要完成的主要功能、思考要实现这些功能需要哪些更好更实用的硬件设备。考虑并确定电路回路理想的设计思路,通过使用绘图软将其画成完整的电路图。根据电路图购买可以实现相关功能的电子器件,利用电烙铁焊接整个硬件设备。软件总体设计思路:根据电路图把所需要实现的功能模块化,电路图的每一个部分都可以看作是一个子程序,通过主函数来控制子程序之间的配合,每写完一个部分的目标函数就可以进行测试和修改,直到获得想要的效果。最后把所有的子程序合并再进行测试和修改,直到实现本次系统设计的全部目的。设备的调试:系统的测试可分为硬件设备调试和程序功能调试。硬件设备调试主要检验电路的电压、端口等与相关理论符合程度,确认电路回路中的驱动电压和工作状态是否良好。通过程序软件来控制硬件电路进而来测试该系统所执行的功能是否达到要求。设备的测试是一个复杂的过程,需要反复多方位的进行测试才可以将设备的缺陷找到,并且加以修改,最后完成整个成型的设备。2.2系统构成本次系统构成分为硬件系统和软件系统。硬件系统就是单片机的选型,传感器的选型,电子元器件的选择。当所有材料选型完成后,进行电子电路设计,确保每个电路的正确和畅通。之后按照设计好的电路图,将所有材料焊接起来,组成一个单片机系统。当硬件部分完成后,进行软件设计,用来控制整个单片机,这里采用KEIL软件进行软件的编程。具体到各个模块就是检测、控制和显示三个部分。图2.1是整体系统原理图:图2.1系统原理图第三章硬件电路设计第三章硬件电路设计3.1系统硬件原理图本次设计的单片机型号为STC89C52,压力传感器检测当前投放食物重量,温湿度传感器检测当前环境温湿度。LCD1602液晶屏用于显示,按键用来设定早中晚三个时间段投食,并设置投放重量,图中单片机驱动ULN2003芯片控制电机的正转和反转。承接第二部分系统原理框图,其硬件电路原理图如图3.1所示:图3.1系统硬件原理图首先51单片机对数据进行处理,处理完成后通过液晶来显示当前的信息,如图3.2、3.3所示:图3.2单片机图3.3显示器信息的采集通过DHT11和HX711来完成,主要是对温湿度和食物重量进行数据采集,如图3.4、3.5所示:图3.4DHT11图3.5HX711电源按键用来进行设置和控制,第一按键为设置键,第二、三按键为增减键,第四按键为当前喂食的时间。当按键按下时,输出低电平;当按键松开时,输出高电平,如图3.6所示:图3.6按键设置单片机的最小系统由单片机、振荡电路、复位电路以及系统供电电源组成,如图3.7、3.8、3.9所示:图3.7振荡电路图3.8复位电路图3.9电源这个组件是晶振,给单片机提供特殊的晶振频率,然后通过电容进行滤波,如图3.10所示:图3.10晶振电路复位电路接入10μF的电解电容于RST复位引脚,复位一般分为上电复位和按键复位。在这次设计中,我们使用的是上电复位,只要我们重启一下电源开关,单片机就会自动重启,如图3.11所示:图3.11复位电路电容单片机在使用时P0口必须要接上拉电阻,上拉电阻的范围在4.7k到10k即可,无特殊要求,如图3.12所示:图3.12上拉电阻连接显示模块采用的是LCD1602,其中LCD表示的是液晶,16表示的是每行显示十六个字符,02表示的是由两行来进行显示,如图3.13所示:图3.13显示器电位器用来进行调节当前液晶的背光亮度。因为我们在供电上有时会使用1.5v和2v电源,有时会直接接入笔记本电脑进行供电,所以会造成液晶背光强度的不一致,通过旋转电位器使其进行滑动变阻,这样就可以改变当前的液晶背光亮度。其有三个引脚,但我们只需要用其中两个引脚,如图3.14所示:图3.14电位器控制部分ULN2003相当于驱动步进电机,为四相八拍,可以用来控制电机的正转和反转,如图3.15所示:图3.15步进电机温湿度传感器通过单总线来进行数据通信,上面接入了10k的上拉电阻以保证电路的正常进行,如图3.16所示:图3.16DHT11电路连接压力传感器通过内部AD把当前电流信号进行放大,根据电流的大小,来判断出当前的重量,如图3.17所示:图3.17压力传感器电路连接单片机程序的下载口,支持串行下载,通过串口线连接到P3.0、P3.1,可以进行程序的收录,如图3.18所示:图3.18程序下载口供电电源,当按下开关时,1、3就导通了,当USB接入时,就有3输出vcc,如图3.19所示:图3.19供电电源连接3.2STC89C52概述STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期钟/机器周期可以任意选择。主要特性如下:增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz用户应用程序空间为8K字节片上集成512字节RAM通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片共3个16位定时器/计数器。即定时器T0、T1、T2通用异步串行口(UART),还可用定时器软件实现多个UART工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)STC89C52RC单片机的工作模式空闲模式:典型功耗2mA正常工作模式:典型功耗4Ma~7mA图3.20STC89C52RC引脚图3.3按键控制电路单片机的按键控制电路是由4个微动开关并联组成的电路按键开关的检测其原理就是高低电平的检测。图3.21为按键控制电路原理图:图3.21按键控制电路当仿真开始时,显示模块时间正常计时到2秒,如图3.22所示:图3.22显示仿真图当按下第一个设置键位时,此时会出现设置界面,以黑块闪烁表示,如图3.23、图3.24所示:图3.23按键仿真图图3.24按键后显示图再次按下设置键就会进行时间位数的切换,如图3.25所示:图3.25再按键显示图这个时候再按下加减按钮就可以进行手动设置时间,结果如图3.26所示:图3.26设置后显示图同样的,按下查看喂食时间按钮,显示模块就会切换到查看界面,如图3.27、3.28、3.29所示:图3.27第一时间点图3.28第二时间点图3.29第三时间点以上显示的是三个时间段的投食时间,同理,按下加减键可以自行设置时间段,食物的初始重量限制设置也可以在此界面进行,我们的初始设定是0.5kg。如图3.30所示:图3.30初始重量3.4电源电路单片机的电源采用直流5V供电,电源模块包括一个3脚的电源座子和6脚的电源开关。电源座子用于连接外部的电源插头,1口引脚连接到电源开关的3口引脚,电源开关的1、3口引脚和4、6口引脚的作用相同,用于电源的正极输出。电源开关的2、5口引脚作为单片机的接地引脚,在使用时采取相对的选择,即选择1、3口引脚作为输出,那么就要选择5口引脚作为接地引脚,选择4、6引脚作为输出端口,2口引脚则作为接地引脚。本次单片机的传感器和无线传输芯片的电压都在5V内,所以5V的电压电源足够满足。本次设计的电源电路如图3.31所示:图3.31电源电路3.5温湿度传感器模块电路本设计采用的是DHT11数字温湿度传感器,它是一款含有已校准数字信号输出的温度和湿度的复合传感器。DHT11温湿度传感器包括一个电阻式感湿元件和一个NTC测温元件,能分别检测湿度数据和温度数据。它的工作电压范围3.5~5.5V,能输出单总线数字信号,由于输出的是数字信号,就不需要进行模数转换,这大大简化了硬件设计。DHT11是通过内部的感湿元件和测温元件来采集温湿度数据的。DHT11的内部自带有处理器和存储器,用于处理温湿度数据和存储温湿度数据。它有4个外部引脚,其引脚功能介绍如下(如表3-1所示):表3-1DHT11引脚介绍引脚号引脚名称引脚功能1VCC供电电源正极2DATA单总线串型数据线3NC悬空脚4GND接地脚1号引脚和4号引脚用来给温湿度传感器供电,2号引脚是信号引脚,3号引脚悬空,不用接入电路。DHT11温湿度传感器主要应用与汽车数据记录器、暖通空调测试及检测设备、消费品自动控制、气象站、家电、湿度调节器、医疗设备等领域。然而DHT11也有它的缺点,就是它的测量范围不够大和测量精度不够高,它的测量范围为:湿度范围20~90%RH,温度范围0~50℃,测量精度为:湿度±5%RH,温度±2℃。温湿度传感器模块电路图如图3.32所示:图3.32温湿度传感器模块电路图在初始仿真时,显示重量为81克,温度为27度,因为是软件仿真,我们用手动调节来模拟传感器获得外部环境温湿度数据的过程,结果如图3.33所示:图3.33温湿度传感器初始值此时可以看到温度上升了2度,食物重量上涨了3克,如图3.34所示:图3.34温湿度传感器设置值3.6压力传感器模块电路本次设计在重量检测方面采用HX711压力传感器,其工作原理是通过检测物体与传感器接触面的压力值,然后按照线型比例,将压力值转换成重量值,然后发送给单片机,最后显示在液晶屏上。我们采用型号为CZL-A、量程大小为10kg的电阻应变式重量传感器进行重量检测,一旦测量到被测物体的重量,重量传感器就会将采集到的信号转换成为电压信号,并输出电压信号。设计系统采用的是HX711转换模块进行数据采集和编程,此模块检测到模拟电压通过24位A/D转换芯片把模拟量转换成为数字量,然后通过串行方式来和单片机进行通信,这样就完成数据的采集功能。HX711内部构造如图3.35所示。图3.35HX711内部构造图3.36HX711电路图其仿真情况如图3.37所示:图3.37HX711仿真图因为是软件仿真的缘故,所以我们通过手动的按键来模拟压力传感器增重和减重的过程。初始时,加减键都没有按下,传感器重量显示为0kg,如图3.38所示:图3.38压力传感器初始值当按下增重按钮时,表示有0.603kg的食物被投放,如图3.39所示:图3.39压力传感器投放值当按下减重按钮时,表示食物减少到了0.17kg。如图3.40所示:图3.40压力传感器减重值3.7电机控制电路宠物喂食的过程我们通过4相8拍的步进电机进行模拟控制,当喂食时间到后电机正转表示打开喂食舱门,然后停止等到hx711检测到当前的食物重量大于我们设置的值,电机反转表示关闭喂食,步进电机正反转我们主要是通ULN2003来进行驱动。图3.41电机控制电路步进电机的相关特性:步进电机的步进值,不会因为电压的大小、电流的数值、温度变化、波形变化等限制。步进电机驱动电路ULN2003:步进电动机在工作时需要驱动,因为第一电路中的电流相对较小,并且步进电动机必须在第二单片机发出的指令侧具有控制单元。因此,我们需要使用驱动器芯片进行控制和处理。ULN2003是具有高耐压和高电流的复合晶体管,在5V工作电压条件下可以和CMOS或者是TTL电平特性相兼容,它可以用来直接处理这些逻辑电平信号。我们通过单片机来处理标准逻辑缓冲器来处理数据,通过脉冲的控制可以调整电机的转速和方向。单片机与ULN2003的接口是IN1、IN2、IN3、IN4单片机用来输出电流,然后由OUT1、OUT2、OUT3、OUT4输出到电机的四相,也就是ABCD。驱动器为5V,耐压为50V。图3.42ULN2003管脚连接图ULN2003的主要特性如表3-2所示:温度范围极限值(若无其他规定,Tamb=25℃)表3-2ULN2003主要特征参数名称符号数值单位输入电压VIN30V输入电流IIN25mA功耗PD1W工作环境温度Topr-20to+85℃贮存温度Tstg-55to+150℃其仿真情况如下:当显示模块的示数为0kg时,电机也处于初始位置,如图3.43、3.44所示:图3.43重量初始示数图3.44电机初始角度我们手动调节时间为8点过后,此时判断食物重量为0.009kg小于0.5kg,电机正转模拟投食,如图3.45、3.46所示:图3.45重量少于设置值图3.46电机正转角度我们再次按下压力传感器模块的增重键,使食物重量为0.613kg超过0.5kg,此时电机会反转模拟停止投食,如图3.47、3.48所示:图3.47重量大于设置值图3.48电机反转角度整体仿真图如图3.49所示:图3.49整体仿真图第四章软件系统设计第四章软件系统设计4.1软件主程序架构当硬件端设计调试完成后,就要针对单片机和外设传感器进行软件设计。系统设计首先要构思清楚,首先画一个流程图,按照传感器先后顺序,进行系统设计。首先各个硬件开始初始化,之后各个模块开始工作,实时检测食物重量,时间和温湿度,并按时投放食物,根据食物重量,控制电机的正转和反转。启动的步骤为:温湿度传感器检测当前温度和湿度,压力传感器检测食物重量,按键设置早中晚三次时间段喂食,设置每次喂食的重量。到喂食时间后,单片机驱动ULN2003芯片控制电机正转进行喂食,当压力值大于设定的重量时,电机反转,停止喂食。整个主流程图如图4.1所示:图4.1系统流程图4.2LCD1602显示流程图LCD1602液晶显示屏上电后,首先进行初始化操作,屏幕清零,内部存储清空。之后和单片机进行双向通信,单片机控制显示屏亮度和显示内容,延时一定时间后,将检测到的温湿度、压力和时间显示在液晶显示屏上。在设置投食时间段和投食重量时,根据按键操作,实时变换数值。单片机操控写入引脚写入要显示内容的命令,之后显示屏执行指令,将内容显示出来。LCD1602显示流程图如图4.2所示:图4.2LCD1602初始化流程图4.3温湿度检测流程图开启开关电源后,温湿度传感器开始工作。流程分为第一步启动读取信号指令,第二步获取采集相关温湿度数据,第三步将信息整理发送给单片机。温湿度检测流程图如图4.3所示:图4.3温湿度检测流程图4.4按键子程序本次设计按键电路功能不多,分别是设置早中晚投食时间段和投食重量上限。单片机的按键具有4个引脚,相同的一侧是连接的,4个按键并联在一起,只要将相同的引脚连接一起即可。按键的工作原理就是对低电平信号的检测,在主程序中,循环执行检测,一旦检测到按键低电平信号,单片机产生信号中断,进入按键子程序中。4个按键分别表示加、减、确定、返回,在不同页面表示不同的功能。流程图如4.4所示:图4.4按键流程图第五章系统调试第五章系统调试5.1焊接调试准备好所有的材料和电烙铁,按照设计好的电路板原理图,开始单片机电路板的焊接。首先将插排焊接上去,之后焊接单片机最小系统的晶振和复位电路。确定好LCD1602液晶显示屏位置,将上拉电阻焊接在P0口,之后通过导线连接显示屏。后面分别焊接各个传感器模块,温湿度传感器、压力传感器、步进电机、按键、电源电路。最后用导线将各个模块按照电路图连接起来,确保没有出现短路现象。STC89C52单片机用烧录器将编译好的软件烧录进去,最后插入到插排上。用5V直流电源供电,按下开关,观察LCD1602液晶显示屏是否正常显示,正常显示后,说明显示电路正常,之后观察其他传感器是否正常工作,显示屏上是否有输出,如果正常显示,则一切都没问题,当出现问题时,就要找出具体出问题的部分,逐一解决。图5.1实物焊接图在焊接的过程中,根据电路板原理图的排布,首先确定好LCD1602液晶显示屏的位置,一般将其放置在电路板的上部分。而单片机一般放置在中间位置,方便与其他器件进行电路连接。如图5.1所示,焊接时需要防止出现虚焊的问题,要保证每个焊点都标准规则,尽量不出现电线裸露的情况,防止发生短路。5.2功能调试单片机焊接测试没问题后,进行功能调试,测试软件是否正确。首先给单片机重新上电,这是LCD1602液晶屏首先进行初始化操作,这一步没问题后,接下来测试各个传感器功能。LCD1602显示屏页面分为两行,上面显示测得的温湿度,下面显示测得的时间和食物重量。将温湿度传感器放置于室内,检测几秒后,可以在LCD1602液晶显示屏上看到对应的温度和湿度。在压力传感器上放置东西,可以在显示屏上看到测得的压力值。按下按键,可以在LCD1602液晶显示屏上设置早中晚喂食时间和喂食重量。当来到喂食时间后,步进电机正转模拟投食,再在压力传感器上放一重物,大于设定的投食值,此时步进电机反转表示投食结束。至此,所有功能测试完成。图5.2实物调试图 如图5.2所示,当按压在托盘上时,压力传感器就会感应到重量,显示器正常示数,此时也可以看到温湿度的数据显示,表示压

温馨提示

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

评论

0/150

提交评论