微机原理及应用课程设计.docx
- 文档编号:28752147
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:34
- 大小:98.05KB
微机原理及应用课程设计.docx
《微机原理及应用课程设计.docx》由会员分享,可在线阅读,更多相关《微机原理及应用课程设计.docx(34页珍藏版)》请在冰豆网上搜索。
微机原理及应用课程设计
课程设计
课程名称微机原理及应用课程设计
题目名称计算器
(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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 应用 课程设计