计算机硬件课程设计 洗衣机功能模拟文档格式.docx

上传人:b****2 文档编号:5134330 上传时间:2023-05-04 格式:DOCX 页数:46 大小:366.75KB
下载 相关 举报
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第1页
第1页 / 共46页
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第2页
第2页 / 共46页
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第3页
第3页 / 共46页
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第4页
第4页 / 共46页
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第5页
第5页 / 共46页
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第6页
第6页 / 共46页
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第7页
第7页 / 共46页
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第8页
第8页 / 共46页
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第9页
第9页 / 共46页
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第10页
第10页 / 共46页
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第11页
第11页 / 共46页
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第12页
第12页 / 共46页
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第13页
第13页 / 共46页
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第14页
第14页 / 共46页
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第15页
第15页 / 共46页
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第16页
第16页 / 共46页
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第17页
第17页 / 共46页
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第18页
第18页 / 共46页
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第19页
第19页 / 共46页
计算机硬件课程设计 洗衣机功能模拟文档格式.docx_第20页
第20页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

计算机硬件课程设计 洗衣机功能模拟文档格式.docx

《计算机硬件课程设计 洗衣机功能模拟文档格式.docx》由会员分享,可在线阅读,更多相关《计算机硬件课程设计 洗衣机功能模拟文档格式.docx(46页珍藏版)》请在冰点文库上搜索。

计算机硬件课程设计 洗衣机功能模拟文档格式.docx

以下逐一进行详细阐述。

初始化:

主要由以下两个部分组成,最初数据和8255的初始化。

数据的输入即运行过程中各种变量的设定,在输入时可以键盘的按键次数设定,这是本方案设计的特色之一;

另一部分是8255的初始化,本次设计为A口前6位为数码管的位选,后两位分别是开关指示灯和启/停键指示灯的输出,B口是数码管的段选,C口低4位是开关状态输入。

键盘上的0键控制启/停,1键控制水位档,2键控制选择清洁程序的类型。

检查按键:

在设计本部分时,采用的是读入键盘接口的信息进行数据的时时输入,完成键盘按键检查。

当读键盘接口有键(0、1、2)按下时指引程序往下运行,并通过程序的比较得出被按下的是哪个键。

声音提示、开灭灯:

用寄存器保存声音频率,用8254的2通道输出声音的频率后延时使通道2的输出保持以便延长发声的时间,再通过电脑的扬声器发出声音。

指示灯有开关标志灯和启停标志灯,分别在A口高4位中的第一位、第二位(即40H和0COH),控制过程只需在特定的程序中赋值就可以使指示灯亮。

运行(洗涤、漂洗、甩干等):

这是程序的核心,主要包括三个不同的清洁程序,分别是标准清洁程序、快速清洁程序、自定义清洁程序,三个程序中对于洗涤过程、漂洗过程、甩干过程各有不同,并且在每个部分的时间、频率各不相同,后面都将进行详略有别的说明

运行结束:

0键的再次按键标志着清洁程序的停止,E键的按键标志着程序的退出,开关键的按键标志着电源的切断

二.操作说明:

(1)、洗衣机操作的详细过程

1、8255的初始化,控制字是89H,A口输出,B口输出,C口输入,采用的基本输入输出方式是方式1。

2、查询按键,首先是查询键盘缓冲区是否有字符(即是否有键按下),接着比较按下的键是否是退出程序键“E”,有则直接退出程序,没有则执行下面的操作。

3、检查一次洗衣过程是否结束,如果结束则调用声音子程序,声音响起,并且将所有状态初始化;

程序会在第2、3步间循环,直到“E”键退出。

如果没有结束则执行下面的操作。

4、检查开关键是否按下,如果没有按下开关键,那么就将开关指示灯和数码管全部灭掉;

然后程序在2、3、4步间循环,直到有键按下(“E”键或者开关键)。

如果开关键已经按下,则执行下面的操作。

