ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:646.30KB ,
资源ID:7036957      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7036957.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(智能洗衣机系统的设计与实现.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

智能洗衣机系统的设计与实现.docx

1、智能洗衣机系统的设计与实现1. 智能洗衣机的设计方案智能洗衣机系统主要由水位采集模块、驱动模块、显示模块、控制模块四部分组成。控制模块由按键控制组成,用于实时时间的设置,洗衣机根据控制模块的输入值选择不同的工作状态。显示模块用于人机信息交换,显示当前工作时间和工作状态。水位采集模块用于采集当前洗衣机水的深度。智能洗衣机系统的设计方案图如图1所示。图1 智能洗衣机系统的设计方案图2. 单元模块设计2.1 主控制器简介本设计主控制器采用软件编程自由度大,外围模块丰富,硬件电路简单的可编程控制芯片STC89C52。STC89C52一类具有8位总线的单片机,由于其性价比和集成度高,受到广大技术开发人员

2、的青睐。 2.1.1 STC89C52单片机特点STC89C52芯片具有如下特点: STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。 低8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工

3、作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。和atmel的对比STC89C52RC单片机: 8K字节程序存储空间;512字节数据存储空间;内带4K字节EEPROM存储空间; 可直接使用串口下载; AT89S52单片机: 8K字节程序存储空间; 256字节数据存储空间;没有内带EEPROM存储空间; 具有串行在线编程能力; 强大的中断功能; 抗干扰力强; 运行环境温度范围为-40+85,适合于工业环境。STC98C52单片机的所有外围模块的控制都是通过特殊寄存器来实现的,故其程序的编写相对简单。图2 STC89C522.1.2 STC89C52最小系统电路设计

4、 电源电路该电源电路采用直接由电源适配器提供+5V电压,经过稳压电路后供STC98C52工作。并且将数字电源与模拟电源通过电感隔离。通过发光二极管指明电源电路工作正常。电源电路图如图3所示。 图3 电源电路图 晶振电路STC89C52RC内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.212MHz之间选择,电容值在530pF之间选择,电容值的大小可对频率起微调的作用。外部方式的时

5、钟电路如图4所示,RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。RXD接地,TXD接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。图4 晶振电路图2.2洗衣机电机驱动电路设计 在本设计中电机驱动电路采用了H桥驱动电路,电机驱动电路图如图5所示。当p26接高电平,p27接低电平时;Q7导通,Q6截止。Q5为NPN,此时Q5基极的电平

6、高于发射极导通;Q4为PNP,此时Q4基极的电平低于发射极导通。Q3、Q8截止,电流经Q4到电机,电机到Q5,再经Q5到地,此时电机正转。当p27接高电平,p26接低电平时;Q6导通,Q7截止。Q8为NPN,此时Q8基极的电平高于发射极导通;Q4为PNP,此时Q4基极的电平低于发射极导通。Q5、Q4截止,电流经Q3到电机,电机到Q8,再经Q8到地,此时电机正转。在设计中为了避免电机的反电动势的危害,我们在晶体管的两端接了开关二极管1N4148,因为电机线圈在电机开闭瞬间的反电动势通过会高过电源,这样对晶体管电路会有很大影响甚至烧毁。图5 电风扇驱动电路图2.3 显示电路设计2.3.1 数码管简

7、介LED数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等,led数码管根据LED的接法不同分为共阴和共阳两类,LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。共阴和共阳极数码管,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。led数码管广泛用于仪表,时钟,车站,家电等

8、场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED数码管内部引脚图片 图6这是一个7段两位带小数点 10引脚的LED数码管 图6 引脚定义每一笔划都是对应一个字母表示 DP是小数点。图6 数码管内部结构数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。静态显示驱动静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显

9、示则需要58=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮

10、。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。2.3.2 数码管显示电路设计数码管显示电路由三极管驱动。显示电路图如图7所示。数码管显示电路中发光二极管用于指示该模块供电是否正常。4位数码管显示电路中12位并入并出芯片,数码管的a,b,c,d,e,f,g,dp为数据串行输入引脚,与单片

11、机的数据输出引脚相连。S1,S2,S3,S4为位先,由单片机控制。为了减少占用单片机I/O口,在设计电路时使用动态扫描。但在显示电路中也占用12个I/O口,有效地减少占用单片机I/O口,在I/O口较少的单片机中比较实用。图7 数码管显示电路图2.4 水位检测模块设计水位检测模块通过水位传感器实现对桶内水位的检测。水位传感器内部存在LC振荡电路,当水压改变后电容值也会随之改变,从而影响水位传感器的输出频率,不同的水位对应一个吲定的频率值。本课题采用sw 1 型水位传感器,在零水位时输出频率为268kHz,随着水位的升高水位传感器输出的频率会之减小,当达到本课题设计的最高水位390mm时输出频率为

12、22 57kHz。将水位传感器的输出连接到水位检测电路如图8所示:图8水位检测电路2.5 按键控制模块设计本设计按键控制由4个小按键组成。通过按键编址电路把按键的开关信息转化为逻辑电平“0”或“1”,接收电路接收此脉冲信号,然后送入单片机,并且根据信号完成对控制电路的控制。按键电路按键电路主要由4个按键电路组成。电路图如图9所示。图9 无线遥控发射电路图4个小按键有4个输出端RES,p32,p24,p25,输出均是低电平有效。并且带有一个外部中断电路。当没有按键按下时,输出端为高电平。 单片机复位电路RST引脚是复位信号的输入端。复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器

13、周期)以上。若使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作。产生复位信号的电路逻辑如图10所示:图10 电路逻辑整个复位电路包括芯片内、外两部分。外部电路产生的复位信号(RST)送至施密特触发器,再由片内复位电路在每个机器周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需要的信号。复位操作有上电自动复位相按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图11所示。这佯,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。按键手动复位有电平方式和脉冲方式两种。其中,按键

