版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的智能宠物供食系统设计目录TOC\o"1-3"\h\u23826摘要 摘要:当前人们的收入是越来越高,生活品质越来越高,慢慢的开始追求起精神生活。越来越多的人开始养起了宠物,但是伴随着养宠物的一时风靡,让很多家庭对养宠物也开始陷入了一种困境,因为大部分家庭都是工薪阶层,没有太多的时间去照顾他们的宠物,一些宠物生产厂家发现了这种情况就生产一种智能宠物供食系统,能够在用户不在家的时候,通过提前设置多种功能饲养宠物,可以最大限度地节省人力物力。本文介绍了一种基于单片机的智能宠物供食系统,其工作原理是以STC895C2单片机为控制核心、用LCD1602来进行显示数据、通过按键来进行人机交互、用温湿度模块来进行识别当前环境的温湿度、压力模块来进行测量每次给宠物喂食的量在通过电机进行送到宠物旁边,本次设计具有体积小、数据处理快等优点,有很强的实用性。关键词:STC89C52单片机;宠物供食;智能引言课题的研究背景及意义自新中国成立以后,中国的经济实力在飞速增强,各个省市都在快速崛起。然而,年纪偏大的人也是越来越多,很多年轻人也是越来越宅,不愿意出门。人们开始想一些不一样的方式来消遣时光,因此宠物这一行业开始红火起来。慢慢的,养宠物的人也是越来越多,大街小巷,家家户户,基本都有人养了宠物,时间慢慢推移,人们开始发现宠物吃饭喝水成了一个问题。当代人生活节奏快的同时,也希望科学的养宠物,不希望宠物过得不好。很多人也就无法满足宠物饲养的最低需求。根据市场上的需求,本次设计就决定设计一个智能宠物供食系统,希望能解决这燃眉之急。此次设计的智能宠物供食系统就是用单片机为基本来设计。单片机通过温度传感装置来测量周围的温度,然后在通过显示器来显示此时的时间与周围环境的温度。提前设置好需要喂食的时间,当时间到了的时候系统就会投放食物让宠物饱餐一顿。这个系统主要是在主人不在家的时候给宠物喂食,满足人们和宠物的需要,有很大的升值空间。这个系统适合家中使用,解决了人们因没有时间而不能给宠物喂食的问题,给人们的生活带来极大的方便。国内外现状及发展趋势在当前,中国的宠物发展产业的研究都是比较落后的,因为我国国民之前的生活水平质量一直不高,直到最近几年随着国民经济的不断好转,国民才开始进行喂养宠物,因为我国对宠物的饲养行业发展是比较落后的,没有形成一个完整的产业链,随着时代的发展,我国对宠物饲养技术也开始进行发展了。不过在外国这一行业已经很成熟了,从宠物的饲养到宠物医疗到宠物日常用品发展的已经十分成熟了,国外大部分家庭都有养宠物的习惯,所以在饲养宠物方面技术发展是十分迅速的,我国是从上个世纪八十年代开进行发表一些宠物饲养的书籍,因为当时国家不够重视以及人们消费不起,所以该项技术一直处于停滞不前的状态,直到二十世纪,外国很多宠物食品和日用品已经出口到我国,我国的宠物产业才能够快速发展,但是相比国外还是落后很多的。设计的基本要求一、硬件模块LCD1602液晶显示当前的时间和周围的温度湿度以及当前食物重量。hx711压力传感器检测当前食物重量。LCD1602液晶显示当前时间。按键设置喂养时间(3个时间段)。按键设置每次投放食物重量。如果时间到了喂养时间,并且食物剩余量小于设置的食物重量电机才会正转,模拟进行投食,重量达到投放标准后,电机反转模拟停止喂食。可以进行手动喂食。二、软件模块主要对程序的编写,使其与各个模块之间相互连接,系统的仿真,并最终能够达到自动喂食的智能系统效果。研究方法模拟法先使用keil软件构造出所需模型,再使用Proteus软件对已经画出来的模拟图进行测试,然后使用单片机来完成软件设计,最后完成本次实验初步设计。并且通过仿真结果可以看出该设计能否成功运行。若仿真正常进行,则实验无误;若仿真不能进行,重新进行实验。实验法这次设计经过各种询问和搜索资料,才确认用STC89C51单片机作为主要的元器件,LCD1602液晶显示屏来显示当前的时间和温湿度和食物的重量,hx711压力传感器作为检测模块来检测当前食物重量,利用电机的正反转来控制食物的投放。从而实现对智能宠物供食系统的随时随地的操控。文献综合研究法通过网上和图书馆搜索有关智能宠物供食系统设计文献,从而全面地、正确地了解掌握普通宠物供食系统设计的方法、实现的功能。对智能宠物供食系统的初步设计了解更加透彻,对比普通宠物供食系统设计和智能宠物供食系统设计找出不同点,突出该系统的特别之处,作为本次研究的对照,更加容易实现此次实验的目的,使智能宠物供食系统的设计更容易成功。宠物供食系统方案概述总体方案概述图2-1为该设计的总体设计方案图,输入模块用用的是电源、温度采集器、压力检测器和按键,输出模块用的是LCD1602显示器和步进电机,实时获取信息从而达到自动喂食的效果,完成整体的的系统设计。图2-1总体设计方案主要模块的选择及方案论证主控制模块的选择单片机的选型是非常重要的。内存大小、工作速度、应用程序范围大小和成本都是要考虑的因素。因此,这里我采用了两个不同的方案进行筛选。方案一:采用STM32单片机来作为本次设计的主要元器件,STM32单片机处理芯片是国外一家名为意法半导体研究出来的,STM32单片机芯片和8051系列的单片机引脚数目都是同样多的,STM32单片机和8051系列单片机的仅有的区别是高低贵贱之分,STM32单片机属于一款高性能产品,性能高功耗低是其主要优点,但是缺点是成本高。方案二:采用STC89C52单片机来作为本次设计的主要元件,STC89C52单片机是在8051单片机上研究出来的,可以拥有8051单片机的所有能力,并且在某些方面比以前的8051单片机速度要快很多,STC89C52具有的优势就是在编程的时候不太麻烦,只需要使用KEIL软件将程序写好通过TTL线烧录到单片机当中就能够使单片机进行正常工作,并且其温度型强和成本低,在工业设计当中被广泛被使用。总的来说,考虑到设计种种方面,使用STC89C52单片机来作为本次主要元件最合适了。液晶显示模块的选择LCD用中文来说是液晶显示器。方案一:LCD12864液晶显示屏来充当本次显示屏,LCD12864LCD是一个带有自己特有文字的显示器,其能够放出汉字、数字、英文、符号等信息,其外部具有16个引脚,有四个引脚是专门用来进行读写和存储数据的,还有八个引脚是和单片机的上拉电阻进行连接的,LCD12864具备的优势就是能够显示字,它的清楚程度也比较高,编写也很简单,并且人机交互性极强,在LCD12864正常工作的时候,只需要很低的电压,但是其缺点就是显示的内容较大,造成了空间浪费,并且液晶的成本也是非常高的。方案二:本次设计使用LCD1602来做显示屏,LCD1602又称为1602型液晶显示器,LCD1602,顾名思义,就是在屏幕上放出字符,每行有多个字符,分两行来进行表示,屏幕的工作原理是通过外部电压改变内部晶体的排列状态,使其改变光的折射方向,在显示屏幕上面显示出亮暗分明的区域来实现显示功能,LCD1602具有的优点是操作简单、编程方便、成本低。其缺点就是不能够进行显示汉字字符。综上所述,本次设计不需要显示屏能够显示太过复杂的东西,LCD1602显示屏的功能能够满足我们的使用需求,所以本次设计就采用LCD1602来当显示模块。按键模块的选择方案一:使用独立按键来充当本次设计的按键模块,独立按键具有信息处理快,交互性较强的优点,其缺点就是需要浪费大量的单片机外部接口,导致单片机的外部元器件没有很多的地方进行连接。方案二:采用矩阵键盘作为输入设备。矩阵键盘将键的两端分别连接到线和线上,然后将每一条线和每一条线连接到单片机上,通过程序算法读取所按下的键。这虽然增加编程算法的难度,但节省了I/O口的使用。综合上述的描述,本次设计用不上过多按键,所以本次设计采用独立按键。温湿度模块的选择方案一:由FC-28与LM393双电压比较器设计出湿度检测模块,其中FC-28是利用具有良好导电性的两个探头所产生的电压差,这中电压差被电压比较器察觉的到后经过改变,输出对应的信号,单片机将这些信号在LCD表现出来,就可达到实时监测土壤或植物根部的温度与湿度。此方法有点在于FC-28探头的导电性强,所造成的误差较小,但缺点是硬件电路设计较为复杂,成本较高。方案二;采用DHT11湿度传感器收集系统周围温度与湿度信息,将收集到的数据进行数模转换传入单片机,再利用LCD1602显示当前的温度与湿度值。由于方案二设计方便,成本非常便宜,所以我们选用方案二。压力传感器模块的选择方案一:本次设计决定使用HX711压力传感器来作压力传感器模块,HX711压力传感器能够配合一个直径为10厘米的托盘来进行工作,其正常的工作电压为5V,能够测量的压力最大的量程为5千克,HX711是一种专业压力的AD转换芯片,其内部包含了24位AD转换,精度高、兼容性强,并且成本低廉。方案二:采用FSR402电阻式薄膜压力传感器在本次设计中感觉重量使用,FSR402电阻能够将重量大小转变为电阻变化,接入到单片机电路当中的时候,单片机能够通过电阻值的变化很容易进行读取数据,FSR402电阻经常被用在智能家居、汽车电子等工作领域,具有精度高、灵敏性高等优点。所以本次实验的压力传感器方案使用方案一。电机模块的选择方案一:采用步进电机来作为驱动,步进电机的工作方式是将电信号转换为脉冲信号进行工作的,系统每给步进电机信号,步进电机就能够转动角度,控制比较十分准确,不会像直流电机那样,没有信号给出时,在惯性的驱动下,还会进行转动,步进电机必须使用它所对应的电源,其非常贵的加个阻止了步进电机的发展。方案二:采用舵机来作为驱动,舵机也是电机的一种,能够适用于一些角度需要变化的场合上面,目前被广泛应用到遥控玩具、飞机、潜艇和机器人当中。舵机能够满足大部分设计的需求,其缺点就是成本较高。根据我们本次设计的难以程度,选择方案一来作为电机驱动电路。宠物供食系统硬件设计系统的硬件设计思路本次设计硬件电路主要由STC89C52单片机、LCD1602显示模块、关键模块、温湿度模块、压力传感器模块、步进电机模块组成,要根据这些模块的各个引脚功能进行分配到单片机的引脚上面,绘制出电路原理图。单片机及其最小系统模块本次设计使用STC89C52单片机作为主控电路,STC89C52具有众多优点,首先就是运算执行速度较快,对程序的烧写极为方便,而且抗干扰能力较强。主控制的电路原理图在图3-1所示。在本设计中,主控电路图采用了最常见的内部时钟方式。单片机中有一个自激振荡器。它是由放大器电路与石英模块构成的。其中在自激振荡器当中,由电容形成振荡电路,如图中的C1与C2。但是在实际使用中,对电容C1与C2没有具体的规定,一般范围在10-30p就可以。如果超出此范围,会对会影响单片机的震荡频率,这样会产生一定的误差,而且会使单片机的稳定性降低。RST口与STC89C52单片机复位连接。RST的复位键控制单片机的复位。复位可重启工作中的机器。当机器卡住时,可以使用RST复位键从而从头开始运行。在单片机出现异常状况时,通过复位,可以避免设备损坏。3-1单片机的最小系统显示模块电路设计LCD1602的中文意思是它可以在LCD上显示16个字符,并且可以显示两行。总共可以显示32个字符。LCD1602外部有16个引脚,但其工作电压非常低。因此,LCD1602显示器在运行时需要对输入和分压进行上拉电阻,由于单片机的正常运行电压为5V,LCD1602的正常运行电压为3V,所以可以将上拉电阻分成电压,使LCD1602显示器正常工作。LCD1602显示器如图3-2所示。‘图3-2LCD1602显示电路按键电路的的设计本次设计的按键电路是直接连接在单片机的I/O上面的,能够通过按键进行快速的人机交互,不会像矩阵键盘那样要进行延时消抖。按键电路如图3-3所示。图3-3按键电路温湿度电路的设计本次设计使用了DHT11温湿度传感器,DHT11传感器是市场上最常见一种工具。此传感器占用的面积非常简单,精度为0.2采用的是单总线的输送方法。这个传感器抗干扰能力非常的强,经常用于高炉测温、机房检测、家庭温度控制等方面适合于很多空间比较小的场合和数字温度检测等领域。这款传感器转换时间为75ns,比传统DS1820速度要快很多。测试结果以数字量串行传输。温湿度传感器模块如图所示:图3-4DHT11温湿度传感器压力传感器电路设计HX711是很常见的压力传感器,能够很准确的得到重量大小,它中间是模数转换器,是一款测量精度非常高的压力传感器,HX711压力传感器内部电路是由稳压电源和时钟震荡电路构成的,由于其内部电路集成度很高,具有信息处理快、抗干扰等优点,并且其封装只有十个外部引脚,和单片机进行相连接的引脚只有两个,其和单片机进行使用的时候编程是十分简单的,并且在工作的时候,只受到单片机的发出的信号来进行控制的,并且其内部具有两个检测通道A和B,所以在检测数据方面是误差是非常小的,因为在A检测的数据会和B检测到的数据进行对比,当A和B检测到的数据不同的时候,HX711会重新进行检测数据并进对比,直到检测的数据对比正确为止,HX711压力传感器如图3-5所示。图3-5HX711压力传感器步进电机电路设计步进电机的步进值,不会因为电压、电流,温度改变、波形变化等限制。步进电机旋转不会像传统仪器那样累积误差值。因为步进电机的误差在理论上是累加的,每次旋转的角度都会累加,但每转的累计误差为0。因此,步距累积误差不会长期累积。ULN2003步进电机如图3-6所示:图3-6ULN2003步进电机系统的软件流程图设计主函数流程图的设计系统的主程序函数是至关重要的,本次设计的系统主函数如图4-1所示,当系统进行开机的时候,HX711压力传感器、步进电机、DHT11模块开始初试化,初始化完成后,LCD1602显示模块开始显示当前的信息,单片机在判断是否有按键按下,来进行判断当前的喂食模式为手动喂食还是自动喂食,系统检测到当前的时间为喂食时间的时候,会自行进行称量实物,并通过步进电机进行喂食。图4-1主程序流程图LCD1602程序流程图的设计LCD1602工作在3.5V~5V的工作电压下,它有一个复位电路,可以移动光标和清除屏幕。显示器的光亮可以用外部连接的电位计来改变。有内部存储器来存储数据。它可以直接与单片机连接,通过单片机程序掌握显示。LCD1602的程序流程图如图4-2所示:图4-2LCD1602显示器流程图温湿度检测流程图设计当单片机系统经引脚向DHT11传送信息时,DHT11检测到单片机传输的信息,DHT11检测传感器会从休眠转换到工作来进行正常工作,当单片机信息输出完成后,DHT11温湿度检测器会发送响应信号来证明已经接收到单片机发出的指令,然后再将检测到数据通过总线进行传输到单片机当中,当DHT11温湿度传感器没完成一一次任务的时候,就会进入待机状态,直到下一个感受信号的来临,DHT11工作,温湿度检测过程图如图4-3所示:图4-3温湿度检测流程图HX711压力流程图设计A/D数据收集子程序一般收集压电传感器的传出的信息。前面二十多个ADSK脉冲收集二十多位串行的二进制信息,后面几个ADSK脉冲选取下一次A/D收集的通道和增益。流程图如图4-4所示:图4-4HX711压力传感器流程图仿真测试根据上面的流程图设计完成后,我们首先要对程序进行测试,看程序在运行当中是否会出现报错,程序实验如图5-1所示,实验结果如图5-2所示。图5-2程序测试图图5-3测试结果图当程序测试无误后,就开始在proteus程序中进行绘制仿真电路图,如图5-4所示:图5-4仿真电路图在仿真电路图绘制完成后,我们将已经写好的信息进行合成后缀名名称为HEX的文件,然后将后缀名名称为HEX的文件收入到仿真当中的芯片中去。如图5-5所示。图5-5烧录HEX文件现在进行实物开机,按下仿真运行按键,我们观察仿真是否正常运行,如图5-6所示。图5-6仿真开机图仿真开机完成后,现在对仿真的按键进行简要介绍。如图5-7所示。1.从上往下数,第一个按键是重量的增加,第二个按键是重量的减小。2.自上而下,第一个是设置,第二个是加,第三个是减,第四个是查看设定时间及喂食重量。3.是步进电机,喂食的时候正方向转,实物重量达标后反方向转。根据上述仿真的测试和功能讲解,本次设计的仿真能够实现我们所要设计的功能。实物测试仿真实验完成后,要对实物进行运行试用,焊接好的实物,如图6-1所示。图6-1实物图通过LCD显示器能够观测到当前实物的运行时间为4分08秒,如图6-2所示。图6-2开机运行图现在开始对实物进行相对应的测试,先进行检测手动模式是否能够进行正常运行,按下第三个按键,打开手动模式进行喂食,发现电机转动,如图6-3所示。图6-3手动模式设置图当压力传感器检测到当前的实物托盘的重量超过设置的阈值时候,电机会进行反转,停止喂食,如图6-4所示。图6-4停止喂食图按动第一个按键,来进行设置食物的重量,如图6-5和6-6所示。图6-4食物重量设置图图6-6食物重量图通过上述测试,这次设计的实物能够满足我们要设计的要求。结论在本次设计当中,我明显的发现了自己当前阶段的不足之处,能够在课堂上面将知识学习的很好,但是却不能够将学到的知识合理的运用到实践环节当中去,在本次的宠物供食系统设计当中,碰到了很多的不好解决的问题,但是都通过自己努力成功的解决掉了麻烦。本设计主要采取STC89C52单片机作为系统的中心,LCD1602显示模块显示系统检测到的数据、按键电路来进行人机交互切换喂食模式、DHT11温湿度传感器来检测当前环境的温湿度、HX711压力传感器来进行测量当前给宠物的喂食量然后再通过步进电机给宠物进行供食,设计出来的仿真电路和实物电路都能够正常的运行,能够达到我们预期的功能。本次毕业设计给我最深刻的印象就是,没有人能够随便的成功,都是需经验来进行积累的,非常感谢母校在我们离校前对我们的一次综合锻炼。参考文献仝兆景,时俊岭,张艳杰,等.基于单片机的智能宠物喂食系统设计[J].软件导刊,2018,17(09):123-125.王洪亮,赵雨梦,刘志坚,等.一种基于单片机的宠物喂食控制电路:,2020.汪晨浩.基于单片机的智能宠物喂食系统设计[J].农村实用技术,2018,No.204(11):40+42.王瑾,袁战军.宠物喂食器控制系统的设计[J].海南大学学报(自然科学版),2020,038(001):20-26.周超峰.基于51单片机的多功能宠物自动喂食器[J].现代商贸工业,2016(5):191-192.陆晟恺.基于物联网技术的智能宠物投喂器的设计与制作[J].机械,2019,v.46(12):79-81+86.朱亚艳,艾信友,冯玉林,等.基于单片机控制的宠物自动喂食器:,2018.靳海英.多功能智能宠物喂养系统的设计开发[J].现代制造技术与装备,2019.U.TietzeCh.Schenk.ElectronicCircuits,Hand-bookforDesignandApplication[M].NewYork:Springer-Verlag,Berlin,2016.RobertT.Paynter.IntroductoryElectronicDevicesandCircuits.6thed[M].PrenticeHallInc.2016.附录附录1电路图附录2元器件清单规格名称标号数量10uF电解电容C1120pF陶瓷电容C2,C32按键按键K3,K4,K5,K6410K电阻R1,R32RT电位器RT1189C51/C52单片机U11hx711传感器U21LCD1602液晶U31SWITCH开关U41POW电源U51电子秤U91CON2排针U101PAIZU排组U111ULN2003电机驱动U121CON5步进电机U181CON4温湿度传感器U34111.0572M晶振Y11附录3源程序代码#include"common.h"#include"lcd1602.h"#include"hx711.h"#include"dht.h"#include"StepMotor.h"#include"eeprom52.h"#include"filter.h"#defineRATIO0.00408unsignedlongidataFullScale;unsignedlongAdVal;unsignedlongidataweight;externunsignedcharU8RH_data_H;externunsignedcharU8T_data_H;sbitset=P3^4;sbitadd=P3^5;sbitdec=P3^6;sbitsnz=P3^7;charshi,fen,miao;charn1_shi=8,n1_fen=0,n1_miao=0,n2_shi=12,n2_fen=0,n2_miao=0,n3_shi=18,n3_fen=0,n3_miao=0;unsignedcharsetN=0,see_nz=0;unsignedintfood_weight=500bitopen_flag=0unsignedcharcheck=0voidwrite_eeprom(){ SectorErase(0x2000); SectorErase(0x2200); byte_write(0x2001,n1_shi); byte_write(0x2002,n1_fen); byte_write(0x2003,n1_miao); byte_write(0x2004,n2_shi); byte_write(0x2005,n2_fen); byte_write(0x2006,n2_miao); byte_write(0x2007,n3_shi); byte_write(0x2008,n3_fen); byte_write(0x2009,n3_miao); byte_write(0x2201,(food_weight>>0)&0xff); byte_write(0x2202,(food_weight>>8)&0xff); byte_write(0x2209,check);}voideeprom_init(){ check=byte_read(0x2209); if(check!=111) { check=111; n1_shi=8; n1_fen=0; n1_miao=0; n2_shi=12; n2_fen=0; n2_miao=0; n3_shi=18; n3_fen=0; n3_miao=0; food_weight=500; write_eeprom(); delay_ms(50); } n1_shi=byte_read(0x2001); n1_fen=byte_read(0x2002); n1_miao=byte_read(0x2003); n2_shi=byte_read(0x2004); n2_fen=byte_read(0x2005); n2_miao=byte_read(0x2006); n3_shi=byte_read(0x2007); n3_fen=byte_read(0x2008); n3_miao=byte_read(0x2009); food_weight=byte_read(0x2202)<<8|byte_read(0x2201);}voidTimer_Init(){ TMOD|=0x01; TL0=0x00; TH0=0x4C; ET0=1; TR0=1; EA=1;}voidget_weight(void) {volatileunsignedlongcur_adc_value=0;cur_adc_value=ReadCount();if(cur_adc_value<=FullScale){weight=0;}else{cur_adc_value=cur_adc_value-FullScale;if(cur_adc_value>55){if(cur_adc_value%100>=55){cur_adc_value=cur_adc_value+(100-(cur_adc_value%100));}else{cur_adc_value=cur_adc_value-(cur_adc_value%100);}}else{cur_adc_value=0;}weight=cur_adc_value*RATIO;}weight=weight_value_filter(weight);}voidTo_Zero(){FullScale=ReadCount();}voiddisplay_weight(){ lcd_write_char(3,0,weight/1000%10+0x30); lcd_write_char(5,0,weight%1000/100+0x30); lcd_write_char(6,0,weight%100/10+0x30); lcd_write_char(7,0,weight%10+0x30);}voiddisplay_time(){if(see_nz==0) { lcd_write_char(0,1,shi/10+0x30); lcd_write_char(1,1,shi%10+0x30); lcd_write_char(3,1,fen/10+0x30); lcd_write_char(4,1,fen%10+0x30); lcd_write_char(6,1,miao/10+0x30); lcd_write_char(7,1,miao%10+0x30); } if(see_nz==1) { lcd_write_char(4,1,n1_shi/10+0x30); lcd_write_char(5,1,n1_shi%10+0x30); lcd_write_char(7,1,n1_fen/10+0x30); lcd_write_char(8,1,n1_fen%10+0x30); lcd_write_char(10,1,n1_miao/10+0x30); lcd_write_char(11,1,n1_miao%10+0x30); } if(see_nz==2) { lcd_write_char(4,1,n2_shi/10+0x30); lcd_write_char(5,1,n2_shi%10+0x30); lcd_write_char(7,1,n2_fen/10+0x30); lcd_write_char(8,1,n2_fen%10+0x30); lcd_write_char(10,1,n2_miao/10+0x30); lcd_write_char(11,1,n2_miao%10+0x30); } if(see_nz==3) { lcd_write_char(4,1,n3_shi/10+0x30); lcd_write_char(5,1,n3_shi%10+0x30); lcd_write_char(7,1,n3_fen/10+0x30); lcd_write_char(8,1,n3_fen%10+0x30); lcd_write_char(10,1,n3_miao/10+0x30); lcd_write_char(11,1,n3_miao%10+0x30); }}voidkeyscan(){ if(set==0) { delay_ms(10); if(set==0) { while(!set); setN++; if(setN>3) { setN=0; TR0=1; } else TR0=0; if(see_nz==0) { switch(setN) {case(0):lcd_write_com(0x0C);break;case(1):lcd_write_com(0x80+0x40+7);lcd_write_com(0x0D);break;case(2):lcd_write_com(0x80+0x40+4);lcd_write_com(0x0D);break;case(3):lcd_write_com(0x80+0x40+1);lcd_write_com(0x0D);break; } } else { switch(setN) { case(0):lcd_write_com(0x0C);break;case(1):lcd_write_com(0x80+0x40+11);lcd_write_com(0x0D);break; case(2):lcd_write_com(0x80+0x40+8);lcd_write_com(0x0D);break;case(3):lcd_write_com(0x80+0x40+5);lcd_write_com(0x0D);break; } } } } if(add==0) { delay_ms(10); if(add==0) { while(!add); if(setN==1) { if(see_nz==0) { miao++; if(miao>=60) miao=0; display_time(); lcd_write_com(0x80+0x40+7); lcd_write_com(0x0D); } if(see_nz==1) { n1_miao++; if(n1_miao>=60) n1_miao=0; display_time(); lcd_write_com(0x80+0x40+11); lcd_write_com(0x0D); } if(see_nz==2) { n2_miao++; if(n2_miao>=60) n2_miao=0; display_time(); lcd_write_com(0x80+0x40+11); lcd_write_com(0x0D); } if(see_nz==3) { n3_miao++; if(n3_miao>=60) n3_miao=0; display_time(); lcd_write_com(0x80+0x40+11); lcd_write_com(0x0D); } } if(setN==2) { if(see_nz==0) { fen++; if(fen>=60) fen=0; display_time(); lcd_write_com(0x80+0x40+4); lcd_write_com(0x0D); } if(see_nz==1) { n1_fen++; if(n1_fen>=60) n1_fen=0; display_time(); lcd_write_com(0x80+0x40+8); lcd_write_com(0x0D); } if(see_nz==2) { n2_fen++; if(n2_fen>=60) n2_fen=0; display_time(); lcd_write_com(0x80+0x40+8); lcd_write_com(0x0D); } if(see_nz==3) { n3_fen++; if(n3_fen>=60) n3_fen=0; display_time(); lcd_write_com(0x80+0x40+8); lcd_write_com(0x0D); } } if(setN==3) { if(see_nz==0) { shi++; if(shi>=24) shi=0; display_time(); lcd_write_com(0x80+0x40+1); lcd_write_com(0x0D); } if(see_nz==1) { n1_shi++; if(n1_shi>=24) n1_shi=0; display_time(); lcd_write_com(0x80+0x40+5); lcd_write_com(0x0D); } if(see_nz==2) { n2_shi++; if(n2_shi>=24) n2_shi=0; display_time(); lcd_write_com(0x80+0x40+5); lcd_write_com(0x0D); } if(see_nz==3) { n3_shi++; if(n3_shi>=24) n3_shi=0; display_time(); lcd_write_com(0x80+0x40+5); lcd_write_com(0x0D); } } if(see_nz==4) { if(food_weight<9999) { food_weight=food_weight+10; } lcd_write_char(5,1,food_weight/1000%10+0x30); lcd_write_char(7,1,food_weight%1000/100+0x30); lcd_write_char(8,1,food_weight%100/10+0x30); lcd_write_char(9,1,food_weight%10+0x30); } write_eeprom(); delay_ms(10); } } if(dec==0) { delay_ms(10); if(dec==0) { while(!dec); if(setN==1) { if(see_nz==0) { miao--; if(miao<0) miao=59; display_time(); lcd_write_com(0x80+0x40+7); lcd_write_com(0x0D); } if(see_nz==1) { n1_miao--; if(n1_miao<0) n1_miao=59; display_time(); lcd_write_com(0x80+0x40+11); lcd_write_com(0x0D); } if(see_nz==2) { n2_miao--; if(n2_miao<0) n2_miao=59; display_time(); lcd_write_com(0x80+0x40+11); lcd_write_com(0x0D); } if(see_nz==3) { n3_miao--; if(n3_miao<0) n3_miao=59; display_time(); lcd_write_com(0x80+0x40+11); lcd_write_com(0x0D); } } if(setN==2) { if(see_nz==0) { fen--; if(fen<0) fen=59; display_time(); lcd_write_com(0x80+0x40+4); lcd_write_com(0x0D); } if(see_nz==1) { n1_fen--; if(n1_fen<0) n1_fen=59; display_time(); lcd_write_com(0x80+0x40+8); lcd_write_com(0x0D); } if(see_nz==2) { n2_fen--; if(n2_fen<0) n2_fen=59; display_time(); lcd_write_com(0x80+0x40+8); lcd_write_com(0x0D); } if(see_nz==3) { n3_fen--; if(n3_fen<0) n3_fen=59; display_time(); lcd_write_com(0x80+0x40+8); lcd_write_com(0x0D); } } if(setN==3) { if(see_nz==0) { shi--; if(shi<0) shi=23; display_time(); lcd_write_com(0x80+0x40+1); lcd_write_com(0x0D); } if(see_nz==1) { n1_shi--; if(n1_shi<0) n1_shi=23; display_time(); lcd_write_com(0x80+0x40+5); lcd_write_com(0x0D); } if(see_nz==2) { n2_shi--; if(n2_shi<0) n2_shi=23; display_time(); lcd_write_com(0x80+0x40+5); lcd_write_com(0x0D); } if(see_nz==3) { n3_shi--; if(n3_shi<0) n3_shi=23; display_time(); lcd_write_com(0x80+0x40+5); lcd_write_com(0x0D); } } if(see_nz==4) { if(food_weight>=10) { food_weight=food_weight-10; } lcd_write_char(5,1,food_weight/1000%10+0x30); lcd_write_char(7,1,food_weight%1000/100+0x30); lcd_write_char(8,1,food_weight%100/10+0x30); lcd_write_char(9,1,food_weight%10+0x30); } if(setN==0&&see_nz==0) { open_flag=1; } write_eeprom(); delay_ms(10); } } if(snz==0&&setN==0) { delay_ms(10); if(snz==0&&setN==0) { while(!snz); see_nz++; if(see_nz>4) { see_nz=0; lcd_write_str(0,0,"W:.kgT:C"); lcd_write_str(0,1,"::H:%"); display_time(); } if(see_nz==1) { lcd_write_str(0,0,"TIME1"); lcd_write_str(0,1,"::"); display_time(); } if(see_nz==2) { lcd_write_str(0,0,"TIME2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年贵州省凯里市高一数学下册期末考试模拟测试卷附答案(满分必刷)
- (2025年)代谢相关脂肪性肝病基层诊疗与管理指南
- 2026年湖北省宜都市高一数学下册期末考试模拟试卷及参考答案(研优卷)
- 2026年湖北省赤壁市高一数学下册期末考试模拟测试卷(名师系列)附答案
- 2026年广东省连州市高一数学下册期末考试模拟考试卷附完整答案【考点梳理】
- 2026年神经系统用药行业发展趋势报告
- 2026年福建省龙海市高一数学下册期末考试模拟考试卷含答案(预热题)
- 2026年饮品店行业技术创新动态报告
- 2026年江苏省太仓市高一数学下册期末考试模拟检测卷及完整答案【典优】
- 2026年吉林省双辽市高一数学下册期末考试模拟试卷带答案(培优B卷)
- 肺栓塞血管外科诊疗体系
- 员工外派出差协议书范本
- DGTJ08-2336-2020 绿道建设技术标准
- 展会保密协议书范本
- 《已上市化学药品药学变更研究技术指导原则(试行)》
- 《电气设备故障诊断》课件
- 工程样板管理制度
- 人教版历史八年级上册全套教学课件
- GA/T 2129-2024法庭科学生物检材中草甘膦和草铵膦检验气相色谱-质谱法
- 建筑工程计量与计价(高职)全套教学课件
- 冀教版小学英语总复习资料
评论
0/150
提交评论