七段码电子表显示程序 攀枝花学院数计院的学弟们下载吧.docx

上传人:b****4 文档编号:24539869 上传时间:2023-05-28 格式:DOCX 页数:27 大小:118.62KB
下载 相关 举报
七段码电子表显示程序 攀枝花学院数计院的学弟们下载吧.docx_第1页
第1页 / 共27页
七段码电子表显示程序 攀枝花学院数计院的学弟们下载吧.docx_第2页
第2页 / 共27页
七段码电子表显示程序 攀枝花学院数计院的学弟们下载吧.docx_第3页
第3页 / 共27页
七段码电子表显示程序 攀枝花学院数计院的学弟们下载吧.docx_第4页
第4页 / 共27页
七段码电子表显示程序 攀枝花学院数计院的学弟们下载吧.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

七段码电子表显示程序 攀枝花学院数计院的学弟们下载吧.docx

《七段码电子表显示程序 攀枝花学院数计院的学弟们下载吧.docx》由会员分享,可在线阅读,更多相关《七段码电子表显示程序 攀枝花学院数计院的学弟们下载吧.docx(27页珍藏版)》请在冰豆网上搜索。

七段码电子表显示程序 攀枝花学院数计院的学弟们下载吧.docx

七段码电子表显示程序攀枝花学院数计院的学弟们下载吧

攀枝花学院

学生课程设计(论文)

题目:

七段码电子表显示程序

学生姓名:

游欢学号:

200910804044

所在院(系):

计算机学院

专业:

软件工程

班级:

2组

指导教师:

何老师职称:

讲师

 

2010年12月31日

攀枝花学院教务处制

 

攀枝花学院本科学生课程设计任务书

题 目

七段码电子表显示程序

1、课程设计的目的

通过本课程设计教学所要达到的目的是:

1、培养学生理论联系实际的设计思想,提高学生综合运用汇编语言课程的理论知分析问题、解决问题的能力。

2、通过查找、运用设计资料,完成工程设计所必备的基本训练。

3、使同学们更深入的了解计算机系统内部的有关知识,为以后的学习和系统开发奠定良好的基础。

2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)

设计内容:

用电子表的形式显示系统时间。

以“时:

分:

秒”的形式显示时间。

设计思路:

数字0~9中的每一个数字用“|”和“—”字符组成的“七段”码图形表示,时与分、分与秒之间的两点用“▼”字符表示。

这些字符预先定义在数据段的字符图形里,利用BIOSINT1AH的2号系统功能调用,读出计算机系统的时间(为BCD码),置换成字符图形标中的图形字符显示。

本程序设计的关键是随着系统时间的变化,用字符组成的图形数字如何进行相应的变化。

方法是:

不停地读取系统时间并保存在寄存器中,将每次取出的时间显示并与前一次比较,先比较“秒”值,在不同的情况下(系统时间发生了增1的变化),则调用相应的图形字符显示,在不超过60秒的情况下,重复比较秒,然后再比较和显示“分”值与“小时”值。

程序流程图如图所示。

3、主要参考文献

[1]《汇编语言程序设计》,吴向军等,高等教育出版社,2002

[2]《IBM-PC汇编语言及程序设计》(第2版),沈美明等,清华大学出版社,2001

[3]《IBM-PC汇编语言及程序设计实验教程》,沈美明等,清华大学出版社,2001

[4]《汇编语言程序设计》,钱晓捷等,电子工业出版社,2000

[5]《汇编语言程序设计》,张志明等,重庆大学出版社,1997

4、课程设计工作进度计划

时间(天)内容安排

1分析设计准备

3编程调试阶段

1编写课程设计报告

指导教师(签字)

日期

年月日

教研室意见:

 

年月日

学生(签字):

接受任务时间:

年月日

注:

任务书由指导教师填写。

 

课程设计(论文)指导教师成绩评定表

题目名称

七段码电子表显示程序

评分项目

分值

得分

评价内涵

工作

表现

20%

01

学习态度

6

遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。

02

科学实践、调研

7

通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。

03

课题工作量

7

按期圆满完成规定的任务,工作量饱满。

能力

水平

35%

04

