毕业设计(论文)基于单片机的全自动洗衣机控制系统设计.doc

上传人:laozhun 文档编号:3980434 上传时间:2023-03-30 格式:DOC 页数:29 大小:176KB
返回 下载 相关 举报
毕业设计(论文)基于单片机的全自动洗衣机控制系统设计.doc_第1页
第1页 / 共29页
毕业设计(论文)基于单片机的全自动洗衣机控制系统设计.doc_第2页
第2页 / 共29页
毕业设计(论文)基于单片机的全自动洗衣机控制系统设计.doc_第3页
第3页 / 共29页
毕业设计(论文)基于单片机的全自动洗衣机控制系统设计.doc_第4页
第4页 / 共29页
毕业设计(论文)基于单片机的全自动洗衣机控制系统设计.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《毕业设计(论文)基于单片机的全自动洗衣机控制系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的全自动洗衣机控制系统设计.doc(29页珍藏版)》请在三一办公上搜索。

1、1 绪论1.1本课题的研究目的和意义 洗衣机是人们日常生活中常见的一种家电,已经成为人们生活中不可缺少的家用电器。在工业生产中应用也十分广泛。但是传统的基于继电器的控制,已经不能满足人们对洗衣机的自动化程度的要求了。洗衣机需要更好地满足人们的需求,必须借助于自动化技术的发展。而随着单片机技术的发展,用单片机来作为控制器,就能很好地满足洗衣机对自动化的要求,并且控制方式灵活多样,控制模式可以根据不同场合的应用而有所不同。自动化技术的飞速发展使得洗衣机由初始的半自动式洗衣机发展到现在的全自动洗衣机,又正在向智能化洗衣机方向发展1。单片机又称微控制器,或称嵌入式控制器。而现在的智能家电无一例外是采用

2、微控制器来实现的,所以家用电器是单片机应用最多的领域之一。它是家用电器实现智能化的心脏和大脑。由于家用电器体积小,故要求其控制器体积更小以便能嵌入其结构之中。而家用电器品种多,功能差异也大,所以又要求其控制器有灵活的控制功能。单片机以微小的体积和编程的灵活性而产生多种控制功能,完全可以满足家用电器的需求。1.2 洗衣机的发展和分类1.2.1 洗衣机的发展从古到今,洗衣服都是一项难于逃避的家务劳动,而在洗衣机出现以前,对于许多人而言,它并不像田园诗描绘的那样充满乐趣,手搓、棒击、冲刷、甩打这些不断重复的简单的体力劳动,留给人的感受常常是:辛苦劳累。 1858年,一个叫汉密尔顿史密斯的美国人在匹茨

3、堡制成了世界上第一台洗衣机。该洗衣机的主件是一只圆桶,桶内装有一根带有桨状叶子的直轴。轴是通过摇动和它相连的曲柄转动的。次年在德国出现了一种用捣衣杵作为搅拌器的洗衣机,当捣衣杵上下运动时,装有弹簧的木钉便连续作用于衣服。19世纪末期的洗衣机已发展到一只用手柄转动的八角形洗衣缸,洗衣时缸内放入热肥皂水,衣服洗净后,由轧液装置把衣服挤干。1874年,“手洗时代”受到了前所未有的挑战,美国人比尔布莱克斯发明了木制手摇洗衣机。这套装置的问世,让那些为提高生活效率而冥思苦想的人士大受启发,洗衣机的改进过程开始大大加快。1880年,美国又出现了蒸气洗衣机,采用了智能水循环系统,可将高浓度洗涤液与高温蒸气同

4、时对衣物进行双重喷淋,贯穿全部洗涤过程,实现了全球独创性的“蒸汽洗”全新洗涤方式。蒸汽洗衣机之后,水力洗衣机、内燃机洗衣机也相继出现。1910年,美国的费希尔在芝加哥试制成功世界上第一台电动洗衣机。电动洗衣机的问世,标志着人类家务劳动自动化的开端。 1922年,美国玛塔依格公司改造了洗衣机的洗涤结构,把拖动式改为搅拌式,使洗衣机的结构固定下来,这也就是第一台搅拌式洗衣机的诞生。搅拌式洗衣机结构科学合理,受到人们的普遍欢迎。1932年,美国本德克斯航空公司宣布,他们研制成功第一台前装式滚筒洗衣机,洗涤、漂洗、脱水在同一个滚筒内完成。这意味着电动洗衣机的型式跃上一个新台阶,朝自动化又前进了一大步!

