基于单片机的宠物喂食器电路设计_第1页
基于单片机的宠物喂食器电路设计_第2页
基于单片机的宠物喂食器电路设计_第3页
基于单片机的宠物喂食器电路设计_第4页
基于单片机的宠物喂食器电路设计_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1、基于单片机的宠物喂食器电路设计I摘要本设计所研究的是实现一个宠物自动喂食器,即先将宠物饲料放入其中,通过设 定五个喂食时间点,当到达这一时间点后,系统发出喂食信号吸引宠物,自动进行喂 食。本设计主要研究如何设定五个时间点并发出喂食信号。宠物喂食器系统主要包括 单片机控制、自动开关和蜂鸣器提示、倒计时间设定系统。喂食器的喂食过程,通过 键盘设定五个倒计时间,当依次到达这五个时间时,发光二极管发光,蜂鸣器发出响 声,吸引宠物过来进食并自动投放食物。本设计解决了工作时或节假日时由于主人不 在不能对宠物进行喂食,避免了宠物由于饮食不正常所产生的问题。在整个系统中,利用单片机对各个系统进行控制。 倒计时

2、系统时间通过六位七段数码 管显示出来。利用键盘设定五个倒计时间,单片机不停的读取时间,并判断是否到达 喂食时间。开关系统电阻和发光二极管表示 ,发光二级管收到低电平时导通表示开关 打开投放喂食。同时接有蜂鸣器,当到达喂食时间后蜂鸣器发出响声吸引宠物进行喂 食。关键词:智能;定时喂养;单片机 AT89S52;基于单片机的宠物喂食器电路设计2AbstractAbstractThe study desig n is to achieve an automatic pet feeder, pet feed into which will set the five fed point, whe n yo

3、u reach this point in time, automatically feedi ng. The main point of how to set the time with in the pet food put out. Pet feeder system in cludes MCU con trol, automatic switch and music alert system, the remai ning time setti ng system. Feeder feed ing p rocess, the five remai ning time set by th

4、e keyboard, whe n the order reaches the five time, while the timer chi p to send a sig nal relay and music, music p layback chi p, a pi ece of music attracted the p et, the relay switch is closed So that a red light emitti ng diode, said switch delivery of food. This desig n solves the holidays whe

5、n work or not is not the owner of the pet to feed, to avoid the pet food is not no rmal because the p roblems aris ing.Throughout the system, the use of sin gle chip con trol system of each. Coun tdow n to the system time by six out of seve n segme nt digital dis pl ay. Using the keyboard to set the

6、 five remai ning time, microc on troller reads the sto p time and to determ ine whether the feed ing time arrives. Switchi ng system by the relay and the light-emitti ng diode, said switch is closed whe n the relay received high light-emitt ing diode, said switch is running feedi ng. Tip has a music

7、 system, whe n the arrival time after feed ing a p iece of music tips music pl ayback chip to feed p ets.KeyKey words:words: intelligent; automatic feeding; MCU基于单片机的宠物喂食器电路设计47484950中文摘要 英文摘要绪论1. 1设计意义1. 2设计要求设计方案2.2.2.2.按键模块.自动开关模块 蜂鸣器模块. 显示模块.,硬件电路的设计3. 1单片机 .3. 1. 1 AT89S52单片机的简介3. 1. 2 AT89S52的

8、时钟介绍.3. 1. 3单片机中断的介绍.3. 2电源电路 .3. 3时钟电路 .3. 4复位电路 .3. 5 LED数码管显示 .3. 5. 1数码管显示简介.3. 5. 2数码管编码表 .3. 6开关控制 .3. 7单片机的去抖动 .电路的软件部分参考文献附录1附录2附录3致谢.10101111121346基于单片机的宠物喂食器电路设计47484950基于单片机的宠物喂食器电路设计11绪论1.1设计意义单片机自20世纪70年代问世以来,以其极高的性能价格比受到人们的重视和关 注,应用广泛,发展快速。单片机具有体积小、速度快、抗干扰能力强,环境要求不 高,性能可靠和价格低廉等优点,通常在其外

