微机原理.docx

上传人:b****1 文档编号:1893118 上传时间:2023-05-02 格式:DOCX 页数:12 大小:245.60KB
下载 相关 举报
微机原理.docx_第1页
第1页 / 共12页
微机原理.docx_第2页
第2页 / 共12页
微机原理.docx_第3页
第3页 / 共12页
微机原理.docx_第4页
第4页 / 共12页
微机原理.docx_第5页
第5页 / 共12页
微机原理.docx_第6页
第6页 / 共12页
微机原理.docx_第7页
第7页 / 共12页
微机原理.docx_第8页
第8页 / 共12页
微机原理.docx_第9页
第9页 / 共12页
微机原理.docx_第10页
第10页 / 共12页
微机原理.docx_第11页
第11页 / 共12页
微机原理.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理.docx

《微机原理.docx》由会员分享,可在线阅读,更多相关《微机原理.docx(12页珍藏版)》请在冰点文库上搜索。

微机原理.docx

微机原理

重庆三峡学院

微机原理与接口技术课程设计

 

课题名称系统日期和时间显示

专业电子信息工程

班级08级电信3班

学号200801074144

姓名邓书华

 

2011年6月26日

微机综合实验课程设计报告书

姓名:

邓书华班级:

08级电信3班学号:

200801074144成绩:

设计题目分析:

通过课程设计使学生更进一步了解掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。

通过查阅资料,结合所学的知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法

用汇编语言设计一数字时钟程序,基于8086微型计算机,利用汇编设计系统时间显示,该设计为软件设计,旨在锻炼同学们编程能力和加深对汇编程序的理解。

要求:

(1)实现年月日时分秒的计时,并显示于屏幕中央

(2)软件设计

1.功能简介

2.流程图

3.程序

(3)显示界面

设计步骤详细介绍:

本课程设计任务要求在运行时,屏幕分时显示“年、月、日”的形式来显示本机的系统的日期,在按大写字母D时。

由此可知,首先定义光标显示界面,然后调用BIOS中断,读取系统日期,并将调用的二进制表示的日期转换成ASCLL码,并将日期数存入显存区,最后将存在系统内存区的时间用字符串的形式显示出来。

在按下T之后,屏幕将以“时:

分:

秒”的形式显示本机的系统的时间,首先定义光标显示界面,然后调用BIOS中断,读取系统时间,然后将调用的二进制转换成ASCLL码,最后在系统的内存区以字符串的形式显示,由于获取了的系统时间不会自动的刷新,所以我们要设计成循环的方式来不断获取系统的时间,这样就形成了会跳动的电子钟了。

程序一旦进入运行,就将不间断的在显示屏显示时间,要想程序停止运行,按esc即可退出。

关键技术分析:

设计中遇到的问题和解决的步骤、方法:

设计结果:

可以显示日期和时间

附录1:

程序运行截图(2张)

日期显示:

时间显示:

附录2:

源程序列表(带注释)

STACKSEGMENTSTACK

DW200DUP(?

STACKENDS

DATASEGMENT

SPACEDB1000DUP('')

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

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

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

DBUFFERDB8DUP(':

'),12DUP('')

DBUFFER1DB20DUP('')

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,0B00H

MOVCX,1000

MOVBX,0040H

MOVAX,1300H

INT10H

MOVBP,OFFSETPATTERN;显示矩形条

MOVDX,0B00H

MOVCX,120

MOVBX,004EH

MOVAX,1301H

INT10H

LEADX,STR;显示提示信息

MOVAH,9

INT21H

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

INT21H

CMPAL,44H;AL='D'?

JNEA

CALLDATE;显示系统日期

A:

CMPAL,54H;AL='T'?

JNEB

CALLTIME;显示系统时间

B:

CMPAL,51H;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,OFFSETDBUFFER1

MOVDX,0C0DH

MOVCX,20

MOVBX,004EH

MOVAX,1301H

INT10H

MOVAH,02H;设置光标位置

MOVDX,0300H

MOVBH,0

INT10H

MOVBX,0018H

REPEA:

MOVCX,0FFFFH;延时

REPEAT:

LOOPREPEAT

DECBX

JNZREPEA

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,OFFSETDBUFFER

MOVDX,0C0DH

MOVCX,20

MOVBX,004EH

MOVAX,1301H

INT10H

MOVAH,02H

MOVDX,0300H

MOVBH,0

INT10H

MOVBX,0018H

RE:

MOVCX,0FFFFH

REA:

LOOPREA

DECBX

JNZRE

MOVAH,01H

INT16H

JEDISPLAY1

JMPSTART

MOVAX,4C00H

INT21H

RET

TIMEENDP

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

PUSHBX

CBW

MOVBL,10

DIVBL

ADDAL,'0'

MOVDBUFFER[SI],AL

INCSI

ADDAH,'0'

MOVDBUFFER[SI],AH

INCSI

POPBX

RET

BCDASCENDP

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

PUSHBX

CBW

MOVBL,10

DIVBL

ADDAL,'0'

MOVDBUFFER1[SI],AL

INCSI

ADDAH,'0'

MOVDBUFFER1[SI],AH

INCSI

POPBX

RET

BCDASC1ENDP

CODEENDS

ENDSTART

 

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2