5、第一台自动洗衣机于1937年问世。这是一种前置式自动洗衣机。靠一根水平的轴带动的缸可容纳4000克衣服。衣服在注满水的缸内不停地上下翻滚,使之去污除垢。到了40年代便出现了现代的上置式自动洗衣机。随着工业化的加速,世界各国也加快了洗衣机研制的步伐。首先由英国研制并推出了一种喷流式洗衣机,它是靠筒体一侧的运转波轮产生的强烈涡流,使衣物和洗涤液一起在筒内不断翻滚,洗净衣物。1955年,在引进英国喷流式洗衣机的基础之上,日本研制出独具风格、并流行至今的波轮式洗衣机。至此,波轮式、滚筒式、搅拌式在洗衣机生产领域三分天下的局面初步形成。60年代的日本出现了带干桶的双桶洗衣机,人们称之为“半自动型洗衣机”

6、。70年代,生产出波轮式套桶全自动洗衣机。70年代后期,以电脑(实际上微处理器)控制的全自动洗衣机在日本问世,开创了洗衣机发展史的新阶段。80年代,“模糊控制”的应用使得洗衣机操作更简便,功能更完备,洗衣程序更随人意,外观造型更为时尚。90年代,由于电机调速技术的提高,洗衣机实现了宽范围的转速变换与调节,诞生了许多新水流洗衣机。此后,随着电机驱动技术的发展与提高,日本生产出了电机直接驱动式洗衣机,省去了齿轮传动和变速机构,引发了洗衣机驱动方式的巨大革命。 之后,随着科技的进一步发展,滚筒洗衣机已经成了大家耳濡目染的产品。伴随着科技的进一步发展,相信新型更适合人们使用的洗衣机会给我们的生活带来新

7、的方式2。1.2.2 洗衣机种类家用洗衣机的种类很多,按其结构原理可以分为以下几类:1、波轮式洗衣机:这种洗衣机的主要优点是洗涤时间短,洗净度较高,水位可调,品种多,适宜于洗涤棉、麻、纤和混纺等织物。缺点是易使衣物缠绕,影响洗净的均匀性,磨损率也较高。新颖的大波轮、新水流洗衣机,其性能有明显的改善。2、滚筒式洗衣机:其优点是洗涤动作比较柔和,对衣物的磨损小,用水量和洗涤剂都比较省,适合洗涤毛料织物。但机器结构复杂,洗净度低,耗电量大,售价较高。3、搅拌式洗衣机:这种洗衣机好似手工洗涤的揉搓,衣物受力均匀,衣物磨损小,洗涤容量大。缺点是洗涤时间长,结构比较复杂,售价高。4、喷流式洗衣机:其特点是

8、洗涤时间短,污垢容易洗掉,机器结构简单,故障较少。但由于水流激烈,衣物容易拧绞在一起,因而洗涤不均,对衣物损伤较重,洗涤时洗涤液容易飞溅3。除此之外还有波轮搅拌式洗衣机、喷淋漂洗洗衣机、振动式洗衣机、超声波洗衣机等等。1.3 课题研究方向洗衣机的洗涤原理是由模拟人工洗涤衣物发展而来的,即通过翻滚、摩擦、水的冲刷等机械作用以及洗涤剂的表面活化作用,将附着在衣物上的污垢除掉,以达到洗净衣物的目的。 现今,大多数的洗衣机都使用以单片机为核心的控制电路来控制电动机、数码显示管、进水阀、排水阀及蜂鸣器的电压输出,使洗衣机根据程序运转。 本设计在设计洗衣机的控制系统时,洗衣机通过控制系统设定洗衣程序,在内

