题目宠物定时喂食盒

上传人:Sc****h 文档编号:130158324 上传时间:2022-08-04 格式:DOC 页数:50 大小:498.01KB
返回 下载 相关 举报
题目宠物定时喂食盒_第1页
第1页 / 共50页
题目宠物定时喂食盒_第2页
第2页 / 共50页
题目宠物定时喂食盒_第3页
第3页 / 共50页
点击查看更多>>
资源描述
题目: 宠物定时喂食盒Title: Pet feeding box timer院系名称:物理与通信电子学院学生姓名: 胡冰 学生学号: 0708060025 专 业: 电子信息工程 指导老师: 王君 完成时间: 2011年4月 II摘 要本设计所研究的是实现一个宠物自动喂食器,即将宠物饲料放入其中,设定五个喂食点,当到达这一时间点后自动进行喂食。主要研究如何在设定时间点内将宠物饲料投放出来。宠物喂食器系统主要包括单片机控制、自动开关和音乐提示系统、倒计时间设定系统。喂食器的喂食过程,通过键盘设定五个倒计时间,当依次到达这五个时间时,定时器同时向继电器和音乐芯片发送信号,音乐芯片播放一段音乐将宠物吸引过来,继电器开关闭合使发光二极管导通发出红光表示开关打开投送食物。本设计解决了工作时或节假日时由于主人不在不能对宠物进行喂食,避免了宠物由于饮食不正常所产生的问题。在整个系统中,利用单片机对各个系统进行控制。 倒计时系统时间通过六位七段数码管显示出来。利用键盘设定五个倒计时间,单片机不停的读取时间,并判断是否到达喂食时间。开关系统由继电器和发光二极管表示 ,继电器收到高电平时开关闭合发光二极管导通表示开关打开投放喂食。同时设有音乐提示系统,当到达喂食时间后音乐芯片播放一段音乐提示宠物进行喂食。关键词:自动喂养;智能;单片机控制 AbstractThe study design is to achieve an automatic pet feeder, pet feed into which will set the five fed point, when you reach this point in time, automatically feeding. The main point of how to set the time within the pet food put out. Pet feeder system includes MCU control, automatic switch and music alert system, the remaining time setting system. Feeder feeding process, the five remaining time set by the keyboard, when the order reaches the five time, while the timer chip to send a signal relay and music, music playback chip, a piece of music attracted the pet, the relay switch is closed So that a red light emitting diode, said switch delivery of food. This design solves the holidays when work or not is not the owner of the pet to feed, to avoid the pet food is not normal because the problems arising. Throughout the system, the use of single chip control system of each. Countdown to the system time by six out of seven segment digital display. Using the keyboard to set the five remaining time, microcontroller reads the stop time and to determine whether the feeding time arrives. Switching system by the relay and the light-emitting diode, said switch is closed when the relay received high light-emitting diode, said switch is running feeding. Tip has a music system, when the arrival time after feeding a piece of music tips music playback chip to feed pets.Keywords: automatic feeding; intelligent; MCU显示对应的拉丁字符的拼音字典 - 查看字典详细内容45目 录摘 要IABSTRACTII1 引言12 设计要求13 方案论证13.1 自动开关模块23.2 按键控制模块23.3 显示模块34 设计原理34.1单片机模块34.2 自动开关模块64.2.1 自动开关简介64.2.2 继电器64.3 音乐提示模块94.4 LED数码管显示模块104.4.1 数码管显示简介104.4.2 数码管编码表114.5 按键模块125 软件部分125.1 开发工具介绍135.2 程序框图:146 仿真结果数据分析147 结束语15参考文献16附录一:电路图16附录二:源程序171 引言 现在很多家庭都饲养有猫、狗等宠物,为了保证宠物的身体健康,喂食时需注意定时定量,但很多人由于工作等原因无法做到,宠物自动喂食盒可以定时定量的进食,且设计简单方便,有一定的实用价值。2 设计要求利用单片机的定时功能设计一个有38个格子的宠物自动喂食盒,要求:可以通过键盘输入至少3个倒计时时间,每一个倒计时时间到后,打开对应的宠物食物储存格; 打开食物储存格时,自动播放一段音乐召唤宠物进食。扩展功能: 按照 年/月/日/时/分 的格式输入宠物进食时间; 可录制主人的话语在喂食时自动播放吸引宠物进食。3 方案论证 分析本题,根据设计要求先确定了本系统的整体设计原理框图如图1: 图1 原理框图3.1 自动开关模块方案一:采用电磁阀开关控制食物投送。当到达倒计时点时,定时器向电磁阀开关发出信号,电磁阀中线圈有了电流产生磁场,将开关拉起投送食物,断电后失去磁性阀门关闭,由单片机控制其开启和闭合。方案二:采用继电器和发光二极管近似表示。 本系统是基于51单片机的宠物自动喂食的设计,由于采用电磁阀开关在硬件制作过程比较复杂,而近似用继电器和发光二极管代替比较容易,当继电器接收到一个高电平时开关闭合,发光二极管导通发出红光表示自动投食,所以我采用方案二 。3.2 按键控制模块方案一:采用7个触键开关, 可实现五个倒计时间依次键入。方案二:采用的4*4的矩阵键盘,用于控制计时器的启停,倒计时时设定,其中有些键是复合键功能键,即一个键有多个功能,另外还有些键单纯的数字键。由于本宠物自动喂食实验采用 7个触键开关在硬件焊接上较容易,价格也较后者实惠,所以采用方案一。 3.3 显示模块方案一:选用数码管显示,用普通的数码管显示简单的数字、符号、字母。方案二:选用液晶显示,显示的内容更加的丰富。此系统 需依次显示5个倒计时间 ,每个时间需显示出六个数字,由于数码管更加的实惠,故我选择了方案一。4 设计原理 本系统选用的模块包括:单片机系统,倒计时设定模块,按键模块,自动开关模块,音乐提示模块,具体的电路图参照附录二。4.1 单片机模块单片机的选择采用易购的AT89S52系列,这种单片机具有足够的空余硬件资源,以实现其它的扩展功能,由于计时器要求计时精确,所以采用24MHZ的晶振,提高计时的精确性。AT89S52是低功耗、高性能的CMOS 8位单片机。片内带有8KB的Flash存储器,且允许在系统内改写或用编程器编程。另外,AT89S52的指令系统和引脚与80C52完全兼容,所以近几年AT89S52单片机应用极为广泛。它与8051单片机的不同之处:1) 有CHMOS工艺的节能运行方式;2) 增加了一个16位的定时器T2,共有3个16位定时/计数器;3) 6个中断源;4) 片内RAM由128 B增加为256 B;5) ROM类型属于Flash存储器;6) 工作主时钟频率在0 HZ 24MHZ之间;7) 一个全双工串行口;8) 有低功耗空闲状态和低功耗停机状态。AT89S52的定时/计数器AT89S52单片机有3个16位的定时/计数器,与8051相比多一个定时/计数器T2。定时/计数器T0和T1与8051的T0、T1完全相同,T2与8052的T2完全相同。定时/计数器T2是一个功能较强的16位定时/计数器,它具有自动重装载与捕获能力。在特殊功能寄存器组中有5个与T2有关的寄存器:控制寄存器T2CON、捕获寄存器RCAP2H和RCAP2L、定时寄存器高低字节TH2和TL2。由于增加了定时/计数器T2,从而使中断源从5个增加到6个,增加的T2中断源由T2溢出标志TF2和T2外部中断标志EXF2逻辑产生。CPU响应中断请求后,需要由软件判别是TF2还是EXF2产生的中断,并由软件将引起该中断的标志清零,而TF0和TF1是由硬件清零的,这是它们的不同之处。单片机的复位电路1) 上电复位电路上电复位电路的复位是利用电容器充电实现的,当加电时,电容C充电,电路有电流流过,构成回路,在电阻R上产生压降,RESET引脚为高电平;当电容C充满电后,电路相当于断开,RESET的电位与地相同,复位结束。复位的时间与充电的时间有关,充电时间越长复位时间越长,增大电容或增大电阻都可以增加复位时间。2) 开关复位电路这种复位电路具有上电复位又具有外部开关复位的功能。它的上电复位功能与跟上面的一样,但它还可以通过按键实现复位,按下键后,通过R1和R2形成回路,使RESET端产生高电平。按键的时间决定了复位的时间。无论是哪一种复位电路都要保证在RESET引脚上提供10ms以上的稳定的高电平。CR+5VRSTRST+5VCR1R2 图2(a)上电复位电路 图2(b)开关复位电路单片机的时钟电路单片机时钟信号可以由两种方式产生:内部时钟方式和外部时钟方式。外部时钟方式适合于多块芯片同时工作,便于同步,本设计只有一片单片机,所以选用内部时针方式。晶振选用24MHZ的晶振,是为了提高计时的精确性。为了减少寄生电容,更好地保证振荡器稳定可靠的工作,晶振和电容应尽可能安装得与单片机芯片靠近。两个电容可以帮助起振,典型值为30pF,调节它们可以达到微调时钟频率的作用。晶振起振后,单片机内部的振荡电路便自激振荡,此时在XTAL2线上输出一个3V左右的正弦波,我们可以用示波器观察。计时器T2工作在定时模式时,计数脉冲选用内部时钟脉冲,每个机器周期使计数器的值增1,每个机器周期等于12个振荡周期,故定时/计数器的计数脉冲周期时间是由单片机主脉冲经12分频而来。 综上所述,单片机采用AT89S52,选用24MHZ的晶振用以提高计时的精确性,单片机复位电路采用开关复位电路,用具有自动重装载的功能T2计时器来完成计时,它的中断标志位是靠软件来复位的 AT89S52的管脚图如图2: 图3 89CS52管脚图4.2 自动开关模块 4.2.1 自动开关简介根据关资料,我们使用的自动开关有下列两种方案: 方案一:采用电磁阀开关控制食物投送。当到达倒计时点时,定时器向电磁阀开关发出信号,电磁阀中线圈有了电流产生磁场,将开关拉起投送食物,断电后失去磁性阀门关闭,由单片机控制其开启和闭合。方案二:采用继电器和发光二极管近似表示。4.2.2 继电器继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。图4继电器的继电特性继电器的输入信号x从零连续增加达到衔铁开始吸合时的动作值xx,继电器的输出信号立刻从y=0跳跃到y=ym,即常开触点从断到通。一旦触点闭合,输入量x继续增大,输出信号y将不再起变化。当输入量x从某一大于xx值下降到xf,继电器开始释放,常开触点断开。我们把继电器的这种特性叫做继电特性,也叫继电器的输入-输出特性。 释放值xf与动作值xx的比值叫做反馈系数,即Kf= xf /xx 触点上输出的控制功率Pc与线圈吸收的最小功率P0之比叫做继电器的控制系数,即Kc=PC/P0继电器(relay)的工作原理和特性 图5当输入量(如电压、电流、温度等)达到规定值时,使被控制的输出电路导通或断开的电器。可分为电气量(如电流、电压、频率、功率等)继电器及非电气量(如温度、压力、速度等)继电器两大类。具有动作快、工作稳定、使用寿命长、体积小等优点。广泛应用于电力保护、自动化、运动、遥控、测量和通信等装置中。 1、电磁继电器的工作原理和特性电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。继电器主要产品技术参数1、额定工作电压是指继电器正常工作时线圈所需要的电压,也就是控制电路的控制电压。根据继电器的型号不同,可以是交流电压,也可以是直流电压。 2、直流电阻是指继电器中线圈的直流电阻,可以通过万能表测量。 3、吸合电流是指继电器能够产生吸合动作的最小电流。在正常使用时,给定的电流必须略大于吸合电流,这样继电器才能稳定地工作。而对于线圈所加的工作电压,一般不要超过额定工作电压的1.5倍,否则会产生较大的电流而把线圈烧毁。 4、释放电流是指继电器产生释放动作的最大电流。当继电器吸合状态的电流减小到一定程度时,继电器就会恢复到未通电的释放状态。这时的电流远远小于吸合电流。5、触点切换电压和电流是指继电器允许加载的电压和电流。它决定了继电器能控制电压和电流的大小,使用时不能超过此值,否则很容易损坏继电器的触点。继电器测试1、测触点电阻用万能表的电阻档,测量常闭触点与动点电阻,其阻值应为0,(用更加精确方式可测得触点阻值在100毫欧以内);而常开触点与动点的阻值就为无穷大。由此可以区别出那个是常闭触点,那个是常开触点。 2、测线圈电阻可用万能表R10档测量继电器线圈的阻值,从而判断该线圈是否存在着开路现象。 3、测量吸合电压和吸合电流找来可调稳压电源和电流表,给继电器输入一组电压,且在供电回路中串入电流表进行监测。慢慢调高电源电压,听到继电器吸合声时,记下该吸合电压和吸合电流。为求准确,可以试多几次而求平均值。 4、测量释放电压和释放电流也是像上述那样连接测试,当继电器发生吸合后,再逐渐降低供电电压,当听到继电器再次发生释放声音时,记下此时的电压和电流,亦可尝试多几次而取得平均的释放电压和释放电流。一般情况下,继电器的释放电压约在吸合电压的1050,如果释放电压太小(小于1/10的吸合电压),则不能正常使用了,这样会对电路的稳定性造成威胁,工作不可靠。4.3 音乐提示模块音乐芯片的概念音乐芯片是一种比较简单的语音电路,它通过内部的振荡电路,再外接小量分立元件,就能产生各种音乐信号,音乐芯片是语音集成电路的一个重要分支,目前广泛用于音乐卡、电子玩具、电子钟、电子门铃、家用电器等场合。音乐芯片的组成音乐芯片由以下几个部分组成:逻辑控制电路、振荡器、地址计数器、音符节拍存贮器(ROM)、音阶发生器、输出驱动器。它的工作原理为:振荡电路产生的信号供各个电路使用;控制电路从存储器中读出代码,根据代码来控制节拍器和音调器协调工作,产生相应的音乐输出。音乐芯片的种类市场上的音乐芯片很多,种类也不同,根据音乐输出的特点我们将音乐电路分为以下几类:单曲、复音、音乐带闪灯、唱歌;它们主要应用在做死的音乐播放器上,如生日贺卡芯片是单曲芯片。按是否可录分可录和不可录,可录芯片是可以通过电路把人的声音录到芯片上,然后通过电路播放出来。如音乐玩具盒和留声机都是用可录芯片做成的。按封装形式有COB黑膏软封装和三极管封装形式。音乐集成电路一般采用“软封装”,也有的使用双列直插和单列直插封装,还有的做成晶体三极管外形,叫做“音乐三极管”。根据不同的需求选择不同的音乐芯片。4.4 LED数码管显示模块 4.4.1 数码管显示简介 数码管LED串口显示模块通常有两种显示方法:动态显示和静态显示。 动态显示:连接方法是将每个二极管的同名端连在一起,而每个显示器的 公共极COM各自独立的接受I/O线控制,CPU向字段输出端口输出字型码,所有显示器接受到相同的字符,而要使用哪个显示器要取决于他们的COM的电平,而这段是由I/O端控制的,由单片机输出。动态扫描时连续的动态扫描,只是肉眼暂留现象,乃发光二极管的余辉效应,给人的感觉是一组稳定的显示数据。 静态显示: 静态显示显示效果好,但是功耗大,但不占用端口,只需两个串口线输出,变成较为简单。而且采用静态显示需要的驱动器件多,硬件成本相对更高。 比较以上两种方案,方案一硬件简单程序复杂,方案二硬件复杂程序简单,考虑到实惠和对自己的编程锻炼,选择方案动态显示。动态扫描 方法是用其接口电路把所有显示器的8个笔画字段(ag和dp)同名端连在一起,而每个显示器的公共极COM各自独立的接受I/O线控制。CPU向字段输出端口输出字型码时,所有显示器接受到相同的字型码,但究竟使用哪个显示,则取决于公共极COM端,而这一端是由/WR和/RD控制的,由单片机决定何时显示哪一位。动态扫描用分时的方法去轮流控制各个显示的COM端,时各个显示器轮流亮。在轮流点亮扫描过程中,每为显示器的点亮时间极为短暂,但由于人的视觉暂留现象及发光二极管的于辉效应,给人的印象就时一组稳定的显示数据。 显示部分电路图: 图6 数码管显示电路4.4.2 数码管编码表 7段数码管可以包括小数点的09的数字和部分的英文字母,为了获得不同的字符,数码管各段所加的电平也不同,编码也不一样。共阴极数码管的字型,字段和编码的关系如下表1: 表1 数码管编码表十六进制数 h gf edcba 显示代码 0 0x3f 1 0x06 2 0x5b 3 0x4f 4 0x66 5 0x6d 6 0x7d 7 0x07 8 0x7f 9 0x6f . 0x80 图7 六位共阴数码管外形尺寸及电路原理图4.5 按键模块方案一要实现可设定5个倒计时设计要求,需要1个复位键, 一个“+”和一个“-”按键,另外再加5个时间设定按键用于实现倒计时间设定, 按键时可直接输出相应倒计时间。键盘扫描单片机应用系统中,扫描键盘只是CPU的工作任务之一。在实际工作中,既要做到及时响应键盘,又不过多的占用CPU的工作时间,要根据CPU的忙闲情况,选择键盘的工作方式。键盘的工作方式一般有编程扫描方式和中断扫描方式。编程扫描方式,是利用CPU在完成其他工作的空余,调用键盘扫描子程序,来响应键输入要求。在执行键的功能时,CPU不再响应键输入要求,键盘扫描程序一般应具备下述四个功能:1) 判别键盘上有无键盘按下。2) 去除键的抖动影响,由于按键是机械开关,机械触点的弹性及电压突跳等原因,在触点闭合或断开的瞬间,会出现电压抖动,这种抖动常常会持续10ms左右。为了保证键别的准确性,在电压信号抖动的情况下不能进行状态输入。为此需要进行去抖动处理,单片机去抖动可以用软件和硬件两种方法。硬件方法就是加去抖动电路,例如在按键两端并联10uF的电容或通过RS触发器连接按键,硬件去抖动从根本上避免抖动;软件方法则采用时间延时以躲过抖动,待信号稳定之后再进行键扫描。对于系统软件量不大的场合,采用软件去除抖动既节约硬件开销又很实用且有效。延时时间一般为10ms20ms。3) 求按键位置,为了实现键盘的数据输入功能和命令处理功能,每个键都有一个子程序。为此每个键对应一个键码,以便根据键码转到相应的键处理子程序。为了得到被按键的键码,有专门的键识别方法。 4) 判别按键是否释放,键闭合一次仅进行一次键功能操作,等键释放以后再执行该键功能。中断扫描方式,采用编程扫描键盘的工作方式,能及时响应键入的命令和数据,但是这种方式不管键盘上有无键按下,CPU总要定时扫描键盘,而应用系统在工作时,并不经常需要输入,因此CPU经常处于空扫描状态。为了进一步提高CPU的工作效率,可采用中断扫描方式。即当键盘有键盘闭合时产生中断请求,CPU响应中断请求后,转去执行中断服务程序,在中断服务程序中判别键盘上闭合的键号,并做相应的处理。综合上述:键盘工作在编程扫描方式,软件去抖动。5 软件部分5.1 开发工具介绍 单片的使用除了硬件,同样也要软件的使用,我们写汇编程序编程CPU可执行的机器码有两种方法,一种是手工汇编,一种是机器汇编。机器汇编通过汇编软件变为机器码,用于MSC-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从使用普通汇编语言到高级语言的不断发展,Keil是目前最流行开发MCS-51系列单片机的软件。Keil c51汇编,PLM语言和C语言的程序设计,界面友好。Keil是美国keil software公司出品的52系列兼容单片机c语言开发系统。用过汇编语言后再使用C语言来开发,体会更加深刻。 Keil C51软件提供丰富的库,与汇编相比,C语言在功能上,结构上,可读性,可维护性上有明显的优势,因而易学易用函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生产的汇编代码,就能体会到KeilC51DE 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解,在开发大型软件时更能体现高级语言的优势。5.2 程序框图:Y开始系统初始化1号键按下?1号盒倒计时时间设定开始倒计时5号键按下?2号键按下?3号键按下?4号键按下?2号盒倒计时时间设定3号盒倒计时时间设定4号盒倒计时时间设定5号盒倒计时时间设定倒计时完?YYYYY结束图8 宠物喂食程序流程图6 仿真结果数据分析 本系统的设计电路相对简单,硬件制作基本完成,我用ISIS Profressional软件已仿真出来,效果非常的好。 7 结束语 这次毕业设计过程中综合了所学的 电路,单片机,C语言对单片机编程,对大学所学的知识起了一个很好的巩固作用,同时也应用到了Protell 99软件画图和ISIS Profressional软件仿真,仿真的结果还比较的准确。这此过程中认识到自己的知识面太狭小, 同时也认识到理论和实践的差别,通过实际制作更能了解到一些模块电路和芯片的功能。撰写论文时,也让自己认识到做每件事都应认真对待,要规范、严谨。参考文献 1 张俊谟.单片机中级教程M.北京:北京航空航天大学出版社,1999 2 康光华.电子技术基础M.北京:高等教育出版社, 19983 莫力. Protel电路设计M.北京:国防工业出版社, 20054 沈文斌.嵌入式硬件系统设计与开发实例详解M.北京:电子工业出版社, 20055 Keil C51编译、调试软件使用指南 周立功单片机(6 何希才.薛永毅 传感器及其应用实例M.北京:机械工业出版社, 20047 周明德.微机原理与接口技术M.北京:科学出版社,2002,7:22-488 DS Oberoi,Harinder Dhingra. Interface a serial 12-bit ADC to a PCJ.EDN,2003,11 9 黄正谨.综合电子设计与实践M.南京:东南大学出版社,2002,3:120-13410 晏寄夫.微机原理及应用M. 西安:西安交通大学出版社, 2006 附录一:电路图附录二:源程序 #include#include#define uchar unsigned char#define uint unsigned intsbit b1=P10;sbit b2=P11;sbit b3=P12;sbit b4=P13;sbit b5=P14;sbit s1=P30;sbit s2=P31;sbit s3=P32;sbit s4=P33;sbit s5=P34;sbit add=P36;sbit dec=P37;char second1=1,minute1=1,hour1=1,second2=2,minute2=2,hour2=2,second3=3,minute3=3,hour3=3;char second4=4,minute4=4,hour4=4,second5=5,minute5=5,hour5=5;uchar g;unsigned char code table=/共阴极0f数码管编码0x3f,0x06,0x5b,0x4f, /030x66,0x6d,0x7d,0x07, /470x7f,0x6f,0x77,0x7c, /8b0x39,0x5e,0x79,0x71 /cf;void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);void delay1(uint z) for(;z0;z-);void display(uchar a,uchar b,uchar c)uchar i,j;i=a/10;j=a%10;P2=0xfe;P0=tablei;delay(5);P2=0xfd;P0=tablej;delay(5);i=b/10;j=b%10;P2=0xfb;P0=tablei;delay(5);P2=0xf7;P0=tablej;delay(5);i=c/10;j=c%10;P2=0xef;P0=tablei;delay(5);P2=0xdf;P0=tablej;delay(5);void delay2(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-) display(0,0,0);void init() EA=1; /开总中断 ET0=1; /本例中使用的是定时器T0,如果用T1。则为ET1=0,TMOD=0x10。 TMOD=0x01; /定时器工作方式1 TH0=(65535-50000)/256; /因为晶振用的是11.0592MHZ。在取初值时,大概定义为一个中断为50MS TL0=(65535-50000)%256; TR0=1; P1=0;void turn_val1(char newval,uchar flag,uchar slnum) if(flag) /判断是加一还是减一 newval+; switch(slnum) case 1:if(newval23) newval=0; display(hour1,minute1,second1); hour1=newval; break; case 2:if(newval59) newval=0; display(hour1,minute1,second1); minute1=newval; break; case 3:if(newval59) newval=0; display(hour1,minute1,second1); second1=newval; break; default:break; else newval-; switch(slnum) case 1:if(newval0) newval=23; display(hour1,minute1,second1); hour1=newval; break; case 2:if(newval0) newval=59; display(hour1,minute1,second1); minute1=newval; break; case 3:if(newval23) newval=0; display(hour2,minute2,second2); hour2=newval; break; case 2:if(newval59) newval=0; display(hour2,minute2,second2); minute2=newval; break; case 3:if(newval59) newval=0; display(hour2,minute2,second2); second2=newval; break; default:break; else newval-; switch(slnum) case 1:if(newval0) newval=23; display(hour2,minute2,second2); hour2=newval; break; case 2:if(newval0) newval=59; display(hour2,minute2,second2); minute2=newval; break; case 3:if(newval23) newval=0; display(hour3,minute3,second3); hour3=newval; break; case 2:if(newval59) newval=0; display(hour3,minute3,second3); minute3=newval; break; case 3:if(newval59) newval=0; display(hour3,minute3,second3); second3=newval; break; default:break; else newval-; switch(slnum) case 1:if(newval0) newval=23; display(hour3,minute3,second3); hour3=newval; break; case 2:if(newval0) newval=59; display(hour3,minute3,second3); minute3=newval; break; case 3:if(newval23) newval=0; display(hour4,minute4,second4); hour4=newval; break; case 2:if(newval59) newval=0; display(hour4,minute4,second4); minute4=newval; break; case 3:if(newval59) newval=0; display(hour4,minute4,second4); second4=newval; break; default:break; else newval-; switch(slnum) case 1:if(newval0) newval=23; display(hour4,minute4,second4); hour4=newval; break; case 2:if(newval0) newval=59; display(hour4,minute4,second4); minute4=newval; break; case 3:if(newval0) newval=59; display(hour4,minute4,second4); second4=newval; break; default:break; void key_scan4(void) uchar slnum=0; if(s4=0) delay(5); if(s4=0) while(!s4);
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 幼儿教育


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!