9、部配置外围电路就可构成一完整的控制系 统。由于具有以上优点,在我国,单片机已广泛应用与工业自动化控制、自动检测、 智能仪器仪表、家电电器、电力电子、武器装备、机电一体化设备等各个方面。单片机,亦称单片微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)只读存储器(ROM)输入/输出端口(I/O)等主要计算机功能部件都集成 在一块集成电路芯片上的微型计算机。现在越来越多的家庭都饲养有猫、狗等宠物,但是由于工作等原因,宠物的饮食 规律得不到一定的保障,宠物喂食器可以解决这一问题,宠物自动喂食器可以定时定 量的进食,且设计简单方便,有一定的实用价值。1.2设计要求利用单片机的

10、定时功能设计一个宠物自动喂食盒的电路,要求:可以通过键盘输入至少3个倒计时时间,每一个倒计时时间到后,发出宠物开始喂食信号;扩展功能:按照 年/月 /日/时/分的格式输入宠物进食时间;基于单片机的宠物喂食器电路设计2单片机采用7个触键开关,再一个复位按键。2设计方案分析本题,根据设计要求先确定了本系统的整体设计原理框图如图1:图1系统整体设计原理框图2.1按键模块可实现五个倒计时间依次键入,同时还有两个调时按键,2.2自动开关模块采用三极管和发光二极管近似表示。本系统是基于52单片机的宠物自动喂食的 设计,用电阻和发光二极管代替比较容易,当发光二级管接收到一个低电平时开关闭 合,发光二极管导通

11、发出绿光表示自动投食。2. 3蜂鸣器模块采用一个三极管和一个蜂鸣器,由蜂鸣器发出响声吸引宠物过来进食。当发光二极管亮灯时,蜂鸣器接收到一个低电平,蜂鸣器器发出响声吸引宠物过来进 食。2. 4显示模块选用数码管显示,用普通的数码管显示简单的数字、符号、字母。只需一次显示5个倒计时间,而且每个时间只需显示 6个数字,即年/月/日。按键模块蜂鸣器显示模块自动开关模块基于单片机的宠物喂食器电路设计33.1单片机3.1. 1 AT89S52单片机的简介AT89S52可降至OHz静态逻辑操作,支CPU停止工作,允许RAM、定时器/计数RAM内容被保存,振荡器被冻结,单片硬件电路的设计AT89S52是一种低

12、功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。使用Atmel公司高密度非易失性存储器技术制造, 与工80C51产品指令和引 脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。AT89S52具有以下标准功能: 8k字节Flash, 256字节RAM 32位I/O 口线,看 门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构, 全双工串行口,片内晶振及时钟电路。另外,持2种软件可选择节电模式。空闲模式下,器、串口、中断继续工作。掉电保护方式下, 机一切工作停止,直到下一个中断或硬件复位为止。3.1. 1. 1主要性能与MCS

13、-51单片机产品兼容8K字节在系统可编程Flash存储器1000次擦写周期全静态操作:0Hz33Hz三级加密程序存储器32个可编程I/O 口线三个16位定时器/计数器八个中断源全双工UART串行通道低功耗空闲和掉电模式掉电后中断可唤醒看门狗定时器双数据指针基于单片机的宠物喂食器电路设计4掉电标识符3. 1. 1. 2 AT89S52双列直插式引脚图基于单片机的宠物喂食器电路设计5T2/P1.0T2EX/ P1.1P1.2P1.3P1.4MOSI/P1.5MISO/ P1.6SCK/ P1.7RSTRXD/P3.0TXD/P3.1INT1/ P3.3INT 0P3.2T0/P3.4T1/ P3.

14、5WR/ P3.6RD/P3.7XTAL2XTAL1GNDAT89S52AT89S5214023933843753663573483393210311130122913281427152615251724182319222021VCCP0.0/AD0P 0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7EA/VP PALE/PROGP SENP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P 2.1/A9P2.0/A83.1. 1. 3端口介绍P0 口: PO 口是一个8位漏极开路的双向

15、I/O 口。作为输出口,每位能驱动 8个TTL逻辑电平。对P0端口写“ 1”时,弓I脚用作高阻抗输入。当访问外部程序和数据存储器时,P0 口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电 阻。在flash编程时,P0 口也用来接收指令字节;在程序校验时,输出指令字节。程 序校验时,需要外部上拉电阻。P1 口: P1 口是一个具有内部上拉电阻的8位双向I/O 口,p1输出缓冲器能驱动4 个TTL逻辑电平。对P1端口写“ 1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL )。此外,P1.0和P1.2分别作