5、是否发声,经过变量的对比来判断是否发声过,如果没有,则调用声音子程序,声音响起,并且显示操作用语,变量初始化,然后执行下面的操作。

如果声音发生过,则直接执行下面的操作。

6、开关标志灯的亮起,直接通过程序在这里使开关标志灯亮(40H,A口的高两位中一位是控制开关标志灯,一位是控制启停标志灯),然后执行下面的操作。

7、按键状态的查询,通过调用按键查询子程序查询0、1、2三个键是否按下,然后再调用按键处理子程序查询3个键各自按下的次数,最后通过调用状态设置子程序分别得到当前的状态数并分别存入变量QT,SHUIWEI,QINGJIE中。

然后执行下面的操作。

8、检查启停键是否按下,如果没有,则程序在2、3、4、5、6、7、8步间循环,直到有键按下。

如果启停键按下,则通过程序在这里使启停标志灯亮,然后执行下面的操作。

9、倒计时语句的设定,通过设定的倒计时变量YAN3从初始值9每循环一次减1,并且通过字符显示倒计时语句,直到YAN3减到0为止。

在这个过程中,如果QINGJIE变量的值为0(即没有按2键),倒计时过程中也没有按动2键,那么默认清洁程序为标准清洁程序。

如果在倒计时过程中因为2键的按动致使QINGJIE变量的值不为0,那么清洁程序也会相应的改变。

10、洗衣过程结束,当洗衣机在相应的清洁子程序中清洗完毕后,循环次数加1,即表示已经洗衣结束,然后程序会跳转到第2步,第3步,提示声音响起,变量初始化,然后程序会一直在第2、3、4步间循环,无外在表现,直到有键按下为止。

(2)、使用者操作简述

1、首先需要按下开关键,按下过后开关指示灯会亮,并且出现“K1-电源,0-启停,1-水位设置,2-清洁模式设置”的操作用语。

2、这个时候可以将水位设置和清洁模式设置好,它们分别通过1键和2键的按下次数决定。

(1键不按默认低水位,按1下中水位,按2下高水位;

2键不按默认标准清洁程序,按1下快速清洁程序,按2下自定义清洁程序)

3,、按下启停键,这个时候启停指示灯会亮。

屏幕上会出现倒计时用语,你可以方便清楚的看到倒计时剩余时间,情节模式内容。

如果在第2步你的设置有问题,这个时候仍然可以通过按键改变状态,但是请注意,你的时间只有9秒钟。

4、甩干完成后,可以按E键退出程序,也可直接按开关键断电退出(此时程序还在模拟)。

三.硬件设计:

PC对键盘的管理采用了查询方式,数码管的亮灭由8255决定,A口的前6位决定数码管的位选,B口的8位决定数码管的段选。

A口的高两位分别是开关标志灯和启/停标志灯(A6为开关标志灯,A7为启/停标志灯),C口低4位分别接键盘输入状态和开关输入状态(C0~C2分别表示键盘0、1、2,C3表示开关输入状态)。

8255的输入输出方式采用的是方式0,端口与外设间不需要联络信号,CPU只要用输入或输出指令就可以与外设进行数据交换,实现无条件的输入/输出方式。

模拟输出接电压表的硬件连接是Ao接Ai

四.程序流程图:

1.主流程图:

读键盘

运行

停止

读开关

初始化

2.重要模块流程:

在程序清单中你将发现设计子程序较多,不可能一一作出流程加以详述,我们在这儿择要图列。

按键查询子程序:

按键查询子程序的主要功能是对启停键、水位控制键、清洁程序选择键是否按下的查询(初始默认启停键是没有启动的,只有按1下才会启动;

水位控制键初始默认为低水位,按1下为中水位,再按一下为高水位,再按一下为低水位,以此循环;

清洁控制程序选择键初始默认为标准清洁模式,按1下为快速情节模式,再按下为自定义清洁模式,再按1下为标准情节模式,以此循环),查询完毕后,该子程序就会结束;