14、电平复位是通过使复位端经电阻与Vcc电源接通而实现的,其电路如图11所示;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的,其电路如图11所示:图11 复位电路2.6蜂鸣器模块设计本设计控制由一个蜂鸣器和一个三极管组成。通过单片机输出高低电平实现对三极管的控制,从而达到控制蜂鸣器的作用。当单片机的p30口输出高电平时,三极管导通,p30口输出为低电平时三极管不导通。电路如图12所示。图12 蜂鸣器电路3.系统软件设计3.1 系统软件结构在硬件构建了智能洗衣机系统的基本功能之后,软件所需实现的功能主要是针对系统功能的实现及数据的处理和应用。系统软件需要实现信号控制、信号采集、信号处理。本设

15、计以单片机STC89C52作为主控制器,整个系统软件设计均采用C语言实现。整个系统软件由主程序、温度采集程序、时间读写程序、显示程序与控制程序等几个主要部分。3.2 主程序流程图主程序是单片机程序的主体,整个单片机系统软件的功能实现都是在其中完成的。主程序包括时间处理程序、电机控制程序、显示程序、数据采集四部分。主程序流程图如图13所示。图13 主程序流程图3.3 控制程序流程图操作控制程序分为时间校正程序和电机控制程序两部分。电机控制程序为按键控制程序。电机控制程序是整个程序的核心部分。电机控制程序流程图如图14所示。图14 风扇控制程序流程图当用户打开洗衣机时,设定好洗涤时间和水量,按开始

16、键,洗衣机开始运行。电机在一定的时间内正转和反转。当洗涤时间达到用户所设定的时间时,电机停止,排水,蜂鸣器响,提醒用户。若用户选择脱水,并设定好时间后,洗衣机开始脱水。若用户不选择脱水,则等待关机。4.系统调试 系统调试由硬件调试和软件调试组成。硬件调试包括静态调试、断电检查、通电检查、联机检查、动态调试。软件调试基本方法先独立后联机、先分块后组合、先单步后连。常见的软件错误类型有程序失控、不响应中断错误、循环响应中断错误、输入输出错误、结果不正确。4.1 测试环境及工具测试温度环境:25-40摄氏度。测试电机速度:用直流电机模拟。测试仪器及软件:数字万用表,keil4,proteus等。4.

