微机原理及应用课程设计.docx

上传人:b****7 文档编号:16500594 上传时间:2023-07-14 格式:DOCX 页数:34 大小:98.05KB
下载 相关 举报
微机原理及应用课程设计.docx_第1页
第1页 / 共34页
微机原理及应用课程设计.docx_第2页
第2页 / 共34页
微机原理及应用课程设计.docx_第3页
第3页 / 共34页
微机原理及应用课程设计.docx_第4页
第4页 / 共34页
微机原理及应用课程设计.docx_第5页
第5页 / 共34页
微机原理及应用课程设计.docx_第6页
第6页 / 共34页
微机原理及应用课程设计.docx_第7页
第7页 / 共34页
微机原理及应用课程设计.docx_第8页
第8页 / 共34页
微机原理及应用课程设计.docx_第9页
第9页 / 共34页
微机原理及应用课程设计.docx_第10页
第10页 / 共34页
微机原理及应用课程设计.docx_第11页
第11页 / 共34页
微机原理及应用课程设计.docx_第12页
第12页 / 共34页
微机原理及应用课程设计.docx_第13页
第13页 / 共34页
微机原理及应用课程设计.docx_第14页
第14页 / 共34页
微机原理及应用课程设计.docx_第15页
第15页 / 共34页
微机原理及应用课程设计.docx_第16页
第16页 / 共34页
微机原理及应用课程设计.docx_第17页
第17页 / 共34页
微机原理及应用课程设计.docx_第18页
第18页 / 共34页
微机原理及应用课程设计.docx_第19页
第19页 / 共34页
微机原理及应用课程设计.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理及应用课程设计.docx

《微机原理及应用课程设计.docx》由会员分享,可在线阅读,更多相关《微机原理及应用课程设计.docx(34页珍藏版)》请在冰点文库上搜索。

微机原理及应用课程设计.docx

微机原理及应用课程设计

课程设计

课程名称微机原理及应用课程设计

题目名称计算器

(1)

学生学院

专业班级

学号

学生姓名

指导教师

 

2020年1月6日

广东工业大学课程设计任务书

题目名称

学生学院

专业班级

姓名

学号

一、课程设计的目的

一、巩固和加深对《微机原理及应用》课程内容的熟悉和明白得,提高应用水平;

二、把握汇编语言程序的编程方式;

3、熟悉键盘操纵和七段数码管的利用。

二、课程设计应完成的工作

课程设计完成后,交课程设计报告一份(内容包括:

系统设计说明、系统原理图、程序设计流程图、源程序),按规定格式书写。

三、课程设计进程安排

序号

设计各阶段内容

地点

起点日期

1

搜集、整理和研究资料

图书馆

4日

2

编制调试程序,实现要求的功能

实2-204

5-6日

3

书写课程设计报告书

宿舍

7日

四、应搜集的资料及要紧参考文献

[1]许立倖等编.微型运算机原理及应用.北京:

机械工业出版社,2003

[2]许立倖等编.微型运算机原理及应用——习题解答、实验指导及课程设计.北京:

机械工业出版社,2004

发出任务书日期:

2020年1月4日指导教师签名:

打算完成日期:

2020年1月13日基层教学单位责任人签章:

 

主管院长签章:

-3-

 

五、

 

六、编程在四位LED数码管上显示2F9E(应用XLAT).

流程图:

程序:

STACKSEGMENTSTACK

