单片机原理及应用课程设计 - 洗衣机控制器

更新时间:2024-05-07 20:10:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课程设计(论文)

题 目 名 称 及于单片机全自动洗衣机控制器设计 课 程 名 称 单片机原理及应用 学 生 姓 名 学 号 1141304002 系 、专 业 信息工程系、电子科学与技术 指 导 教 师

2013年 6 月 27 日

摘 要

单片机又称“单片机微型计算机”、“微控制器”、“嵌入式微控制器”。单片机适用于控制领域,是由CPU、RAM、ROM以及I/O接口电路集成在一起的芯片。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而51系列单片机是各种单片机中最为典型和最有代表性的一种。

本设计根据全自动洗衣机控制系统的要求和特点,设计了一种基于MCS-51单片机的全自动洗衣机控制器。该控制器以AT89C51为控制核心,进行洗衣程序的控制。全自动即进水、洗衣、脱水等一系列过程自动完成,并显示预约时间。通过本文你将会对全自动洗衣机控制器的设计进一步了解,明白全自动洗衣机的工作流程。

关键词:单片机;AT89C51;全自动;洗衣机控制;

1

目 录

1. 前言 .................................................................................................................. 3 1.1. 课题背景 ............................................... 3 1.2. 国内外现状及水平 ....................................... 3 2. 需求分析 .......................................................................................................... 4 2.1. 课程设计目的 ........................................... 4 2.2. 课程设计任务 ........................................... 4 2.3. 设计环境 ............................................... 4 3. 概要设计 .......................................................................................................... 5 3.1. 电路模块结构 ........................................... 5 3.2. 程序模块设计 ........................................... 6 4. 详细设计 .......................................................................................................... 7 4.1. 硬件电路设计 ........................................... 7 4.2. 程序设计 .............................................. 11 5. 设计仿真 ........................................................................................................ 13 6. 课程设计总结 ................................................................................................ 15 参考文献 ............................................................................................................. 16 致 谢 ................................................................................................................. 16 附 录 ................................................................................................................. 17

2

1. 前言

1.1. 课题背景

随着人民生活水平的提高,越来越多的人需要使用洗衣机。现在洗衣机越来越高度自动化,只要衣服放入洗衣机,简单的按两个键,就会自动注水,一些先进的电脑控制洗衣机,还能自动的感觉衣物的重量,自动的添加适合的水量和洗涤剂,自动的设置洗涤的时间和洗涤的力度,洗涤完以后自动的漂洗甩干,更有些滚筒洗衣机还会将衣物烘干,整个洗衣的过程完成以后还会用动听的音乐声提醒用户,用户可以在洗衣的过程做其它的事,节省了不少的时间。总之,每一项技术的进步极大地推动了洗衣过程自动化程度的提高。 随着社会的进步和生活水平的提高,人们对全自动洗衣机的功能多样化、操作简单化也提出了更高的要求。为适应这种变化,全自动化洗衣机的控制器已由机械式、混合式逐步过渡到全电子式控制,因此全自动化洗衣机控制器的设计这一课题对人类生活具有非常重要的意义。

1.2. 国内外现状及水平

目前中国洗衣机市场正进入更新换代期,市场潜力巨大,人们对于洗衣机的要求也越来越高,目前的洗衣机主要有强弱洗涤功能、进排水系统故障自动诊断功能、暂停等七大功能,在许多方面还不能达到人们的需求。目前的洗衣机都没有实现全方面的兼容,大多数洗衣机的厂家都注重各自品牌的洗衣机的特长,突出一两个与众不同的个性化的功能。随着国内外强势品牌加入研究新的技术,开发新的产品,洗衣机行业将爆发新一轮以“绿色环保”、“节水节能”为主题的竞争,而技术制高点则是未来的竞争焦点,全自动洗衣机在未来国内外市场将会有很好的前景。消费者自动选择进水量和洗衣程序,进一步实现省水、省电。针对市场需求的变化,一些生产厂家如海尔、小天鹅、小鸭等,先后向市场推出了一批全自动洗衣机,受到消费者的青睐,成为洗衣机中的购买热点。洗衣机的各项功能是由单片机控制实现的,单片机的体积小,控制灵活,因此,设计基于单片机的全自动洗衣机控制电路系统具有很强的实用价值。

3

2. 需求分析

2.1. 课程设计目的

设计一个用单片机控制的洗衣机控制器。以单片机为主的控制器,用2位一体数码管显示当前状态下的剩余时间。工作状态用发光二极管D1-D4显示,系统启动后将按“进水->洗衣->脱水”流程工作。电动机用L298专用控制芯片,处在“洗衣”状态时,电动机不断进行正反转交替;处于“脱水”状态时,电动机正转。

2.2. 课程设计任务