17、2 硬件调试断电检查:在系统断电的情况下,对照原理图和PCB检查元器件焊接是否正确。检查无误后,用万用表检查电路中有无短路断路现象。通电检查:给系统上电后,用万用表检测各点电压电流是否符合设计要求。电机调速电路中A接VCC、B接地或B接VCC、A接地,检测电风扇是否可以正转或反转。4.3 软件调试整个程序包括主程序、水位采集程序、时间读写程序、显示程序与控制程序。针对这些模块程序我们首先调试的是显示程序,再调的水位采集程序、时间读写程序,最后调的控制程序。一旦显示程序调试好了,就可以通过这个窗口观察程序内部数据和状态了。整个程序的调试主要是控制程序的调试,显示程序、水位采集程序、时间读写程序的

18、调试,我们直接移植了51单片机的程序。移植过程主要修改了端口的读写和一些延时函数保证端口的正确读写和读写操作时序正确。控制程序的调试过程中首先调试电机的手动控制,再调试电机的自动控制、最后定时功能。在调试过程中我们碰到了一些问题。如在调试自动控制时,我们发现电机进入自动调速模式后不能通过电机按键关闭,只有退出该模式才能启动按键关闭。5.设计总结在小组同学不断研讨和学习中,我们已经出色完成这次课程设计,这已经是我第二次做课程设计。回想大一进入电子工程系时候,那些对自己以后专业的盲动到动手写报告记录内容,参加小组一起设计智能洗衣机调控。我一次次感觉到自己更加迈上电子之路。小组宗旨了是此次的设计并不

19、奢望一定能成功,但一定要对自已学的各种电子知识能有一定的运用能力,我们做设计的目的是希望能检查下对所学知识的运用能力的强弱,开始慢慢走上电子设计的路,这一点是难能可贵的。在做这次智能洗衣机时,它涉及到了我们大一、二学的几门课程的知识,比如单片机的知识,CPU的运用等从理论知识到做出实物,我们从课本到实践过程中得到升华和提高。我们边讨论边做实物,像老师请教方法,和同学得出结论,并用完善的报告来记录,这些都是我们课程设计做的相当出色的条件。我们也对自己做相当要求,要求绝不含糊,认真体会自己这次课程设计的内容,从中得到更多提高!锲而不舍,金石可镂!这个词来形容我们这次课程设计太合适不过了。在刚接触无

20、从下手到后来逐步完善,时刻在每道工序上的不放弃,要求做到自己最好,这一些都得到了回报。一个人能力与精力是有限的,但是团队则不一样,我们小组齐心协力也让我们更轻松来做,培养我们的团队合作意识。经过这次课题设计,使我对我们这个专业有了更深的了解,也增加了我对电子专业的兴趣。通过这次课程设计,我深深体会到了一点:理论与实践是永远不可能分开的。在完成好专业知识的同时,不忘经常亲自动手实践,这样才能更好的掌握知识,并学以自用,这样才能成为一个高端的电子专业人才。6.参考文献1 张琳娜传感检测技术及应用M中国计量出版社,2009.5.78-902 邵敏权单片机原理实验及应用M吉林科学技术出版社,2008.

21、1.112-1343 徐科军传感器与检测技术M电子工业出版社,2008.10.97-1175 潘其光常用测温仪表技术问答M国防工业出版社,2006.4.56-896 戴 维51单片机C语言应用程序设计实例精讲M电子工业出版社,2006.120-1367 张黎平. 家用电器科技M. 中华人民共和国新闻出版总署,19958 李开泰. 有限元方法基础及其应用M. 西安交通大学出版社,19989 沃德海伦. 模态分析理论与试验M. 北京理工大学出版社,2001.127-14210 邓则名. 电器与可编程控制器应用技术M. 机械工业出版社,2004.附录1:作品实物图附录2:作品原理图附录3:作品PCB

