南昌大学共青学院毕业设计(论文) 第五章 洗衣机控制系统的软件设计
5.2程序的执行
从主程序框图中可以看出程序的基本流程,系统上电复位后,首先进行初始化,默认标准洗衣工作程序和强洗方式,然后扫描K2、K3键和启动键K4,这时洗衣机出于待命状态,通过K2、K3可以改变洗衣工作程序和强、弱洗衣方式。扫描过程中发现启动键K4按下时,洗衣机从待命状态变为工作状态。
洗衣机进入工作程序后,系统根据flag_SEL_ChengXu的值来判断程序的选择,按下K2键flag_SEL_ChengXu的值自加1,flag_SEL_ChengXu的值为0时表示标准洗衣,flag_SEL_ChengXu的值为1时,表示经济洗衣,flag_SEL_ChengXu的值为2时,表示单独洗衣,flag_SEL_ChengXu的值为3时,表示排水,这时程序直接跳至排水操作程序段,执行单独排水操作,否则进入进水操作程序。进水操作将P3.2引脚为高电平时,进水电磁阀的线圈通电,电磁力克服弹簧和铁芯的重力将铁芯向上提升,膜片中心的导流孔经出水口向洗地桶注水。进水期间系统不断检测水位开关的状态,当检测到水位开关闭合时,说明进水已达到预定水位了,如果在规定的时间内没能检测到水位开关闭合的话,,那就说明进水系统发生了故障,此时洗衣机退出洗衣工作状态,程序跳转到报警程序进行报警,提醒操作者进行故障处理。
正常情况下,进水期间检测到水位开关闭合时,说明水位已经达到预定水位,这时洗衣机将进入下一个程序即洗涤程序。因为电机在洗涤或者漂洗工作状态时有正、反转和间歇三种状态,所以用Motors这个变量来控制电机的这三种状态,当Motors=0时电机正转,当Motors=1时电机停止,当Motors=2时电机反转。达到预定的洗涤时间后,系统进入下一条指令,进入排水操作,在排水过程中系统会不断检测水位开关,在规定时间内检测不到水位开关断开的话,说明排水系统有故障,程序跳转到报警程序进行报警,提醒操作者进行故障处理。
5.3子程序流程设计
1.洗涤过程流程图:
按下启动按扭,开始进水,进水到规定高度,使水位开关接通,实现洗涤正转,并停止进水。在强洗状态下洗涤正转4S后,停止1S,开始反转4S(弱洗状态下是正转3S后,停止1S,开始反转3S),直到规定的洗涤时间结束,开始排
23
南昌大学共青学院毕业设计(论文) 第五章 洗衣机控制系统的软件设计
水,由于排水,水位降低,当水位低于规定下限水位时,低水位开关接通,排水结束后并判断是否重复进行洗涤,若不需要,洗涤程序结束如图5.2所示: 是 排水 否 是否重复洗涤 结束 否 时间到否 是 是否暂停 否 是 电机动作 是 暂停处理 是否继续 根据过程代码获取电机正转-停止-反转的时间周期 在规定时间内检测到水位开关闭合,开始洗涤 启动,开始进水 否 图5.2 洗涤流程图 2.脱水过程流程图:
按下脱水按钮,洗衣机打开排水阀,电动机开始工作,在高速脱水过程中如果盖被打开,那洗衣机就会被强制停止,脱水时间结束后判定是否还要继续脱水,若不需要就表示脱水结束,警报提醒操作者脱水结束,如图5.3所示:
24
南昌大学共青学院毕业设计(论文) 第五章 洗衣机控制系统的软件设计
图5.3 脱水流程图
25
南昌大学共青学院毕业设计(论文) 第六章 系统仿真
第六章 系统仿真
6.1软件调试
软件部分是用C语言在keil软件中编写的,且把它分成了好几个部分,编写好后对其仿真,仿真结果显示有一条错误,并指出程序中未对TR0变量进行定义,修改后再进行仿真结果显示0条错误,0条警告。把其生成hex文件并输入进单片机中,接着进行测试。刚开始时洗衣机各个工作状态对应的指示灯都正常显示,等了4分钟后洗衣机的工作状态才由洗涤进入到排水状态,由于考虑到答辩时需要演示给老师看而每个人的答辩时间都很短,所以我把洗涤工作时间由4分钟改成了20秒,结果不到2分钟就把洗衣机的所有工作都完成了,达到了预期的效果。
26