9、桶(洗涤脱水桶)自动完成注水、洗涤、漂洗、浸泡、排水和脱水全过程。洗衣时,控制系统打开进水电磁阀,开始注水;当洗涤脱水桶内的水位达到系统设定值时,水位检测器向单片机发送一个低电平,通知控制系统关闭进水电磁阀,同时启动电机洗衣。电机在系统的控制下进行正转、停、反转,通过传动机构带动波轮执行洗涤程序;当洗涤时间终了,控制系统切断电机电路,打开排水电磁阀,开始排水;然后再次注水,洗衣机进入漂洗状态,完成漂洗程序(通常为2次漂洗),再注水进行浸泡;浸泡完,开始排水,同时,排水电磁铁的动作带动减速离合器制动臂,使离合器棘轮与棘爪分离,制动带松开,为脱水程序作好准备;排水结束后,系统控制电机单方向高速运转

10、,完成脱水程序;当脱水程序终了,系统控制排水电磁铁和电机断电,排水阀和减速离合器的制动臂复位,同时蜂鸣器奏响音乐,通知用户整个洗衣程序结束4。本设计要实现的功能有:(1)用户参数的输入:用户根据衣物的数量和质地确定洗涤时间、漂洗次数、脱水时间,然后通过按键输入具体的参数。(2)参数和时间的显示:灵活地运用数码显示管会带来许多方便,它可以用来显示用户实时所处的洗衣功能状态以及所剩时间。(3)实时控制的实现:单片机在获取了用户输入的参数后,对其进行分析处理,然后按照计算结果对洗衣过程进行实时控制。(4)水位检测的实现:水位的高低影响着整个洗衣过程的进行,因此需要水位检测器将水位的变化发送给单片机,

11、单片机根据水位的情况确定下一步应该做什么。(5)洗衣过程的实现:一般的洗衣过程包括注水、洗涤、漂洗、排水和脱水这些步骤。在洗衣过程中,系统主要控制进水电磁阀、排水电磁阀的打开和关闭,电机的正转、反转和停止。(6)洗衣完毕的通知:当洗衣过程结束后,蜂鸣器就报警通知用户洗衣完毕。2 硬件设计基本介绍2.1 总体方案 本设计以MCS-51单片机为核心,设计由电源、数字控制电路和机械控制电路三大模块构成的控制系统,实现对洗衣机整个洗衣过程的控制。洗衣过程主要包括洗涤过程、漂洗过程、脱水过程。根据洗衣过程的要求,控制程序设计主要包括主程序、内部定时中断服务程序、外部服务中断程序的设计。根据设计要求,其基

12、本系统组成框图如2.1所示。2.2 器件及原理简介采用51系列单片机作为控制核心,主要包括电源部分、功能设置及控制电路、洗衣机状态显示及输出控制电路。主要组成部件有:单片机、74LS138译码器、指示灯、LED显示器、电动机、蜂鸣器、电磁阀以及按键等。根据洗衣机的基本功能,硬件电路设计需要考虑洗衣机的进水、洗涤、漂洗、排LED显示电路水位检测暂停键K0强度选择键K1洗衣状态设定键K2时间设定键K3漂洗次数设定键K4MCS-51变压器整流滤波稳压洗衣机状态显示指示灯D0D7电机正转电机反转进水阀排水阀 双向晶闸管 触发电路蜂鸣器时钟电路+5V+12V启动键K5图2.1 系统组成框图水、脱水等问题

13、,及时间设定长短、工作时间或剩余时间的显示、工作过程中的暂停、启动、复位、洗完后的报警等问题5。通过单片机的P0口连接数码管发送段码,P2.4P7口通过三极管扩大电流去控制数码管的位,显示时采用动态扫描方式,轮流循环扫描。通过P1.6口连接蜂鸣器实现报警电路。通过P1.0P1.5口作为按键输入,并通过二极管连接到单片机的中断入口引脚,当有键按下,就会产生中断,执行相关按键的功能。根据系统框图可设计出系统原理图,见附录A。3 软件设计单片机应用系统的软件设计是系统设计中最基本而且工作量较大的任务。与系统机上操作系统支持下的纯软件不同,单片机的软件设计是在裸机的条件下进行的,而且随应用系统的不同而