16、定时器/计数器2的外部计数输入(P 1.0/T2 )和 时器/计数器2的触发输入(P 1.1/T2EX)。在flash编程和校验时,P1 口接收低8位 地址字节。P2 口: P2 口是一个具有内部上拉电阻的8位双向I/O 口,P2输出缓冲器能驱动4图2.1 AT89S52双列直插式引脚图基于单片机的宠物喂食器电路设计6此时可以作为将输出电流编程和校验时,个TTL逻辑电平。对P2端口写“ 1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL )。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行 MOVX DP

17、TR时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。 在使用8位地址(如MOVXgR)访问外部数据存储器时,P2 口输出P2锁存器的内容。 在flash编程和校验时,P2 口也接收高8位地址字节和一些控制信号。P3 口: P3 口是一个具有内部上拉电阻的 8位双向I/O 口,p2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“ 1”时,内部上拉电阻把端口拉高, 输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,(IIL )。P3 口亦作为AT89S52特殊功能(第二功能)使用。在 flashP3 口也接收一些控制信号。3. 1. 2 AT89S52的

18、时钟介绍单片机的工作过程是:取一条指令、译码、进行操作,再取一条指令、译码、进 行微操作,这样自动的一步一步的由微操作依序完成相应指令规定的功能。各指令的 微操作在时间上由严格的次序,各种微操作的时间次序称作为时序。3. 1. 2. 1 AT89S52的时钟信号产生方式AT89S52单片机的时钟信号通常有两种产生方式:一是内部时钟方式,二是外部时钟方式。内部时钟方式如图2.2所示。在AT89S52单片机内部有一振荡电路,只要在单片 机的XTAL1和 XTAL2引脚外接石英晶体,就构成了自激振荡器并在单片机内部产生时 钟信号。图中电容器C1、C2的作用是稳定频率,快速起振,电容值在 530pF;

19、晶振 CYS的振荡器频率为1.212MHzC1XTAL1XTALEGND图2.2内部时钟方式基于单片机的宠物喂食器电路设计7P1和夕卜部时钟方式是把已有时钟信号引入到单片机内,如图2.3所示。此方式多用于多片AT89S52单片机同时工作。以便于各单片机同步。一般要求外部信号高电平的持 续时间大于20ns,且为频率低于12MHZ勺方波。对于采用CHMO工艺的单片机,外部 时钟主要由XTAL1端引入,而XTAL2端引脚应悬空。NCNCrWLIrWLIGND图2.3外部时钟方式3. 1. 2. 2 AT89S52的时钟信号晶振周期为最小的时序单元。晶振信号经分频器形成两相错开的时钟信号P2.时钟信号

20、的周期也称为S状态,它是晶振周期的两倍。即一个时钟周期包含两个晶 振周期。在每个时钟周期的前半周期,相位 1有效,在每个时钟周期的后半周期,相位2有效。每个时钟周期有两个节拍 P1和P2, CPI以两相时钟P1和P2为基本节拍指 挥各个部件协调工作。晶振信号12分频后形成机器周期。一个晶振周期包含12个晶振周期或6个时钟周期。因此每个机器周期的12个晶振脉冲可以表示为S1P1S2P2, S6P6晶振周期 和机器周期是单片机内计算其他时间值的基本时序单位。如晶振频率为 12HZ则机器周期为1us,指令周期为1-4us。3. 1. 3单片机中断的介绍在设计中用到了外部中断INT0/INT1和定时器

21、TO。它们的中断请求标志分别为IE0,IE1和TF0。这些中断请求标志位分别由特殊功能寄存器 TCO和 TMO的相应位锁存。 在这个设计中,中断允许寄存器是首要介绍的。3. 1. 3. 1中断允许寄存器IE控制CPU对中断源的开放或屏蔽。中断的开放和屏蔽实现2级控制,一个总开关中断控制所有的中断。IE的格式如下:基于单片机的宠物喂食器电路设计83. 2电源电路IEEAESET1EX1ET0EX0位地址AFHACHABHAAHA9HA8H当EA=0时,所有的中断请求被屏蔽,CPU不接受任何请求。当EA=1寸,CP开中断,此时只要五个中断源的中断请求允许为 1,则开中断。3. 1. 3. 2 TM