紧接着就会是按键处理子程序,这个子程序的功能就是记录下每个键的按键次数;

再接着就是一个按键状态设置程序,它会将按键次数与状态值相除的余数赋给状态变量,留待后用。

下面就是按键查询子程序的流程图:

退出

为1键

KEY赋值为1

判断为哪个键按下

为2键

为0键

KEY赋值为9

延时去抖动

读入列线

判断是否有键按下

KEY赋值为0

给行线送0

KEY赋值为02

注水子程序流程图:

调用图形2设置子程序

判断移位次数是否为水位上限

将上次移位过后的值作为初值

将初值移位后作为位选输出

输出段选

判断位选的奇偶

调用图形1设置子程序

Y

退出清洁子程序

N

判断甩干没

调用浸泡子程序

判断循环结束否

判断是否已漂洗

判断是否已洗涤

显示洗涤信息

调用注水子程序

调用甩干子程序

调用正反转子程序

判断水是否注满

判断水是否放完

显示漂洗信息

调用放水子程序

标准清洁程序流程图:

给段选赋初值

甩干子程序流程图:

显示状态信息

将位选右移1位

输出位选

判断循环是否结束

延时

判断数码管是否全亮

输出相对应的段选

将数码管全灭

注水子程序:

该子程序主要是显示注水过程,包含洗涤过程的注水和漂洗过程的注水,区别在于输出地段选不一样。

洗涤过程的注水要显示小数点而漂洗过程没有以示区分。

首先给位选一个初值,然后判断移位次数,没达到上限时将初值右移一位后作为位选输出,并把移位过后的位选作为下次位选初值。

标准清洁程序:

清洗程序包含标准清洗程序、快洗清洁程序和自定义清洁程序。

其中标准清洗程序是按默认设置执行的,包含洗涤过程,漂洗过程和甩干过程。

快洗清洁程序不含洗涤过程。

而自定义清洁程序同标准清洁程序的过程一样都包含洗涤过程,漂洗过程和甩干过程,只是其中的参数可以自己设定,可以设定的参数有浸泡时间、正反转的速度、正反转的时间及甩干的时间。

标准清洗程序的第一步要是注水过程,注水完后就进行正反转洗涤,洗涤完后就放水进入到漂洗过程;

漂洗过程包含注水过程,浸泡过程,正反转漂洗过程和放水过程。

放水完后就进行甩干,甩干完后就表示一次洗衣过程结束。

快洗注水后直接进入漂洗过程而不用洗涤,漂洗过后就甩干。

自定义洗先要从键盘读入设置信息存入相应的暂存,然后进入洗涤过程,浸泡过程,漂洗过程和甩干过程。

甩干子程序:

甩干过程是通过数码管交替显示来表示的,首先给位选送初值,然后送出与之相对应的段选,然后将位选左移一位后送出并送出相应段选直到显示完第一种状态;

然后进行延时,再将第二种状态的位选初值送出,并送出与之相对应的段选,再将位选值左移一位后送出并输出与之对应的段选直到显示完第二种状态。

然后延时并在显示这两种状态间循环到甩干结束。

五、程序清单

.486

DATASEGMENT

SETPTDB89H;

8255控制字10001001B

PORTAEQU208H

PORTBEQU209H

PORTCEQU20AH

PORTKEQU20BH

IN_PORTEQU202H;

DAC0832

DAPORTEQU204H

OUTDADB0

KEYDB9;

按键状态

K0DB2;

0键次数

K1DB3;

1键次数

K2DB3;

2键次数

NUM1DB2;

0键2种状态

NUM2DB3;

1键3种状态

NUM3DB3;

2键2种状态

QTDB0;

启停键当前状态

SHUIWEIDB0;

水位设置键当前状态

QINGJIEDB0;

清洁程序设置键当前状态

YWXIANDB0;

移位次数

