微机原理课程设计.docx

上传人:b****6 文档编号:4433786 上传时间:2022-12-01 格式:DOCX 页数:20 大小:55.07KB
下载 相关 举报
微机原理课程设计.docx_第1页
第1页 / 共20页
微机原理课程设计.docx_第2页
第2页 / 共20页
微机原理课程设计.docx_第3页
第3页 / 共20页
微机原理课程设计.docx_第4页
第4页 / 共20页
微机原理课程设计.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

微机原理课程设计.docx

《微机原理课程设计.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计.docx(20页珍藏版)》请在冰豆网上搜索。

微机原理课程设计.docx

微机原理课程设计

课程设计任务书

学生姓名:

黎健专业班级:

电气0804

指导教师:

张锐工作单位:

自动化学院

题目:

计算机时钟模拟显示软件设计

初始条件:

1.用于调试程序的IBM兼容PC机一台;

2.安装DOS/WIN98操作系统或运行于DOS/WIN98兼容方式;

3.EDIT等文本编辑器输入80x86汇编程序,MASM5.0编译及链接程序。

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1.使用汇编语言设计一个运行于计算机的时钟模拟显示软件,软件应实现模拟显示时钟,要求至少有一种动态时钟显示效果如七段码管形状显示或旋转指针式指示效果等。

可以附加显示花边背景和日期信息。

2.说明书撰写格式应符合《课程设计说明书统一书写格式》。

时间安排:

1.程序框图设计,3天

2.编程,4天

3.调试,3天

4.编写设计报告,4天

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

摘要

汇编语言是面向机器的程序设计语言。

在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。

这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。

于是汇编语言亦称为符号语言。

使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。

汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。

汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。

高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。

在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。

现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。

汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。

本文将介绍用汇编语言设计一个计算机时钟模拟显示软件。

目录

1基本功能描述4

2设计思路4

2.1设计任务及要求4

2.2程序流程图5

3软件设计6

3.1背景格局设计6

3.2文本方式设置6

3.3获取系统日期和时间7

3.4日期显示子程序7

3.5时间显示子程序9

4调试过程和运行结果及分析11

4.1调试过程11

4.2运行结果显示11

4.3结果分析13

5心得体会14

6参考文献15

7附录16

源程序16

本科生课程设计评定表22

计算机时钟模拟显示软件设计

1基本功能描述

需要设计的计算机时钟模拟显示程序是基于汇编语言的WINDOWS应用程序设计,程序运行成功后,页面出现数字式的时钟,数字钟的钟面为一个规则的矩形。

当从键盘上输入t时,其显示时间的格式是:

××时:

××分:

××秒,小时为24进制,分钟和秒都是60进制;当从键盘上输入d时,其显示时间的格式是:

××××年××月××日。

此模拟时钟外观简洁,功能和实际运用到的时钟基本一样,用起来非常方便。

2设计思路

2.1设计任务及要求

(1)使用汇编语言设计一个运行于计算机的时钟模拟显示软件,软件应实现模拟显示时钟,要求至少有一种动态时钟显示效果如七段码管形状显示或旋转指针式指示效果等。

可以附加显示花边背景和日期信息。

(2)说明书撰写格式应符合《课程设计说明书统一书写格式》。

 

2.2程序流程图

根据以上程序流程相应的说明,在程序编写前,我们应先画出程序流程图,这有助于我们理清思路,本程序的流程图如图1所示。

图1计算机时钟模拟程序流程图

 

3软件设计

3.1背景格局设计

如果数字式时钟不加一些背景加以修饰,就会显得单调,所以我们可以加花边或其它的一些东西加以修饰,使他看起来更加舒适和赏心悦目。

对背景格局的初始化程序段如下:

SPACEDB2000DUP('')

PATTERNDB6DUP(''),0C9H,26DUP(0CDH),0BBH,6DUP('')

DB6DUP('#'),0BAH,26DUP(20H),0BAH,6DUP('#')

DB6DUP(''),0C8H,26DUP(0CDH),0BCH,6DUP('')