14、不同。在软件中一般需考虑以下几个方面:1)根据要求确定软件的具体任务细节,然后确定合理的软件结构。一般系统软件的主程序和若干个子程序及中断服务程序组成,详细划分主程序、子程序和中断服务程序的具体任务,确定各个中断的优先级。主程序是一个顺序执行的无限循环的程序,不停地顺序查询各种软件标志,以完成对事务的处理。在子程序和中断服务程序中,要考虑现场的保护和恢复,以及它们和主程序之间的信息交换方法。2)程序的结构用模块化结构,即把监控程序分解为若干个功能相对独立的较小的程序模块分别设计,以便于调试。具体设计时可采用自底向上或自顶向下的方法。3)在进行程序设计时,先根据问题的定义描述出各个输入变量和输出

15、变量之间的数学关系,即建立数学模型,然后绘制流程图,再根据流程图用汇编语言进行具体程序的编写。4)在程序设计完成后,利用相应的开发工具和软件进行程序的汇编,生成程序的机器码6。本设计中系统软件是采用C51编写的.在研制单片机应用系统时,汇编语言是一种常用的软件工具,具有简单的语法结构和强大的处理功能,具有运行速度快、编译效率高,移植性好和可读性强等多种优点,可以实现对系统便件的直接操作。用C语言来编写目标系统软件,可以大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而开发出大规模、高性能的应用系统7。3.1 主程序设计系统的主程序设计主要完成系统初始化、中断优先级设定,以及调用其

16、它各模块程序,即主要实现各模块程序的链接。系统上电复位初始化后,首先进行系统初始化,包括中断的选择及设置,定时器的选择,定时时间,及其相关设置,初始化后,单片机进入主程序,在这“主程序”中不停的循环运行,除非有其它中断。主程序流程图如图3.1所示。编写主程序如下:void main() initialize(); /初始化设置 while(1) display(); /显示程序 调用calculate(); / 显示数据的计算程序调用 Y N Y N 开始系统初始化启动相关功能洗衣状态显示洗衣功能设置是否有报警报警图3.1 软件主流程图3.2 水位检测程序设计水位检测程序的原理是在洗衣机水箱中

17、的适当高度放置两个水位检测器,当水位达到某一高度时,相应的水位探测器的开关接通,把电信号送入单片机的I/O口,经过单片机的处理,可以得到已经加好水或水放完,可以开始以下操作。本设计用单片机P2.2P2.3接口接两个水位传感器,在自动模式下,当水位到达某个传感器时,相应的传感器输出一个低电平到单片机的引脚,单片机通过引脚的电平高低来判断水位的高低。基本流程是当最低点和最高点的两个检测点都显示低电平时说明洗衣机已经放满水;当检测到最高点从低电平变为高电平,经过一段时间后最低点也由低电平变为高电平时说明此时洗衣机放水完毕。3.3 洗涤程序设计启动开关,进水阀通电,向洗衣机供水,当供水达到预定水位时,

18、水位开关接通,进水阀断电关闭,停止供水。洗涤电动机接通电源,带动波轮或桶)旋转,产生各种形式的水流搅动衣物进行洗涤。通过电动机不停的正转、停、反转、反复循环,形成洗涤水对洗涤物产生强烈的翻滚作用。程序流程图如图3.2所示。Y N 洗衣开始电机正转10S电机停转,延时剩余时间=0?电机反转10S洗涤结束 图3.2 洗涤过程程序流程图3.4 脱水、漂洗程序设计脱水前先打开排水阀排水,然后启动电动机脱水,并保持排水阀开启,然后停止脱水。接着判断漂洗次数的值,若次数变为0则洗衣结束,开蜂鸣器提醒洗衣结束,系统返回初始待命状态,若次数不为0,则再次执行进水操作,进入下一循环。程序流程图如图3.3所示:3

