微机原理课程设计文档格式.docx
- 文档编号:17876828
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:56
- 大小:108.37KB
微机原理课程设计文档格式.docx
《微机原理课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计文档格式.docx(56页珍藏版)》请在冰豆网上搜索。
还有就是如何通过时钟中断调用来确定表的时针、分针和秒针的位置。
设计中遇到的问题和解决的步骤、方法:
遇到问题:
在课程设计中遇到的最大的困难是如何产生中断,对中断向量表的装载还比较模糊,对中断的初始化、具体设置、中断的返回还不是很清楚,最主要如何是通过时钟中断调用来确定表的时针、分针、和秒针的位置,并通过条用相关子程序画在屏幕上开始是不是很明白。
解决步骤、方法:
在此过程中我认真翻阅了课本,重点对课本《中断》这一章做了详细的研究和学习,同时还借阅了王爽的《汇编语言》一书,特别是对其中的一些常用的中断进行了全面的学习和深入的研究,基本上弄懂了各个中断的作用和应用,通过对这些中断的学习,使我对中断有了更深一步的认识,因而在相关程序的设计方面就容易了很多。
设计结果:
程序设计完成后,通过编译器编译成可执行文件.exe后,双击即可运行此指针显示的程序,同时屏幕上会出现一个时钟表盘,表盘上会显示相应的系统时间,同时在程序运行过程中,按C键可改变钟表界面各个部分的颜色;
按B键可扩大表盘;
按S键可听简单的音乐;
按Q建退出程序。
附录1:
程序运行截图(2张)
附录2:
源程序列表
extrnmusic:
far,gensound:
far
;
******************************************************
*堆栈段
.286;
STACK_SEGSEGMENTSTACK
STACK_BUFDW120DUP(?
)
TOPEQU$-STACK_BUF
STACK_SEGENDS
*数据段
DATA_SEGSEGMENTPARA
------------------------------------------------------
TODO:
数据的定义及存储器的分配
ts1DB0
quitbufDB'
welcomeyoutorunthisprogramme.'
quitbuf2DB'
C:
changecolor;
B:
extendthecolck;
S:
reducetheclock'
quitbuf3DB'
pressetosound;
Pressqtoquit!
'
sigleDB80h
absxDW0
absyDW0
sutDW0
erroybzDB0
r0DW90
x0DW320
y0DW245
count0db0
count_hourDB11
count_minuteDB11
yuanxinxDW0
yuanxinyDW0
sDB0
s2DB0
s3DB0
hourDW0
hour2DW0
minuteDW0
minute2DW0
secondDB0
second2DB0
sin_xDW0
sin_xxDW0
xDW0
yDW0
x1DW0
xminyDW0
yminxDW0
xmaxDW0
ymaxDW0
yminDW0
xminDW0
sjx_xminyDW0
sjx_yminxDW0
sjx_xmaxDW0
sjx_ymaxDW0
sjx_yminDW0
sjx_xminDW0
yuanxDW0
yuanyDW0
y1DW0
x2DW0
y2DW0
x3DW0
y3DW0
DIancolorDB0
colorDB2
color_hourDB2
color_minDB6
color_secondDB9
color4DB10
color5DB11
color6DB12
backgroundcolorDB1
page1DB0
y2y1DW0
x2x1DW0
sjx_y2y1DW0
sjx_x2x1DW0
-------------------------------
DATA_SEGENDS
*代码段
CODE_SEGSEGMENTPARA
MAINPROCFAR
ASSUMECS:
CODE_SEG,DS:
DATA_SEG
ASSUMESS:
STACK_SEG
START:
MOVAX,STACK_SEG
MOVSS,AX
MOVSP,TOP
MOVAX,DATA_SEG
MOVDS,AX
从这里开始您的代码
beg:
MOVAX,0012h
INT10h
MOVDX,0010h
CALLb1002
LEABP,quitbuf
CALLmsg
MOVDX,010ah
LEABP,quitbuf2
MOVDX,020ah
LEABP,quitbuf3
beg2:
CALLskin
CALLskin2
CALLskin3
CALLCLk
MOVsecond,DH
MOVsecond2,DH
MOVcount_minute,11
CALLminute_lin
XORDX,DX
MOVAX,minute2
MOVCX,12
DIVCX
MOVCX,AX;
minurte2/12
POPAX
ADDAX,CX
MOVhour2,AX
MOVcount_hour,11
CALLhour_lin
MOVDL,DH
CALLbcd2
XORAH,AH
MOVCL,12
DIVCL
MOVcount_minute,AH;
second%12初始值
DECcount_minute
XORDX,DX
DIVCX;
minurte2%12
MOVcount_hour,DL
DECcount_hour
INCsecond2
kk3:
CLI
CALLsecond_lin
STI
JMPks
ks:
MOVAH,1
INT16h
JZkk3
MOVAH,8
INT21h
CMPAL,'
q'
JEquit
b'
JECHange_rb
s'
JECHange_rs
c'
JECHange_color
cmpal,'
e'
jea0
JMPkk3
CHange_rs:
CMPr0,190
JAks
ADDr0,5
JMPtobeg2
CHange_rb:
CMPr0,60
JBks
SUBr0,5
CHange_color:
LEASI,color_hour
MOVCX,6
CHange_kk1:
MOVAL,[SI]
INCAL
CMPAL,15
JCCHange_color_kk2
MOVAL,1
CHange_color_kk2:
MOV[SI],AL
INCSI
LOOPCHange_kk1
JMPtobeg2
a0:
callmusic
tobeg2:
CALLCLear
JMPbeg2
quit:
MOVAX,4C00H
INT21H
*******************************
hour_linPROCNEAR
PUSHa
CMPcount_hour,11
JBtohour_yl
JMPhour_lin_next
tohour_yl:
MOVSIgle,3
JMPhour_yl
hour_lin_next:
MOVcount_hour,0
MOVSIgle,5
MOVDL,CH
CMPAL,12
JBhour_kk1
SUBAL,12
hour_kk1:
MOVCL,30
MULCL
PUSHAX
MOVCX,AX
MOVhour2,AX;
擦掉
MOVColor,0
MOVAX,hour
MOVBX,r0
ADDBX,20
CALLrenovate
MOVDX,yuanx
MOVx3,DX
MOVDX,yuany
MOVy3,DX
ADDAX,270
ADDBX,400;
90
CALLrenovate
MOVDX,yuanx;
擦掉
MOVx2,DX
MOVy2,DX
MOVDX,x0
MOVx1,DX
MOVDX,y0
MOVy1,DX
CALLsjx
ADDAX,180
SUBBX,100
MOVy3,DX;
CALLsjx
MOVSIgle,4
************************;
重写
hour_yl:
MOVAL,color_hour
MOVcolor,AL
MOVAX,hour2
ADDBX,70
ADDAX,90
ADDBX,600;
MOVy2,DX
;
CALLsjxx
CALLsjxy
MOVx3,DX
重写
MOVCX,hour2
MOVhour,CX
hour_quit:
POPa
RET
hour_linENDP
********************************
minute_linPROCNEAR
CMPcount_minute,11
JBtominute_yl
仍是原来的一个
JMPminute_lin_next
tominute_yl:
MOVSIgle,0
JMPminute_yl
minute_lin_next:
INCcount_hour
MOVDL,CL
CALLbcd2;
bcd->
16
MOVCL,6
MULCL;
al*cl
MOVDL,second2
CALLbcd2
MOVCL,AL
second2/12
MOVCH,0
MOVminute2,AX
AAAa1:
MOVSIgle,2
MOVAX,minute
ADDBX,10
ADDAX,268
ADDBX,800
MOVDX,y0
SUBBX,200
inccount0
cmpcount0,5
jnzminute_yl
movcount0,0
callmusic
***************************重写
minute_yl:
MOVsigle,1
MOVAL,color_min
ADDBX,30
ADDBX,900
MOVCX,minute2
MOVminute,CX
CALLhour_lin
minute_kk1:
minute_quit:
minute_linENDP
******************indh秒数*********************
second_linPROCNEAR
CMPsecond2,DH
JEto_second_quit
JMPsecond_lin_next
to_second_quit:
JMPsecond_quit
second_lin_next:
MOVSIgle,80h
MOVsecond2,DH
MOVColor,0
MOVDL,second;
erase
MOVAH,0
ADDBX,300
CALLlinex
CALLliney
MOVAL,color_second
ADDBX,300
CALLliney
CALLyuanxin
MOVsecond,DL
MOVCL,second2
MOVsecond,CL
JEsecond_kk1
INCcount_minute
JMPsecond_quit
second_kk1:
MOVcount_minute,0
second_quit:
second_linENDP
******bxbbx*********inax度数***bx长度,*********
OUTx2->
ax,y2->
dx;
**
renovatePROCNEAR
CALLSIn
MOVDX,0
MOVCX,BX
CMPSI,1
JEhjian
ADDAX,y0
JMPrenovate_kk1
hjian:
MOVCX,y0
SUBCX,AX
MOVAX,CX
renovate_kk1:
MOVyuany,AX
POPAX
CALLcos
JEhjian2
ADDAX,x0
JMPrenovate_kk2
hjian2:
MOVCX,x0
renovate_kk2:
MOVyuanx,AX
POPa
renovateENDP
**************************
ClkPROC
MOVAH,2
INT1ah
CLkENDP
*****************cosxinaxoutax,si符号******************
cosPROCNEAR
ADDAX,90
cos_kk1:
CALLSIn
cosENDP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)