综合运用知识的能力

10

能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。

05

应用文献的能力

5

能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。

06

设计(实验)能力,方案的设计能力

5

能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。

07

计算及计算机应用能力

5

具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。

08

对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)

10

具有较强的数据收集、分析、处理、综合的能力。

成果

质量

45%

09

插图(或图纸)质量、篇幅、设计(论文)规范化程度

5

符合本专业相关规范或规定要求;规范化符合本文件第五条要求。

10

设计说明书(论文)质量

30

综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。

11

创新

10

对前人工作有改进或突破,或有独特见解。

成绩

指导教师评语

 

指导教师签名:

年 月 日

 

摘要

用七段码电子表显示程序系统时间,此程序设计的关键是随系统时间的变化,用字符组成图形数字如何进行相应的变化。

根据七段码电子表显示程序设计的要求,写出七段码电子表显示程序的源代码,画出程序运行的流程图,输入计算机进行运行,发现并找出其中的错误并加以修改,反复调试程序,直到得出正确结论为止。

通过对七段码电子表显示程序的设计,初步掌握汇编语言程序设计的方法,最后在总结此次设计程序的心得与体会。

 

关键词:

源代码,函数,BCD码,寄存器

 

1课程设计题目描述和要求

1.1问题提出及功能要求

1.1.1问题

如何用电子表的形式显示系统时间?

1.1.2功能要求

1)七段码电子表显示程序

2)菜单选择:

设置时,分,秒,开始,推出等

3)模拟七段码显示管显示时,分,秒

4)要求界面美

1.2运行环境

微型计算机(系统为Windows98/2000/XP)

1.3本课题涉及的知识点

1.3.1数据段

1)Disptime,Showtime显示时钟

2)定义0—9十个图形数字,以便模拟七段码显示时钟

1.3.2宏定义

1)Clear定义清屏宏

2)rowcol定义光标定位宏

3)crlf回车换行宏

4)display显示字符串宏

5)change计算时间宏

1.3.3函数

1)main主函数

2)paly主要完成显示七段码电子表显示

3)prog0到prog10完成七段码到一半显示的转换

4)moveshape显示七段码电子表

5)delay延迟函数

6)exit返回DOS函数

 

2算法设计

2.1设计思路

数字0~9中的每一个数字用“|”和“—”字符组成的“七段”码图形表示,时与分、分与秒之间的两点用“▼”字符表示。

这些字符预先定义在数据段的字符图形里,利用BIOSINT1AH的2号系统功能调用,读出计算机系统的时间(为BCD码),置换成字符图形标中的图形字符显示。

本程序设计的关键是随着系统时间的变化,用字符组成的图形数字如何进行相应的变化。

方法是:

不停地读取系统时间并保存在寄存器中,将每次取出的时间显示并与前一次比较,先比较“秒”值,在不同的情况下(系统时间发生了增1的变化),则调用相应的图形字符显示,在不超过60秒的情况下,重复比较秒,然后再比较和显示“分”值与“小时”值。

程序流程图如图所示。

2.2主要流程图

2.1主程序流程图

2.2dzbiao流程图

3代码设计

datasegment

;*****定义please等提示信息*****

strdb20

db50h,7,0,0

db6ch,7,0,1

db65h,7,0,1

db61h,7,0,1

db73h,7,0,1

db65h,7,0,1

db70h,7,1,-10

db72h,7,0,1

db65h,7,0,1

db73h,7,0,1

db73h,7,0,1

db53h,7,0,2

db6bh,7,0,2

db65h,7,0,1

db79h,7,0,1

db65h,7,0,2

db78h,7,0,1

db69h,7,0,1

db74h,7,0,1

db21h,7,0,1

;*****定义0-9十个图形数字*****

s0db6

db5fh,7,0,0

db7ch,7,1,-1

db7ch,7,1,0

db5fh,7,0,1

db7ch,7,0,1

db7ch,7,-1,0

sydb2

db7ch,7,1,0

db7ch,7,1,0

s2db5

db5fh,7,0,0

db7ch,7,1,1

db5fh,7,0,-1

db7ch,7,1,-1

db5fh,7,0,1

