毕业设计84吉林建筑工程学院电子时钟显示程序设计Word文档下载推荐.docx

上传人:b****3 文档编号:16414137 上传时间:2022-11-23 格式:DOCX 页数:20 大小:120.56KB
下载 相关 举报
毕业设计84吉林建筑工程学院电子时钟显示程序设计Word文档下载推荐.docx_第1页
第1页 / 共20页
毕业设计84吉林建筑工程学院电子时钟显示程序设计Word文档下载推荐.docx_第2页
第2页 / 共20页
毕业设计84吉林建筑工程学院电子时钟显示程序设计Word文档下载推荐.docx_第3页
第3页 / 共20页
毕业设计84吉林建筑工程学院电子时钟显示程序设计Word文档下载推荐.docx_第4页
第4页 / 共20页
毕业设计84吉林建筑工程学院电子时钟显示程序设计Word文档下载推荐.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

毕业设计84吉林建筑工程学院电子时钟显示程序设计Word文档下载推荐.docx

《毕业设计84吉林建筑工程学院电子时钟显示程序设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《毕业设计84吉林建筑工程学院电子时钟显示程序设计Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。

毕业设计84吉林建筑工程学院电子时钟显示程序设计Word文档下载推荐.docx

NHOURdb0;

设置时间使用

NMINdb0;

NSECdb0;

FUNKEYdb?

;

功能设置使用

keySwdb00h;

是否按键开关

SWITCHdb0FFh;

刷新开关,真,则不断在定时器中断函数中刷新,否则不刷新

ndb0dh,0ah,'

$'

countdw1

sMsgdb'

****welcometoSimpleclock****'

0dh,0ah,'

qMsgdb'

****PleaseInputqtoquit****'

0dh,0ah

db'

'

'

****InputstosetnewTime****'

setTMsgdb'

PleaseInputnewTime(HH:

MM:

SS)'

authorMsgdb'

______________________________________'

Author:

DingChuanxiang'

E-mail:

dingsg3c16@'

class:

xingong_042_08hao'

Date:

2007/07/07'

.code

PUSHAMACRO

PUSHDS

PUSHAX

PUSHBX

PUSHCX

PUSHDX

ENDM

POPAMACRO

POPDX

POPCX

POPBX

POPAX

POPDS

mainprocfar

start:

movax,@data

movds,ax

pushds

callGETTIME;

取得系统时间

callinitUI;

初始化界面

moval,1ch

movah,35h

int21h;

DOS调用取中断向量

pushes

pushbx

pushds

movdx,offsettUpdate

movax,segtUpdate

movds,ax

movah,25h

DOS调用设置中断向量

popds

inal,21h

andal,11111100b

out21h,al

sti

delay:

PUSHA

cmpds:

[keySw],0FFh;

检查是否有按键

jzexitdelay;

有按键则跳转

POPA

jmpdelay

exitdelay:

popdx

moval,1ch

movah,25h

popds;

restoreds

读敲入的按键

movah,07h

int21h

cmpal,'

s'

jnenext1

判断读入字符然后进行相应处理,此时中断函数已经取消,只是单线程

setT:

movds:

[FUNKEY],al

callSETTIME;

调用子函数设置时间

[keySw],00h

jmpstart

next1:

q'

jeendmain

endmain:

movax,4c00h;

exit

mainendp

定时中断程序()

tUpdateprocnear

pushds;

保存工作寄存器

pushax

pushbx

pushcx

pushdx

movax,@data

movds,ax

deccount;

时间间隔总数(约18.2次为1秒)

jnzexit;

不到一秒则跳转

movcount,18

callCALTIME;

更新时间

检测刷新开关是否打开

movbl,ds:

[SWITCH]

cmpbl,00

jzexit

检测是否有按键按下,取适当的值进行退出控制

MOVAH,0BH;

检测是否输入消息(按键消息)

INT21H

INCAL

JNZnokey

设置已经被按键

jmpexit

nokey:

callDISPLYH;

显示小时

callDISPLYM;

显示分钟

callDISPLYS;

显示秒

exit:

cli

moval,20h

out20h,al

popcx

popbx

popax

popds

iret;

返回中断

tUpdateendp

--------------------------------------------------------------------

关闭定时刷新开关

closeSwprocnear

movbl,0h

[SWITCH],bl;

关闭刷新开关

ret

closeSwendp

----------------------------------------------------------

打开定时刷新开关

openSwprocnear

movbl,0FFh

打开刷新开关

openSwendp

---------------------------------------------------------------------------

初始化显示界面

initUIprocnear

设置显示方式(40×

25黑白文本,16级灰度)

movah,0h

moval,00h;

BIOS调用设置显示方式

int10h

显示头标题

movdh,00h

movdl,00h

callMOVCUR

movdx,offsetsMsg

movah,09h;

DOS调用显示字符串

callDOS

显示结尾标题

movdh,06h

movdl,02h

movdx,offsetqMsg

int21h

显示作者信息

movdh,0bh

movdx,offsetauthorMsg

initUIendp

--------------------------------------------------------------------------

移动光标(dh:

row,dl:

col)

dh;

参数设置行

dl;

参数设置列

MOVCURprocnear

设置光标位置

movah,2h

movbh,0

ret

MOVCURendp

DISPLYHPROCNEAR

设置光标位置

movdh,3h

movdl,13d.

movdh,0

movdl,ds:

[HOUR]

calloutput;

调用output函数输出小时

movdl,'

:

'

movah,02h

RET

DISPLYHENDP

DISPLYMPROCNEAR

movdh,3h;

setRowNo.

movdl,16d;

setColumnNO.

[MIN]

calloutput

DISPLYMENDP

DISPLYSPROCNEAR

movdl,19d;

[SEC]

