西安电子科技大学通信工程学院课程设计Word文档下载推荐.docx

上传人:b****3 文档编号:14084521 上传时间:2022-10-18 格式:DOCX 页数:27 大小:27.72KB
下载 相关 举报
西安电子科技大学通信工程学院课程设计Word文档下载推荐.docx_第1页
第1页 / 共27页
西安电子科技大学通信工程学院课程设计Word文档下载推荐.docx_第2页
第2页 / 共27页
西安电子科技大学通信工程学院课程设计Word文档下载推荐.docx_第3页
第3页 / 共27页
西安电子科技大学通信工程学院课程设计Word文档下载推荐.docx_第4页
第4页 / 共27页
西安电子科技大学通信工程学院课程设计Word文档下载推荐.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

西安电子科技大学通信工程学院课程设计Word文档下载推荐.docx

《西安电子科技大学通信工程学院课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《西安电子科技大学通信工程学院课程设计Word文档下载推荐.docx(27页珍藏版)》请在冰豆网上搜索。

西安电子科技大学通信工程学院课程设计Word文档下载推荐.docx

MOVDS,AX;

数据段段址送DS。

MOVAX,STACK

MOVSS,AX;

堆栈段段址送SS。

MOVSP,OFFSETTOP;

获取堆栈指针。

MOVDX,0EE03H;

DX指向8255的D口。

MOVAL,10001001B;

工作方式状态控制字,

表示方式0,端口C输出。

OUTDX,AL;

完成8255初始化。

STEP1:

CALLFARPTRRDNUM;

调用RDNUM生

成随机数,存储于BUF。

LEADI,BUF;

DI传递当前正在比较的随机数。

MOVCX,4STEP2:

CALLFARPTRSCANNUM1;

扫描键值,返回值

start

初始化8255

产生随机数,存入缓存

扫描键盘,将扫描到的键值存

入缓存,超时则标记-1

比较随机数和键值统计正确值

数码管显示评分等级

end

存于BL。

CALLFARPTRCMPNUM;

比较数值。

INCDI;

读取下一个随机数。

LOOPSTEP2;

循环四次逐个键值扫描,比较。

STEP3:

;

将成绩转换对应评分。

MOVAX,RESULT

CMPAL,4

JENICE

CMPAL,3

JEGOOD

CMPAL,2

JEPASS

FAIL:

成绩小于2输出FAIL。

MOVAH,0FH

MOVBUF[0],AH

MOVAH,0AH

MOVBUF[1],AH

MOVAH,1H

MOVBUF[2],AH

MOVBUF[3],AH

JMPSTEP4

PASS:

成绩为2输出PASS。

MOVAH,21H

MOVAH,5H

GOOD:

成绩为3输出GOOD。

MOVAH,6H

MOVAH,22H

MOVAH,0H

NICE:

成绩为4输出NICE。

MOVAH,10H

MOVAH,0CH

MOVAH,0EH

STEP4:

MOVCX,9000

STP5:

CALLFARPTRDISPLAY;

显示评分。

LOOPSTP5;

闪烁维持评分显示。

MOVAH,4CH

INT21H

CODE1SEGMENT

ASSUMECS:

CODE1

RDNUMPROCFAR

PUSHAX

PUSHBX

PUSHCX

PUSHDX

PUSHDI;

寄存器保护。

DO1:

MOVAH,2CH;

2CH号功能调用,

取系统时间:

DL存放毫秒

MOVAL,DL;

将毫秒值除以5,调整随机偏移量的取值在0-4之间。

MOVAH,0

MOVBL,5

DIVBL;

AH是一个0-4的随机数去查询伪随机表。

RDNUM

RET

获取系统时间产生随机数

随机数查表获得伪随机序列

序列依次载入BUF

LEADI,TABLE3

RDSCAN:

MOVAL,[DI];

将随机表内容放入AL。

INCDI

指向转换表下一个查找字节。

CMPAL,AH;

比较AL,AH。

JNZRDSCAN;

不等则继续查找。

MOVAL,[DI-1];

相等则开始查表对BUF赋值。

MOVBUF[0],AL

MOVAL,[DI+1]

MOVBUF[1],ALMOVAL,[SI+3]MOVBUF[2],ALMOVAL,[SI+5]MOVBUF[3],AL

