电子设计大赛广西区初赛论文洗衣机控制模型_第1页
电子设计大赛广西区初赛论文洗衣机控制模型_第2页
电子设计大赛广西区初赛论文洗衣机控制模型_第3页
电子设计大赛广西区初赛论文洗衣机控制模型_第4页
电子设计大赛广西区初赛论文洗衣机控制模型_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、2009全国电子设计大赛广西区初赛论文洗衣机控制模型作者:时间:2009年5月 目录引言整体结构设计电源模块主控单元模块水位检测模块进出水控制模块洗衣粉投放模块液晶显示模块键盘模块操作说明总结讨论程序流程图程序引言技术愿景:在拿到题目之后,我们设想了我们组的洗衣机所要达到的技术指标。 1.能达到洗衣机模型所具有的基本功能:能够基本显示各种洗衣状态。能够识别进水量,并将信息反馈到单片机上。通过单片机控制进水及进水量、电机正反转时间、出水、甩干等各项功能。2.拓展功能:基本显示设备为液晶显示器。用水位传感器监测水位,并将水位信息传递到单片机上,并显示在液晶屏上。在洗衣机中增加水温传感器和水温加热器

2、。通过单片机控制加热水温来达到最适温度。以提高洗衣效率。在进衣口增加金属传感器,在衣物有钥匙手表之类的金属时能够及时发出警报。增设压力传感器来自动检测衣物的重力来推断进衣量的多少,进行全自动智能洗衣。设置人性化的洗衣模式,例如:标准模式、手动模式、特效模式、和自动模式。能够在不降低洗衣机性能的基础上尽量节约能源。.发展方向:在初步实现自动化之后能够和手机链接,通过短信来控制洗衣机的工作,真正达到全自动的理念。在设计过程中。我们以以上的技术指标来设计我们的洗衣机模型。在设计过程中也碰到了一些问题。首先是水位传感器。我们购买的水位传感器是压力型的传感器,需要在密封的条件下使用,考虑到我们的洗衣机模

3、型无法达到传感器的使用条件最后我们采用了比较器来代替水位传感器。在金属探测方面,激光金属传感器能够达到我们的设计要求,但是考虑到成本的问题,抛弃了原来的设计,在这个洗衣机模型中没有实现金属探测报警的功能。而由于模型体积的限制,增设的水温加热功能在模型中也没能够实现。这是设计中所出现的问题。最后我们的设计,初步完成了本洗衣机模型。本作品除了具有题目所要求的基本功能的基础上,增设了三项功能:第一项是在显示部分上增设了“浸泡”“预约”“洗衣时间”的功能的设置,这让洗衣机能够更人性化的执行各种洗衣机的功能。此外,在题目所要求的功能之外,我们还增设了各种洗衣模式的设置,例如“手动”,“自动”,“ 标准”

4、,“特效”等功能,能够根据各种情况选择最佳的洗衣模式,达到提高洗衣的效率。最有特色的是自动模式,它能根据衣物的多少(根据重量测定)计算,然后利用模糊算法来计算出洗衣次数,循环次数,水位,转速。并自动的加入适当的洗衣粉。实现了在全程的自动化,初步实现了具有初步智能的“智能”洗衣机。在节能方面,我们选择了mcu的闲置节能方式,在不用洗衣机的或者洗衣机处于等待阶段的时候能降低功耗。洗衣机模型的所有参数、状态、模式全部采用lcm液晶显示器显示,将洗衣机的即时信息显示出来。整个作品分为两大部分,分别是主控系统和模拟洗衣机的机体部分。通过紧凑的连接,组成了我们的洗衣模型。一、整体结构设计主控系统采用双层结

5、构,各层间用铜柱支撑和连接。上方是键盘,电源,和lcm模块,进出水控制模块(如图所示)其中lcm液晶显示器倾斜位于前方以便观察和控制。键盘左边是电源开关,右上角是总电源指示灯和电磁阀电源指示灯,lcm模块的右下角是lcm模块的电源开关,可以控制显示屏的开关。模拟容器采用了符合题目要求的两升容器。主电机安装在瓶盖上。由于没能找到转轴足够长的电机,我们采用一般的笔芯做为电机的外部转轴,为了解决电机转动过程中的晃动问题,我们做了个支架,解决了电机转动时振动过大的问题。此外,我们还在适当的地方 上 图:箱体构造增加了转轮,在离盖子附近位置安装了直径4厘米的塑料圆盘,在圆盘上放置了一块小磁铁,在磁铁转动