s3db5

db5fh,7,0,0

db7ch,7,1,1

db5fh,7,0,-1

db7ch,7,1,1

db5fh,7,0,-1

s4db4

db7ch,7,1,0

db5fh,7,0,1

db7ch,7,1,1

db7ch,7,-1,0

s5db5

db5fh,7,0,0

db7ch,7,1,-1

db5fh,7,0,1

db7ch,7,1,1

db5fh,7,0,-1

s6db6

db5fh,7,0,0

db7ch,7,1,-1

db5fh,7,0,1

db7ch,7,1,1

db5fh,7,0,-1

db7ch,7,0,-1

s7db3

db5fh,7,0,0

db7ch,7,1,1

db7ch,7,1,0

s8db7

db7ch,7,1,0

db5fh,7,-1,1

db7ch,7,1,1

db5fh,7,0,-1

db7ch,7,1,1

db5fh,7,0,-1

db7ch,7,0,-1

s9db6

db7ch,7,1,0

db5fh,7,-1,1

db7ch,7,1,1

db5fh,7,0,-1

db7ch,7,1,1

db5fh,7,0,-1

s11db2

db03h,7,1,0

db03h,7,1,0

dataends

stacksegment

db200dup(0)

stackends

codesegment

assumecs:

code,ss:

stack,ds:

data

start:

movax,data

movds,ax

movah,0;设置显示方式

moval,4

int10h

movah,0bh;置彩色调板

movbh,0

movbl,1

int10h

movah,0bh;置彩色调板

movbh,1

movbl,4

int10h

movah,2;取系统时间

int1ah

movax,0

movbx,0

movah,ch;取系统时间

moval,cl;保存分钟

movbh,dh;保存秒

movbl,dl;保存百分之一秒

tt:

pushax

pushbx

movah,0

moval,4

int10h

movah,0bh

movbh,0

movbl,1

int10h

movah,0bh

movbh,1

movbl,4

int10h

MOVAH,1;读键盘缓冲区字符

INT16h

JZww

MOVAH,8;从键盘输入字符

INT21h

CMPAL,'s';输入s,结束程序

JEtu

ww:

popbx

popax

callxian;调用显示子程序

pushax

qu:

movah,2;取系统时间

int1ah

cmpbh,dh

jequ

popax

incbh;对时间进行加1

cmpbh,100

jltt

movbh,0

incal

callbeep

cmpal,100

jltt

moval,0

incah

cmpah,24

jltt

movah,0

jmptt

tu:

movah,4ch

int21h

ret

xianproc;对时间值进行处理并显示的子程序

pushsi

pushdi

pushdx

pushcx

pushbx

pushax

popax

pushax

movbx,ax

movax,0

moval,bh

movcl,4

shral,cl

movbl,al

movdh,10

movdl,2

callff

popax

pushax

movbx,ax

movax,0

moval,bh

andal,0fh

movbl,al

movdh,10

movdl,6

callff

movdh,10

movdl,10

movbl,10

callff

popax

pushax

movcl,4

shral,cl

movbl,al

movdh,10

movdl,14

callff

popax

pushax

andal,0fh

movbl,al

movdh,10

movdl,18

callff

movdh,10

movdl,22

movbl,10

callff

popax

popbx

pushbx

pushax

movax,0

moval,bh

movcl,4

shral,cl

movbl,al

movdh,10

movdl,26

callff

popax

popbx

pushbx

pushax

moval,bh

andal,0fh

movbl,al

movdh,10

movdl,30

callff

movdh,0

movdl,15

movbl,22

callff

popax

popbx

popcx

popdx

popdi

popsi

ret

xianendp

ffproc;显示具体数值

pushax

pushbx

pushcx

pushdx

cmpbl,0

jel0

cmpbl,1

jel1

cmpbl,2

jel2

cmpbl,3

jel3

cmpbl,4

jel4

cmpbl,5

jel5

cmpbl,6

jel6

cmpbl,7

jel7

cmpbl,8

jel8

cmpbl,9

jel9

cmpbl,10

jel10

cmpbl,22

jeld

l0:

leadi,s0

jmpty

l1:

leadi,sy