22、OD工作方式控制寄存器用于选择定时器/计数器的工作模式,字节地址为89H,8位分2组,高4位控制T1,低4位控制T0,其格式如下:D7D6D5D4D3D2D1D0TMODGATEC/TM1M0GATEC/TM1M0F面对工作方式选择位做说明:M1 M0-工作方式选择位,M1 M共有4种编码,分别对应4种工作方式。如表1:表1工作方式选择M1M0工作方式00方式0,为13位定时器/计数器01方式1,为16位定时器/计数器10方式2, 8位的常数自动重新装载的定时器/计数器11方式3,仅适应于T0,T0分为两个8位的计数器,停止计数中断的触发方式:电平触发方式和下降沿触发方式。基于单片机的宠物喂食

23、器电路设计9单片机电源(220V转5V)设计电源电路采用LM7805集成稳压器作为稳压器件,用 典型接法,220V电源整流滤波后送入LM7805稳压,在输出端接一个470U和0.1U电 容进一步滤除纹波,得到5V稳压电源。电路如图2.4所示图2.4电源电路图单片机工作的时间基准,决定单片机工作速度。时钟电路就是振荡电路,向单片机提供一个正弦波信号作为基准,决定单片机的执行速度。AT89S51单片机时钟频率范围:0 33MHz本电路选择11.0592MHZ电路如图2.5所示。基于单片机的宠物喂食器电路设计10图2.5时钟电路图所以,3. 4复位电路单片机在启动时都需要复位,以使CPU及系统各部件

24、处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持 2个机器周期(24个振荡周期)以上,则CPU就可以响应并将 系统复位。单片机系统的复位方式有:手动按钮复位和上电复位,这里选用手动按钮复位。手动按钮复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源 VCC之间接一个按钮。当人为按下按钮时,则VCC的+5V电平就会直接加到 RST端。由于人的动作再快也会使按钮保持接通达数十毫秒, 完全能够满足复位的时间要求。复位电路工作原理如图所示,

25、VCC上电时,C充电,在10K电阻上出现电压,使 得单片机复位;几个毫秒后,C充满,10K电阻上电流降为0,电压也为0,使得单片 机进入工作状态。工作期间,按下 S, C放电。S松手,C又充电,在10K电阻上出现 电压,使得单片机复位。几个毫秒后,单片机进入工作状态。基于单片机的宠物喂食器电路设计11图2.6复位电路图3. 5 LED数码管显示 3. 5. 1数码管显示简介数码管LED串口显示模块通常有两种显示方法:动态显示和静态显示。动态显示:连接方法是将每个二极管的同名端连在一起,而每个显示器的 公共极COM各自独立的接受I/O线控制,CPU向字段输出端口输出字型码,所有显示器接受到 相同

26、的字符,而要使用哪个显示器要取决于他们的COM勺电平,而这段是由I/O端控制的,由单片机输出。动态扫描时连续的动态扫描,只是肉眼暂留现象,乃发光二极 管的余辉效应,给人的感觉是一组稳定的显示数据。静态显示:静态显示显示效果好,但是功耗大,但不占用端口,只需两个串口线 输出,变成较为简单。而且采用静态显示需要的驱动器件多,硬件成本相对更高。比较以上两种方案,方案一硬件简单程序复杂,方案二硬件复杂程序简单,考虑 到实惠和对自己的编程锻炼,选择方案动态显示。动态扫描方法是用其接口电路把所有显示器的 8个笔画字段(a g和dp)同名端 连在一起,而每个显示器的公共极 COM各自独立的接受I/O线控制。

27、CPU向字段输出 端口输出字型码时,所有显示器接受到相同的字型码,但究竟使用哪个显示,则取决 于公共极COM端,而这一端是由/WR和/RD控制的,由单片机决定何时显示哪一位。 动 态扫描用分时的方法去轮流控制各个显示的CO鵬,时各个显示器轮流亮。在轮流点亮扫描过程中,每为显示器的点亮时间极为短暂,但由于人的视觉暂留现象及发光二 极管的于辉效应,给人的印象就时一组稳定的显示数据。显示部分电路图:基于单片机的宠物喂食器电路设计12+5V图2.7数码管显示原理卜六进制数h gfedcba显示代码0 0 110 x3f0 1110 1100 11010 111 111 101 111 111 110