6、轨迹的正下方安放了一个霍尔开关,用于计数,用于测量转速。在容器的上下部分别安装了能够分别控制进出水的两个电磁阀。并在机体的侧面增加了直径为7毫米的连通管。其水位与机体内部实际的水位一致。并且在连通管中加入了用比较器做成的水位检测电极。我们设立了四个水位在状态,分别是“无水”“低水位”“中水位”“高水位”模拟容器上方的小容器为洗衣粉放置装置,通过装置下方的电机转动,运用叶扇把洗衣粉甩入模拟容器。用单片机控制叶扇转动的时间和转速来实现定量投放洗衣粉的目的。二、主控单元模块电磁阀电源指示灯 上图:主控单元模型在主控单元中主控芯片的选择上,由于考虑到程序会比较大,我们暂时接触到的单片机已经无法满足要求

7、,综合各方面的因素,我们最终采用的是at89s52(可存16k的程序)。在主控单元中,89s52的外围芯片有l293d,74ls14,lm393.其中l293d为电机驱动芯片,其内部继承了2个双极型h桥电路,可以同时控制两路电机。控制1a(1b)和2a(2b ),可以控制电机的转向,10正转,01反转,使能端en1(en2)可用于脉宽调节(pwm),调节pwm的占空比可以方便的调节电机的转速。 通过单片机的p0.6和p0.7经过反相器74ls14接到1a(1b)、2a(2b)引脚,p2.6口和p2.7口控制en1和en2,以调节两路电机的转速,本设计中两电机转向控制共用两个引用脚,同时控制两电

8、机的转向,通过pwm(en1),pwm(en2)的控制,又可以选择电机和控制转速,仅使用了4个i/o口,优于原来采用的6线,节约了i/o口。l293d峰值输出电流为1.2a,连续输出电流为600ma,电压为12v,是作为本模型比较合适的器件。上图:主控单元原理图上图:主控单元pcb图控制系统单元电路图如图所示,在设计电路图和转成pcb图时,最初采用单面布线,但是由于连线比较复杂最终采用了双层布线的结构,同时也增加了焊接和调试的难度,但是综合各方面的因素,最终我们采用了双层布线结构。最后,经过调试,全板的控制线路完全正常,在采用控制单元整合之前,各个功能小模块用实验的方法一一检测,如水位监测,电

9、机转向转速蜂鸣器等模块的调试成功后,再整合成一块板子。因此,这块控制电路是经过由小到大,由分到和的制作过程,使制作的成功率大大提高,保证了主控单元的可靠性。单片机i/o口配置如下图所示p1.0 p0.0p1.1 p0.1 p1.2 p0.2 p1.3 p0.3p1.4 p0.4p1.5 p0.5 p1.6 p0.6 p1.7 p0.7 p3.0 p2.7 p3.1 p2.6p3.2 p2.5 p3.3 p2.4 p3.4 p2.3 p3.5 p2.2 p3.6 p2.1 p3.7 p2.0 p1.0 p1.0 p1.0p1.0 p1.0 p0.0水位0水位1水位2水位3进水电磁阀出水电磁阀控制

10、1a、1a2a、2bpwm 电机转速电磁阀电源控制键盘输入口e rwpwm2 投放衣粉转速lcm数据传输端rs蜂鸣器中断霍尔计数1.电源模块上图:电源pcb图电源pcb如图所示,在电源设计时,我们组曾经考虑过采用稳定的开关电源。但是在之后的设计过程中发现。模型的各部分对电源的稳定性要求不高。为了精简模块,我们最终采用了普通的电源模式。采用变压器将家用220交流电压转成15的交流电压。通过的整流堆整流后,再通过7812,7912和7805来实现12v、正负12和电压的输出。并在各稳压管上增加铝制散热片来加快稳压管的散热,以增加电源的使用寿命和使用安全。在电源上我上图:电源电路图们设置了较多的电源