POPDI

POPDX

POPCX

POPBX

POPAX

RET;

返回。

RDNUMENDPCODE1ENDS

CODE2SEGMENT

CODE2

DISPLAYPROCFAR

PUSHDI

PUSHSI;

MOVCX,4;

循环显示4个数码管。

LEADI,BUF;

DI指向输入的数据。

MOVAH,00001000B;

由左至右显示。

DO2:

MOVBL,[DI];

将输入数据放入BL。

LEASI,TABLE2;

SI指向由BUF

到LED数码管的转换表。

MOVDX,0EE00H;

DX指向A口地址。

MOVAL,0FFH;

显示为空。

将AL内容显示。

DO3:

MOVBH,[SI];

将转换表内容放入BH。

MOVDH,0FFH

INCSI

INCSI;

CMPBL,BH;

比较BL,BH。

JNZDO3;

在转换表中查找对应值。

MOVDX,0EE01H;

将DX指向B口。

MOVAL,AH;

给AL赋值(应显示那个数码管。

控制哪个管显示。

将DX指向A口。

MOVAL,[SI-1];

查找到的数码管值写入AL。

OUTDX,AL

DELAY:

维持显示,使数码管数据显示清晰。

MOVAX,200

REP1:

用两个循环来控制时延。

MOVCX,1000

REP2:

CX=4

随机数查表转换

8255输出待显值

时延,维持显示

更新待显值和数码管

CX=0?

CX-1

DISPLAY

LOOPREP2

DECAX

CMPAX,0

JNZREP1;

AX不为0继续循环。

RORAH,1;

循环左移。

更换下一个显示数据。

LOOPDO2;

POPSI

DISPLAYENDPCODE2ENDS

CODE3SEGMENT

CODE3

SCANNUM1PROCFAR

寄存器保护,

将BX作为参数传递的方式,不压栈。

MOVCX,SCANNUM;

控制扫描循环次数。

SCANLOOP1:

调用DISPLAY显示。

MOVAL,00001111B

MOVDX,0EE05H

ANDAL,LED

74L374口高位置零。

MOVDX,0EE02H;

控制C口。

INAL,DX;

将C口内容读到AL。

ANDAL,00001111B;

取出AL低四位。

CMPAL,00001111B;

判断是否有键按下(无键按下时为全1。

JESCANLOOP3;

无键值时跳转。

MOVAH,11101111B;

扫描第一行。

SCANLOOP2:

有键按下则开始扫描。

MOVDX,0EE02H

INAL,DX

JNESCANLOOP4;

有则译键码。

ROLAH,1;

AH左移读取下一行。

CMPAH,11111110B;

循环四次,各行扫完结束?

JNZSCANLOOP2;

没有则进行下一次扫描。

SCANLOOP3:

LOOPSCANLOOP1

MOVBL,0FFH;

超时标记。

JMPSCANLOOP7;

循环结束,跳出扫描。

SCANLOOP4:

键值查表。

SCAN

调用DISPLAY,显示

行输出全0

列输入值

=1111?

行输出初值AH=11101111

行输出AH

AH左环移

4行扫描完否?

N

Y

调用DISPLAY,消抖

读入列值

获得键值

将键值译码放入BL

DE→CX

BL=-1

(CX-1→CX

ANDAH,0F0H;

AH带有行号特征,AND后行特征位为0。

MOVBL,AL

ORBL,AH;

行列OR获得键值。

MOVDI,OFFSETTABLE1;

获取键值对应表的地址。

SCANLOOP5:

键值和随机数映射。

MOVBH,[DI]

键值和查表比较。

JNZSCANLOOP5

MOVBL,[DI-1];

查到值放入BL。

SCANLOOP6:

调用显示。

ANDAL,00001111B

判断按键是否松开。

JNESCANLOOP6;

没有继续监听。

SCANLOOP7:

消抖。

SCANNUM1ENDP

CODE3ENDS

CODE4SEGMENT

CODE4

CMPNUMPROCFAR

寄存器压栈保护。

MOVBH,[DI];

BH装载随机数,BL装载键值。

CHANGE1:

键值映射范围调整。

MOVAL,BL

MO

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

当前位置:首页 > 小学教育 > 小学作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1