【微机组成原理】【课程设计】洗衣机控制模拟系统设计(汇编语言)

1 设计题目及要求

1.1 设计题目

本课程设计题目的主要内容是模拟一台洗衣机的运行控制。在此次课程设计中,设置五个按键,分别用于选择开机、注水、洗涤、甩干、关机功能。在选择开机按键时,洗衣机处于等待状态,开启相应的等待状态的灯组合,只有在开机键按下以后,其他按键按下才有状态显示。当用户按下注水按键时,开启倒计时以及相应的状态灯组合,当倒计时结束时,响铃提示,状态灯回到等待状态,这时候,可以按其他键进行执行操作,洗涤、甩干与注水按键的状态类似,只是倒计时时间和状态灯组合不同而已。考虑到洗衣机的执行操作,不能按键就有对应操作,用户在按下注水按键后执行注水功能,在执行过程中按下甩干功能,若直接跳到甩干功能,在现实中是不允许的,这样洗衣机系统就会出现奔溃,这里我们设置在未执行完一个功能之前对于按键操作不做相应,只有在一个功能执行完成后,才进行读按键,接受执行完功能后最近的一个按键请求。

1.2设计要求

(1)能正确选择洗衣机的注水、清洗、甩干等不同模式;
(2)能正确显示各种模式下的不同状态;
(3)能使洗衣机快速响应最新的用户命令,形象模拟各种模式。

2 方案分析与设计

2.1 需求分析

2.1.1 角色分析

本次课程设计为洗衣机控制系统的模拟,结合实际情况可知,系统面对的主要角色为人类用户,系统接收用户的指令并给予相应的处理。在系统内部,结合相关功能可知,还应包括计时器、显示器和指令处理器这些角色以执行相应功能。

2.1.2 用例分析

结合本次课程社及应完成的任务可知,系统所需的用例至少应包括开机、关机、注水和甩干,此外,还应包括对指令的处理、结果的显示和计时相关用例。各用例文档如下所示。

2.1.2.1 开机用例

在电源接通、仿真开始或系统等待执行的时候执行开机用例,是系统可以处理用户给出的各种指令。

用例名:开机用例。
摘要:启动洗衣机。
角色:用户。
前置条件:无。
主序列:
(1)用户按下开机键;
(2)灯全亮(111);
非功能性需求:
无。
后置条件:等待其他指令。

2.1.2.2 关机用例

在用户给出关机指令后,执行关机用例不再接收除开机外的任何指令输入。

用例名:关机用例。
摘要:关闭洗衣机。
角色:用户。
前置条件:当前不执行其他功能。
主序列:
(1)用户按下关机键;
(2)灯灭 (111);
(3)蜂鸣器响。
非功能性需求:
无。
后置条件:停止等待。

2.1.2.3 注水用例

在用户给出关机关机指令后在给出注水指令,若无其他功能执行执行注水用例。

用例名:注水用例。
摘要:开始注水功能。
角色:用户。
前置条件:已执行开机用例,无其他功能执行。
主序列:
(1)用户按下开机键;
(2)灯点亮(001);
(3)调用计时用例。
(4)等待计时停止
非功能性需求:
无。
后置条件:等待其他指令。

2.1.2.4 洗涤用例

在用户给出关机关机指令后在给出洗涤指令,若无其他功能执行执行洗涤用例。

用例名:洗涤用例。
摘要:开始洗涤功能。
角色:用户。
前置条件:已执行开机用例,无其他功能执行。
主序列:
(1)按下洗涤键;
(2)灯显示 (010);
(3)调用计时用例。
(4)等待计时停止
非功能性需求:无。
后置条件:等待其他指令。

2.1.2.5 甩干用例

在用户给出关机关机指令后在给出洗涤指令,若无其他功能执行执行甩干用例。

用例名:甩干用例。
摘要:甩干衣物。
角色:用户。
前置条件:已调用开机用例,无其他功能执行。
主序列:
(1)用户按下甩干键;
(2)灯显示 (010);
(3)调用计时用例。
(4)等待计时停止
非功能性需求:
无。
后置条件:等待其他指令。

2.1.2.6 显示用例

在需要显示时利用七段数码管显示相关信息。