11、接口,以方便了设计过程中的各种实验的需要。比较器(水位检测) lm339集成块内部装有四个独立的电压比较器,每个比较器有两个输入端和一个输出端。两个输入端一个称为同相输入端,用“+”表示,另一个称为反相输入端,用“-”表示。用作比较两个电压时,任意一个输入端加一个固定电压做参考电压,另一端加一个待比较的r1 10k10kr3 15kr4 16k123167r5 4.7k+5voutin1in2r2比较器原理图信号高于“+”端时,输出管饱和,相当于输出端接低电位。两个输入端电压差别大于10mv就能确保输出能从一种状态可靠地转换到另一种状态,因此,选用lm339用在通过检测水的电阻而检测水的有无比

12、较理想(如图1)。lm339的输出端相当于一只不接集电极电阻的晶体三极管,在使用时输出端到正电源一般须接一只上拉电阻。选不同阻值的上拉电阻输 出端得到不同高电位的值,在此选用4.7k电阻作为上拉电阻 。比较器的各输入输出口所接元器件的参数如上图所示,没有接触水的时候,7端的电位比6端的电位要高,此时1端为高电平;当in1 和in2接触到水的时候,由于水的阻值与r4的阻值相仿,二者并联阻值变小,迫使7端的电位下降,此时7端的电位比6端的电位要低,1端输出低电平,由此可作为单片机的输入口触发信号,从而检测水位。号电压。当“+”端电压高于“-”端时,输出管截止,相当于输出端开路。当“-”端电压进出水