19、.5 显示程序设计在本系统的设计中作为人机对话的一个重要部分就是显示器,本设计要显示定时时间,洗涤时间,还有其它指示灯的状态显示,为了节省单片机的I/O口,把8个状态指示灯按照数码管的方式连接,即8个状态指示灯相当于一个数码管,这样硬件电路中相当于使用四位共阳LED作为系统的显示器。数码管要正常显示,就要用驱动电N 漂洗脱水开始开进水阀,漂洗结束开排水阀,脱水开蜂鸣器,报警关排水阀漂洗次数=0?Y 图3.3 脱水、漂洗程序流程图路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类9。静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码

20、管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码为十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多。动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a,b,c,d,e,f,g,dp”的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选

21、通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动10。系统定期的扫描每个数码管,借助于人的视觉残留效应,使的数字得以正确显示,显示电路采用数码管动态扫描电路,占用单片机I/O口资源少,显示电路成本比较低,与静态扫描电路相比较,电路简单,成本低。硬件电路相对简单,在编写程序时,需要考虑循环扫描的时间。要显示的数据采用的查表法。查表法只需把转换结果按序编成表,连续存放在ROM中,用查表指令即可实现转换,查表法编程方便且程序量小,执行速度快,修正起来方便。本设计显示系统包括时间显示和次数显示。常用的显示器件有:液晶点阵(LCD)显示,数码管(LE

22、D)显示。根据本课题的设计要求,显示部分采用动态显示方法,用3位数码管,和8个LED指示灯显示。基本方法是:把8个指示灯当作一个数码管,这样一共是4位数码管。单片机的I/O口发送数码管的段码,接口P2.4P2.7通过三极管扩大电流去控制数码管的位,显示时采用动态扫描方式,轮流循环扫描。8个LED指示灯依次代表着自动/手动,运行/停止,强洗,标准洗,弱洗,洗涤状态,漂洗状态,脱水状态。另外三位数码管指示时间和次数,前两位指示时间,后一位指示次数。显示子程序流程图如图3.4所示:YNP0口送数据显示一段时间关闭该位打开要显示的位显示开始显示结束关闭显示图3.4 显示子程序流程图/* 功能:数码管显

23、示 说明: /*/ void display() P0=LEDnumber0; /送入第一位要显示的数据 LED0=0; /打开该位的控制,使其显示Delayms(5); /使该位显示5msLED0=1; /关闭该位的控制,使其不显示 P0=dis_8LEDnumber1; /送入第一位要显示的数据LED1=0; /打开该位的控制,使其显示Delayms(5); /使该位显示5ms LED1=1; /关闭该位的控制,使其不显示P0=dis_8LEDnumber2; /送入第一位要显示的数据LED2=0; /打开该位的控制,使其显示Delayms(5); /使该位显示5msLED2=1; /左第

24、三位 定时的个位P0=dis_8LEDnumber3; /送入第一位要显示的数据 LED3=0; /打开该位的控制,使其显示Delayms(5); /使该位显示5msLED3=1; /关闭该位的控制,使其不显示 3.6 按键程序设计按键电路的作用是设置一些功能,一般按键电路有按键查询式,CPU不断的检测是否有按键按下,这样将会耗费大量的CPU时间,且反应速度实时性不强;还有一种是中断式按键,只有当有按键按下时,单片机产生中断,开始处理按键的输入功能,没有键按下时单片机处理其他,不需要不停地查询按键是否按下。这样采用中断使按键反应速度快,同时减少单片机处理时间,本设计采用中断扩展式电路11。工作

25、原理如下:没有按键时,相关的I/O口为高电平,单片机的INT0也为高电平,当有键按下时,5V电压经过所按键上的电阻流向GND,这时由于按键闭合,按键上的低电平送入单片机的I/O口,同时与按键相连的二极管导通,由于二极管导通时,电压大约为0.7V,相当于低电平,这个低电平送入单片机的INT0产生中断,在中断里检查哪个I/O口为低电平,就可以判断是哪个按键按下,执行相关的那个按键的功能12。本设计中单片机P1.0P1.5作为按键输入,并通过二极管连接到单片机的中断入口引脚,当有键按下,就会产生中断,执行相关按键的功能。按键程序流程图如图3.5所示:运行/暂停Y次数设置NY是否按键5?下?时间设定Y