用例名:显示用例。
摘要:利用七段数码管显示计时时间。
角色:显示器。
前置条件:计时用例调用中。
主序列:
(1)关闭所有选通数码管;
(2)选中所需数码管;
(3)开启段选位;
(4)延时;
(5)关闭当前段选,开启下一位片选和段选。
非功能性需求:
无。
后置条件:等待其他指令。

2.1.2.7 计时用例

在需要利用计时器时计时并产生中断。

用例名:计时用例。
摘要:计时一段时间。
角色:计时器。
前置条件:执行洗涤、甩干或注水用例。
主序列:
(1)计数初值若为0,不再计时;
(2)若计时时间到,产生中断;
(3)计数初值减一;
(4)若计数为0,蜂鸣器响。
非功能性需求:
无。
后置条件:等待其他功能。

2.1.2.8 指令处理用例

在利用键盘接收用户指令并处理。

用例名:指令处理用例。
摘要:接收用户指令并加以处理。
角色:指令处理器。
前置条件:电源接通并开始仿真。
主序列:
(1)等待用户按键;
(2)判断用户按下哪个按键;
(3)执行对应按键的功能;
(4)回(1)。
非功能性需求:
能快速响应用户的指令。
后置条件:无。

2.1.3用例关系

综上所述,可得到系统用例图如图2-1所示。用户有五种选择:开机、注水、洗涤、甩干、关机。当用户选择开机按键时,对应的开机指示灯亮111,洗衣机启动,等待用户下一个操作的开启。当用户未进行开机按键时,系统不允许用户进行其他操作,即不可跳过开机键直接对注水、洗涤、甩干这三个功能进行操作。用户选择注水、洗涤、甩干操作基本一样。现以注水为例:首先用户按下注水按钮,对应的指示灯001亮,同时开启定时器和显示器,显示器为注水所需要的时间(分:秒)。当定时器过一秒,刷新一次显示器;当定时结束时,响蜂鸣器,显示器成关闭状态。洗衣机呈等待状态,指示灯为111,等待下一个操作值得注意的是:在执行注水、洗涤或者甩干过程中不允许其他操作的执行,只有在一个操作完成时才允许其他操作进行。

图2-1 系统用例图

各用例主要执行时序如图2-2所示。

图2-2 系统时序图

2.2 方案设计与优化
根据课程设计要求,可以设计如图 2-3 所示的系统,此时将所有外设通过8255与CPU连接,通过8255不同的工作方式实现对各个外设的控制,并在程序中通过循环计数实现对计时时间的控制。8255A口工作方式0控制数码管,B口工作方式0控制灯和蜂鸣器,通过不断改变C口工作方式实现分时的全双工通信, 从而利用线反转法处理键盘。

图2-3 系统结构图(优化前)

在课程设计的过程中,第一个版本的系统很容易实现,但是计时功能相对并不准确。为得到更精确的计时值并重分类用现有自用,可首先利用8086微处理器产生所有的总线控制信号。使用到的芯片有8253、8259、8255。其中8259做中断处理;8255芯片为可编程并行I/O接口芯片,用此来连接外设,使外设能跟CPU进行通信;8053芯片用于定时,此课程设计中用于定时一秒。
将所需外设可分为三类,显示系统、按键系统和响应完成状态系统,按键系统用2×3键盘组成,用于接收用户需要进行的操作类型;显示系统包括LED灯和七段数码管显示,七段数码管显示倒计时信息,LED灯用于显示洗衣机目前所处状态(关机、开机、注水、洗涤、甩干状态);响应完成系统用于在一个功能完成后做出提示,提示用户可进行下一个操作,如:洗衣机在完成注水操作后蜂鸣器响,用户听到后便可选择其他功能。
在这里插入图片描述

图2-4 系统结构图(优化后)

2.3 软件流程

2.3.1 主程序流程

主程序流程如图2-5所示,洗衣机一直处于等待按键按下状态,当有键按下并且为开机按键时才可以再接受其他按键按下,当开机键按下后,对应的指示灯111亮,接着继续等待判断有无按键按下,如有,判断键值,若为注水、洗涤、或者甩干,进入中断,若为关机按键,则结束程序,这里对开机键盘已经不再做反应,当不是这些按键则重新判断有无按键按下。

  • 8
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值