1、全自动洗衣机控制器设计单片机课程设计 精品宁波理工学院 单片机大作业(论文)题 目 全自动洗衣机控制器设计 姓 名 xxx 学 号 xxxx 专业班级 xx 指导教师 xx 学 院 xx 完成日期 xx 摘 要 现如今,随着科技的发展和生活质量的提高,全自动洗衣机在很多家庭中已经变得很常见,它是一种同时具有洗涤、漂洗和脱水等功能,且它们之间的转换不用手工操作而能知道进行的洗衣机。同时,随着数字技术的快速发展,数字技术被广泛应用于智能控制的领域中。单片机以体积小、功能全、价格低廉、开发方便的优势得到了许多电子系统设计者的青睐,它适合于实时控制,可构成工业控制器、智能仪表、智能接口、智能武器装置以
2、及通用测控单元等。 本文以AT89S51单片机为核心,设计了全自动洗衣机控制系统。本系统实现了对洗衣机整个洗衣过程的控制,包括用户设定、洗衣、脱水和结束四个阶段。控制系统主要数字控制电路模块构成。数字控制电路负责控制洗衣机的工作过程,主要由AT89S51单片机、两位共阳数码管、按键、蜂鸣器、LED指示灯组成。 本系统的电路设计相对简单,给AT89S52单片机烧录软件程序hex文件后,便能够实现全自动洗衣机的基本功能,具有一定的实用性。 关键词:AT89C51;控制系统;LED;伟福仿真软件 目 录摘 要 I第1章 概述 31.1 全自动洗衣机控制系统设计的目的及意义 31.2 国内外现状及未来
3、趋势 31.3 本文工作 4第2章 全自动洗衣机控制原理 52.1 全自动洗衣机控制原理图 52.2 全自动洗衣机控制各部件的使用方式及功能 52.2.1 引脚 52.2.2 复位电路 72.2.3 时钟电路 82.2.4 显示电路 92.2.5 按键电路 112.2.6 蜂鸣器电路 12第3章 全自动洗衣机控制器软件设计 123.1软件设计系统整体功能描述 123.2系统流程图 133.3定时控制流程 143.4 显示流程 14第4章 实验仿真结果 15第5章 总结与展望 16参考文献 17附 录 18致 谢 22 第1章 概述1.1 全自动洗衣机控制系统设计的目的及意义随着技术的进步,单片
4、机以集成度高、运算速度快、体积小、运行可靠、价格低廉等特点,在过程控制、数据采集、机电一体化、智能化、家用电器及网络技术等方面得到了广泛的应用。目前中国洗衣机市场正进入更新换代期,市场潜力巨大,人们对于洗衣机的要求也越来越高,目前的洗衣机主要由强弱洗涤功能、进排水系统故障自动诊断等几大功能,、在许多方面还不能达到人们的需求。这就要求设计者们有更高的专业和技术水平,能够提出更多好的建议和新的课题,将人们的需要变成现实。目前的洗衣机厂家大多数都只注重各自的特长,重点突出一两个与其他厂家不同的个性化的功能,因此,设计出基于单片机的全自动洗衣机控制电路系统具有很强的实用性。基于单片机的自动洗衣机控制系
5、统具有精度高、功能强、经济性好的特点。无论在提高产品质量还是产品数量,节约能源还是改善劳动条件等方面都显示出无比的优越性,为进一步了解单片机的设计方法和不同领域的应用方法,进行本次设计,所以本次设计具有重大意义。1.2 国内外现状及未来趋势自19世纪中期,美国人史密斯研制出世界上首台洗衣机至今,已过去了一个多世纪。对于洗衣机的研究国内外的研究重点和方向也有所不同。1910年世界上第一台洗衣机问世。1922年世界上第一台搅拌式洗衣机在美国诞生。1937年世界上第一台全自动滚筒式洗衣机投放市场。1957年三洋公司推出世界上第一台涡流式波轮洗衣机。20世纪60年代以后,洗衣机在一些发达国家开始普及,
6、70年代,日本生产出波轮式套筒全自动洗衣机。90年代,又诞生了各种新水流洗衣机,20世纪末到21世纪初,变频洗衣机问世,使洗衣机的功能更具人性化,实现真正意义上的智能化控制,成为目前人们研究的主要方向。1.3 本文工作本次设计的主要内容安排如下:1. 主要任务:设计一个以51单片机为核心的洗衣机控制系统,通过51单片机作为主控制器,分别控制扩展的外部电路,比如:led灯指示电路、按键控制电路、蜂鸣器电路以及数码管显示电路。从而完成一个洗衣机控制系统。2. 主要功能2.1标准洗涤:整个过程设定为50分钟,浸泡6分钟,漂洗和洗涤35分钟:脱水9分钟。2.2 水位选择功能(节能考虑),通过按钮选择水
7、位,三种水位状态:高、中、地。基本满足用户需求。2.3有暂停按钮控制:工作时按此按钮暂停,并再次按钮恢复洗衣过程。2.4有指示灯提示,水位指示灯一直亮着,高低水位分别设置不同盏数的led灯。不同的过程也有相应的指示灯指示,比如浸泡时第一盏指示灯一直亮着,漂洗和洗涤时第二盏指示灯一直亮着,脱水时第三盏指示灯亮着,结束时,第四盏指示灯一直亮着。2.5蜂鸣器报警提醒,洗涤完成后,蜂鸣器间断响十次提醒用户洗衣完成,人性化设计。3. 设计主控板模块硬件电路1.1芯片型号:AT89C511.2设计硬件原理路1.3用protues软件绘制电路图4.编写软件程序 4.1用VW(伟福)仿真软件编写程序5.对软件
8、、硬件进行调试 第2章 全自动洗衣机控制原理本次设计,系统将采用AT89C51芯片。它是一种4K字节闪烁可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器,俗称单片机。其最大特点是片内含有Flash存储器,Flash存储器是一种可以电擦除和电写入的闪速存储器,在系统的开发过程中可以十分容易地对程序进行修改。并且51系列单片机主要由运算器、控制器、定时器/计数器、存储器、串/并行I/O口中断控制系统、时钟电路和总线等工作部件组成。在此次设计中都能很好地满足需求。2.1 全自动洗衣机控制原理图2.2 全自动洗衣机控制各部件的使用方式及功能2.2.1 引脚AT89C51单片机作为控制部件,共
9、有40个引脚,如图2-1所示,以下是各个引脚的功能:图2-11.输入/输出口线P0.0P0.7 P0口的8位双向口线。P1.0P1.7 P1口的8位双向口线,内部具有上拉电阻。P2.0P2.7 P2口的8位双向口线,内部具有上拉电阻。P3.0P3.7 P3口的8位双向口线,内部具有上拉电阻。第二功能见表2-1表2-12.控制信号线PSEN 外部程序存储器读选通信号:在读外部ROM 时PSEN 低电平有效,以实现外部ROM 单元的读操作。EA/VPP 访问程序序存储 器控制信号。ALE地址锁存控制信号。RST 复位信号:当输入的信号连续 2 个 机器周期以上高电平时即为有效,用以完成单片机的复位
10、初始化操作。 3.电源外部晶振引脚VCC电源电压输入引脚GND电源地XAL1、XTAL2外部晶振引脚2.2.2 复位电路显而易见,复位电路的作用是复位。在单片机接上电源以后,或电源出现过低电压时,将单片机存储器复位,使其各项参数处于初始位置,即处于开机时的标准程序状态,以消除由于某种原因的程序紊乱。单片机的复位电路有上电复位电路和按键式复位电路。上电复位电路利用电容器充电来实现复位。当加电时,电容上的电压不能突变,RST引脚为高电平,开始复位;电容C不断充电,电阻R上的压降逐步下降,当电容C充满电后,电路相当于开路,复位结束。可见复位的时间与充电的时间有关,充电时间越长复位时间越长,增大电容或
11、电阻都可以增加复位时间。按键式复位电路它的上电复位功能与上电复位电路相同,但还可以通过按键实现复位。按下按键后,通过两个电阻分压,使RST端产生高电平。按键按下的时间决定了复位的时间。单片机的复位是靠外部电路实现的,在本次设计中采用了按键式复位,如图2-2所示:图2-22.2.3 时钟电路单片机工作时,是在统一的时钟脉冲控制下有序进行的。这个脉冲是由时钟电路产生的。时钟电路由振荡器和分频器组成,振荡器产生基本的振荡信号,然后进行分频,得到相应的时钟、振荡电路有两种方式:内部振荡和外部振荡。内部振荡方式单片机片内有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输
12、入端和输出端。把放大器与作为反馈元器件的晶体振荡器和陶瓷电容连接,就构成了自激振荡器,其输出就是时钟脉冲。外部振荡方式把外部已有的时钟信号引入单片机内。对于CHMOS型单片机,XTAL1接片外振荡脉冲输入端,XTAL2悬空。本次设计使用的是内部振荡方式,频率为11.0592MHz的晶振,如图2-3图2-32.2.4 显示电路显示模块由发光二级管和LED数码管组成。1.LED是发光二级管英文名陈的缩写。本次设计中用3个发光二极管来表示洗衣机的工作状态:浸泡、洗涤、脱水。分别与单片机的P1口的3个I/O口和P3口的4个I/O口连接,如图2-4所示。当发光二极管的负极所对应的P1口为低电平时,发光二
13、极管导通。图2-42.LED数码管是由发光二级管构成的,本次设计只是显示时间,所以采用LED数码管即可。且两个LED显示器分别接在P0口和P2口。如图2-5所示:图2-5(1)LED数码管结构常用的LED数码管是七段LED数码管,由八个发光二级管组成,其中ag段位代码显示段,可显示不同的数字或字符,dp为小数点。LED数码管分为共阴极和共阳极两种。共阴极LED数码管的公共端为发光二极管阴极,通常接地。当发光二级管的阳极为高电平时,发光二级管点亮。共阳极的LED数码管的公共端为发光二级管的阳极,通常接+5V电源。当发光二级管的阴极为低电平时,发光二级管点亮。本次设计采用的是共阴极的LED数码管。
14、(2)LED数码管工作原理因为本次设计为共阳极的LED数码管,为此以共阳极的LED数码管来说明LED数码管工作原理。当显示数字“0”时,只要a、b、c、d、e、f段亮,g段不亮,即a、b、c、d、e、f段的阳极上加低电平,g段的阳极加上高电平,公共阳极接低电平,则数码管显示“0”。如果加到各段上的代码不同,则数码管就可显示不同的字符和数字。2.2.5 按键电路按键式单片机应用系统中最常用的输入部件。按键与单片机的连接电路如图2-6所示。当按键被按下时,P3.0、P3.2、P3.3引脚的电平由“1”变为“0”;松开后,则恢复为原来的电平“1”。所以,P3.0、P3.2、P3.3引脚的电压变化就反
15、映了按键的通断状态。为了确保单片机对按键的一次动作仅作一次处理,必须去除抖动,即只在按键状态稳定时读取按键状态。去抖动的方法有硬件和软件两种方法。硬件法硬件方法去抖动常用电路时用两个与非门构成一个RS触发器。当按键未被按下时,触发器输出为“1”。当按键按下时,输出为“0”。此时即使由于按键的机械弹性,因抖动产生瞬间断开,只要按键不返回原始状态,双稳态电路的状态就不改变,输出保持为“0”,不会产生抖动。所以,经RS触发器输出的电平便不再受按键抖动的影响。软件法在单片机检测到有按键按下时,执行一个10ms左右的延时后,再次检测按键是否仍闭合,如果仍闭合,则确认为有按键按下,否则重新检测。图2-62
16、.2.6 蜂鸣器电路 蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它。 如图2-7所示,由于P3口使用第三功能,一直处于高电平状态,因此使用以往的方式并不适用,这里将三极管的基极和集电极接高电平,发射极接蜂鸣器,并将蜂鸣器的另一引脚接P3.2口,三极管一直处于导通状态,当接收到P3.2口的低电平时,蜂鸣器的电流形成回路,便响起。我们可以通过程序控制P3.2口的电平来使蜂鸣器发出声音和关闭。 程序中改变单片机P3.2引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生不同音色、音调的声音。图2-7第3章 全自动洗衣机控制器软件设计3.1软件设计
17、系统整体功能描述(1)通过程序来完成洗衣过程的全自动功能(2)设置用户对水位需求的选择功能 (3)完成对洗衣过程的定时控制功能 (4)设置数码管时间显示功能 (5)完成对洗衣的暂停功能(6)完成对洗衣过程结束蜂鸣器发声提醒3.2系统流程图 软件设计是通过汇编语言来实现的,其主程序流程图如下图3-1 所示,由开始进入主程序初始化,程序就自动进入水位选择过程,水位选择后,通过按键进入洗衣流程,并调用数码管开始计时,相应状态的指示灯亮,自动进入浸泡、洗涤脱水过程,在洗衣过程中可用P3.3口按键来暂停洗衣。当洗衣结束时,数码管倒计时结束,关闭数码管,蜂鸣器响十声,指示灯显示。 图3-13.3定时控制流
18、程 前面有讲了洗衣定时控制的硬件设计,下面就介绍其软件设计,程序主要是 用定时计数器T0 来完成的,程序运行后,判断开关P3.3是否按下,没按下,则继续,若按下,则程序暂停,再次按下,程序继续执行。其程序流程图如下图3-2 所示,其程序代码见附录。 否 是 图3-23.4 显示流程本次设计定时器/计数器的工作方式为工作方式1,即TMOD为01,此时TLX和THX组成16位定时器/计数器。其程序流程图如下图3-3 所示,其程序代码见附录。 图3-3第4章 实验仿真结果本次实验成功的完成了数码管显示、定时控制、蜂鸣器报警等功能。调试分析主要为PROTUES模拟仿真调试,在调试中找出错误、缺陷。判断
19、各种故障,并作出相应的修改。最后,本人完成了实验仿真,具体如图4-1所示图4-1第5章 总结与展望在此次大作业设计过程中,遇到许多问题,比如汇编语言的不熟悉,指令使用不灵活,proteus仿真出错等。我都会通过翻阅资料和咨询同学来解决。在此次设计中,我也明白和学会了很多,特别是在完成报告格式上,由于x老师的特别要求和对我们的严格要求,我们这次的报告是严格按照毕业设计的报告格式完成,为今后做好准备。全自动洗衣机控制设计,让我对今年所学的单片机课程有了很好的掌握,对于一些指令也比较熟悉,并且在课程设计当中有很好的体现,希望通过这次和以后的实践,渐渐地对今后的毕业设计有所帮助。参考文献1 李林功,单
20、片机原理及应用,北京:科学出版社,20112何熙文.Intel8XC196MC/MD高档单片机原理及实用设计.大连理工大学出版社,19953陈治明.电力电子器件基础.北京:机械工业出版社,19924李杏春等.8098单片机原理及实用接口技术。北京航空航天大学出版社,1996.55邵丙衡.现代电力电子技术基础.北京:中国铁道出版社,1995附 录(1)设计原理图(2)程序代码 TIME EQU 50H ORG 0000H LJMP START ORG 0003H LJMP INT0 ORG 000BH LJMP LED0 ORG 0013H LJMP INT1 ORG 0030HSTART: M
21、OV SP,#60H MOV TIME,#51 ;分 MOV R3,#51 MOV R4,#20 ;1 s = 50ms*20 MOV R2,#51 MOV R5,#00 mov TH0, #3CH ;50ms到,更改星期、时、分、秒的值 MOV TL0, #0B0H MOV TMOD,#01H SETB TR0 ;启动定时器、中断初始化 定时时间50ms SETB ET0 ;启动中断 SETB EA ;启动总中断 SETB IE0 SETB EX0 SETB IE1 SETB EX1 SETB EAMAIN: CPL ET0 ;关中断,在没有选择好状态和水位时关闭定时器 LCALL KEY
22、LJMP MAIN;水位选择之后跳出 KEY 函数;INT0: ;p3.2=0时进入外部中断0。 SETB ET0 RETI;暂停功能;INT1: ;p3.3=0时进入外部中断0。 JB P3.3,$ ;p3.3=0时跳转。 CPL ET0 ;关中断 LCALL DELAY JnB P3.3,$ RETI;判断水位; KEY: JB P3.0,LP0 INC R5 CJNE R5,#04H,LP0 MOV R5,#00HLP0: JNB P3.0,$ ;/没有按下 CJNE R5,#00,LP1 ;MOV P1,#0FFH SJMP KEYLP1: CJNE R5,#01,LP2 ;/按1下
23、表示高水位 MOV P1,#0F8H SJMP KEYLP2: CJNE R5,#02,LP3 ;/按2下 表示中水位 MOV P1,#0F9H SJMP KEYLP3: CJNE R5,#03,KEY ;/按3下 表示低水位 MOV P1,#0FBH SJMP KEY;定时器中断函数;LED0: MOV TH0,#3CH ;重置初始值 MOV TL0,#0B0H DJNZ R4,OUT ;20次(1 s)计数完成 MOV R4,#20 ;重新给R4赋初值 MOV A,TIME DEC A ;时间减1 MOV TIME,A MOV R1,A LCALL DISP ;数码管显示 CJNE R2,
24、#44,LOOP ; 若R2不等于44,进入LOOP ,否则继续 MOV R2,#44 ; DEC R3 ; CJNE R3,#9,LOOP1 ; 若R2不等于9,进入LOOP ,否则继续 MOV R3,#10 ; CJNE R1,#0,LOOP2 ; 若R2不等于0,进入LOOP ,否则继续LOOP: MOV P3,#0EFH ; 洗衣机 开始,进入浸泡状态,时间最长, 亮4个 DEC R2 DEC R3 CJNE R2,#44,IN1 ;LOOP1: MOV P3,#0DFH ; 进入漂洗状态, 亮3个 CJNE R3,#9,IN1 ;LOOP2: MOV P3,#0BFH ; 进入脱水状
25、态, 亮2个 CJNE R1,#00,IN1 ;IN1: CJNE R1,#00,OUT ; MOV P3,#7FH ; 洗衣完成状态, 亮1个 ,提示用户洗衣已完成 CPL ET0 ; 关中断,停止计时 MOV P2,#0FFH ;关掉数码管 MOV P0,#0FFH MOV A,#20 LCALL CYCLEOUT: RETICYCLE: CJNE A,#00,R SJMP $R: CPL P3.1 ; 激活蜂鸣器 ,洗衣完成 LCALL DELAY DEC A SJMP CYCLE;数码管显示;DISP: MOV A,TIME MOV B,#10 DIV AB MOV DPTR,#TAB
26、 MOVC A,A+DPTR ;查段码表 MOV P0,A MOV A,B MOV DPTR,#TAB MOVC A,A+DPTR ;查段码表 MOV P2,A;延时程序;DELAY: MOV R5,#2DELAY1: MOV R6,#200DELAY2: MOV R7,#200 DJNZ R7,$ DJNZ R6,DELAY2 DJNZ R5,DELAY1 RET;共阳级数码管数字表;;TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H ;段码表 ; 0 1 2 3 4 5 6 7 对应内容 DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH ; 8 9 A B C D E F; end 致 谢通过这次大作业设计,我找到了自己的不足,希望在以后的工作生活中不断改进,努力提高自己的知识和综合素质。在这里,我要衷心感谢我的指导老师李林功,李老师平日里对我们谆谆教导,教我们为人处事,在各个方面都给予我很大帮助,感谢他的耐心,感谢他孜孜不倦的教诲。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1