22、图附录4:作品仿真图附录5:作品程序#ifndef _SYSCTL_H_#define _SYSCTL_H_#include#define uint unsigned int#define uchar unsigned char#define T 1#define X 0#define Y 1/共阳码管09字符extern uchar code tabl;extern uint count;extern uchar mstime;extern uchar stopp; extern uchar chushizhi;/extern uchar tuoshui;/位定义sbit p10 = P10

23、;sbit p11 = P11;sbit p12 = P12;sbit p13 = P13;sbit p14 = P14;sbit p15 = P15;sbit p16 = P16;sbit p17 = P17;sbit p20 = P20;sbit p21 = P21;sbit p22 = P22;sbit p23 = P23;sbit p24 = P24;sbit p25 = P25;sbit p26 = P26;sbit p27 = P27;sbit p30 = P30;sbit p32 = P32;sbit p33 = P33;extern void delay(uint x); /延

24、时函数extern void settime(void); /设定时间函数extern void Init(void); /程序初始化extern void displayjian(void); / 时间减extern void displayjia(void); /时间加extern void display(void); /显示函数#endif#includeSysCtl.h/共阴数码管09字符uchar code tabl = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uint count = 0; /定义秒uchar mstim

25、e = 0; /定义分uchar stopp = 1; /停止标志uchar chushizhi = 20; /设定时间值/uchar tuoshui = 0;void display(void) /显示函数 p20 = Y; p21 = X; p22 = X; p23 = X; P1 = tablmstime/10; delay(T); p20 = X; p21 = Y; p22 = X; p23 = X; P1 = tablmstime%10; delay(T); p20 = X; p21 = X; p22 = Y; p23 = X; P1 = tablcount/10; delay(T)

26、; p20 = X; p21 = X; p22 = X; p23 = Y; P1 = tablcount%10; delay(T);void displayjian(void) mstime-; if(mstime = 20) mstime = 19; display(); void displayjia(void) mstime+; if(mstime = 20) mstime = 0; display(); void delay(uint x) uint i = 0,j = 0; for(i = 0;i x;i+) for(j = 0;j = 500;j+);/定时50mstimer0()

27、 interrupt 1 using 1 p33 = !p33; TH0 = 0x3c; /重置定时初值 TL0 = 0xb0;/定时1stomer1() interrupt 3 using 2 count+; /1s到 if(count = 1) p26 = 1; p27 = 0; if(count = 25) p26 = 0; p27 = 0; if(count = 38) p26 = 0; p27 = 1; if(count = 49) p26 = 0; p27 = 0; if(count = 60) count = 0; displayjia(); if(mstime = chushi

28、zhi) p30 = 1; TR0 = 0; TR1 = 0; int0() interrupt 0 using 3 delay(15); if(p32 = 0) stopp = 0; void Init() p26 = 0; p27 = 0; p30 = 0; p33 = 0; TMOD = 0x61; /T0方式1定时,T1方式2计数 TH0 = 0x3c; /预置定时初值 TL0 = 0xb0; TH1 = -7; TL1 = -7; ET0 = 1; EX0 = 1; IT0 = 0; ET1 = 1; TR0 = 0; TR1 = 0; EA = 1;void settime(voi

29、d) while(stopp) if(p24 = 0) delay(50); if(p24 = 0) displayjia(); if(p25 = 0) delay(50); if(p25 = 0) displayjian(); display(); chushizhi = mstime; mstime = 0; TR0 = 1; TR1 = 1;#includeSysCtl.hvoid main() uint i; Init(); /程序初始化 settime(); /设定定时时间 while(1) display(); /显示时间 if(mstime = chushizhi) for(i = 0;i 200;i+) display(); /显示时间 delay(1); if(i = 199) p30 = 0; mstime = 0; count = 0; stopp = 1; settime(); if(mstime = chushizhi) for(i = 0;i 200;i+) display();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1