26、是否按键4?下?功能选择NY是否按键3?下?中断入口自动/手动Y是否按键1?下?N是否按键2?下?YN强度选择N是否按键6?下?N中断返回图3.5 按键程序流程图本设计中一共用到六个按键,通过连接单片机的P1.0P1.5口来实现按键的功能,按键1的作用是调节自动或者手动,按键2的作用是调节洗衣的强度,按键3的作用是调节洗衣功能,按键4的作用是设置时间,按键5的作用是设置次数,按键6的作用是控制洗衣机的运行与停止。具体电路如下图:根据硬件的设计方法,编写程序如下:/*功能:按键输入 说明:用到中断0, P2.0P2.5/*/void inkey_int0() interrupt 0 uchar

27、input; P2=P1|0x3f; input=P1; switch(input&0x3f) case 0x3e: /111110最右边 /按键1功能 break; case 0x3d: /111101 /按键1功能 case 0x3b: /111011 /按键1功能 case 0x37: /110111 /按键1功能break; case 0x2f: /101111 /按键1功能 break; case 0x1f: /011111 最左边 /按键1功能 break; default: break; 3.7 定时程序设计MCS-51单片机内部有两个可编程的16位定时器T0和T1。通过编程,可

28、以设定为定时器和外部计数方式。T1还可以作MCS-51串行口的波特率发生器。定时器T0由特殊功能寄存器TL0和TH0构成,定时器T1由特殊功能寄存器TL1和TH1构成。特殊功能寄存器TMOD控制定时器的工作方式,TCON控制其运行,TCON还包含了定时器T0和T1的溢出标志。定时器的中断由中断允许寄存器IE、中断优先级寄存器IP中的相应位进行控制。定时器T0的中断入口地址为000BH,T1的中断入口地址为001BH13。 定时器的编程包括; (l)置工作方式。 (2)置计数初值。 (3)中断设置。 (4)启动定时器。 由于MCS-51的定时器采用加1计数,因此,计数初值应根据计数器长度及计数值

29、来决定。对于同样的计数值,在采用13位计数器、16位计数器及8位计数器时,其计数初值各不相同。此外,方式0、1、3均不能自动恢复初值,如果要求重复计数必须在每次计数溢出后重新装入计数初值。 除了编写以上程序外,还要设置中断的开关,用定时器时还要计算定时时间,内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12个振荡器周期。因为实验系统的晶振是12MHz,所以定时常数的设置可按以下方法计算:机器周期=1212MHz1S(65536-定时常数)*1S=50mS定时常数TH0=0X3C; TL0=0XB014;本设计中在洗衣时需要设置洗衣时间,这部分程序设计采用单片机内部的定时器,用来

30、倒计时。洗衣机定时系统采用单片机的定时器0,工作方式1,当设定洗涤、漂洗和脱水时,单片机的定时器开始倒计时,前两位数码管显示设定好的时间每秒减,当剩余时间为0时第三位数码管显示的次数就减一,直至洗衣次数完全执行完。定时程序流程图如图3.6所示:Y定时器中断入口数据减1置TH0、 TL0计数初值是否1 秒?关闭中断,停止计时N定时结束?NY中断返回图3.6 定时程序流程图倒计时编程采用定时器0,方式1。/定时器0 /用于到计时void timer0() interrupt 1 using 0 TH0=0X3C; TL0=0XB0; /赋初值值50ms定时 cont1s+; if(cont1s=2

31、0) /cont1s=20 秒 /LEDnumber0+;if(LEDnumber08) LEDnumber0=0; timer-; if(!timer)TR0=0; /如果到计时结束停止计时 cont1s=0; 4 软件调试软件调试就是检查系统软件中的错误。常见的软件错误有程序失控、中断错误(不响应中断或循环响应中断)、输入/输出错误和处理结果错误等类型。要把各个程序模块分别进行调试,调试通过后再组合到一起进行综合调试,达到预定的功能技术指标后即可将软件固化。系统的调试过程要结合具体的仿真器进行15。对于一个新设计的电路板,调试起来往往会遇到一些困难,特别是当板比较大、元件比较多时,往往无从