28、x060 x5b0 x4f0 x660 x6d0 x7d0 x070 x7f0 x6f0 x803. 5. 2数码管编码表7段数码管可以包括小数点的09的数字和部分的英文字母,为了获得不同的字符,数码管各段所加的电平也不同,编码也不一样。共阴极数码管的字型,字段和编码的关系如下表2:表2数码管编码表10 0 0S S f f CNDCND a a 1)1)1010 3 3 7 7 6 6e e d d GWDGWD c c g g也2 2 3 3 4 4 O OOO基于单片机的宠物喂食器电路设计133. 6开关控制本电路要实现可设定5个倒计时设计要求,需要1个复位键,一个“+”和一个“-” 按

29、键,另外再加5个时间设定按键用于实现倒计时间设定,按键时可直接输出相应倒 计时间。3. 7单片机的去抖动单片机去抖动可以用软件和硬件两种方法。硬件方法就是加去抖动电路,例如在 按键两端并联10uF的电容或通过RS触发器连接按键,硬件去抖动从根本上避免抖动; 软件方法则采用时间延时以躲过抖动,待信号稳定之后再进行键扫描。对于系统软件 量不大的场合,采用软件去除抖动既节约硬件开销又很实用且有效。所以本设计采用 软件去抖动。基于单片机的宠物喂食器电路设计144电路的软件部分单片的使用除了硬件,同样也要软件的使用,我们写汇编程序编程CPU可执行的机器码有两种方法,一种是手工汇编,一种是机器汇编。机器汇

30、编通过汇编软件变为 机器码,用于MSC-51单片机的汇编软件有早期的 A51,随着单片机开发技术的不断发 展,从使用普通汇编语言到高级语言的不断发展,Keil是目前最流行开发 MCS-51系列单片机的软件。Keil c51汇编,PLM语言和C语言的程序设计,界面友好。Keil是 美国keilsoftware 公司出品的52系列兼容单片机c语言开发系统。用过汇编语言后 再使用C语言来开发,体会更加深刻。程序框图:基于单片机的宠物喂食器电路设计15开始系统初始化倒计时完?结束图2.8程序框图源程序如下:#in cludevreg51.h#in clude#defi ne uchar un sig

31、ned char#defi ne uint un sig ned intsbit b1= PMO;sbit b2=PIM;Y1号键按下?Y2号键按下?Y3号键按下?Y4号键按下?Y5号键按下?Y1号盒倒计 时时间设定4号盒倒计 时时间设定5号盒倒计 时时间设定2号盒倒计 时时间设定3号盒倒计 时时间设定开始倒计时基于单片机的宠物喂食器电路设计16sbit b3=P1A2;基于单片机的宠物喂食器电路设计17共阴极0f数码管编码0 x3f,0 x06,0 x5b,0 x4f,/030 x66,0 x6d,0 x7d,0 x07,/470 x7f,0 x6f,0 x77,0 x7c,/8b0 x39

32、,0 x5e,0 x79,0 x71/cfsbit b4=PIA3;sbit b5=P1M;sbit bell=P2A6;sbit s1= Pao;sbit s2=Pai;sbit s3=P3A2;sbit s4=P 3八3;sbit s5=P 3M;sbit add=卩3八6;sbit dec=卩3八7;char sec on d1=1,mi nu te1=1,hour1=1,sec on d2=2,mi nu te2=2,hour2=2,sec on d3=3,mi nu te3 =3,hour3=3;char sec on d4=4 ,minu te4=4,hour4=4,sec on