BUFF1DB7DUP(':

'),24DUP('')

BUFF2DB21DUP('')

STRDB0DH,0AH,'Pleaseinputdate(d)ortime(t)orquit(q):

$'

3.2文本方式设置

文本显示方式原理如表1所示。

表1常用的几种显示方式

AH

调用参数AL

显示方式

00

00

40×25黑白文本方式

00

01

40×25彩色文本方式

00

02

80×25黑白文本方式

00

03

80×25彩色文本方式

00

04

320×200彩色文本方式

00

05

320×200黑白文本方式

00

06

640×200黑白文本方式

这里我们采用40×25黑白文本方式,所以设置显示方式的程序段如下:

MOVAX,0001H

INT10H

3.3获取系统日期和时间

系统日期的调用程序段:

MOVAH,2AH

INT21H

系统时间的调用程序段:

MOVAH,2CH

INT21H

3.4日期显示子程序

日期显示子程序模块设计功能为实时调用系统日期并将其显示。

系统日期调用应用2AH号系统功能,将年月日都以二进制存入各寄存器中,要想显示出来必须转换成ASCII码才行。

具体程序如下:

DATEPROCNEAR

DISPLAY:

MOVAH,2AH;取日期

INT21H

MOVSI,0

MOVAX,CX

MOVBX,100

DIVBL

MOVBL,AH

CALLBCDASC1;日期数值转换成相应的ASCII码字符

MOVAL,BL

CALLBCDASC1

INCSI

MOVAL,DH

CALLBCDASC1

INCSI

MOVAL,DL

CALLBCDASC1

MOVBP,OFFSETBUFF2

MOVDX,0C0DH

MOVCX,20

MOVBX,002EH

MOVAX,1301H

INT10H

MOVAH,02H;设置光标位置

MOVDX,0F2BH

MOVBH,0

INT10H

MOVBX,0018H

BB1:

MOVCX,0FFFFH;延时

BB2:

LOOPBB2

DECBX

JNZBB1

MOVAH,01H;读键盘缓冲区字符到AL寄存器

INT16H

JEDISPLAY

JMPSTART

MOVAX,4C00H

INT21H

RET

DATEENDP

3.5时间显示子程序

时间显示子程序模块设计与日期显示子程序类似,系统时间调用应用2CH号系统功能。

具体程序如下:

TIMEPROCNEAR

DISPLAY1:

MOVSI,0

MOVBX,100

DIVBL

MOVAH,2CH;取时间

INT21H

MOVAL,CH

CALLBCDASC;将时间数值转换成ASCII码字符

INCSI

MOVAL,CL

CALLBCDASC

INCSI

MOVAL,DH

CALLBCDASC

MOVBP,OFFSETBUFF1

MOVDX,0C0DH

MOVCX,20

MOVBX,002EH

MOVAX,1301H

INT10H

MOVAH,02H

MOVDX,0F2BH

MOVBH,0

INT10H

MOVBX,0018H

DD1:

MOVCX,0FFFFH

DD2:

LOOPDD2

DECBX

JNZDD1

MOVAH,01H

INT16H

JEDISPLAY1

JMPSTART

MOVAX,4C00H

INT21H

RET

TIMEENDP

4调试过程和运行结果及分析

4.1调试过程

(1)编写源文件,命名为shizhonglijian.asm,并保存于默认文件夹中。

(2)打开文件shizhonglijian.asm,编译使之生成目标文件,检查源程序中的错误,并改正,直到编译无错误出现为止。

(3)点击菜单栏中运行里的连接,再点击运行,输入相应的字符就会显示相应的结果。

4.2运行结果显示

(1)当从键盘输入d时,其显示结果如图2所示。

图2输入d时的界面显示图

 

(2)当从键盘输入t时,其显示结果如图3所示。

图3输入t时的界面显示图

(3)当从键盘输入q时,其显示结果如图4所示。

图4输入q时的界面显示图

4.3结果分析

经验证,当从键盘上输入d时,电子钟显示日期,且与计算机系统保持一致;当从键盘上输入t时,电子钟显示时间,也与计算机系统同步;当从键盘上输入q时,退出显示,返回DOS系统。

综上所述,本次课程设计基本达到设计任务书要求。

5心得体会

经过以上步骤,课程设计所要求设计的计算机时钟模拟显示设计软件便成功完成了,它能显示数字式的时钟,并且与计算机系统时间保持一致。

整个页面简洁清晰,方便用户读取,且操作简捷,符合课程设计中的各项要求。

通过这次课程设计,我们对日常生活中司空见惯的时钟的工作原理有了一个比较深入的了解,将书本中的知识更好地与实际生活中的应用结合在了一起。

在这次微机原理的课程设计中,我们在汇编语言环境下,编写Windows应用程序。

汇编语言定义了一个标准的应用程序框架,为我们提供了大量可用代码,隐藏了程序设计中的许多复杂工作,在程序编写和调试过程中,掌握了程序调试方法,大大提高了编程能力和动手能力。

在程序的调试过程之中,可以说是困难重重,特别是对数字式时钟背景的绘制,,还要考虑数字式的时钟与计算机系统时间保持一致。

在不断的改正错误和调试的过程之中,所要求设计的计算机时钟模拟显示总算是运行成功。

到此为止,我们接近两周的课程设计也告一段落。

通过这次课程设计,使我认识到理论与实际相结合的重要性,对课本上的只是在实际生活中的运用也有了进一步的了解,同时基本上能够掌握汇编语言编程中的对话框编程的步骤,可以说是从中受益匪浅。

6参考文献

[1]周佩玲彭虎傅忠谦微机原理与接口技术.电子工业出版社.2007

[2]朱金均麻新旗微机原理及应用技术(第二版).机械工业出版社.2005

[3]王爽汇编语言.第2版.北京.清华大学出版社.2008

[4]沈美明温冬婵IBM-PC汇编语言程序设计.清华大学出版社.1993

[5]丁辉汇编语言程序设计.第3版.电子工业出版社.2009

 

7附录

源程序

STACKSEGMENTSTACK

DW200DUP(?

STACKENDS

DATASEGMENT

SPACEDB2000DUP('')

PATTERNDB6DUP(''),0C9H,26DUP(0CDH),0BBH,6DUP('')

DB6DUP('#'),0BAH,26DUP(20H),0BAH,6DUP('#')

DB6DUP(''),0C8H,26DUP(0CDH),0BCH,6DUP('')

BUFF1DB7DUP(':

'),24DUP('')

BUFF2DB21DUP('')

STRDB0DH,0AH,'Pleaseinputdate(d)ortime(t)orquit(q):

$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,ES:

DATA,SS:

STACK

START:

MOVAX,0001H;设置显示方式为40*25彩色文本方式

INT10H

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVBP,OFFSETSPACE

MOVDX,0D00H

MOVCX,2000

MOVBX,0021H

MOVAX,1301H

INT10H

MOVBP,OFFSETPATTERN;显示矩形条

MOVDX,0B00H

MOVCX,120

MOVBX,002EH

MOVAX,1301H

INT10H

LEADX,STR;显示提示信息

MOVAH,9

INT21H

MOVAH,1;从键盘输入单个字符

INT21H

CMPAL,64H;AL='d'?

JNEAA1

CALLDATE;显示系统日期

AA1:

CMPAL,74H;AL='t'?

JNEAA2

CALLTIME;显示系统时间

AA2:

CMPAL,71H;AL='q'?

JNESTART

MOVAH,4CH;返回dos状态

INT21H

DATEPROCNEAR;显示日期子程序

DISPLAY:

MOVAH,2AH;取日期

INT21H

MOVSI,0

MOVAX,CX

MOVBX,100

DIVBL

MOVBL,AH

CALLBCDASC1;日期数值转换成相应的ASCII码字符

MOVAL,BL

CALLBCDASC1

INCSI

MOVAL,DH

CALLBCDASC1

INCSI

MOVAL,DL

CALLBCDASC1

MOVBP,OFFSETBUFF2

MOVDX,0C0DH

MOVCX,20

MOVBX,002EH

MOVAX,1301H

INT10H

MOVAH,02H;设置光标位置

MOVDX,0F2BH

MOVBH,0

INT10H

MOVBX,0018H

BB1:

MOVCX,0FFFFH;延时

BB2:

LOOPBB2

DECBX

JNZBB1

MOVAH,01H;读键盘缓冲区字符到AL寄存器

INT16H

JEDISPLAY

JMPSTART

MOVAX,4C00H

INT21H

RET

DATEENDP

TIMEPROCNEAR;显示时间子程序

DISPLAY1:

MOVSI,0

MOVBX,100

DIVBL

MOVAH,2CH;取时间

INT21H

MOVAL,CH

CALLBCDASC;将时间数值转换成ASCII码字符

INCSI

MOVAL,CL

CALLBCDASC

INCSI

MOVAL,DH

CALLBCDASC

MOVBP,OFFSETBUFF1

MOVDX,0C0DH

MOVCX,20

MOVBX,002EH

MOVAX,1301H

INT10H

MOVAH,02H

MOVDX,0F2BH

MOVBH,0

INT10H

MOVBX,0018H

DD1:

MOVCX,0FFFFH

DD2:

LOOPDD2

DECBX

JNZDD1

MOVAH,01H

INT16H

JEDISPLAY1

JMPSTART

MOVAX,4C00H

INT21H

RET

TIMEENDP

BCDASCPROCNEAR;时间数值转换成ASCII码字符子程序

PUSHBX

CBW

MOVBL,10

DIVBL

ADDAL,'0'

MOVBUFF1[SI],AL

INCSI

ADDAH,'0'

MOVBUFF1[SI],AH

INCSI

POPBX

RET

BCDASCENDP

BCDASC1PROCNEAR;日期数值转换成ASCII码字符子程序

PUSHBX

CBW

MOVBL,10

DIVBL

ADDAL,'0'

MOVBUFF2[SI],AL

INCSI

ADDAH,'0'

MOVBUFF2[SI],AH

INCSI

POPBX

RET

BCDASC1ENDP

CODEENDS

ENDSTART

 

本科生课程设计成绩评定表

姓名

黎健

性别

专业、班级

电气0804班

课程设计题目:

计算机时钟模拟显示软件设计

课程设计答辩或质疑记录:

 

成绩评定依据:

评分项目

分值

评分

1.选题合理、目的明确

10

 

2.设计方案正确,具有可行性、创新性

25

 

3.设计结果:

仿真与实验验证

25

 

4.态度认真、学习刻苦、独立完成任务

15

 

5.设计报告规范化、参考文献充分、无原则性错误

15

 

6.答辩

10

 

总分

100

 

最终评定成绩(以优、良、中、及格、不及格评定)

指导教师签字:

年月日

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

当前位置:首页 > 工程科技 > 电力水利

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

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