13、控制模块电路图如图所示,单片机p0.4,p0.5,p2.5分别控制达林顿管(ltip-127,pnp型三极管(低电平导通)的导通与截止,从而控制继电器吸合与释放。进出水电磁阀是采用交流电220v的洗衣机进水电磁阀,在实际安装中,出水电磁阀由于水压不够无法出水,于是我们对电磁阀内部结构加以改造,把铁芯加长,胶塞做成小圆片, 削低封底,经过改造,这一出水电磁阀已可以使用。当排水时,单片机p0.5输出一个低电平,达林顿管导通,继电器吸合,电磁阀打开,水从电磁阀流出。同理,当p0.4口输出低电平时,进水电磁阀打开。我们之所以选择用达林顿管tip-127,一是他的耐压很高,而且有高增益,响应快等特点。当

14、复位单片机时,各引脚为高电平,为了防止误动作,所以要采用低电平导通的pnp型达林顿管,而tip-127正好符合了设计要求,故选择其作为控制继电器电磁阀的“开关”,弱电控制强电,最简单、方便的就是采用继电器,所以控制电路中采用了四个继电器。洗衣粉放置装置洗衣粉放置装置采用了经过改装之后的12v水泵做成,洗衣粉进入水泵内部时,由电机叶扇甩出,经l293d一路电机的控制转速和时间,从而确定投放洗衣粉的量。自动投放的原理是根据衣物的重量,控制投放洗衣粉的量,重量的检测是根据转动定理估算出来的,进水到低水位搅动电机开始转动3秒,到转速平稳后,打开计数器,计算相隔2秒间0.2秒内电机转动的周数t1,t2后

15、,计算得2秒前后的角速度 2/(0.2/t1), 2/(0.2/t2),进而计算得2秒内的平均角加速度=(2/(0.2/t1)- 2/(0.2/t2)/2=(t1-t2)/0.2圆柱的转动惯量为j=mr2/2,r为模拟容器的半径,设摩擦力矩参数为k,则k=j=m r2(t1-t2)/0.4如果r的单位为cm,则m=4000k/(t1-t2)r2衣物的质量为zl=m-mo,水调节k的大小,以抵消m0,zl=m.根据zl的大小。判断洗衣次数,循环次数,水位和洗衣粉的量;采用模糊控制的方法;分四个等级,即小于300,300500,500700,7001000。大于1000则停止洗衣,即洗衣粉量范围为

16、01000.以上由程序自动完成,计数用at89s52的t2计数,传感器为霍尔传感器,采用中断方式计数,具体见程序部分。液晶显示模块lcm模块lcm采用中文lcm(ts-12864a-3),可以显示4*8共32个汉字,采用中文lcm既方便又不占用单片机的内存,液晶显示器的引脚如下图:lcm接口 11 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20psbgnderwrs+5vgndrr+5v+5 键盘部分:键盘原理图如图所示,当键盘0按下的时候,out端接有上拉电阻的单片机i/o接口,二级管导通,相应的二进制码为0000;当按下键盘1的时候,相应的

17、二进制码为0001;其他以此类推。1234123456789abcde0键盘原理图out操作说明:按键排布(下图):操作说明:打开总电源,设定模式(采用“浸泡”或者“预约”,先设置当前时间),然后选择“水位”,“洗衣次数”,“循环次数”,”洗衣强度”。完成设定后按下“启动”,则进入洗衣状态(若进入“浸泡”或者“预约”模式只需按下“运行”即可)。键盘功能键说明 水位:按下水位键,显示水位“高”“中”“低”三个水位档,默认水位为“低”,即低水位。 时间:开机时,按“时”则液晶屏上的“时”位增加增加1.按“分”,则分加1,加到“60”时返回“0”,设默认时间为00:00:00。浸泡:开机时,按“时”

18、则液晶屏上的“时”位增加增加1.按“分”,则分加1,加到“60”时返回“0”,设置浸泡时间后,同时液晶显示屏显示“浸泡”,按下“运行时间”系统按设定的水位自动进水后,停止,直到浸泡时间结束后自动洗衣。预约:开机时,按“时”则液晶屏上的“时”位增加增加1.按“分”,则分加1,加到“60”时返回“0”,设定预约时间,同时同时液晶显示屏显示“预约”,当到达预约时间后自动进水洗衣。 洗衣次数:每按一次,次数加1,在1-5次循环,初始值为“0”。 循环次数:每按一次,循环次数加1,在1-9次间循环,初始值为“0”。 运行时间:用于开始计时。 模式选择: 手动 :用户自己设定水位,洗衣次数循环次数,洗衣强

19、度。自动: 设为自动模式后,按下“启动”系统自动测定衣物量,自动设置水位,洗衣次数,循环次数,洗衣强度,然后自动运行。标准: 系统设置一般的洗衣方式:水位为“中”,洗衣次数为“3”循环次数为“3”,洗衣强度为“中”,转速脉宽为70%。特效: 系统设定了特殊参数:水位“中”,洗衣次数为“3”,水位为“中”,循环次数为“3”,洗衣强度为“高”,脉宽为100%。 复位: 复位系统后,所有的参数归为初始化状态。 洗衣强度: 有“高”“中”“低”三种选择,脉宽分别为100%,60%,30%。 电磁阀开关: 初始时,电磁阀的状态为开,若长按此键5秒以上,则为关,并进入低功耗模式。总结: 从4月20日题目公

20、布开始,我们组马上讨论参赛题目,根据我们组里面个人的专长,综合各方面的情况,最终决定制作洗衣机模型。并在当天确定了我们上述我们所确定的技术指标。在我们队制作的过程中,有时候为了解决一个难题我们会熬夜到很晚!我们这个队伍也是刚刚成立的,经过这个月的磨合,我们懂得了团队之间的合作,同心协力完成我们的作品!这是我们这个月来的共同目标!这个洗衣机模型,凝集了我们的汗水!在制作成功之后,我们感到十分的欣慰与自豪。不管结果怎么样,我们努力过了,同时我们对我们的作品也充满了信心!这个洗衣机模型最大的特点是模块化设计!这样大大提高了制作的成功率以及降低了调试的难度。在最终的整合过程中经过反复的考虑,将主控系统

21、整合成了一个大模块,使得我们的洗衣机模型体积小巧而功能强大。在题目基本要球的基础上。我们所设想的各项功能,虽然金属探测和温度加热模块由于各种原因没能在我们的模型中体现出来,但是我们的洗衣机已经拥有了足够强大的功能拥有了一定的智能化!这也是社会发展的方向。我们还考虑到了能源的节约!这是我们组最大的优势所在!当然,我们的作品也会存在一定的问题,我们发现的问题是比电源的散热的问题,还有模型的排水系统排水不太完全。当然还会有别的以我们的角度想不到的问题,希望评委们指出,我们将会认真听取评委们的意见,在以后设计过程中加以改进。讨论:在设计这个洗衣机模型的时候,我们也在考虑洗衣机未来的发展方向就是由现在的

22、机械化向智能化发展。而在洗衣机真正到达真正的智能化之前,首先要达到我就是人性化和自动化。目前的洗衣机已经能够初步达到自动化的阶段了,我们的洗衣机模型也初步达到了自动化。但是要向智能化发展还需要很长的时间!我们提出了一个设想就把手机和洗衣机终端联系在一起,让洗衣机能够接受机主所发来的特定信息,然后根据指令控制洗衣机的运行,这是我们希望的洗衣机的所能达到的下一个目标。当然,还有很多别的设想,希望大家能够发挥自己的想象。让我们的生活更加精彩!程序流程图:开始初始化显示0设置模式设定参数浸泡?启动运行?设定参数、定时时间到?进水自动模式?预约?计时设定参数运行?时间到?计时特效自动nynyyn手动nn

23、y 标准ny到达预定水位?进水达到循环次数控制电机正传8s,停顿2s反转3s,停3s排水完毕?5次蜂鸣显示次数排水显示次数脱水 正转10s 停2s 正转10snyny到达循环次数到达重复次数显示最终循环次数重复次数延时10秒,完毕nyn yny程序部分:#include reg52.h#include intrins.h#include math.h#define uchar unsigned char#define uint unsigned int#define dataport p1/定义lcm数据口-/*定义各按键的宏*/#define shws p2&0x0f#define cish

24、s p2&0x0f#define xhs p2&0x0f#define qd p2&0x0f#define seth p2&0x0f#define setm p2&0x0f#define jph p2&0x0f#define jpm p2&0x0f#define timrun p2&0x0f#define yuh p2&0x0f#define yum p2&0x0f#define zhsu p2&0x0f#define mode p2&0x0f-#define r 8/模拟洗衣桶半径8cm#define k 1000 /摩擦力矩系数-/*各种显示状态的字符*/uchar code str0=时

25、间:;uchar strz=0,0;uchar str1=0,0,:,0,0,:,0,0,-,-;uchar jinpao=0,0,-,0,0,-,0,0,-,-;uchar code str2=水位.洗衣强度;uchar code str3=重复.次循环.次;uchar code d=模式:手动准备;uchar code shoud=手动;uchar code zid=自动;uchar code biaozh=标准;uchar code tex=特效;uchar code zhsu1=弱;uchar code zhsu2=中;uchar code zhsu3=强;uchar code shw

26、1=低;uchar code shw2=中;uchar code shw3=高;uchar code zhtaixi=洗衣;uchar code zhtaij=进水;uchar code zhtait=脱水;uchar code zhtaip=排水;uchar code zhtaiw=完成;uchar code yuyuez=预约:;uchar code jinpaoz=浸泡:;-sbit rs=p30;/lcm寄存器脚sbit rw=p36;/lcm读写控制端sbit e=p37;/lcm使能端sbit pwm=p27;/主电机pwm控制端sbit pwm2=p26;/洗衣粉电机pwm控制端

27、sbit mr=p06;/电机转向控制端sbit ml=p07;/电机转向控制端sbit jsh=p04;/进水控制端sbit chsh=p05;/出水控制端sbit bz=p31;/蜂鸣器sbit shw0=p00;/水位0sbit she1=p01;/水位1sbit shw2=p02;/水位2sbit shw3=p03;/水位3sbit power=p25;/电磁阀电源控制端uchar md=1;/模式标记uchar shw_c=1,cish=0,xh=0;/水位、洗衣次数、循环次数标记uchar hour=0;/时间的时uchar minite=0;/时间的分uchar second=0

28、;/时间的秒uchar count=20;/计数标记uchar f=0;/时间、浸泡、预约间隔时间计数标记uchar h=0;/浸泡、预约时uchar m=1;/浸泡、预约分uchar s=1;/浸泡、预约秒uchar t=0;/电磁阀开关延时标记uchar flag=0x00;/状态标记uchar zhs=1;/转速标记uchar q=60;/转速强度标记,pwm默认位60%uint freq=0;/储存计数寄存器变量1uint cun=0;/储存计数寄存器变量2uchar c=0;/计数间隔变量sfr16 dptr=0x82;/16位计数寄存器地址uint zl=0;/衣物质量变量-*-v

29、oid delay0_5ms(uint x)/0.5s延时函数uint i,j;for(i=0;ix;i+)for(j=0;j60;j+);void delay1s(uint x)/1s延时函数 uint i,j;for(i=0;ix;i+)for(j=0;j100;j+)delay0_5ms(20);void clokinit(void)/定时初始化ie=0x8b;tcon=0x00;tmod=0x51;pcon=0x00;th0=(65536-50000)/256;tl0=(65536-50000)%256;tr0=0;void checkbf(void)/检忙函数dataport=0xf

30、f;rs=0;rw=1;_nop_();e=1;_nop_(); _nop_();while(dataport&0x80);e=0;void writecmd(uchar cmd,uchar attribc)/lcm写入指令函数if(attribc)checkbf();rs=0;rw=0;_nop_();dataport=cmd;_nop_(); _nop_();e=1;_nop_(); _nop_();e=0;void writedata(uchar dat)/lcm写入数据函数rs=1;rw=0;_nop_();dataport=dat;_nop_(); _nop_(); e=1;_nop

31、_(); _nop_();e=0;void initlcd(void)/lcm初始化函数writecmd(0x38,1);_nop_();writecmd(0x08,1);_nop_();writecmd(0x01,1);_nop_();writecmd(0x06,1);_nop_();writecmd(0x0c,1);_nop_();void setposition(uchar x,uchar y)/lcm显示位置函数uchar p;switch(x)case 3:p=0x80;break;case 1:p=0x90;break;case 2:p=0x88;break;case 0:p=0x

32、98;break;case 4:p=0x9b;break;case 5:p=0x97;break;case 6:p=0x92;break;case 7:p=0x8a;break;case 8:p=0x8e;break; case 9:p=0x86;break;case 10:p=0x83;break;p+=y;writecmd(p,1);void display(uchar *str)/lcm显示函数uchar i=0;while(stri!=0)writedata(stri+);void init(void)/系统初始化uint i;p0=0x3f;p1=0xff;p2=0x3f;power

33、=0;p3=0xff;flag=0x00;delay0_5ms(1000);initlcd();setposition(0,0);display(str0);setposition(4,0);display(str1);setposition(1,0);display(str2);setposition(2,0);display(str3);setposition(3,0);display(d);setposition(5,0);display(zhsu1);cish=0,xh=0;for(i=0;i30;i+)setposition(7,0);writedata(cish+0x30);del

34、ay0_5ms(2);setposition(8,0);writedata(xh+0x30);clokinit();void jinpaoset(void)/浸泡设置函数if(jph)=0x06)delay0_5ms(600);h+;if(h=24)h=0;flag=0x01;flag=0x01;jinpao0=h/10+0x30;jinpao1=h%10+0x30;setposition(0,0);display(jinpaoz);setposition(4,0);display(jinpao);if(jpm)=0x05)delay0_5ms(600);m+;if(m=60)m=0;flag