33、d5=5, minu te5=5,hour5=5;uchar g;un sig ned char code table=/;void delay( uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void delay1( uint z)for(;z0;z-);基于单片机的宠物喂食器电路设计18void dis pl ay(uchar a,uchar b,uchar c)uchar i,j;i=a/10;j=a%10;P2=0 xfb;P0=tablei;delay(2);P2=0 xf7;P0=tablej;delay(2);i=b/10;j=b%

34、10;P2=0 xef;P0=tablei;delay(2);P2=0 xdf;P0=tablej;delay(2);i=c/10;j=c%10;P2=0 xfe;P0=tablei;delay(2);P2=0 xfd;P0=tablej;delay(2);基于单片机的宠物喂食器电路设计19EA=1;/开总中断ET0=1;/本例中使用的是定时器T0,如果用T1。则为ET1=0,TMOD=0 x。TMOD=0 x01;/定时器工作方式1if(flag) /判断是加一还是减一一void delay2( uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-)di

35、s play(0,0,0);void in it()TH0=(65535-50000)/256; /因为晶振用的是 11.0592MHZ在取初值时,大概定义为一个中断为50MSTL0=(65535-50000)%256;TR0=1;P1=0 xff;void turn _val1(char n ewval,uchar flag,uchar sl num)n ewval+;switch(s Inum)case 1:if( newval23) n ewval=0;dis play(hour1, minu te1,sec on d1);hour仁 newval;break;case 2:if( ne

36、wval59) n ewval=O;dis play(hour1, minu te1,sec on d1);基于单片机的宠物喂食器电路设计20mi nute仁 newval;break;case 3:if( newval59) n ewval=0;dis play(hour1, minu te1,sec on d1);sec on d1= newval;break;defaultbreak;elsen ewval-;switch(s Inum)case 1:if( newvalv0) n ewval=23;dis play(hour1, minu te1,sec on d1);hour仁 ne

37、wval;break;case 2:if( newvalv0) n ewval=59;dis play(hour1, minu te1,sec on d1);mi nute仁 newval;break;case 3:if( newvalv0) n ewval=59;dis play(hour1, minu te1,sec on d1);sec on d1= newval;break;default:break;void key_sca n1(void)uchar slnum=0;基于单片机的宠物喂食器电路设计21if(s1=O)delay(5);if(s1=O)while(!s1);dis p

38、l ay(hour1, minu te1,sec on d1);sinu m+;TR0=0;while(1)dis play(hour1, minu te1,sec on d1);if(s1=0) delay(5);if(s1=0) while(!s1);sInu m+;if(sl num=1)if(add=0)基于单片机的宠物喂食器电路设计2Odelay(3);if(add=O)while(!add);tum_val1(hour1,1,1);if(dec=O)delay(3);if(dec=O)while(!dec);turn_val1(hour1,0,1);if(slnum=2)if(ad

39、d=O)delay(3);if(add=O)while(!add);turn_val1(mi nute1,1,2);if(dec=O)基于单片机的宠物喂食器电路设计2O基于单片机的宠物喂食器电路设计21delay(3);if(dec=O)while(!dec);turn_val1(mi nute1,0,2);if(slnum=3)if(add=O)delay(3);if(add=O)while(!add);turn_val1(seco nd1,1,3);if(dec=O)delay(3);if(dec=O)while(!dec);turn_val1(seco nd1,O,3);/写入日寄存器i

40、f(slnum=4)基于单片机的宠物喂食器电路设计22基于单片机的宠物喂食器电路设计23n ewval+;switch(s Inum)case 1:if( newval23) n ewval=0;dis play(hour2 ,minu te2,sec on d2);hour2=n ewval;break;case 2:if( newval59) n ewval=0;dis play(hour2 ,minu te2,sec on d2);minu te2=n ewval;break;case 3:if( newval59) n ewval=0;dis play(hour2 ,minu te2,

41、sec on d2);sec ond2=n ewval;break;defaultbreak;slnum=O;break;void turn _val2(char n ewval,uchar flag,uchar sinum)if(flag) /判断是加一还是减一一基于单片机的宠物喂食器电路设计24elsen ewval-;switch(s Inum)case 1:if( newvalvO) n ewval=23;dis play(hour2 ,minu te2,sec on d2);hour2=n ewval;break;case 2:if( newvalv0) n ewval=59;dis

42、 play(hour2 ,minu te2,sec on d2);minu te2=n ewval;break;case 3:if( newvalv0) n ewval=59;dis play(hour2 ,minu te2,sec on d2);sec ond2=n ewval;break;defaultbreak;void key_sca n2(void)uchar slnum=0;if(s2=0)delay(5);if(s2=0)基于单片机的宠物喂食器电路设计25while(!s2);dis pl ay(hour2 ,minu te2,sec on d2);sinu m+;TR0=0;w

43、hile(1) dis play(hour2 ,minu te2,sec on d2);if(s2=0)delay(5);if(s2=0)while(!s2);sInu m+;if(sl num=1)if(add=0)delay(3);if(add=0)while(!add);turn_val2(hour2,1,1);if(dec=0)delay(3);if(dec=0)while(!dec);基于单片机的宠物喂食器电路设计26tum_val2(hour2,0,1);if(slnum=2)if(add=0)delay(3);if(add=0)while(!add);turn_val2(mi n

44、ute2,1,2);if(dec=0)delay(3);if(dec=0)while(!dec);turn_val2(mi nute2,0,2);if(slnum=3)if(add=0)delay(3);基于单片机的宠物喂食器电路设计27写入日寄存器if(flag) /判断是加一还是减一一if(add=O)while(!add);tum_val2(sec on d2,1,3);if(dec=O)delay(3);if(dec=O)while(!dec);turn_val2(seco nd2,0,3);/if(slnum=4) slnum=0;break;void turn _val3(char

45、 n ewval,uchar flag,uchar sinum)n ewval+;基于单片机的宠物喂食器电路设计28switch(s Inum)case 1:if( newval23) n ewval=O;dis play(hour3, minu te3,sec on d3);hour3=n ewval;break;case 2:if( newval59) n ewval=0;dis play(hour3, minu te3,sec on d3);minu te3=n ewval;break;case 3:if( newval59) n ewval=0;dis play(hour3, minu

46、 te3,sec on d3);sec ond3=n ewval;break;defaultbreak;elsen ewval-;switch(s Inum)case 1:if( newvalv0) n ewval=23;dis play(hour3, minu te3,sec on d3);hour3=n ewval;break;case 2:if( newvalv0) n ewval=59;dis play(hour3, minu te3,sec on d3);minu te3=n ewval;break;基于单片机的宠物喂食器电路设计29case 3:if( newvalv0) n ew

47、val=59;dis play(hour3, minu te3,sec on d3);sec ond3=n ewval;break;defaultbreak;void key_sca n3(void) uchar slnum=0;if(s3=0) delay(5);if(s3=0)while(!s3);dis pl ay(hour3, minu te3,sec on d3);sinu m+;TR0=0;while(1) dis play(hour3, minu te3,sec on d3);if(s3=0)delay(5);if(s3=0)while(!s3);sInu m+;if(sl nu

48、m=1)if(add=O)delay(3);基于单片机的宠物喂食器电路设计30if(add=O)while(!add);tum_val3(hour3,1,1);if(dec=O)delay(3);if(dec=O)while(!dec);turn_val3(hour3,0,1);if(slnum=2)if(add=O)delay(3);if(add=O)while(!add);基于单片机的宠物喂食器电路设计3O写入日寄存器tum_val3(mi nu te3,1,2);if(dec=O)delay(3);if(dec=O)while(!dec);turn_val3(mi nute3,0,2);

49、if(slnum=3)if(add=O)delay(3);if(add=O)while(!add);turn_val3(sec on d3,1,3);if(dec=O)delay(3);if(dec=O)while(!dec);turn_val3(seco nd3,O,3);/基于单片机的宠物喂食器电路设计31if(flag) /判断是加一还是减一一if(slnum=4) slnum=O;break;void turn _val4(char n ewval,uchar flag,uchar sinum)n ewval+;switch(s Inum)case 1:if( newval23) n

50、ewval=0;dis play(hour4,mi nu te4,seco nd4);hour4=n ewval;break;case 2:if( newval59) n ewval=0;dis play(hour4,mi nu te4,seco nd4);minu te4=n ewval;break;case 3:if( newval59) n ewval=0;dis play(hour4,mi nu te4,seco nd4);sec ond4=n ewval;break;defaultbreak;else基于单片机的宠物喂食器电路设计32n ewval-;switch(s Inum)ca

51、se 1:if( newvalvO) n ewval=23;dis play(hour4,mi nu te4,seco nd4);hour4=n ewval;break;case 2:if( newvalv0) n ewval=59;dis play(hour4,mi nu te4,seco nd4);mi nu te4=n ewval;break;case 3:if( newvalv0) n ewval=59;dis play(hour4,mi nu te4,seco nd4);sec ond4=n ewval;break;default:break;void key_sca n4( voi

52、d) uchar slnum=0;if(s4=0)delay(5);if(s4=0)while(!s4);dis play(hour4,mi nu te4,sec on d4);sinu m+;TR0=0;基于单片机的宠物喂食器电路设计33while(1) dis play(hour4,mi nu te4,sec on d4);if(s4=0)delay(5);if(s4=0)while(!s4);sInu m+;if(sl num=1)if(add=0)delay(3);if(add=0)while(!add);turn_val4(hour4,1,1);if(dec=O)delay(3);i

53、f(dec=O)while(!dec);tum_val4(hour4,0,1);if(slnum=2)基于单片机的宠物喂食器电路设计34if(add=O)delay(3);if(add=O)while(!add);turn_val4(mi nute4,1,2);if(dec=O)delay(3);if(dec=O)while(!dec);turn_val4(mi nute4,O,2);基于单片机的宠物喂食器电路设计35写入日寄存器if(slnum=3)if(add=O)delay(3);if(add=O)while(!add);turn_val4(sec on d4,1,3);if(dec=O

54、)delay(3);if(dec=O)while(!dec);tum_val4(seco nd4,0,3);/if(slnum=4)slnum=0;break;基于单片机的宠物喂食器电路设计36if(flag) /判断是加一还是减一一void tum_val5(char n ewval,uchar flag,uchar sinum)n ewval+;switch(s Inum)case 1:if( newval23) n ewval=0;dis play(hour5, minu te5,sec on d5);hour5=n ewval;break;case 2:if( newval59) n

55、ewval=0;dis play(hour5, minu te5,sec on d5);minu te5=n ewval;break;case 3:if( newval59) n ewval=0;dis play(hour5, minu te5,sec on d5);sec ond5=n ewval;break;defaultbreak;elsen ewval-;switch(s Inum)case 1:if( newvalvO) n ewval=23;dis play(hour5, minu te5,sec on d5);hour5=n ewval;break;基于单片机的宠物喂食器电路设计

56、37case 2:if( newvalvO) n ewval=59;dis play(hour5, minu te5,sec on d5);minu te5=n ewval;break;case 3:if( newvalv0) n ewval=59;dis play(hour5, minu te5,sec on d5);sec ond5=n ewval;break;defaultbreak;void key_sca n5(void) uchar slnum=0;if(s5=0) delay(5);if(s5=0)while(!s5);dis pl ay(hour5, minu te5,sec

57、on d5);sinu m+;TR0=0;while(1) dis play(hour5, minu te5,sec on d5);if(s5=0)delay(5);if(s5=0)while(!s5);sinu m+;基于单片机的宠物喂食器电路设计38if(sl num=1)if(add=0)delay(3);if(add=0)while(!add);tum_val5(hour5,1,1);if(dec=0)delay(3);if(dec=0)while(!dec);turn_val5(hour5,0,1);if(slnum=2)if(add=0)delay(3);if(add=O)whil

58、e(!add);turn_val5(mi nu te5,1,2);基于单片机的宠物喂食器电路设计39if(dec=O)delay(3);if(dec=O)while(!dec);turn_val5(mi nute5,0,2);if(slnum=3)if(add=O)delay(3);if(add=O)while(!add);turn _val5(sec on d5,1,3);if(dec=O)基于单片机的宠物喂食器电路设计40写入日寄存器delay(3);if(dec=O)while(!dec);turn_val5(seco nd5,0,3);/if(slnum=4)slnum=O;break

59、;void xia n1()if(g=20)g=0;sec on d1-;if(seco nd1v0)second1=59;mi nu te1-;if(mi nu te10)基于单片机的宠物喂食器电路设计41minu te1=59;hourl-;if(hourlvO) hour1=0;dis play(hour1, minu te1,sec on d1);if(seco nd1=0&min ute1=0&hour1=0)dis pl ay(0,0,0);TR0=0;b1=0;bell=0;delay2(5);b1=1;bell=1; void xia n2() TR0=1;if(g=20)g=

60、0;sec on d2-;if(seco nd2v0)second2=59;minu te2-;if(mi nu te20)minu te2=59;hour2-;if(hour20) hour2=0;if(seco nd2=0&min ute2=0&hour2=0)dis pl ay(0,0,0);TR0=0;b2=0;bell=0;delay2(5);b2=1;bell=1;dis play(hour2 ,minu te2,sec on d2);基于单片机的宠物喂食器电路设计42void xia n3() TR0=1;if(g=20)g=0;sec on d3-;if(seco nd3v0)

温馨提示

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

评论

0/150

提交评论