版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 黄河科技学院毕业设计说明书 第 38 页 全自动洗衣机控制系统设计摘 要全自动洗衣机本身的功能给人们带来了极大的便利,越来越多的人接受洗衣机代替双手去为自己创造更舒适的生活,随着时代的发展,它将成为家庭中必不可少的一员。近年来随着科学技术的持续更新,单片机的发展也呈现正日新月异的变化,它以集成度高、运算速度快、体积小、运行可靠以及价格低廉等特点在家用电器、智能仪表等方面得到了广泛应用。本设计采用ATMTEI单片机的AT89C51为控制核心,它的控制对象主要包括:按键、进水阀、排水阀、电动机、LCD等。整体设计中的按键部分用来选择全自动洗衣机的工作方式、电动机运行速度、启动/暂停等,驱动电路用
2、L298来实现电动机、进水阀和排水阀工作,对于报警电路则用蜂鸣器来发出声音提醒用户和出现故障报警,检测电路主要用来检测水位,电源用三端集成稳压器7805提供+5V电源。实现洗涤、漂净、脱水等过程全都由控制系统自动进行,实现用LCD显示洗衣机的工作状态和剩余时间。程序设计包括主程序、外部中断程序、定时程序、按键扫描程序等,最后使用proteus来进行仿真检测设计功能的实现。关键词:全自动,AT89C51,LCD,可控硅,仿真 Control SystemDesign Of AutomaticWashing MachineAuthor:Hao YunxiaTutor:He SuxiaAbstrac
3、tFull automatic washing machine itself to the people brought great convenience, more and more people accept washing machine instead of hands to create a more comfortable life for themselves, along with the development of the times, it will become a member of the family essential.In recent years, wit
4、h the constant renewal of science and technology, MCU development also presents is the rapid change, with high integration density, computing speed fast, small volume, reliable operation and low price and other characteristics in household appliances, intelligent instrument, has been widely used.The
5、 design of ATMTEI microcontroller AT89C51 as the control core, its control object mainly include: key, water valve, drainage valve, motor, LCD, etc.The overall design of key parts are used to select the full automatic washing machine, the running speed of the motor, start / pause, drive circuit L298
6、 to realize motor, a water inlet valve and a drain valve, the alarm circuit is with a buzzer to send sound to remind the user and malfunction alarm, detection circuit is mainly used to detect the water level, power supply with three terminal voltage regulator integrated 7805 provide + 5V power suppl
7、y.The wash, rinse and dehydration process all is controlled by the system automatically, with LCD display the working state of the washing machine and the rest of the time.The program design includes the main program, the external interrupt program, the timer program, the key scan program, and so on
8、, and finally, the function of the design is realized by using proteus.Key words: automatic, AT89C51, LCD, SCR, simulation目 录1绪论11.1课题背景11.2设计的目标和意义11.3国内外现状及水平22 硬件电路设计42.1按键电路52.2检测电路62.3蜂鸣器72.4驱动控制电路设计82.5显示电路92.6电源电路103 电路仿真113.1 软件介绍113.2 仿真模型113.3 仿真结果12结论14致谢15参考文献16附录171绪论1.1课题背景清洗衣物是人们生活过程中
9、必不可少而且费时费力的工作,洗衣机的应用打破这种生活方式,将这种劳动变得轻松且简单。随着科技的进步,全自动洗衣机也在不断的发展,越来越完善的技术使得越来越多的家电走入家庭,特别是洗衣机,已经成为了千家万户中的另一个机器保姆。全自动洗衣机以其高自动、更智能的特点占据越来越重要的位置。当今,人们生活节奏越来越快,使得很多人,特别是上班族,已经没有更多的时间去做生活中的事情,全自动洗衣机的出现无疑为繁忙的生活带来了更多的自由时间,当然,洗衣机的发展最离不开的就是技术的不断更新,人类对生活的要求促进了科技的进步,科技的进步也改善了人们的生活质量,单片机等一系列技术的发展和创新使得全自动洗衣机的类型多种
10、多样,有的洗衣机可以根据自己的需要去设定全自动洗衣机的工作时间和选择不同强度的洗衣方式使衣物更加洁净,有的则只需要把衣物放入洗衣机中,直接使洗衣机开始工作,洗衣机由模糊控制自动地实现定时、判断洗涤方式等功能,现在全自动洗衣机的功能更加完善,更加贴心的为人类服务。总之,科术的进步使得全自动洗衣机的自动化和智能化得到了极大的提高1。1.2设计的目标和意义我国人民购买能力的增强和对生活的不断追求,使得我国的洗衣机市场的需求也越来越多,因此,它在家电市场中占据巨大的发展空间。但是人们对于洗衣机的功能、外观等的要求也越来越高,现今市场洗衣机在许多方面还不能达到人们的需求。因此,需要我们设计出更多不同功能
11、、更加符合人类生活需求或者更智能、更方便的洗衣机。所以我们需要提出更多好的思路和新的设计方式,将人们的需要变成更符合现代生活的现实,设计出更节能、功能使用更加全面、更人性化的洗衣机。目前的洗衣机在一些方面还存在欠缺,如洗衣机的兼容性,洗衣机在工作时的不平衡等,这都需要我们去一步步去解决。还有现在大多洗衣的厂家在推广洗衣机时,只注重品牌的洗衣机的某一特别好的功能而没有综合的各个功能都很完善的洗衣机,当然,依靠目前的技术还需要我们更加努力,使洗衣机价格、功能上都更加突出。因此,洗衣机技术需要进一步提升是不可争议的事实2。全自动洗衣机的发展为人类做出了很大贡献,解决了人们生活中清洗衣物的难题,最关键
12、的是为人们节省了很多时间,它的进步同时也促进了科技的发展。全自动洗衣机在设计的过程中肯定遇到很多的问题,在设计和解决问题的过程中,而本次设计的全自动洗衣机也是为了满足某些用户的不同需求。1.3国内外现状及水平全自动洗衣机随着时代的进步已经发展成了多种适用于人类需要的类型。1、按自动化程序分类。(1)普通洗衣机:在洗涤、漂洗和脱水和时间设定都需要人工操作。(2)它能在洗涤、漂洗、脱水等功能之间进行自动转换。(3)全自动洗衣机:进水、洗涤、漂洗、脱水、排水等功能都可以自动完成。2、洗衣机按结构不同可分为以下几种。(1)波轮式洗衣机:它的优点是省力和省时等,但这类洗衣机清洁效果不是很好而且容易使衣物
13、缠绕、费电、费水。新颖的大波轮、新水流洗衣机,其性能有明显的改善。(2)滚筒式洗衣机:其优点是具有无缠绕、对衣物损耗小、节水等。但此类洗衣机价格也存在费时,并且洁净效果差等的缺点。(3)搅拌式洗衣机:它是依靠搅拌叶来回运动实现洗涤工作。此类洗衣机清洗较干净的同时还节省洗衣粉,适合清洗的衣物范围广,缺点是更容易缠绕衣物、噪声大。3、按洗涤原理分类。(1)洗衣粉或洗衣剂洗衣机通过机械作用、物理作用、化学作用完成清洗工作的洗衣机。(2)非洗衣粉或洗衣剂洗衣机这种类型洗衣机分别为超声波洗衣机、臭氧洗衣机和离子洗衣机。它们的洗涤效果不佳,与洗衣粉或洗衣剂型的洗衣机相比较而言,它的技术还不成熟,设计上也存
14、在很多欠缺。目前这一类型的洗衣机还只是适合用于洗涤一些如毛巾、睡衣或内衣等的衣物。(3)环保洗衣机目前环保洗衣机只是处于使用一些环保材料和采用一些环保措施,而这些措施也不尽相同。现在我们国家对于环保型洗衣机也没有制定统一的标准。(4)健康洗衣机目前健康洗衣机只采用了一些除菌措施,而这些措施也是多种多样的。目前国家对健康洗衣机也没有制定统一的标准。(5)纳米洗衣机目前的纳米技术在洗衣机的应用上只是某个或某些部件采用了纳米材料3。2 硬件电路设计全自动型将洗涤、漂净、脱水(甩干)三大步骤都在同一缸里实现,全都由控制系统自动进行的洗衣机。打开电源,通过按键选择后,经过电路和程序的分析完成洗衣机的洗涤
15、、漂洗,然后通过排水阀脱水,最后经过蜂鸣器报警提示完成工作。基本工作原理框图如图2.1所示。图2.1基本工作原理框图图中电源部分提供电压,通过按键电路输入清洗方式等功能,检测到的水位和电压以及洗衣机工作方式和电机转速通过LCD显示,驱动电路控制电机、进水阀、排水阀的通断。全自动洗衣机的方式主要有四种工作方式,强洗执行:进水-侵泡-洗涤-脱水-进水-漂洗-脱水-进水-漂洗-脱水;标准洗:进水-洗涤-脱水-进水-漂洗-脱水-进水-漂洗-脱水;弱洗:进水-洗涤-脱水-进水-漂洗-脱水;第四种方式为脱水。进水为洗衣机开始工作开始工作后,进水阀门打开开始进水。洗涤过程为当进水完成以后单片机经过程序的控制
16、自动跳转到洗涤状态,控制电机的转动。浸泡是一个电动机、进水阀和排水阀都关闭一定时间的过程,目的是使衣物更容易清洗干净。漂洗也是单片机控制电机转动完成的过程,只是它的目的是使衣物中的污水排尽,最后进行的脱水工作是为了沥干水分,使晾晒更加方便、更节约时间。AT89C51是51系列单片机的一种,含有存储器和内部RAM,有32个I/O口线,两个十六位定时/计数器和5个中断触发源,一个全双工串行通信口,片内振荡器及时钟电路4。AT89C51的外围辅助电路有复位电路和时钟电路,复位通常有上电自动复位和按键手动复位。复位电路的主要功能是使单片机开始正常工作。单片机的时钟电路由引脚XTAL1和XTAL2连接,
17、XTAL1是反向振荡器的输入端口及时钟工作电路的输入端,XTAL为反向振荡器的输出端5。本系统采用12MHz的晶振,电容取30pF。晶振元件与单片机内部电路组成,产生的振荡频率为单片机提供时钟信号,供单片机信号定时和计时。它的最小系统的电路如图2.2所示。图2.2 AT89C51最小系统2.1按键电路由于设计的洗衣机要用到很多按键,如果采用独立式按键会用到较多的I/O资源,因此采用矩阵式键盘控制,在此我采用的是4*4键盘,为了进一步减少I/O口线的使用和对按键的采集,MM74C922为键盘扫描IC,采用中断控制方式,当有按键按下后,MM74C922会产生一个中断信号,DA为高电平有效,/EA为
18、低电平有效,所以在连接单片机与MM74C922之间加入了非门,将信号接到单片机INT0输入引脚P3.2,用于按键中断请求。然后单片机P3.2口输出高电平MM74C922读取输入的键值,然后经过输出口将相应的编码输出6。将按键信息接至P2.0至P2.3口。洗衣机的按键有:开始/暂停键,方式一为强洗,方式二为标准洗,方式三为弱洗,方式四为脱水,速度1/4为PWM占空比为25/100,速度2/4为PWM占空比为50/100,速度3/4为PWM占空比为75/100,速度4/4为PWM占空比为100/100,运行状态ON和OFF按键。电路连接如图2.3所示。图2.3 按键电路MM74C922是一个译码器
19、,将按键按下产生的二进制代码“翻译”成为一个特定的输出信号,然后输出给单片机控制洗衣机工作。C2为电容器可用作执行扫描键盘,C1的作用是用来消除抖动。74HC04为六反相器,是一个普通的非门。它能够将电平进行高低转换,而且还可以增加信号的驱动能力,信号发出后由于其直接驱动的能力不够,因此中间加一个逻辑电路来增加信号的驱动能力。2.2检测电路由于环境的限制,并不能检测到真正的水位,所以在此电路设计中,我采用了一个模拟信号代替水位,但模拟信号不能直接输出给单片机,所以需要将模拟电压转变成数字量电压,采用的A/D转换器件为ADC0808,它是逐次逼近式A/D转换器件,ADC0808芯片内设置了多路模
20、拟开关及通道地址译码和锁存器,因此能对多路模拟信号进行分时采集和转换。ADC0808转换器主要有比较器、D/A转换器、逐次逼近寄存器和时钟信号组成,它的精度为8位,典型时钟为640kHz,每一通道的转换时间约为100us,由于其内部没有时钟电路,故其工作频率由外部提供,该电路的时钟采用的是频率为640kHz的低-高-低时钟。由于模拟信号的输入选择了U2的IN0和IN1,所以必须选用ADDA地址译码线作为模拟输入,START为启动转换信号,OE为高电平有效的允许数据输出端7。它的工作原理是水位和电压经过输入端口传送给转换器,ADC0808为脉冲式启动转换控制,脉冲下降沿使转换开始,转换时间由时钟
21、频率决定,为128us。过程为由于模拟信号的大小随时间不断地变化,需对连续变化的模拟量按一定的规律取出其中某一瞬时值即采样,然后进行量化,量化是把采样值取整为最小单位的整数倍,但量化得到的只通常是二进制表示,所以要经过编码获得数字量电压以便以单片机控制。电路图如图2.4所示。图2.4 检测电路74ls373为三态输出的8D锁存器,OE为低电平有效的三态允许控制端,三态输出锁存器用于锁存A/D转换完的数字量。当OE为低电平时,Q0Q7为有效状态,可用来驱动负载或总线。当OE为高电平时,Q0Q7 呈高阻态,但锁存器内部的逻辑操作不受其影响。LE为锁存允许端,当LE端为高电平时,Q输出D的锁存器输入
22、给单片机。2.3蜂鸣器为保证洗衣机的安全工作和提醒用户洗衣机运行结束,当洗衣机出现问题或者洗衣机工作结束时,蜂鸣器发出报警声音提醒用户。蜂鸣器为直流供电。将三极管连接到P2.6引脚,通过单片机控制三极管的导通和截止,从而控制蜂鸣器是否发出声音8。本设计蜂鸣器发出的声音是程序写入的,定义音调和节拍,使得蜂鸣器发出悦耳的声音。报警电路图如图2.5所示。图2.5 报警电路2.4驱动控制电路设计为对电动机、进水阀和排水阀的控制,采用了L298来驱动,以进水阀的工作环境来说,由于没有真实的进水过程,所以采用电动机来代替进水阀和排水阀来判断工作状态,因此,它的控制方式和电动机相同。电动机转动的时间的长短决
23、定了进水量的多少。P1.0为PWM输出高电平引脚,P1.1为PWM输出低电平引脚,当L298的使能端ENA输出高电平时,进水阀门打开,否则关闭,关闭时电机不转动。单片机根据用户选择的洗衣方式,在程序的控制下来决定进水阀和排水阀的通断来实现进水和排水功能。进水和排水控制电路如图2.6所示。图2.6 进水、排水电路对于电动机的控制,由PWM的占空比决定电动机的转速。PWM就是脉冲宽度调制,PWM的占空比决定了输出到直流电机的平均电压,因为PWM的占空比能够进行任意调节,所以输出电压也可以连续任意调节。PWM信号是一个矩形的方波,他的脉冲宽度可任意进行改变9。占空比的计算公式为:D= t1/T,设脉
24、冲幅值电压为Umax,平均电压U=D*Umax。当L298的ENA端高电平有效时,输出端控制电机的正转和反转。程序中设置PWM波输出周期计数为100,通过给电动机pwm控制计数设置不同的值来控制电机转动速度。控制电机的电路图如图2.7所示。图2.7 电机控制电路2.5显示电路显示电路采用LM044L液晶显示器,之所以不采用LED数码管,是因为它只可以显示数字和某些字符,限制了其应用范围。液晶显示器可以显示多行字符、汉字或图形,它的这些特点使得它可以应用到多种地方,并且LCD的功耗很低让更多的人更愿意去使用LCD。液晶显示模块是一种集成度比较高的显示组件10。本次应用是将液晶显示器直接接到单片机
25、的P0口和部分P1口上,液晶显示由电源提供+5V电,然后通过程序让单片机控制液晶显示器的显示方式,显示洗衣机工作状态等内容。LM044L液晶显示器中D0-D7是8位数据总线,工作电压为+5V。单片机P1.5引脚作为RS信号,P1.6引脚作为 RW信号,P1.7引脚作为使能信号端口,P0口为 LCD数据输入引脚,通过设置RS,R/W,EN三个控制端口引脚电平的高低来设置LCD的功能。LM044L相较与LM1602可以显示四行数据,改善显示不足的缺点。51与显示器的连接如图2.8所示。显示洗衣机的工作状态和剩余时间。图2.8显示电路2.6电源电路电源的设计是为了为单片机提供5V电压。在小功率的稳压
26、电源中,三端集成稳压器的使用最普遍,它结构简单,所接外围元件少,内部集成了各种保护电路,使用更加安全、可靠11。交流220V电源经变压、整流、滤波后产生直流电压,输入到集成稳压器7805组件的输入端,7805输出稳定的+5V电压为单片机供电,图中C8用以抑制高频干扰以及抵消输入引线较长时的电感效应,防止电路产生自激振荡,C5的作用是改善负载的瞬态响应,为了进一步减小输出电压的波纹7805的输出端并入一个C7。电源电路如图2.9所示。图2.9电源电路3 电路仿真3.1 软件介绍电路的仿真是使用Proteus和Keil共同合作完成的,Proteus是一款有多种元器件可供选择的画图软件,由ISIS和
27、ARES两个软件构成,我在电路图的设计中所使用的就是ISIS,有多种工具供使用者操作使用,如:根据设计电路图的复杂程度选择图纸大小、有三十几个元件库满足需求,而且和protel相比,它的兼容性更强,protel在WIN7系统下很多库无法加载,而Proteus则没有,它里面包含了所有我的电路中所需要的各种原件,而且使用简单方便,功能强大12。Keil是一款语言开发系统软件,单片机的控制离不开程序,在本设计中程序是C语言程序,与汇编语言相比,C语言功能和可维护性更上都具有很大的优势。3.2 仿真模型以方式一为例来进行仿真说明,方式一为强洗,它的过程为进水-洗涤-脱水-进水-漂洗-脱水-进水-漂洗-
28、脱水,在对于电动机达到转动目的部分,当洗衣机处于洗涤、漂洗、脱水这三种状态时,电动机在单片机及按键的控制下达到一定效果的转动。在选择方式一后,选定电机转动速度为3/4,洗衣机运行状态设置为ON状态,然后按下开始键,洗衣机开始进水,进水阀打开(电动机转动),进水阀门的打开在洗衣机进行循环洗时由程序进行控制,使L298的使能端处于高电平和低电平控制电动机是否转动,下图为洗衣机刚开始工作时进水状态,此时只有进水阀打开,而排水阀还没有运行。仿真显示如图3.1所示。图3.1进水仿真显示显示屏显示洗衣机洗衣状态、水位、洗衣方式和电机转速。下图分别为在洗衣机电源接通但还没有开始洗和洗衣机结束运行后LCD的显
29、示、不同方式和不同PMW占空比时显示屏的显示状态。在不同的状态下显示屏上的水位和电压都是相同的,这是由于输入是一个转换后的固定数字信号,所以无论在何种状态,它都不变化。下图依次为洗衣机不运行时的显示、强洗并电机转速2/4时的进水显示、强洗并电机转速3/4时的浸泡显示、标准洗并电机转速4/4时的洗涤显示、弱洗并电机转速2/4时的脱水显示。洗衣机的仿真显示如图3.2所示。 图3.2洗衣机的仿真显示3.3 仿真结果下列为整体电路图的仿真,打开仿真软件后,点击开始仿真,然后在按键电路中选择洗衣机的工作方式为方式一即强洗,选择PWM的占空比为1/2,此时洗衣机电源灯亮,但是洗衣机还没有开始运行,LCD显
30、示的是“NEW MACHING IS OFF”,之后选择使洗衣机的运行状态为ON,按下开始按键,洗衣机开始进入工作状态,开始进水,显示屏显示的是两行,第一行显示显示洗衣机运行状态和检测电路检测到的水位和电压,第二行显示按键已经选择的方式和电机转速。在程序和单片机的控制下洗衣机开始进行状态之间的转换直到整个洗衣过程完成以后,蜂鸣器报警,提醒用户洗衣完毕,LCD显示“NEW MACHING IS OFF”。整体电路图如图3.3所示。图3.2整体电路的仿真结论本次设计让我全面了解了当今全自动洗衣机技术的发展,理解了洗衣机的工作原理和不同类型洗衣机的电路设计的不同以及它们各自的优缺点,对洗衣机的整个市
31、场需求和现在洗衣机发展所面临的问题有了更深的认识。当然,除了这些,最重要的是从我按照任务书开始设计模块电路到连接整体电路再到编写程序最后进行仿真的过程中,给我带来很多挑战,也积累了不少的经验。让我更加熟悉掌握了proteus和Keil软件以及如何设计一个完整的电路并实现它的功能,这需要我们扎实的基本功和在设计中不断的自学并消化更多的知识,如我在本次设计中的显示芯片LCD,以前没怎么用过此类芯片,但在此次设计中,让我全面了解它的功能,不仅可以显示数字,还可以显示字母,仅需一个芯片就可以完成显示。毕业设计是对这四年来自己学习工作的一个总结,也是对自己所学知识的检测,让我们复习专业基础知识的同时,把
32、这些知识熟练的应用到毕业设计中,全自动洗衣机的设计涉及到了所学数字电子中的模数与数模转换电路以及编码器、译码器的使用等很多,还有学习的单片机和C+进行编程控制系统、模拟电路中的振荡电路、电压比较器、三极管、直流稳压电源等硬件电路,以及各个芯片的了解,这都使我在拓宽自己知识面的同时,也打开了更多的思路,所以,这次设计不仅让我认识了不足,同时也让我学到了很多课本上没有的东西。致谢在毕业设计过程中,我在专业知识、专业技能和解决问题方法方面得到很大的提高。更深入了解并掌握了单片机的基本理论知识,并在单片机实际电路开发和常用编程设计思路掌握方面有了一定程度的掌握。在此要衷心感谢我的指导教师贺素霞老师!贺
33、老师是一个非常认真严谨的老师,她耐心的辅导并督促我们完成毕业设计。每次我们去找老师给我们辅导时,老师都不辞辛劳地给我们讲解我们所遇到的问题并给我们建议。从理论学习阶段到设计的查找资料、开题答辩、研究和撰写的每一个环节,老师都乐意为我们提供最好的帮助。记得我的水位检测时遇到了一些方案问题,拿不定主意,然后去询问老师,老师对我的两个方案向我进行了详细的分析和对比,最终得出了一个合理的设计,特别欣赏贺老师对教学和学问的一丝不苟和负责的态度。然后要感谢所有教育过我的老师!你们传授给我的专业知识是我不断成长的源泉,也是完成本毕业设计的基础。最后,感谢我的朋友们,在我遇到困难无奈失落的时候给我鼓励并尽力帮
34、助我。向他们表示我最真挚的谢意。再次感谢贺老师,他循导善诱的教导和不拘一格的思路给予我无尽的启迪;他严谨细致,专注负责的作风都将成为我以后工作、学习中的榜样。参考文献1 黄永定家用电器基础与维修技术M机械工业出版社,20122 孙立群,孙昊洗衣机维修从入门到精通M人民邮电出版社,20093 李冰杰全自动洗衣机实时控制器P中国专利:CN203021789U,2013 4黄映梅基于单片机的循环广告灯的设计与制作J职业,20135 杨雪基于AT89C51单片机的全自动洗衣机的仿真设计J黑龙江科技信息,2013 6 Jan M. RabaeyDigital Integrated Circuits:A
35、Design PerspectiveMPower Electronics Technology,1988 7 赵建领51单片机开发与应用技术详解M电子工业出版社,2009. 8张明德基于单片机的全自动洗衣机系统设计D安徽:安徽大学,20109魏建明创新全自动洗衣机控制系统设计的思考J决策与信息,201310 宋戈51单片机应用开发范例大全M人民邮电出版社,2010. 11 Richard C DorfIntroduction to Electric CircuitsMJohn Wiley & Sons Ltd ,2010 12陈忠平基于proteus的51系列单片机设计与仿真M电子工业出版社,
36、2012附录#include /定义头文件#define uint unsigned int /定义字符uint#define uchar unsigned char /定义字符uchar#define TIME0H 0xff /定时器0计数器高位#define TIME0L 0x9c /定时器0计数器低位#define TIME1H 0x3c /定时器1计数器高位#define TIME1L 0xb0 /定时器1计数器低位#define MOTOR_COUNT 100 /PWM波输出周期计数#define sol 0x6c /将so宏定义为低音5的频率 784Hz #define Dol 0
37、x44 /将Do宏定义为中音1的频率 523Hz #define Rel 0xac /将Re宏定义为中音2的频率 587Hz #define Mil 0x09 /将Mi宏定义为中音3的频率 659Hz #define Fal 0x34 /将Fa宏定义为中音4的频率 698Hz #define Sol 0x82 /将So宏定义为中音5的频率 784Hz #define Lal 0xc8 /将La宏定义为中音6的频率 880Hz #define Sil 0x05 /将Si宏定义为中音7的频率 523H #define soh 0xfc /将so宏定义为低音5的频率 784Hz #define Do
38、h 0xfc /将Do宏定义为中音1的频率 523Hz #define Reh 0xfc /将Re宏定义为中音2的频率 587Hz #define Mih 0xfd /将Mi宏定义为中音3的频率 659Hz #define Fah 0xfd /将Fa宏定义为中音4的频率 698Hz #define Soh 0xfd /将So宏定义为中音5的频率 784Hz #define Lah 0xfd /将La宏定义为中音6的频率 880Hz #define Sih 0xfe /将Si宏定义为中音7的频率 523H /定义宏变量sbit speaker =P26; /蜂鸣器控制引脚sbit RS=P15;
39、 /LCD RS引脚sbit R_W=P16; /LCD 读写信号sbit EN=P17; /LCD 使能引脚sbit motor_high=P10; /PWM输出高电平引脚sbit motor_low=P11; /PWM输出低电平引脚sbit motor_1_en=P12; /进水阀门引脚sbit motor_2_en=P13; /出水阀门引脚sbit motor_3_en=P14; /洗衣机电动使能引脚sbit EOC=P24; /AD EOCsbit START=P25; /AD STARTsbit con=P35; /AD CONsbit add_A=P30; /位选信号Asbit l
40、ock_OE=P31; /74ls373锁存控制引脚 /定义全局变量uchar process; /当前洗衣机运行状态全局变量uchar method; /当前洗衣机运行方式全局变量uchar speed; /当前电动机速度全局变量uchar flag;/标志位uchar state;/洗衣机运行状态选择uint ad_level; /水位采样全局变量uint ad_voltage; /电压采样全局变量uint time_count; /定时器0中断次数全局变量uint time_count1; /定时器1中断次数全局变量uint MOTOR_ON,MOTOR_NOW;/电动机pwm控制计数,
41、高电平脉冲数和当前脉冲数uchar st_pau; /当前洗衣机运行全局变量uchar step; /当前洗衣机运行步骤全局变量uint Cl=0;/uint Ch=0;/uchar close=0; /声明子函数void init_LCM(); /lcd初始化函数void clearLCD(); /lcd清屏函数void write_data(char date); /lcd写数据函数void write_com(char command); /lcd写指令函数void display()reentrant;/lcd显示函数void check_BF(); /lcd检查忙碌函数void fa
42、ngshi1(); /洗衣机运行方式1void fangshi2(); /洗衣机运行方式2void fangshi3(); /洗衣机运行方式3void fangshi4(); /洗衣机运行方式4void translate(int keycode); /按键值释放函数void clrpara(); /复位所有参数void speaker_on();/蜂鸣器void delay(); /80ms延时程序unsigned char f_TAB2= /*/Sol,Soh,Lal,Lah,Sol,Soh,Fal,Fah,Mil,Mih,Dol,Doh,/, /音调 /*/Sol,Soh,Lal,Lah
43、,Sol,Soh,Fal,Fah,Mil,Mih,Dol,Doh,/*/Dol,Doh,sol,soh,Dol,Doh,/*/Dol,Doh,sol,soh,Dol,Doh,/*/0xff,0xff;uchar time_TAB=3,1,3,1,4,4,/*/3,1,3,1,4,4,/*/4,4,4,8,/*/4,4,4,8;/节拍 /*80ms延时*/void delay() uchar i,j; /定义变量i,jfor(i=0;i100;i+)/外循环for(j=0;j250;j+);/内循环/*按键信息翻译*/ void translate(int keycode)int key; /定
44、义临时变量key,用来判断(开始/暂停)按键次数switch(keycode)/根据不同传入的keycode值,进行全局变量赋值case 0:/方式一method = 1;/将方式全局变量赋值为1/return 0;/返回0结果break; /跳出分支判断case 1: /方式三method = 3;/将方式全局变量赋值为3/return 1;/返回1结果break; /跳出分支判断case 2: /速度1/4speed = 1;/赋值速度全局变量为1MOTOR_ON = 25;/设置PWM占空比为25/100/return 2;/返回2结果break; /跳出分支判断case 3: /速度3
45、/4speed = 3;/赋值速度全局变量为3MOTOR_ON = 75;/设置PWM占空比为75/100/return 3;/返回3结果break; /跳出分支判断case 4: /方式二method = 2;/将方式全局变量赋值为2/return 4;/返回4结果break; /跳出分支判断case 5: /方式四method = 4;/将方式全局变量赋值为4/return 5;/返回5结果break;/跳出分支判断case 6: /速度2/4speed = 2;/赋值速度全局变量为2MOTOR_ON = 50;/设置PWM占空比为50/100/return 6;/返回6结果break;/
46、跳出分支判断case 7: /速度4/4speed = 4;/赋值速度全局变量为4MOTOR_ON = 100;/设置PWM占空比为100/100/return 7;/返回7结果break;/跳出分支判断case 8: /ONstate =1;/赋值洗衣机运行状态选择1/return 8;/返回8结果break;/跳出分支判断case 9: /OFFstate = 0;/赋值洗衣机运行状态选择0/return 9;/返回9结果break;/跳出分支判断case 10:/START/PAUSEif(key=0)/判断开始/暂停键是否按下,是继续st_pau=1;/赋值洗衣机运行全局变量为1key
47、+;/key自加1else st_pau=2;/当前洗衣机运行全局变量为2key-;/key自减1/return A;/返回A结果break;/跳出分支判断 /*LCD显示*/ void display()reentrant int level_1,level_2,level_3,voltage_1,voltage_2,voltage_3; /定义水位、电压显示百位、十位、各位。由于显示直接采用返回AD转换值,所以需要按照百、十、个位进行显示 clearLCD();/LCD清屏 /process: 1浸泡,2脱水,3洗涤,4进水,5漂洗, /method:1方式一,2方式二,3方式三,4方式四
48、 /speed:1速度1/4,2速度2/4,3速度3/4,4速度4/4 level_1 = ad_level / 100 + 48;/获得水位检测百位,同时转化为ASCII码 level_2 = (ad_level %100 ) /10 + 48;/获得水位检测值十位,同时转化为ASCII码 level_3 = (ad_level %10 ) + 48; /获得水位检测值个位,同时转化为ASCII码 voltage_1 = ad_voltage / 100 + 48; /获得电压转换值百位,转化为ASCII码 voltage_2 = (ad_voltage %100 ) /10 + 48;/获得电压转换值十位,转化为ASCII码 voltage_3 = (ad_voltage %10 ) + 48;/获得电压转换值个位,转化为ASCII码 if (state = 1)/如果洗衣机当前运行状态为on开启状态 switch(process)/根据不同的运行状态,在LCD第一行显示运行状态信息 case 1: /进水 write_data(J);/显示字符J write_data(I);/显示字符I write_data(N);/显示字符N write_data(S);/显示字符S write_data(H);/显示字符H write_data(U);/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026马年年会盛典:策马扬鞭启新程
- 物联网实时定位-洞察与解读
- 中药质量控制标准-第1篇-洞察与解读
- 技术驱动增长-洞察与解读
- 深海散射层生物多样性-洞察与解读
- 2026年上海健康医学院单招职业倾向性考试题库附参考答案详解(培优)
- 2026年上海海事大学单招职业适应性考试题库及答案详解(新)
- 2026年上饶幼儿师范高等专科学校单招职业倾向性测试题库带答案详解(模拟题)
- 2026年上海政法学院单招职业适应性测试题库及答案详解(夺冠系列)
- 2026年云南经贸外事职业学院单招职业适应性测试题库附答案详解(培优a卷)
- 2025年中考道德与法治真题试题和答案详解
- 多模态虚假信息分析课题申报书
- 2026年乌鲁木齐市高中美术创作能力测试试卷及答案
- 2026北京海淀初二上学期期末英语试卷和答案
- 预拌干混砂浆培训课件
- 2025年智慧物流综合服务平台项目可行性研究报告
- 河道沙石破碎筛分施工方案
- 2026年高考地理压轴训练卷2
- 宠物领养协议书范文合集
- 2025-2030中国海苔市场深度调查研究报告
- 2025年小学数学课程标准试题及答案
评论
0/150
提交评论