第一章 微控制器应用系统综合设计的目的及任务
1.1 设计目的
近几年来,全自动洗衣机已经成了人们日常生活中不可缺少的好帮手。全自动洗衣机为人们的生活提供了极大的方便。虽然目前市场上的洗衣机种类很多,但它的控制器部分的原理比较相似。本次课程设计旨在通过设计一个微机控制的洗衣机控制系统,达到以下目的:
l.了解洗衣机的工作原理及控制系统的组成。 2.掌握微机洗衣控制系统的设计思路与实现方法。 3.初步了解水位传感器和电机驱动的原理与结构。
4.熟悉微控制器(单片机)及其接口芯片在家用电器中的应用。
1.2 课程在教学计划中的地位和作用
本课程的学习目的在于使学生掌握单片机的基本概念,基本原理和应用方法。要求学生在牢固掌握单片机基本概念的基础上,具备对简单系统的硬件原理的分析与设计,接口芯片的应用和汇编语言软件编写的能力,把课堂中所学的理论应用于具体实践,补充课堂教学和实验教学中的不足,为进一步的专业课学习打下必要的基础。
在设计过程中,根据自己的兴趣选择相应的课题、写出课程设计的说明书、设计出硬件电路原理图并说明其工作原理、设计相应的软件系统及软件流程图。整个设计过程需要查阅大量的资料、编写相关汇编语言程序,并要通过上机调试验证自己的设计是否可行,在调试的过程中发现问题、分析并解决问题,并不断完善自己的设计,同时也可以提高自我学习的能力。
1.3 洗衣机控制系统设计内容及要求
1.3.1 洗衣机控制系统设计内容
随着科技的发展,洗衣机的控制日益趋于全自动化,结束了以往繁琐的操作,单一的洗衣功能。本设计的洗衣控制系统使得洗衣机的控制更为简单化。此设计
的洗衣步骤为:洗衣机上电后,使得系统初始化,等待用户选择洗涤的模式(羊毛物质,纯棉物质等不同洗涤物选择相应的洗衣模式),选择完模式后就设定所需洗衣的时间,利用键盘输入,当发现时间输入错误后可以按“取消键”对时间重新设定,设定完后按下“确认键”,此刻洗衣机控制进水阀进水,并判断水位(不同模式的标准水位不同),当水位达到标准水位是进入洗衣状态,电机启动,设定时间递减,当到达设定时间时,电机停止工作,洗衣机自动启动排水阀进行排水,当水位为“0”的时候进行甩干状态,甩干的时间也与选择的洗衣模式相对应。结束后可以继续对洗衣机进行时间设定,以此循环。在这个过程中还设计了“暂停”和“复位”两个功能键,“暂停”是指从哪停就可以在哪里恢复,不影响整体设定的工作状态;“复位”是对洗衣机的控制系统进行初始化,所需洗涤模式和时间都要重新选择和设定。另外需要说明的是当洗衣过程中出现故障时(电机、电磁阀过载、甩干不平衡或电压异常),系统则会发出报警,不同故障状态报警的方式也不同,这里的不同主要取决于喇叭、指示灯的频率。 1.3.2 洗衣机控制系统设计的功能要求
本系统设计并建立一个由微控制器控制的洗衣机控制系统。要求完成以下基本控制功能:
1.给水和排水的自动控制。 2.用户定时时间的设定。 3.电机的正反转。
4.各种定时和故障报警电路。 5.定时开、关机的控制。
6.三分钟延时启动的保护。 7.具有键盘设定功能。
设计相应的A/D、D/A、键盘、显示接口和传感器测量水位电路,可在线键盘参数设置、定时检测、显示、报警,其中控制输出部分采用模拟量或开关量进行控制。
附录B 源程序清单
ORG 0000H ;程序执行开始地址
LJMP MAIN ;跳到标号START执行 ORG 0003H ;外中断0中断程序入口 LJMP DUAN
ORG 0013H ;外中断1中断程序入口 LJMP BREAK
MAIN: SETB IT1 ;中断初始化 SETB IT0
MOV IE,#85H
MAIN1: ACALL HA7S ;ACALL DISP ; SJMP MAIN1
HA7S: MOV SP,#53H ; MOV DPTR,#0B001H MOV A,#00H
MOVX @DPTR,A ; MOV A,#32H
MOVX @DPTR,A ; MOV A,#0DFH
MOVX @DPTR,A ;HA7S1: MOVX A,@DPTR
JB ACC.7,HA7S1 MOV DPTR,#0B000H
MOV A,#0C8H ; MOVX @DPTR,A INC DPTR MOV A,#80H
MOVX @DPTR,A
HA7S2: MOV 30H,#80H ; MOV 31H,#40H
调用键盘管理子程序
调用显示子程序
初始化8279,初始化显示区写8279方式字 写分频系数 清缓冲区 显示P 键扫程序 MOV R1,#50H
HA7S3: MOV DPTR,#0B001H ; 数字键输入及显示
MOVX A,@DPTR ANL A,#07H
CJNE A,#00H,HA7S4 ;有键按下吗? AJMP HA7S3 HA7S4: MOV DPTR,#0B000H
MOVX A,@DPTR
MOV B,A ; MOV R3,#00H MOV DPTR,#KEYTAB HA7S5: MOV A,#00H
MOVC A,@A+DPTR
CJNE A,B,HA7S6 ; AJMP HA7SA ;HA7S6: INC DPTR ; INC R3 ; MOV A,R3 JB ACC.4,HA7S3
AJMP HA7S5 ;HA7SA: MOV A,30H
MOV DPTR,#0B001H MOVX @DPTR,A MOV A,R3 MOV @R1,A MOV R0,31H
MOV @R0,A INC 31H
MOV DPTR,#CDATA
取键值 查键值表是否相同 转数字键处理程序 键值表地址加一
查找次数加一 继续查找 MOVC A,@A+DPTR MOV DPTR,#0B000H
MOVX @DPTR,A
INC 30H INC R1
MOV A,30H CJNE A,#82H,HA7SB
LJMP JIA
HA7SB: AJMP HA7S3
JIA: MOV DPTR,#0B001H ; MOVX A,@DPTR ANL A,#07H CJNE A,#00H,JIA3 AJMP JIA
JIA3: MOV DPTR,#0B000H
MOVX A,@DPTR MOV B,A HA7S7: MOV R2,#00H
MOV DPTR,#KEYTAB1 HA7S8: MOV A,#00H
MOVC A,@A+DPTR CJNE A,B,HA7S9 AJMP HA7SC HA7S9: INC DPTR
INC R2 MOV A,R2 AJMP HA7S8
HA7SC: MOV DPTR,#KJPADDR
MOV A,R2
功能键扫