按照课程设计目的设计一个全自动洗衣机控制器设计,要求: (1)设计出硬件电路;

(2)设计出软件编程方法,并写出源代码; (3)用PROTEUS进行仿真。

2.3. 设计环境

(1)WINDOWS 2000/2003/XP/7/Vista系统 (2)Proteus仿真软件、Wave软件

4

3. 概要设计

3.1. 电路模块结构

系统电路模块电路图如图3.1所示,微型空气压缩机控制装置由单片机最小系统、LCD液晶显示电路、4×4键盘电路、报警电路、压力传感器数据采集电路、A/D转换电路、继电器控制等七部分组成,具体的系统模块电路图如图3.1所示。

系统工作原理:将压力传感器采集的数据经模数转换后输入单片机,单片机将得到的数据分别与键盘预先设定的上限压力和下限压力比较,如果数据大于上限压力单片机控制报警并关闭电机电源,如果数据小于下限压力单片机控制报警并接通电机电源,整个过程LCD实时显示:上限压力值、下限压力值、实际压力值、系统工作状态。

压力 数据 采集 单 片 机 A/D转换 LED显示模块报警模块 4×4键盘 继电器输出 电机 电磁阀

图3.1系统模块电路图

5

3.2程序模块设计

(1)系统进行初始化。

MAIN:CLR P2.3

MOV TMOD,#81H MOV TH0,#9EH MOV TL0,#58H SETB EA SETB ET0

(2)对于显示子程序利用对各个位需要显示的值循环显示来实现。

XIANSHI:MOV A,R1 MOV B,#10 DIV AB

MOVC A,@A+DPTR MOV P0,A CLR P2.0

LCALL DELAY1 SETB P2.0 MOV A,B

MOVC A,@A+DPTR MOV P0,A CLR P2.1

LCALL DELAY1 SETB P2.1 RET

(3)对于定时子程序,先利用定时中断来实现50ms计数器。

DSZD:CLR TR0 MOV TH0,#9EH MOV TL0,#58H DJNZ R0,LP5 MOV R2,#1 LP5:SETB TR0 RETI

6

4. 详细设计

4.1. 硬件电路设计

(1)AT89C51单片机

AT89C51单片机是ATMEL公司AT89系列中经济低价产品,指令兼容MCS-51指令集,它内含2KB可重编程的Flash存储器和128字节的RAM,有15

条可编程的I/O引线和5个中断触发源。在需要I/O线不多的控制场合,选用它作为核心控制芯片,可使电路极大地简化,成本也较低。

数码管接AT89C51的P0口和P2口,用来显示洗衣预约时间;蜂鸣器接AT89C51的P2.3口,用来洗衣结束的报警;AT89C51的P1.0到P1.3口接标准、经济、脱水、运行等指示灯;从AT89C51的第9脚(RST)引出复位电路,第18脚(XTAL2)、

19脚(XTAL1)引出时钟振荡电路; AT89C51的P3.6、P3.7口分别接的正转、反

转的输出;AT89C51的P3.2口接启动按钮。

.

图4.1 AT89C51引脚分布

(2)LED显示

LED的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点亮(低电平为点亮),而显示不同的字形由“g,f,e,d,c,b,a ”7段发光二极管组成“8”字形显示器件,“bp”为小数点,不会亮,所以采用共阳级连接。共阳的LED数码显示管的驱动代码表如表4.1所示。

7

表4.1 驱动代码表

显示数值 Dop g f e d c b a 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 0 1 1 1 1 1 1 驱动代码(16进制) 0 1 2 3 4 5 6 7 8 9 -

C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H BFH 在设计中要对控制器的工作状态进行显示,显示模块的设计方案如下。

采用LED293数码管显示,用2位一体的数码管显示当前状态下的剩余时间。工作状态用发光二极管D1-D4显示,系统启动后将按“进水->洗衣->脱水”流程工作。采用

LED数码管显示的特点是显示直观,占用空间小等,且数码管价格便宜,软件设计也

比较简单,同时符合本次设计中要显示的数据,所以本次设计我们采用这种方案。 (3)复位电路

任何单片机工作之前都要有个复位的过程,复位对于单片机来说,程序还没有开始执行,是在做准备工作。复位操作通常有:上电自动复位和按键手动复位。上电复位是外部的复位电路在系统通上电源后直接使单片机工作,单片机的起停通过电源控制。手动复位是在复位电路中设计按键开关触发复位电平,控制单片机复位。

工作原理是:单片机通电时,电容两端相当于是短路,则RST引脚上为高电平,然后电源通过电子对电容充电,RST两端电压慢慢下降,降到一定程度,即为低电平,单片机开始正常工作。上电复位的时间要在10ms以上,才能保证上电,一般可以取电容的大小为10μF,电阻为10KΩ。复位电路图4.2如下所示:

8

图4.2 复位电路图

