基于单片机的自动洗衣机设计.docx
- 文档编号:24633265
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:15
- 大小:241.49KB
基于单片机的自动洗衣机设计.docx
《基于单片机的自动洗衣机设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的自动洗衣机设计.docx(15页珍藏版)》请在冰豆网上搜索。
基于单片机的自动洗衣机设计
基于单片机的自动洗衣机设计
1总体方案设计分析
1.1全自动洗衣机控制方法选择
在全自动洗衣机中,现在比较通用的控制手段是利用单片机或者PLC两种方法,本课设选用的是单片机。
之所以选用单片机主要考虑了以下原因,首先,单片机具有较强的抗干扰能力,当受到外部强干扰,程序出错时,可以自动使系统复位重新执行程序。
并且采用无噪声、无电磁干扰的双向晶闸管作为控制元件,控制电磁阀和电机。
其次,单片机具有欠压和过压保护,欠压时,控制器不工作;超压时,保护电路起作用。
再次,单片机还具有瞬间掉电保护功能,电源短时间停电后,电压恢复时,能够维持原来运行程序的工作状态并继续完成洗衣程序。
最后,各种操作和洗衣机的运行状态均可以用LED显示。
此外,在硬件规模方面,单片机相当于将一个基本规模的单板机所具有的资源复合在一块芯片上,因此具有相当的规模;在功能方面,单片机已经超过了PLC的功能;在指令系统方面,如果将单片机的指令系统PLC的指令系统相比较,除单片机的数据传送能力较弱一点之外,单片机的指令系统已大大超过PLC;此外,无论在性价比方面,还是在体积、重量方面相比较,单片机都比PLC优越得多。
综合上述原因本章设采用单片机来完成。
二、方案构思
全自动洗衣机由洗衣系统和控制电路组成。
其控制电路分为机械和电脑型,电脑型控制电路是以单片机作为控制电路的核心。
自动洗衣机的洗衣程序,键盘上有两个按钮01键和02键。
01键设为开始按钮;02键设为停止按钮,其功能是按下停止按钮后洗完一个周期后停止,中间不能停。
洗衣机的标准洗衣程序是;开始--进水--洗涤--排水--进水--清洗--排水--脱水。
1.洗涤过程通电后,洗衣机进入暂停状态,以便放好衣物并且等待按下开始按钮。
当按下开始按钮01时,进入洗涤过程。
首先进水阀打开,开始进水,向洗衣机供水;当到达预定水位时,进水阀关闭,停止进水;步进电动机接通电源,开始旋转,形成洗衣水流。
步进电动机可以实现正反转功能,可以形成往返水流,有利于洗涤衣物。
2.脱水过程洗涤或漂洗过程结束后,电机停止转动,排水阀通电,开始排水。
当水位低到一定值时,排水停止,再经过一段时间后,电机开始正转,带动内桶高速旋转,甩干衣物。
3.漂洗过程与洗涤过程操作相同,只是多一个循环周期,清洗两次。
全部洗衣工作完成后,电机停止,停止指示灯亮。
二、硬件电路设计
本章设采用的单片机的型号为AT89S52需要用到的模块有步进电机模块LED显示模块8279键盘显示模块以下是对其一一介绍。
(一)单片机简介
单片机是指一个集成在一块芯片上的完整计算机系统。
尽管它的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:
CPU、内存、内部和外部总线系统,目前大部分还会具有外存。
同时集成诸如通讯接口、定时器,实时时钟等外围设备。
而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可.......用它来做一些控制电器一类不是很复杂的工作足矣了。
我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影。
单片机是靠程序运行的,并且可以修改。
通过不同的程序实现不同的功能,尤其是一些特殊的功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。
目前占统治地位的软件还是最低级汇编语言,单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。
一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的大小!
对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。
单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。
一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。
可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
不过,这种电脑,通常是指个人计算机,简称PC机。
它由主机、键盘、显示器等组成,还有一类计算机,大多数人却不怎么熟。
悉这种计算机就是把智能赋予各种机械的单片机。
顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。
因为它体积小,通常都藏在被控机械的“肚子”里。
它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。
现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词------“智能型”,如智能型洗衣机等。
现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。
究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。
常用单片机芯片有以下几种:
STC单片机、PIC单片机、ATMEL单片机(51单片机)、EMC单片机、PHLIPIS51PLC系列单片机(51单片机)、HOLTEK单片机、TI公司单片机(51单片机)和松翰单片机(SONIX)。
本章设则采用ATMEL单片机(51单片机),选用型号为AT89S52。
ATMEL单片机(51单片机)是ATMEL公司的8位单片机,有AT89、AT90两个系列,AT89系列是8位Flash单片机,与8051系列单片机相兼容,静态时钟模式,AT90系列单片机是增强RISC结构、全静态工作方式、内载在线可编程Flash的单片机,也叫AVR单片机。
(二)AT89S52
与MCS51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:
0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器、八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
AT89S52主要包括P0口、P1口、P2口和P3口,各口完成不同工作。
图1AT89S52引脚图
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器计数器2的触发输入(P1.1/T2EX),具体如下表所示,在flash编程和校验时,P1口接收低8位地址字节。
引脚号第二功能
P1.0T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1T2EX(定时器计数器T2的捕捉/重载触发信号和方向控制)
P1.5MOSI(在系统编程用)
P1.6MISO(在系统编程用)
P1.7SCK(在系统编程用)
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写1时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址如(MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示在flash编程和校验时,P3口也接收一些控制信号。
端口引脚第二功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INTO(外中断0)
P3.3INT1(外中断1)
P3.4TO(定时计数器0)
P3.5T1(定时计数器1)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
(三)步进电机模块简介
1.步进电动机有三线式、五线式、六线式三种,但其控制方式均相同,必须以脉冲电流来驱动。
若每旋转一圈以20个励磁信号来计算,则每个励磁信号前进18度,其旋转角度与脉冲数成正比,正、反转可由脉冲顺序来控制。
2.步进电动机的励磁方式可分为全部励磁及半步励磁,其中全部励磁又有1相励磁及2相励磁之分,而半步励磁又称1-2相励磁。
图为步进电动机的控制等效电路,适应控制A、B、A/B的励磁信号,即可控制步进电动机的转动。
每输出一个脉冲信号,步进电动机只走一步。
因此,依序不断送出脉冲信号,即可步进电动机连续转动。
(1)1相励磁法:
在每一瞬间只有一个线圈导通。
消耗电力小,精确度良好,但转矩小,振动较大,每送一个励磁信号可走18度。
若欲以1相励磁法控制步进电动机正转,其励磁顺序如表1所示。
若励磁信号反向传送,则步进电动机反转。
励磁顺序A→B→C→D→A
STEP
A
B
C
S
1
1
0
0
0
2
0
1
0
0
3
0
0
1
0
4
0
0
0
0
表11相励磁法脉冲顺序表
(2)2相励磁法:
在每一瞬间会有二个线圈同时导通。
因其转矩大,振动小,故为目前使用最多的励磁方式,每送一个励磁信号可走18度。
若以2相励磁法控制步进电动机正转,其励磁顺序如表2所示.若励磁信号反向传送,则步进电动机反转。
励磁顺序:
AB→BC→CD→DA→AB
STEP
A
B
C
D
1
1
1
0
0
2
0
1
1
0
3
0
0
1
1
4
1
0
0
1
表22相励磁法脉冲顺序法
(3)1-2相励磁法为1相与2相轮流交替导通。
因分辨率提高,且运转平滑,每送一个励磁信号可走9度,故亦广泛被采用。
若以1相励磁法控制步进电动机正转,其励磁顺序如表3所示。
若励磁信号反向传送,则步进电动机反转。
励磁顺序:
A→AB→B→BC→C→CD→D→DA→A
STEP
A
B
C
D
1
1
0
0
0
2
1
1
0
0
3
0
0
1
0
4
0
1
1
0
5
0
0
1
0
6
0
0
1
1
7
0
0
0
1
8
1
0
0
1
表31-2相励磁法脉冲顺序法
3.电动机的负载转矩与速度成反比,速度愈快负载转矩愈小,当速度快至其极限时,步进电动机即不再运转。
所以在每走一步后,程序必须延时一段时间。
4.本实验需要用到CPU模块(F3区)和步进电机模块(A7区)。
步进电机电路原理参见图2
图2步进电机电路图
本实验采用1相励磁法来控制电机正反转,通过向电机送入脉冲控制字01H、02H、04H、08H来控制电机正转;通过送入控制字01H、08H、04H、02H来实现电机反转。
(四)8279简介
8279能自动完成键盘输入和显示控制两种功能。
键盘控制部分提供一种扫描工作方式,可与64个按键的矩阵键盘连接,能对键盘进行自动扫描、自动消抖、自动识别出按下的键并给出编码,能同时按下双键或键实行保护,其接收键盘上的输入信息存入内部FIFO缓冲器,并可在有键输入时向CPU请求中断。
8279提供了按扫描方式工作的显示接口,其内部有一个168的显示缓冲器,能对8位或16位LED自动进行扫描,将显示缓冲器的内容在LED上显示出来。
8279是可编程接口芯片,通过编程使其实现相应的功能,编程的过程实际上就是CPU向8279发送控制指令的过程。
在软件设计中,显示方式采用了8个字符显示,左输入方式,编码扫描键盘,双键锁定。
由于该系统对实时性及速度要求并不十分高,所以时钟频率采用6MHz已足够了,故程序时钟命令字取为2AH,用以保证100kHz的内部工作频率。
由于采用10ms定时扫描查询方式,所以在下次开始扫描时,先应清空8279,清除显示RAM大约需要160s的时间,在此期间,FIFO状态字的最高位DU1,表示显示无效,CPU不能显示RAM写入数据,所以清除命令状态字取D1H。
CPU对8279的控制是先读回8279的状态字,查看PIFORAM中有无字符,若有将根据字符个数读出所有字符,并进行相应处理;若无,则直接返回。
CPU对8279的监视采用查询方式,对8279分配的数据口地址为8000H,状态口地址为8001H,CPU每隔10ms定时中断查询一次,所有显示采用查询段码表的方式实现,简化了程序设计过程,提高了程序质量。
8279的引脚功能:
采用单5V电源,供电40脚封装。
DB0~DB7:
双向数据总线,用来传送8279与CPU之间的数据和命令。
CLK:
时钟输入线,用以产生内部定时的时钟脉冲。
RESET:
复位输入线8279复位后被置为字符显示左端输入,二键闭锁的触点回弹型式,程序时钟前置分频器被置为31,RESET信号为高电平有效。
CS:
片选输入线,低电平有效,单片机在CS端为低时可以对8279读/写操作。
A0:
缓冲器低位地址,当A0为高电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为数据。
RD:
读信号输入线,低电平有效将,缓冲器读出,数据送往外部总线。
WR:
写信号输入线,低电平有效,将缓存器读出,将数据从外部数据总线写入8279的缓冲器。
可按其功能分为:
键盘功能块;显示功能块;控制功能块与CPU接口功能块控制功能块包括控制和定时寄存器,定时和控制,扫描计数器三部分,它主要用来控制键盘和显示功能块工作。
控制和定时寄存器:
用于存贮来自CPU的编程命令,CPU对8279编程以确定键盘与显示器工作方式和其它工作条件时,先把命令控制数据放到数据总线上,然后使A0=1,WR=0,CS=0,并在WR上升沿把命令键存在控制和定时寄存器中,并经译码,建立适当的功能。
定时和控制:
它含基本的定时计数器,第一个计数器是一个分频系数为2-31的前置定时器,分频系数可由程序预置,使内部频率为100KHz,从而能给出5.1ms键盘扫描时间和10.3ms反跳时间,其它计数器将此基本频率分频后,提供适当的按键扫描.行扫描.键盘阵列扫描以及显示器扫描次数。
扫描计数器:
扫描计数器有两种工作方式,在编码工作方式时,计数器提供一种二进制计数,通过管脚SL0-SL3输出后经外部译码才能提供给键盘和显示器的扫描作用,在译码工作方式时,扫描计数器对最低二位进行译码,SL0-SL3输出4选1的译码信号,作为显示器和键盘的译码扫描。
8279通过74LS138译码器扩展4*4键盘、6位显示器由3-8译码器对SL0~SL2译出键扫描线,由另一三八译码器译出显示器的位扫描线,并采用了编码扫描方式。
为了防止出现重键现象,扫描输出线高位SL3不参加键扫描译码。
CPU对8279的监视采用了查询方式,故8279的中断请求信号IRQ悬空未用。
8279可适应各种键盘和显示器的不同工作方式,这是由于8279内的各功能块的工作是可程控的,我们可根据自己的要求,通过编写命令语言的方法对8279的工作方式等进行编程。
三、软件设计
(一)程序流程
图3实验流程图
(二)部分程序及功能简介
1.初始化程序
流程中的初始化主要指对8279键盘显示的初始化其作用是清除8279原先杂乱的数据将按键及显示进行复位操作。
其程序为:
INI8279:
PUSHDPH
PUSHDPL
PUSHACC
LCALLDELAY
MOVDPTR,#Z8279
MOVA,#LEDMOD
MOVX@DPTR,A
MOVA,#LEDFEQ
MOVX@DPTR,A
MOVA,#LEDCLS
MOVX@DPTR,A
LCALLDELAY
LCALLDIS_OFF
POPACC
POPDPL
POPDPH
2.步进电机正反转程序
本实验最主要的一个程序,主要完成步进电机的正反转的过程,通过分别向P1.4(正转指示)、P1.5(反转指示)送入脉冲信号将其点亮或关断,低电平点亮高,电平关断。
并且通过查表的方式来控制步进电机的正反转。
01H、02H、04H、08H控制电机正转,循环的次数为电机正转的圈数。
01H、08H、04H、02H为电机反转。
其程序如下:
FOR1:
SETBP1.5
DECR3
DJNZR3,FOR2
LJMPEXIT
FOR2:
CLRP1.4
MOVR2,#00H
FOR3:
MOVA,R2
MOVDPTR,#STEP
MOVCA,@A+DPTR
JZREVV
CPLA
MOVP3,A
LCALLDELAY_STEP
INCR2
LCALLDELAY_FR
LJMPFOR3
REVV:
SETBP1.4
CLRP1.5
MOVR2,#11H
REV1:
MOVA,R2
MOVDPTR,#STEP
MOVCA,@A+DPTR
JZFOR1
CPLA
MOVP3,A
CALLDELAY_STEP
INCR2
LCALLDELAY_FR
LJMPREV1
EXIT:
RET
四、综合调试
(一)实验导线连接与调试
本实验所有输入信号采用按键来模拟;洗衣机的电动机采用进步电机模拟;其它输出采用LED发光二极管显示。
键盘01键代表启动按钮,02键为停止按钮;LEDP10为停止指示,P1.1为启动指示,P1.2为进水指示,P1.3为排水指示,P1.4正转指示,,P1.5反转指示P1.6为甩干指示,。
实验步骤:
(1)系统各跳线器处在初始设置状态。
(2)用导线对应连接步进电机模块的A、B、C、D分别到CPU模块的RXD、TXD、P32、P33;键盘显示8279与LED相连。
(3)启动PC机打开THGMW51软件,输入源程序,并编译源程序。
编译无误后,下载程序运行。
经过连线、调试、运行后能够成功的完成自动洗衣全过程。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 自动 洗衣机 设计