DW64DUP(?

STACKENDS

DATASEGMENT

VAR1DB02H,0FH,09H,0EH

VAR2DB0F7H,0FBH,0FDH,0FEH

TABLEDB0FCH,60H,0DAH,0F2H,066H,0B6H,0BEH,0E4H,0FEH,0F6H,

DB0EEH,3EH,9CH,7AH,9EH,8EH

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVAL,82H

OUT63H,AL

A1:

MOVSI,OFFSETVAR1

MOVDI,OFFSETVAR2

MOVBX,OFFSETTABLE

MOVCX,04H

A2:

MOVAL,[SI]

XLAT

OUT62H,AL

MOVAL,[DI]

OUT60H,AL

CALLTIME

INCSI

INCDI

LOOPA2

JMPA1

TIME:

PUSHAX

PUSHCX

MOVCX,0040H

A4:

MOVAX,0005H

A5:

DECAX

JNZA5

LOOPA4

POPCX

POPAX

RET

CODEENDS

ENDSTART

七、键盘程序

9

7

E

D

B

A

2

1

要求:

实现键盘左移显示。

流程图:

程序:

STACKSEGMENT

DW64DUP(?

STACKSENDS

DATASEGMENT

TABLE1DB0F6H,0E4H,9EH,7AH,3EH

DB0EEH,0DAH,60H

TABLE2DB0F7H,0FBH,0FDH,0FEH

VARDB0FCH,0FCH,0FCH,0FCH

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVAL,82H

OUT63H,AL

STT:

MOVAL,00H

OUT60H,AL

INAL,61H

ANDAL,18H

CMPAL,18H

JNZKEYY

CALLDISP

JMPSTT

KEYY:

CALLTIME

INAL,61H

ANDAL,18H

CMPAL,18H

JNZKEY_9

JMPSTT

KEY_9:

MOVAL,0F7H

OUT60H,AL

INAL,61H

TESTAL,10H

JNZKEY_B

MOVDL,00H

CALLKEY_FU

JMPSTTK

KEY_B:

TESTAL,08H

JNZKEY_7

MOVDL,04H

CALLKEY_FU

JMPSTTK

KEY_7:

MOVAL,0FBH

OUT60H,AL

INAL,61H

TESTAL,10H

JNZKEY_A

MOVDL,01H

CALLKEY_FU

JMPSTTK

KEY_A:

TESTAL,08H

JNZKEY_E

MOVDL,05H

CALLKEY_FU

JMPSTTK

KEY_E:

MOVAL,0FDH

OUT60H,AL

INAL,61H

TESTAL,10H

JNZKEY_2

MOVDL,02H

CALLKEY_FU

JMPSTTK

KEY_2:

TESTAL,08H

JNZKEY_D

MOVDL,06H

CALLKEY_FU

JMPSTTK

KEY_D:

MOVAL,0FEH

OUT60H,AL

INAL,61H

TESTAL,10H

JNZKEY_1

MOVDL,03H

CALLKEY_FU

JMPSTTK

KEY_1:

TESTAL,08H

JNZKEY_11

MOVDL,07H

CALLKEY_FU

KEY_11:

JMPSTTK

KEY_FU:

CALLLP

MOVAL,DL

MOVBX,OFFSETTABLE1

XLATTABLE1

MOV[DI],AL

CALLDISP

RET

LP:

MOVCX,0003H

MOVDI,OFFSETVAR

LP1:

MOVAL,[DI+1]

MOV[DI],AL

INCDI

LOOPLP1

RET

DISP:

LEASI,TABLE2

LEADI,VAR

MOVCX,0004H

DIR:

MOVAL,[SI]

OUT60H,AL

MOVAL,[DI]

OUT62H,AL

CALLTIME

INCSI

INCDI

LOOPDIR

RET

TIME:

PUSHAX

PUSHCX

MOVCX,0040H

TIME1:

MOVAX,0010H

TIME2:

DECAX

JNZTIME2

LOOPTIME1

POPCX

POPAX

RET

STTK:

CALLDISP

MOVAL,00H

OUT60H,AL

INAL,61H

ANDAL,18H

CMPAL,18H

JNZSTTK

JMPSTT

CODEENDS

ENDSTART

 

八、键盘操纵显示器

显示器

键盘

1

2

清零

要求:

一、按清零键,显示器四位显示零;

二、按1号键显示器自右向左移动循环显示79B54321

3、按2号键显示器自下向上移动循环显示23CF

程序流程图:

程序:

STACKSEGMENTSTACK

DW64DUP(?

STACKENDS

DATASEGMENT

VARDB00H,00H,00H,00H

VAR2DB0F7H,0FBH,0FDH,0FEH

TABLE3DB10H,10H,10H,08H,18H

DB30H,18H,0AH,1H,32H,18H,0EH

DB5AH,72H,1CH,0EH,0DAH,0F2H

DB9CH,8EH

TABLE1DB60H,0DAH,0F2H,66H

DB0B6H,3EH,0F6H,0E4H

TABLE4DB0FCH,0FCH,0FCH,0FCH

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVAL,82H

OUT63H,AL

STT:

MOVAL,00H

OUT60H,AL

INAL,61H

ANDAL,18H

CMPAL,18H

JNZKEYY

JMPSTT

KEYY:

CALLTIME

INAL,61H

ANDAL,18H

CMPAL,18H

JNZKEY_20

JMPSTT

KEY_20:

MOVAL,0F7H

OUT60H,AL

INAL,61H

TESTAL,08H

JNZKEY_01

CALLSTTK

JMPDIS2

KEY_01:

MOVAL,0FBH

OUT60H,AL

INAL,61H

TESTAL,08H

JNZKEY_10

CALLSTTK

JMPDIS0

KEY_10:

MOVAL,0FEH

OUT60H,AL

INAL,61H

TESTAL,10H

JNZKEY_11

CALLSTTK

JMPDIS1

KEY_11:

JMPSTT

STTK:

MOVAL,00H

OUT60H,AL

INAL,61H

ANDAL,18H

CMPAL,18H

JNZSTTK

RET

DIS2:

LEASI,TABLE3

MOVBX,05H

A3:

LEADI,VAR

MOVCX,04H

A11:

MOVAL,[SI]

MOV[DI],AL

INCSI

INCDI

LOOPA11

CALLLDIS

JMPSTT2

A4:

DECBX

JNZA3

JMPDIS2

STT2:

PUSHAX

MOVAL,00H

OUT62H,AL

MOVAL,00H

OUT60H,AL

INAL,61H

ANDAL,18H

CMPAL,18H

JNZSTT3

POPAX

JMPA4

STT3:

CALLTIME

INAL,61H

ANDAL,18H

CMPAL,18H

JNZA10

POPAX

JMPA4

A10:

MOVAL,0FBH

OUT60H,AL

INAL,61H

TESTAL,08H

JNZKEY_1110

CALLSTTK

JMPDIS0

KEY_1110:

MOVAL,0FEH

OUT60H,AL

INAL,61H

TESTAL,10H

JNZA4

CALLSTTK

JMPDIS1

DIS0:

LEASI,TABLE4

LEADI,VAR

MOVCX,04H

A5:

MOVAL,[SI]

MOV[DI],AL

INCDI

INCSI

LOOPA5

CALLDIS

JMPSTT0

STT0:

MOVAL,00H

OUT60H,AL

INAL,61H

ANDAL,18H

CMPAL,18H

JNZSTT1

JMPDIS0

STT3:

CALLTIME

INAL,61H

ANDAL,18H

CMPAL,18H

JNZA13

JMPDIS0

A13:

MOVAL,0F7H

OUT60H,AL

INAL,61H

TESTAL,08H

JNZKEY_111

CALLSTTK

JMPDIS2

KEY_111:

MOVAL,0FEH

OUT60H,AL

INAL,61H

TESTAL,10H

JNZDIS0

CALLSTTK

JMPDIS1

DIS1:

LEASI,TABLE1

MOVBX,02H

A8:

LEADI,VAR

MOVCX,04H

A7:

MOVAL,[SI]

MOV[DI],AL

INCSI

CALLLDIS

JMPSTT4

A9:

CALLLP

LOOPA7

DECBX

JNZA8

JMPDIS1

STT4:

MOVAL,00H

OUT60H,AL

INAL,61H

ANDAL,18H

CMPAL,18H

JNZSTT5

JMPA9

STT5:

CALLTIME

INAL,61H

ANDAL,18H

CMPAL,18H

JNZA12

JMPA9

A12:

MOVAL,0F7H

OUT60H,AL

INAL,61H

TESTAL,08H

JNZKEY_231

CALLSTTK

JMPDIS2

KEY_231:

MOVAL,0FBH

OUT60H,AL

INAL,61H

TESTAL,08H

JNZA9

CALLSTTK

JMPDIS0

LP:

PUSHDI

PUSHSI

PUSHAX

PUSHCX

LEASI,VAR

MOVAL,[SI+2]

MOV[SI+3],AL

MOVAL,[SI+1]

MOV[SI+2],AL

MOVAL,[SI]

MOV[SI+1],AL

POPCX

POPAX

POPSI

POPDI

RET

DIS:

PUSHDI

PUSHSI

PUSHAX

PUSHCX

LEASI,VAR

LEADI,VAR2

MOVCX,0004H

DIR:

MOVAL,00H

OUT62H,AL

MOVAL,[DI]

OUT60H,AL

MOVAL,[SI]

OUT62H,AL

CALLTIME

INCSI

INCDI

LOOPDIR

POPCX

POPAX

POPSI

POPDI

RET

TIME:

PUSHAX

PUSHCX

MOVCX,0040H

TIME1:

MOVAX,0010H

TIME2:

DECAX

JNZTIME2

LOOPTIME1

POPCX

POPAX

RET

LDIS:

PUSHCX

LAP1:

MOVCX,0AH

CALLDIS

LOOPLAP1

POPCX

RET

CODEENDS

ENDSTART

九、实现计算器:

(a)概念键盘按键,5个位数字键:

A,E,6,8,4;3个功能键:

加号+,除号÷,等号=;

(b)可进行三位16进制加法运算;

(c)可进行两位16进制除法运算。

流程图:

程序:

DATASEGMENT

VAR1DB0F7H,0FBH,0FDH,0FEH

VAR2DB00H,00H,00H,00H

VAR3DB00H,00H,00H,00H

VAR4DB00H,00H

TABLE1DB0FCH,60H,0DAH,0F2H,

DB066H,0B6H,0BEH,0E4H,0FEH,0F6H

DB0EEH,3EH,9CH,7AH,9EH,8EH

DATAENDS

STACKSEGMENT

DW64DUP(?

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVAL,82H

OUT63H,AL

MOVBX,0000H

STT:

MOVAL,00H

OUT60H,AL

INAL,61H

ANDAL,18H

CMPAL,18H

JNZKEYABC

CALLDISP

JMPSTT

KEYABC:

CALLTIME

INAL,61H

ANDAL,18H

CMPAL,18H

JNZKEY_A

JMPSTT

;**************************KEY_A:

MOVAL,0F7H

OUT60H,AL

INAL,61H

TESTAL,10H

JNZKEY_4

CALLKEYA

JMPSTTK

KEY_4:

TESTAL,08H

JNZKEY_E

CALLKEY4

JMPSTTK

KEY_E:

MOVAL,0FBH

OUT60H,AL

INAL,61H

TESTAL,10H

JNZKEY_6

CALLKEYE

JMPSTTK

KEY_6:

TESTAL,08H

JNZKEY_ADD

CALLKEY6

JMPSTTK

KEY_ADD:

MOVAL,0FDH

OUT60H,AL

INAL,61H

TESTAL,10H

JNZKEY_8

CALLKEYADD

JMPSTTK

KEY_8:

TESTAL,08H

JNZKEY_DIV

CALLKEY8

JMPSTTK

KEY_DIV:

MOVAL,0FEH

OUT60H,AL

INAL,61H

TESTAL,10H

JNZKEY_EQU

MOVDH,00H

CALLKEYDIV

JMPSTTK

KEY_EQU:

TESTAL,08H

JNZKEY_11

CMPDH,01H

JZCLEARA

CALLKEYEQU

JMPSTTK

KEY_11:

JMPSTT

;***********************

CLEARA:

MOVSI,OFFSETVAR2;

MOVDI,OFFSETVAR3

MOVCX,04H

CLEAR2:

MOVAL,00H

MOV[SI],AL

MOVAL,00H

MOV[DI],AL

INCSI

INCDI

LOOPCLEAR2

MOVBH,00H

MOVSI,OFFSETVAR4

MOVCX,02H

LOOP1:

MOVAL,00H

MOV[SI],AL

INCSI

LOOPLOOP1

MOVDH,00H

JMPSTT

;***********************

KEYA:

CMPBH,00H

;数字键处置程序

JZKEYA_1

CALLCLEAR

KEYA_1:

CALLLP1

MOVAL,0EEH

MOV[SI],AL

MOVAL,0AH

MOV[DI],AL

CALLDISP

RET

KEY4:

CMPBH,00H

JZKEY4_1

CALLCLEAR

KEY4_1:

CALLLP1

MOVAL,66H

MOV[SI],AL

MOVAL,04H

MOV[DI],AL

CALLDISP

RET

KEYE:

CMPBH,00H

JZKEYE_1

CALLCLEAR

KEYE_1:

CALLLP1

MOVAL,9EH

MOV[SI],AL

MOVAL,0EH

MOV[DI],AL

CALLDISP

RET

KEY6:

CMPBH,00H

JZKEY6_1

CALLCLEAR

KEY6_1:

CALLLP1

MOVAL,0BEH

MOV[SI],AL

MOVAL,06H

MOV[DI],AL

CALLDISP

RET

KEY8:

CMPBH,00H

JZKEY8_1

CALLCLEAR

KEY8_1:

CALLLP1

MOVAL,0FEH

MOV[SI],AL

MOVAL,08H

MOV[DI],AL

CALLDISP

RET

;**********************KEYADD:

CMPBH,00H;符号键处置程序

JNZKEYADD_1

CALLLP3

KEYADD_1:

MOVBX,0101H

RET

KEYDIV:

CMPBH,00H

JNZKEYDIV_1

CALLLP3

KEYDIV_1:

MOVBX,0102H

RET

;************************

KEYEQU:

MOVBH,01H

;等于号处置程序

CMPBL,01H

JZK1

CMPBL,02H

JZK2

STTE:

RET

K1:

CALLADD1

MOVDH,01H

JMPSTTE

K2:

CALLDIV1

MOVDH,01H

JMPSTTE

;************************

CLEAR:

MOVSI,OFFSETVAR2

;数据清零子程序

MOVDI,OFFSETVAR3

MOVCX,04H

CLEAR1:

MOVAL,00H

MOV[SI],AL

MOVAL,00H

MOV[DI],AL

INCSI

INCDI

LOOPCLEAR1

MOVBH,00H

RET

;*******************

ADD1:

MOVDI,OFFSETVAR4

MOVSI,OFFSETVAR3

MOVAL,[SI]

SHLAL,4

ORAL,[SI+1]

MOVAH,AL

MOVDH,[DI]

INCDI

INCSI

INCSI

MOVAL,[SI]

SHLAL,4

ORAL,[SI+1]

MOVDL,[DI]

ADDAX,DX

DECDI

MOV[DI],AH

MOV[DI+1],AL

CALLCHANGE

CALLDISP

RET

DIV1:

MOVDI,OFFSETVAR4

MOVSI,OFFSETVAR3

MOVCL,[SI]

SHLCL,4

ORCL,[SI+1]

MOVCH,CL

MOVAH,[DI]

INCDI

INCSI

INCSI

MOVCL,[SI]

SHLCL,4

OR

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

当前位置:首页 > 经管营销

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

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