(4)振荡电路

振荡电路对于单片机来说非常重要,没有晶就无法执行程序代码,单片机就无法工作。单片机工作时是一条一条地从ROM中取指令,然后一步一步地执行。

单片机内部有一个用于构成片内振荡器的高增益反相放大器,引脚XTAL1和

XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶

体(或陶瓷振荡器)一起构成自激振荡器。图中外接石英晶体(或陶瓷振荡器)以及电容C1或C2构成并联振荡电路,接在放大器的反馈回路中。外接石英晶体时,C1和

C2一般去30pf?10pf,外接陶瓷振荡器时,C1和C2一般取40pf?10pf。本系统采

用12MHz的晶振,电容取30pf。振荡电路如图3-4所示:

图4.3 振荡电路图

(5)应用电路

L298应用电路是一种高压、大电流双全桥式驱动器,其设计是为接受标准TTL 逻

辑电平信号和驱动电感负载的电路。 例如继电器、圆筒形线圈、直流电动机和步进电动机,L298电路具有两抑制输人来使器件不受输入信号影响,可安置另一输入电源, 使

9

逻辑能在低电压下工作。L298 芯片是具有15 个引出脚的多瓦数直插式封装的集成芯片。

图 4.4 L298应用电路图

L298可接受标准TTL逻辑电平信号Vss,Vss可接4.5~7V电压。4脚接电源

电压+12V,9脚接电源电压+5V。输出电流可达2.5A,可驱动电感负载。1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动两个电动机,OUT1、OUT2和OUT3、OUT4之间可分别接电动机,本实验选用一台电动机,分别接在OUT3和OUT4。5、7、10、12脚接输入控制电平,控制电机的正反转。ENA、ENB接控制使能端,控制电机的停转。图表1是L298的功能逻辑图。

表4.2 L298的功能逻辑图

EMA In1 In2 运转状态

0 ※ ※ 停止

1 1 0 正转

1 0 1 反转

1 1 1 刹停

1 0 0 停止

10

4.2. 程序设计 (1)主程序流程图

开始 系统初始化

N 启动? Y 亮启动指示灯

响蜂鸣器

亮进水指示灯 亮脱水指示灯

显示进水倒计时 电机正转 显示进水倒计时 N

R2=1?

N Y R2=1? 亮洗衣指示灯

Y

电机正转 响蜂鸣器

显示洗衣倒计时

正转5s时间到?

Y

电机反转 Y 反转5s时间到?

N Y R2=1?

N 图4.5 主程序流程图

11

(2)定时中断子程序流程图

关定时器 重装定时器初值 N R0-1=0? R0赋初值 N R1-1=0? Y R2=1 开定时器 返回

图 4.6定时中断服务程序流程图

12

5. 设计仿真

(1)通电后,按下“运行”键,系统开始工作,“进水”状态指示灯D1发光,同时数码管从“15”开始倒计时。

图5.1 进水状态显示图

(2)当数码管倒计时为“00”时,“洗衣”状态指示灯D2发光,同时数码管从“30”开始倒计时,洗衣机电动机做正反转交替运动。

图5.2 洗衣状态显示图

13

(3)当数码管倒计时为“00”时,“脱水”状态指示灯D3发光,同时数码管从“20”

开始倒计时,洗衣机电动机做正转运动。

图5.3 脱水状态显示图

14

6. 课程设计总结

通过这两周的课程设计,我不仅学到了许多新东西,而且巩固了以前所学的知识以及书上没有学到过的知识。本次全自动洗衣机课程设计我是完全按照任务书上的要求来完成的,虽然花的时间比较多,存在了许多的不足,但我都是怀着饱满的热情、认真的态度去对待本次课程设计的。在课程设计的过程中,我认识到了自己的不足之处,自己对以前所学的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机的汇编语言掌握得不好等等。

这次我们课程设计的题目为全自动洗衣机控制器设计,其真正的目的是要我们对所学知识做出一个总结,检验我们对单片机课程基础知识的掌握情况。通过这次单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际操作当中去,而且我还学会了如何去培养自己的创新精神,不断地战胜自己,超越自己。

在设计的过程中,我深刻体会到自己的知识太贫乏了,很难将理论知识与实践结合起来,因此遇到了很多问题。经过许老师的指点和同学的共同探讨,我终于完成了方案设计和电路设计这一部分内容。这个过程中,我们花费了大量的时间和精力,更重要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。此次课程设计后,我深深地了解到全自动洗衣机的工作原理以及控制器系统的设计,我也深刻认识到:任何复杂的事情都可以分几个过程去完成,只要用心地完成每个小部分的内容,结果将是事半功倍,复杂就会变得简单。

15

参考文献