FSCSDB0;

放水次数

SETFDW500;

设置声音频率

SETYDW1000;

设置声音响的时间

TUX0DB77H;

‘一’段选码

TUX1DB37H;

‘二’段选码

TUX2DB36H;

‘三’段选码

TUX3DB0F7H;

‘一.’段选码

TUX4DB0B7H;

‘二.’段选码

TUX5DB0B6H;

‘三.’段选码

DAIXDB0;

待显段选码缓存

XHJSDW0;

程序循环次数

JGSJDB3;

放水速度

YBPLDB3;

正反转频率

FUDU1DB40H;

摇摆幅度

FUDU2DB0C0H;

XUANZ1DB0EEH,0F7H,0FEH,0F7H,0FEH,0F5H;

图形段选码

XUANZ2DB0D7H,0FEH,0F7H,0FEH,0F7H,0FAH;

XX0DB1;

声音次数状态变量

XX1DB10;

甩干旋转模拟循环次数状态变量

XX2DB30;

指针摆动次数状态变量

XX3DB0FFH;

放水过程位选移位初值

XX4DB0;

一次完整洗衣过程次数设置状态初值

XX5DB1;

一次完整洗涤过程次数设置状态初值

XX6DB1;

自定义设置次数

XIDIDB0;

洗涤过程状态变量

PIXIDB0;

漂洗过程状态变量

YAN1DW200;

YAN2DW30;

甩干模拟转动次数

YAN3DB9;

清洁程序设置前的延时

YAN4DB10;

浸泡时间

MESS0DB'

K1-电源,0-启停,1-水位设置,2-清洁模式设置'

0AH,0DH,'

$'

MESS1DB'

洗衣结束'

0AH,0DH,'

MESS2DB'

注水'

MESS3DB'

正反转'

MESS4DB'

放水'

MESS5DB'

洗涤:

'

MESS6DB'

漂洗:

MESS7DB'

甩干:

MESS8DB'

请设置清洁程序,您还有'

'

MESS9DB0

MESS10DB'

秒钟'

MESS11DB'

标准清洁程序'

MESS12DB'

快速清洁程序'

MESS13DB'

自定义清洁程序'

MESS14DB'

设定浸泡时间,0-9:

MESS15DB0AH,0DH,'

设定正反转速度,0-9:

MESS16DB0AH,0DH,'

设定正反转时间,0-9:

MESS17DB0AH,0DH,'

设定甩干时间,0-9:

MESS18DB0AH,0DH,'

是否确定(Y/N)?

:

BUF1DB30;

XX2缓存

BUF2DB10;

YAN4缓存

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

CALLC8255;

8255初始化

S0:

MOVAH,01H

INT16H

JZS00

MOVAH,0

INT16H

CMPAL,'

E'

JZSEXIT;

按‘E’键退出

S00:

CMPXX4,1;

检查一次洗衣过程是否结束

JNES1

LEADX,MESS1

MOVAH,9

INT21H

CALLVOICE

CALLZTBL;

JMPS0

S1:

MOVDX,PORTC

INAL,DX

ANDAL,08H

CMPAL,08H;

检查开关键是否按下

JES2

MOVXHJS,0;

循环累计次数清零

MOVDX,PORTA

MOVAL,00H

OUTDX,AL;

灭灯

MOVAL,3FH

OUTDX,AL

MOVDX,PORTB

MOVAL,0FFH

灭数码管

CALLZTBL

JMPS0

S2:

CMPXX0,0;

是否响过一次?

JES3

CALLVOICE;

DECXX0

LEADX,MESS0

MOVYWXIAN,0

MOVFSCS,0

S3:

MOVAL,40H

开关标志灯亮

CALLAJCX;

调用按键查询程序

CALLAJCL;

调用按键处理程序

CALLZTSET;

调用状态设置程序

CMPQT,0;

是否按下启动键

JES0

MOVAL,0C0H