DISPLYSendp

调用DOS中断取得系统时间

GETTIMEPROCNEAR

movah,2ch;

取得系统时间,CH:

CL=(H:

M),DH:

DL=(s:

1/100s)

[HOUR],CH;

取得小时

[MIN],CL;

取得分钟

decDH;

延迟1秒

[SEC],DH;

取得秒

[MSEC],DL

GETTIMEendp

调整时间,累加秒,分,时

CALTIMEprocnear

PUSHA;

调整秒

incds:

[SEC],60d

jbendc

[SEC],0h

setM:

调整分钟

[MIN],60d

[MIN],0h

setH:

调整小时

[HOUR],24d

[HOUR],0h

endc:

CALTIMEendp

设置时间

SETTIMEprocnear

callcloseSw;

关闭定时刷新

movdh,11h

callMOVCUR;

移动光标

movdx,00h

输出提示信息,提示输出设置时间

movdx,offsetsetTMsg

callREADNT;

读取时间(HH:

SS)

movch,ds:

[NHOUR];

HOUR

movcl,ds:

[NMIN];

MIN

movdh,ds:

[NSEC];

SECOND

movdl,0h;

1/100SECOND

movah,2Dh

cmpal,00h

jeSetSuccess

movah,02h;

设置时间中断调用失败处理

!

SetSuccess:

callopenSw;

打开刷新开关

SETTIMEendp

---------------------------------------------------------------------

rSetSuccess:

------------------------------------------------------------------

读取时间(从ASCII码到16进制数值的转换)(HH:

READNTprocnear

movah,01h

movbx,0h;

bx存放得到的数值(16进制)

loop1:

0'

读取小时

jlendloop1

9'

jgendloop1

subal,30h

cbw

xchgax,bx

movcx,0ah

mulcx

addbx,ax

jmploop1

存取小时

endloop1:

[NHOUR],bl;

movbx,0h;

loop2:

读取分钟

jlendloop2

jgendloop2

addbx,ax

jmploop2

存取分钟

endloop2:

[NMIN],bl

movbx,0h

loop3:

读取秒

jlrlast

jgrlast

jmploop3

rlast:

存取秒

[NSEC],bl

READNTendp

输出字符(dx中存放十进制数值)

outputprocnear

movax,dx

movdx,00h

movcx,0h

trans:

movbx,000ah

divbx

adddl,30h

movdh,0h

inccx

cmpax,00h

jgtrans

cmpcx,01h

jgprint

addZero:

增加前导0,,比如:

02

movdh,0

inccx

print:

cmpcx,0h

jleendout

popdx

deccx

jmpprint

endout:

outputendp

endstart;

endassemble

.end

(五)结果显示:

四、总结:

1、本设计主要用到的DOS、BIOS调用及功能

DOS中断功能调用:

AH

功能

调用参数

返回参数

01

键盘输入并回显

AL=输入字符

显示输出

DL=输出字符

07

键盘输入(无回显)

09

显示字符串

DS:

DX=串地址

(S为串结束字符)

0B

检验键盘状态

AL=00有输入

=FF无输出

25

设置中断向量

DX=中断向量

AL=中断类型号

2C

取时间

CH:

CL=时:

DH:

DL=秒:

1/100秒

2D

AL=00成功

=FF无效

35

取中断向量

AL=中断类型号

ES:

BX=中断向量

4C

带返回码结束

AL=返回码

BIOS中断功能调用;

设置显示方式

AL=0040×

25黑白方式

2

BH=页号

DH、DL=行、列

2、心得体会

课程设计是培养学生综合运用所学的知识,发现、提出、分析和解决实际问题和锻炼能力的主要过程,是对学生实际能力的综合体现。

这次微机原理课程设计历时两个星期,在这两个星期的日子里,可谓是历尽艰难,但到最后还是取得了成功,学到了很多的东西。

同时不仅巩固了以前所学的知识,而且学到了很多在书本上所没有学到的知识。

通过本次课程设计使我懂得了理论与实际相结合的重要性。

只有理论知识其实是所谓的“纸上谈兵”那是远远不够的,只有把所学的理论知识与实践结合起来,从理论得出结论,从结论中分析过程,才能达到当代大学生必备的素质,从而为自己走向社会打下基础。

在整个设计过程中遇到的问题非常多,但在这方面处理上我摆正自己的位置,认识到自己基础知识的欠缺和对以前学习中对学过的知识理解的不够深刻,掌握的不牢固,所以在设计过程中我努力查阅资料,力求老师和同学的帮助,才得以顺利完成。

做程序设计是一个非常艰苦的过程。

虽然编写程序一个人有一个人的方法,但是一步走错,程序就不能运行,以前在课本上接触的都是一些小的程序,但是这次设计我的程序长达10篇之多,要分析起来确实困难,好在我的写流程图的时候下了一番功夫,又对每个子程序进行推敲,也使较长的程序变的简单。

在设计中使用了大量的DOS调用和BIOS调用,也对里面常用的功能号有了深刻的记忆。

其次,以前对于编程工具的使用还处于一知半解的状态,但是经过一段时间的调试,对怎么去排错、查错、怎么去看每一步的运行结果都有了很大的提高。

微机原理课程设计很快结束了,在设计中有失落也有惊喜,有付出也有收获,最主要的是自己学到了知识,为下学期的单片机的课程设计打下了基础。

五、参考文献:

1、《微型计算机系统原理及应用》,(第2版)主编:

杨素行

出版社:

清华大学出版社

出版时间:

2004年

2、《微机原理与汇编语言程序设计》主编:

刘永华王成端

中国铁道出版社

2000年

3、《微机原理与接口技术实验及课程设计》主编:

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

当前位置:首页 > 幼儿教育 > 育儿知识

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

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