35、=0x01;flag=0x01;jinpao3=m/10+0x30;jinpao4=m%10+0x30;setposition(0,0);display(jinpaoz);setposition(4,0);display(jinpao);void yuyueset(void)/预约设置函数if(yuh)=0x0a)delay0_5ms(600);h+;if(h=24)h=0;flag=0x02;flag=0x02;jinpao0=h/10+0x30;jinpao1=h%10+0x30;setposition(0,0);display(yuyuez);setposition(4,0);displ

36、ay(jinpao);if(yum)=0x09)delay0_5ms(600);m+;if(m=60)m=0;flag=0x02;flag=0x02;jinpao3=m/10+0x30;jinpao4=m%10+0x30;setposition(0,0);display(yuyuez);setposition(4,0);display(jinpao);void sett(void)/时间设置函数if(seth)=0x02) delay0_5ms(600);tr0=0;hour+;if(hour=24)hour=0;setposition(0,0);display(str0);str10=hou

37、r/10+0x30;str11=hour%10+0x30; setposition(4,0);display(str1);if(setm)=0x01) delay0_5ms(600);tr0=0;minite+;if(minite=60)minite=0;setposition(0,0);display(str0);str13=minite/10+0x30;str14=minite%10+0x30;setposition(4,0);display(str1);void zhuanshuset(void)/转速设置函数if(zhsu)=0x0b)delay0_5ms(600);zhs+;if(z

38、hs=4)zhs=1;switch(zhs)case 1:setposition(5,0);display(zhsu1);q=30;break;case 2:setposition(5,0);display(zhsu2);q=60;break;case 3:setposition(5,0);display(zhsu3);q=100;break; void modset(void)/模式设置函数if(mode)=0x07)delay0_5ms(600);md+;if(md=5)md=1;switch(md)case 1:setposition(10,0);display(shoud);flag=