启动标志灯亮(开关标志灯也亮着)

CMPYAN3,0

JES7

MOVAL,YAN3

ADDAL,30H;

换算为ASCII码

MOVMESS9,AL;

LEADX,MESS8;

MOVAH,9;

INT21H;

MOVDL,MESS9;

MOVAH,2;

LEADX,MESS10;

DECYAN3;

CMPQINGJIE,0;

JNES4;

LEADX,MESS11;

JMPS6;

S4:

CMPQINGJIE,1;

JNES5;

LEADX,MESS12;

S5:

LEADX,MESS13;

S6:

MOVYAN1,1000;

CALLDELAY;

JMPS0;

;

S7:

JNES8;

CALLBZQJ2;

调用标准清洁子程序

JMPS10;

S8:

JNES9;

CALLKSQJ;

调用快速清洁子程序

S9:

CALLZDYQJ;

调用自定义清洁子程序

S10:

INCXHJS;

循环次数自加1

JMPS0

SEXIT:

MOVAH,4CH

INT21H

;

C8255PROCNEAR

MOVDX,PORTK

MOVAL,SETPT

OUTDX,AL

RET

C8255ENDP

状态变量初始化

ZTBLPROCNEAR

MOVXX4,0;

洗衣次数初始化

MOVXX0,1;

发声次数初始化

MOVYWXIAN,0;

注水次数初始化

MOVFSCS,0;

放水次数初始化

MOVXX3,0FFH;

放水过程位选移位初值初始化

MOVXX2,30;

摇摆过程次数初始化

MOVBUF1,30;

甩干模拟转动次数初始化

MOVYAN3,9;

清洁程序设置前延时初始化

MOVBUF2,10;

浸泡时间初始化

MOVXIDI,0;

洗涤过程状态变量初始化

MOVPIXI,0;

漂洗过程状态变量初始化

MOVXX5,1;

一次完整洗涤过程次数设置状态初值初始化

MOVXX6,1;

自定义设置次数初始化

MOVK0,2;

0键按键次数初始化

MOVK1,3;

1键按键次数初始化

MOVK2,3;

2键按键次数初始化

RET

ZTBLENDP

按键查询子程序

AJCXPROCNEAR

MOVAL,40H;

01000000B

MOVDX,PORTA;

行线送0

MOVDX,PORTC;

INAL,DX;

ANDAL,0FH;

CMPAL,0FH;

JEA3;

无键按下

MOVBH,AL

MOVYAN1,500

延时去抖动

ANDAL,0FH

无键按下

JEA3

CMPAL,0EH;

0键按下

JEA1

CMPAL,0DH;

1键按下

JEA2

CMPAL,0BH;

2键按下

JNEEXIT;

A0:

MOVKEY,2;

JMPEXIT;

A1:

MOVKEY,0;

A2:

MOVKEY,1;

A3:

MOVKEY,9;

EXIT:

RET;

AJCXENDP

按键处理子程序

AJCLPROCNEAR

CMPKEY,9;

JEAJ3;

CMPKEY,0;

JEAJ0;

CMPKEY,1;

JEAJ1;

CMPKEY,2;

JEAJ2;

JMPAJ3;

AJ0:

INCK0;

按下0键次数

AJ1:

INCK1;

按下1键次数

AJ2:

INCK2;

按下2键次数

AJ3:

AJCLENDP

状态设置子程序

ZTSETPROCNEAR

MOVAH,0;

MOVAL,K0;

DIVNUM1;

除以0键状态数

MOVQT,AH;

存入当前状态值

MOVAL,K1;

DIVNUM2;

除以1键状态数

MOVSHUIWEI,AH;

MOVAL,K2;

DIVNUM3;

除以2键状态数

MOVQINGJIE,AH;

ZTSETENDP

发声子程序

VOICEPROCNEAR

PUSHA

MOVDI,SETF;

DI中保存着频率值

MOVBX,SETY;

B

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2