jmpty

l2:

leadi,s2

jmpty

l3:

leadi,s3

jmpty

l4:

leadi,s4

jmpty

l5:

leadi,s5

jmpty

l6:

leadi,s6

jmpty

l7:

leadi,s7

jmpty

l8:

leadi,s8

jmpty

l9:

leadi,s9

jmpty

l10:

leadi,s11

jmpty

ld:

leadi,str

ty:

movah,0fh;显示方式

int10h

subcx,cx

movcl,[di]

incdi

plot_next:

adddh,[di+2]

adddl,[di+3]

movah,2

int10h

moval,[di]

movbl,[di+1]

pushcx

movcx,1

movah,09

int10h

popcx

adddi,4

loopplot_next

popdx

popcx

popbx

popax

movcx,100

gg:

deccx

loopgg

ret

ffendp

clearproc

pushax

pushbx

pushcx

pushdx

movah,6

moval,0

movbh,1

int10h

popdx

popcx

popbx

popax

ret

clearendp

beepproc

pushax

pushbx

pushcx

pushdx

moval,10110110b

out43h,al

movax,533h

out42h,al

moval,ah

out42h,al

inal,61h

movah,al

oral,03

out61h,al

subcx,cx

movbl,28h

g7:

loopg7

decbl

jnzg7

moval,ah

out61h,al

popdx

popcx

popbx

popax

ret

beependp

codeends

endstart

 

4调试与运行

4.1实验步骤

1.打开windows命令窗口

2.进入masm程序的安装目录,如图

图4.1

3连接程序,并查看生成可执行文件huibian.exe

图4.2

4关闭对话框,打开可执行文件开始运行程序

4.2程序调试及运行

运行程序结果从0到9,如下列截图4.1到4.10所示

图4.3

图4.4

图4.5

图4.6

图4.7

图4.8

图4.9

图4.10

图4.11

图4.12

程序运行的任何时候按q或Q退出

4.3调试中出现的问题

没有注意到要操作的目标数据(内存中的数据)的大小和使用操作容器(寄存器)的大小没有一致。

另外,对于数据处理的ds:

[bx]方式,如movds:

[bx],dxaddbx,2在循环中应该注意bx的递增或递减大小,如处理字节,比如用dl,循环中就应该加或者减1;如果处理字,比如用dx,就应该加或者减2。

在以后应该留意这个一致性。

在8086上,ss和sp都是16位的,栈所处理数据的最小单位也是16位的,即最小是一个字,栈一次读和一次写,都至少是一个字那么大。

 

5总结

学习了汇编语言这门课程,对它有了基本的了解和认识。

认为自己可以解决一些简单的汇编语言程序设计问题,但是拿到题目还是感觉有些无从下手。

幸好得到了同学和老师的帮助,才从无从下手开始,一步步完成程序设计,一直到最后完成。

当我运行自己所编写的程序的时候,一种无以言表的喜悦充满了我的内心。

非常感谢帮助我的同学和老师,如果没有他们的帮助,我的课程设计时不可能按时完成的。

对于我所学习的软件工程这个专业来说,编写程序是最基本,也是最重要的技能,这次带着有些侥幸的完成,我感到有些惭愧。

但是,我相信,在以后的学习和实践中,我一定会汲取这次设计程序的经验和教训,争取把这门专业学的更好。

参考文献

 

[1]《汇编语言程序设计》,吴向军等,高等教育出版社,2002

[2]《IBM-PC汇编语言及程序设计》(第2版),沈美明等,清华大学出版社,2001

[3]《IBM-PC汇编语言及程序设计实验教程》,沈美明等,清华大学出版社,2001

[4]《汇编语言程序设计》,钱晓捷等,电子工业出版社,2000

[5]《汇编语言程序设计》,张志明等,重庆大学出版社,1997

[6]《汇编语言课程设计案例精编》,李珍香等,中国水利水电出版社,2004

[7]《新编深入DOS编程》,求伯军等,学宛出版社,1994

[8]《宏汇编语言MASM6实用大全》,东扬生等,科学出版社,1993

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

当前位置:首页 > 工程科技 > 能源化工

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

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