[1] 赵晶.Protel99高级应用[M].人民邮电出版社, 2006. [2] 谷树忠.Protel DXP实用教程[M].电子工业出版社,2003. [3] 刘湘涛、江世民.单片机原理与应用[M].电子工业出版社, 2006.

[4] 孙育才. ATMEL新型AT89S51系列单片机及其应用[M].清华大学出版社, 2005. [5] 李华.MCU-51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,1993. [6] 张迎新、雷道振.单片机初级教程[M].北京航天航空大学出版社, 2006.

致 谢

我能够按设计要求完成了此次课程设计的任务,要感谢学院给我们这次实践的机会,更要感谢指导老师以及同学们的指导和帮助。老师渊博的知识和丰富的经验使我受益匪浅;在设计的过程中,我发现了自己许多不足之处,感谢《单片机原理及应用》课程许老师的耐心指导和鼓励,他给我提出了宝贵的意见,指出了我的电路出现的错误,让我发现了自己在设计过程中的不足,使我能够顺利地完成本次的课程设计,同时也使我对单片机这门课程更感兴趣,对学好单片机更有信心。

16

附 录

源程序: ORG 0000H

LJMP MAIN ;设置主程序入口 ORG 000BH

LJMP DSZD ORG 0030H MAIN:CLR P2.3

MOV TMOD,#81H MOV TH0,#9EH MOV TL0,#58H SETB EA

SETB ET0 MOV DPTR,#TAB MOV R0,#50 MOV 20H,#0 MOV P3,#0FFH CLR P3.5 CLR P3.6 CLR P3.7 MOV P1,#0FFH JB P3.2,$ CLR P1.3 SETB P2.3 LCALL DELAY2 LCALL DELAY2 LCALL DELAY2 LCALL DELAY2 CLR P2.3 LCALL JINSHUI

;设置定时程序入口 ;系统初始化 17

LCALL XIYI LCALL TUOSHUI MOV P3,#0 SETB P1.3 SETB P2.3 LCALL DELAY2 LCALL DELAY2 LCALL DELAY2 LCALL DELAY2 CLR P2.3 LJMP LOOP JINSHUI:MOV R1,#15 CLR P1.0 LP1:SETB TR0 LCALL XIANSHI CJNE R2,#1,LP1 MOV R2,#0 CLR TR0 SETB P1.0 RET XIYI:MOV R1,#30 SETB P3.5 CLR P3.6 SETB P3.7 CLR P1.1 SETB TR0 LP3:LCALL XIANSHI MOV A,R1

CJNE A,20H,LP7 LP6:CJNE R2,#1,LP3 MOV R2,#0

;判断R1的值是否改变 18

CLR TR0 SETB P1.1 RET LP7:MOV A,R1 MOV B,#5 DIV AB MOV A,B

CJNE A,#0,LP6 MOV 20H,R1 CPL P3.6 CPL P3.7 LJMP LP6 TUOSHUI:MOV R1,#20 SETB P3.5 CLR P1.2 SETB P3.7 CLR P3.6 LP4:SETB TR0 LCALL XIANSHI CJNE R2,#1,LP4 MOV R2,#0 CLR TR0 SETB P1.2 RET

DSZD:CLR TR0 MOV TH0,#9EH MOV TL0,#58H DJNZ R0,LP5 MOV R2,#1 LP5:SETB TR0 RETI

;每隔5s反转一次 ;定时子程序 19

XIANSHI:MOV A,R1 MOV B,#10 DIV AB

MOVC A,@A+DPTR MOV P0,A CLR P2.0 LCALL DELAY1 SETB P2.0 MOV A,B

MOVC A,@A+DPTR MOV P0,A CLR P2.1 LCALL DELAY1 SETB P2.1 RET

DELAY1:MOV R4,#50 D0:MOV R5,#50 DJNZ R5,$ DJNZ R4,D0 RET

DELAY2:MOV R5,#0FFH D1:MOV R6,#0FFH D2:MOV R7,#0FFH D3:DJNZ R7,D3 D4:DJNZ R6,D4 DJNZ R5,D1 RET

TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H LOOP:NOP END

20

XIANSHI:MOV A,R1 MOV B,#10 DIV AB

MOVC A,@A+DPTR MOV P0,A CLR P2.0 LCALL DELAY1 SETB P2.0 MOV A,B

MOVC A,@A+DPTR MOV P0,A CLR P2.1 LCALL DELAY1 SETB P2.1 RET

DELAY1:MOV R4,#50 D0:MOV R5,#50 DJNZ R5,$ DJNZ R4,D0 RET

DELAY2:MOV R5,#0FFH D1:MOV R6,#0FFH D2:MOV R7,#0FFH D3:DJNZ R7,D3 D4:DJNZ R6,D4 DJNZ R5,D1 RET

TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H LOOP:NOP END

20

本文来源:https://www.bwwdw.com/article/qyog.html

Top