39、0x03;break;case 2:setposition(10,0);display(zid);flag=0x04;break;case 3:setposition(10,0);display(biaozh);flag=0x05;shw_c=2;cish=3;xh=3;zhs=2;q=70;break;case 4:setposition(10,0);display(tex);flag=0x06;shw_c=2;cish=3;xh=4;zhs=3;q=100;break; void shuiweiset(void)/水位设置函数if(shws)=0x00)delay0_5ms(600);sh

40、w_c+;if(shw_c=4)shw_c=1;switch(shw_c)case 1:setposition(6,0);display(shw1);break;case 2:setposition(6,0);display(shw2);break;case 3:setposition(6,0);display(shw3);break; void cishuset(void)/洗衣次数设置函数uchar i;if(cishs)=0x0e)delay0_5ms(600);cish+;if(cish=6)cish=1;strz0=cish+0x30;for(i=0;i40;i+)setpositi

41、on(7,0);display(strz);setposition(7,0);display(strz); void xhset(void)/循环次数函数uchar i;if(xhs)=0x0d)delay0_5ms(600);xh+;if(xh=10)xh=1;strz0=xh+0x30; for(i=0;i40;i+)setposition(8,0);display(strz);setposition(8,0);display(strz); void zhengzhuan(uint t,uint q)/电机正转uint i,j;mr=1;ml=0;for(i=0;it;i+)for(j=0

42、;j20;j+)pwm=1;delay0_5ms(q);pwm=0;delay0_5ms(100-q); void fanzhuan(uint t,uint q)/电机反转uint i,j;mr=0;ml=1;for(i=0;it;i+)for(j=0;j20;j+)pwm=1;delay0_5ms(q);pwm=0;delay0_5ms(100-q);void xiyifen(void)/洗衣粉投放函数if(zl200)mr=0;ml=1;q=100;pwm2=1;delay0_5ms(3000);pwm2=0;shw_c=1,cish=2,xh=2;q=40;else if(zl400)m

43、r=0;ml=1;q=100;pwm2=1;delay0_5ms(5000);pwm2=0;shw_c=1,cish=2,xh=4;q=60;else if(zl600)mr=0;ml=1;q=100;pwm2=1;delay0_5ms(7000);pwm2=0;shw_c=2,cish=3,xh=3;q=80;else if(zl900)mr=0;ml=1;q=100;pwm2=1;delay0_5ms(10000);pwm2=0;shw_c=3,cish=4,xh=4;q=100;else pwm2=0;void zidong(void)/自动函数while(p0&0x0f)!= (16-pow(2,2)jsh=0;jsh=1;delay1s(1);th1=0;tl1=0;zhengzhuan(3,100);pwm=0;tr1=1;flag=0x06;delay1s(2);zl=(uint)(400

温馨提示

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

评论

0/150

提交评论