32、下手。但如果掌握好一套合理的调试方法,调试起来将会事半功倍。单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试中被发现和纠正的。但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。可见硬件的调试是基础,如果硬件调试不通过,软件设计则是无从做起。硬件电路焊接好后,就可以编写相关的程序调试电路了,由于电路复杂,不可能一步全部完成,一般方法是,一边写软件一边调试,这样可以及时发现是硬件问题还是软件问题,也方便及时改正。首先应该确认电源电压是否正常。用电压表测量接地引脚跟电源引脚之间的电压,看是否是电源电压,例如常用的5V。接下来就是检查复位引脚电压是否正常。分别

33、测量按下复位按钮和放开复位按钮的电压值,看是否正确。然后再检查晶振是否起振了,一般用示波器来看晶振引脚的波形,注意应该使用示波器探头的“10”档。另一个办法是测量复位状态下的I/O口电平,按住复位键不放,然后测量I/O口(没接外部上拉的P0口除外)的电压,看是否是高电平,如果不是高电平,则多半是因为晶振没有起振。另外还要注意的地方是,如果使用片内ROM的话(大部分情况下如此,现在已经很少有用外部扩ROM的了),一定要将EA引脚拉高,否则会出现程序乱跑的情况。有时用仿真器可以,而烧入片子不行,往往是因为EA引脚没拉高的缘故(当然,晶振没起振也是原因只一)。经过上面几点的检查,一般即可排除故障了。

34、如果系统不稳定的话,有时是因为电源滤波不好导致的。在单片机的电源引脚跟地引脚之间接上一个0.1uF的电容会有所改善。如果电源没有滤波电容的话,则需要再接一个更大滤波电容,例如220uF的。遇到系统不稳定时,就可以并上电容试试(越靠近芯片越好)16。其次显示器部分的调试也很重要,要避免显示器接触不良而导致故障,一般显示器调试通过后,键盘调试就比较简单,完全可以借助于显示器,利用程序进行调试。利用开发装置对程序进行设置断点,通过断点可以检查程序在断点前后的键值变化,这样可知键盘工作是否正常。结 论本设计以MCS-51单片机为核心,设计由电源电路、数字控制电路和机械控制电路三大模块构成的控制系统,实

35、现对洗衣机整个洗衣过程的控制。洗衣过程主要包括洗涤过程、漂洗过程、脱水过程。根据洗衣过程的要求,控制程序设计主要包括主程序、内部定时中断服务程序、外部服务中断程序的设计。本设计侧重于软件的设计,采用C语言编程,通过程序实现洗衣机的自动完成注水、洗涤、漂洗、和脱水全过程,洗衣过程通过控制电机的正转、停、反转来实现强洗、标准、弱洗,用数码管来显示洗衣各功能的剩余时间以及实时所处的洗衣状态,最终通过蜂鸣器的报警来通知用户整个洗衣程序的结束。本设计已基本实现洗衣机的各种功能,但是由于自身水平有限等原因,本设计中没有设计电源电路,直接用5V直流电源取代,同时在信号输出方面做的还不够,所以本设计还存在一些

36、不足,有待改进。致 谢经过一个学期的努力,我和我的同组人黄金金同学已基本将我们的毕业设计-基于MCS-51单片机的洗衣机控制系统设计完成。首先最要感谢的是我们的指导老师-纪剑祥老师。在本次设计任务中我们遇到了好多困难,是纪老师在我们不知所措的时候给了我们精心指导,纪老师严谨的治学态度、对科研工作的执着追求、谦逊和蔼的风范对自己产生的深远影响,使自己受益终生。在他的严格要求下,我们的设计有了很大的进展,每次的指导我们都会从中获得丰富的理论知识同时也会提高实践能力,这对我将来进一步学习电子方面的知识有着极大的帮助。同时还要感谢我的同组人黄金金同学,在与他和合作中他给了我很大的帮助,与他的讨论和交流

