北航微机原理实验报告(3).doc

上传人:b****2 文档编号:1642663 上传时间:2022-10-23 格式:DOC 页数:4 大小:29.38KB
下载 相关 举报
北航微机原理实验报告(3).doc_第1页
第1页 / 共4页
北航微机原理实验报告(3).doc_第2页
第2页 / 共4页
北航微机原理实验报告(3).doc_第3页
第3页 / 共4页
北航微机原理实验报告(3).doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

北航微机原理实验报告(3).doc

《北航微机原理实验报告(3).doc》由会员分享,可在线阅读,更多相关《北航微机原理实验报告(3).doc(4页珍藏版)》请在冰豆网上搜索。

北航微机原理实验报告(3).doc

微机原理实验报告(3)

一、实验名称

七段数码显示

二、实验目的

掌握接口芯片的编址方法,掌握8255的初始化设置,及数码管显示原理,掌握段控及位控的概念。

三、实验内容

连接地址译码器与8255的连线及8255与数码管的连线;

在数据段中存放0到9的字型码;

从微机键盘键入2个数字的ASCII码,在输入过程中检查如非数字则重新输入;

然后将输入的ASCII码变成相应的数字,再利用换码指令XLAT查表得到相应的字型码;

将字型码送到8255输出口所接的数码管上显示。

四、程序流程图:

(见末页)

五、实验结论:

符合预期,输入2个数字,七段数码管显示这两个数字。

六、实验心得

七段数码显示作为第一次硬件实验,虽然程序不难,但是在实验过程中还是遇到了不少这样或者那样的问题。

主要问题还是集中在硬件方面。

程序方面,上机之前我已经完成了程序的编写,在实验室用了大概20分钟进行了调试,消除了7个编程中的错误。

但是进行编译运行后,数码管始终无法显示正确的数字。

在确定程序无误后,我只能逐一排查运行失败的原因。

我首先检查了硬件连线,并且将优盘从主机上拔下,将影响因素尽量消除,但是仍然无法得到正确的结果。

接着我换来了已经完成实验的同学的实验箱,重新编译运行,数码管依旧无法正确显示。

最后不得已,我又换了一台电脑,编译运行同样的程序用同一个实验箱,终于获得了正确的结果。

实验后我思考了一下问什么会出现这种问题,我觉得可能是用于计算机与实验箱相连的扁平接线有问题才导致数码管始终无法正常工作。

这次实验过后,对于微机原理知识来说我并没有太多的收获,毕竟做到第三次实验,编写程序和软件的应用都已经轻车熟路了。

但是通过遇到上述的这个问题,我在分析问题、解决问题方面的能力有所提高。

这就是我这次最大的收获。

七、实验程序:

INPORTAEQU0EF00H-280H+288H

INPORTBEQU0EF00H-280H+289H

INPORTCEQU0EF00H-280H+28AH

INPORTCRLEQU0EF00H-280H+28BH

STACKSEGMENTSTACK

DW100DUP(?

STACKENDS

DATASEGMENT

FIGUREDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

XDB2DUP(?

STRINGDB'PLEASEENTERTWONUMBERS:

',0DH,0AH,'$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,SS:

STACK,DS:

DATA

MAINPROC

MOVAX,DATA

MOVDS,AX

MOVSI,OFFSETX

MOVDX,OFFSETSTRING

MOVAH,9

INT21H

CALLKEYIN

ANDDL,0FH

MOV[SI],DL

INCSI

CALLKEYIN

ANDDL,0FH

MOV[SI],DL

MOVDX,INPORTCRL

MOVAL,10000010B

OUTDX,AL

MOVBX,OFFSETFIGURE

NEXT1:

MOVDX,INPORTA

MOVSI,OFFSETX

MOVAL,[SI+1]

XLAT

OUTDX,AL

MOVDX,INPORTC

MOVAL,01B;PC1=0,PC0=1

OUTDX,AL

CALLDELAY

MOVDX,INPORTA

MOVSI,OFFSETX

MOVAL,[SI]

XLAT

OUTDX,AL

MOVDX,INPORTC

MOVAL,10B;PC1=1,PC0=0

OUTDX,AL

CALLDELAY

MOVDL,0FFH

MOVAH,6

INT21H

JZNEXT1

MOVAH,4CH

INT21H

MAINENDP

KEYINPROC

AGAIN:

MOVAH,8

INT21H

CMPAL,30H

JBAGAIN

CMPAL,39H

JAAGAIN

MOVDL,AL

MOVAH,2

INT21H

RET

KEYINENDP

DELAYPROC

PUSHBX

PUSHCX

MOVBX,100

MOVCX,0

NEXT2:

LOOPNEXT2

DECBX

JNZNEXT2

POPCX

POPBX

RET

DELAYENDP

CODEENDS

ENDMAIN

流程图:

开始

将数码管的字型码存入数据段

从键盘输入2个数字

输入数字存入数据段

N

设置8255控制字

Y

取数据段取个位数字偏移地址送入AL寄存器

设置8255A口工作方式:

将字型码输出至A口

利用XLAT指令查得该数字所对应的字型码

判断输入是否为2个数字

Y

初始化

设置8255C口工作方式:

使PC1置0,PC0置1

调用延时子程序

取数据段取十位数字偏移地址送入AL寄存器

设置8255A口工作方式:

将字型码输出至A口

设置8255C口工作方式:

使PC1置1,PC0置0

检查是否有键按下

调用延时子程序

返回DOS

N

Y

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

当前位置:首页 > 工程科技 > 材料科学

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

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