37、给了自己很多有益的启迪,对自己掌握学科知识、完成设计任务和论文写作给予了很大帮助。同时,还要感谢学校为我们安排了这个教学环节,也感谢在此次设计过程中给与我极大帮助和理解班主任和辅导员。参 考 文 献1 王琰.基于MCS-51单片机的洗衣机控制系统设计J自动化与仪器仪表, 2008,(04) .2 向骞.全自动洗衣机原理与维修M.福建:福建科学技术出版社,2000.6.3 李华.MCS-51系列单片机实用接口技术.2001年5月,第一版,人民邮电出版社,6484 赵旭.赵慎严.波轮式洗衣机洗涤模式与优缺点的研究J.西北轻工业学院学报,2001,1:70-735 鲁建国.曹敏.GB/T 4288-

38、2003家用电动洗衣机的修订与我国洗衣机的发展J. 家电科技,2003(7):75-786 姜宝港.智能家用电器原理与维修M.北京:机械工业出版社,2002.5. 7 曾璐,李明.基于AT89C52单片机的洗衣机智能控制系统J. 家电科技, 2007,(02)8 克强.用AT89C2051单片机制作洗衣机控制电路J电子世界, 2001,(03)9 孙运生等.现代洗衣机维修电路图集M.北京:机械工业出版社,2002.1.10 文哲雄.PIC单片机在家用电器中的应用J.机电一体化,2003(1):69-72.11 王幸之,钟爱琴,王雷,王闪.AT89S系列单片机原理与接口技术M.北京:航空航天大学

39、出版社,2004.5.12 刘光斌,刘冬,姚志成.单片机系统实用抗干扰技术M.北京:人民邮电出版社, 2003.10.13 万福君,潘松峰.单片微机原理系统设计与应用M.合肥:中国科学技术大学出版社,2001.8.14 朱经利,蒋玉亮.海尔家用洗衣机原理与维修M.北京:人民邮电出版社,1999.2.15 王晓明.电动机的单片机控制M.北京:航天航空大学出版社,2002.5:13-18.16 刘午平,幸坤涛.小家电与洗衣机修理从入门到精通M.北京:国防工业出版社,2004.6.附录A 硬件原理图附录B元件清单器件名称型号数量单片机MCS-51112M晶振12M1数码管3位一体LG5231B1电阻

40、2208电阻1K8电阻10K1电解电容10uF1陶瓷电容22p2陶瓷电容1033按键6二极管41486发光二极管8三极管90123IC插座DIP-401IC插座DIP-81蜂鸣器1电路板1导线2米附录C 源程序#include #define uchar unsigned char #define uint unsigned int sbit DQ=P10; sbit LED0=P27; / 控制显示数码管的位 sbit LED1=P26; sbit LED2=P25; sbit LED3=P24; sbit alarm=P16; sbit water=P17; bit alarm_bit =

41、0; bit auto_c = 0; /1自动 0 手动 bit on_off =0; / 0停止 1运行 uchar data cont1s=0 ;uchar data alarm_cont=0; /uchar data timer=30; / 设置时的定时时间 uchar data timer_led =30; /显示的 定时时间 uchar data cyc = 1; / 循环次数 uchar data k3reg=0; /k3中的变量寄存器 uchar data k4reg=0; /k4中的变量寄存器 uchar code dis_8 11 =0xc0,0xf9,0xa4,0xb0,0

42、x99,0x92,0x82,0xf8,0x80,0x90,0xff; /0,1,2,3,4,5,6,7,8,9, 熄灭 - a,b,c,d,e,f,g,dp, 对应p0.0p0.7uchar code dis_led 9 =0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; uchar data LEDnumber4=219,1,2,3; /存放LED指示灯 要显示的数据 251,1,2,3;/* 功能:延时程序 /*/void Delayms(int t) /1ms延时函数 uint i ,j; for(i=0;it;i+) for(j=0;j120;j+) ; /*11us延时函数*/*void delay(uint i) /delay 延时子程序 while(i-);*/ void initialize(void) IT0=1;EX0=1; / EA=1; /中断 0 IT1=1; EX1=1; / EA=1; /中断1 SCON=0x00; /串行口初始化 TH0=0X3C; TL0=0XB0; /50ms定时 TH1=0x3c;TL1=0xb0; /报警定时 TMOD=0x11;ET0=1;TR0=0; / 按键中 设置运行 ET1=1;TR1=1;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号