1、微机原理实验报告(3) 一、 实验名称七段数码显示二、 实验目的掌握接口芯片的编址方法,掌握8255的初始化设置,及数码管显示原理,掌握段控及位控的概念。三、 实验内容连接地址译码器与8255的连线及8255与数码管的连线;在数据段中存放0到9的字型码;从微机键盘键入2个数字的ASCII码,在输入过程中检查如非数字则重新输入;然后将输入的ASCII码变成相应的数字,再利用换码指令XLAT查表得到相应的字型码;将字型码送到8255输出口所接的数码管上显示。四、 程序流程图:(见末页)五、 实验结论:符合预期,输入2个数字,七段数码管显示这两个数字。六、 实验心得七段数码显示作为第一次硬件实验,虽
2、然程序不难,但是在实验过程中还是遇到了不少这样或者那样的问题。主要问题还是集中在硬件方面。程序方面,上机之前我已经完成了程序的编写,在实验室用了大概20分钟进行了调试,消除了7个编程中的错误。但是进行编译运行后,数码管始终无法显示正确的数字。在确定程序无误后,我只能逐一排查运行失败的原因。我首先检查了硬件连线,并且将优盘从主机上拔下,将影响因素尽量消除,但是仍然无法得到正确的结果。接着我换来了已经完成实验的同学的实验箱,重新编译运行,数码管依旧无法正确显示。最后不得已,我又换了一台电脑,编译运行同样的程序用同一个实验箱,终于获得了正确的结果。实验后我思考了一下问什么会出现这种问题,我觉得可能是
3、用于计算机与实验箱相连的扁平接线有问题才导致数码管始终无法正常工作。这次实验过后,对于微机原理知识来说我并没有太多的收获,毕竟做到第三次实验,编写程序和软件的应用都已经轻车熟路了。但是通过遇到上述的这个问题,我在分析问题、解决问题方面的能力有所提高。这就是我这次最大的收获。七、 实验程序:INPORTA EQU 0EF00H-280H+288HINPORTB EQU 0EF00H-280H+289HINPORTC EQU 0EF00H-280H+28AHINPORTCRL EQU 0EF00H-280H+28BHSTACK SEGMENT STACKDW 100 DUP(?)STACK END
4、SDATA SEGMENTFIGURE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHX DB 2 DUP(?)STRING DB PLEASE ENTER TWO NUMBERS: , 0DH, 0AH, $DATA ENDSCODE SEGMENTASSUME CS:CODE, SS:STACK, DS:DATAMAIN PROCMOV AX,DATAMOV DS,AXMOV SI, OFFSET XMOV DX, OFFSET STRINGMOV AH, 9INT 21HCALL KEYINAND DL, 0FHMOV SI, DLINC SICAL
5、L KEYINAND DL, 0FHMOV SI, DLMOV DX, INPORTCRLMOV AL, 10000010BOUT DX, ALMOV BX, OFFSET FIGURENEXT1: MOV DX, INPORTAMOV SI, OFFSET XMOV AL, SI+1XLATOUT DX, ALMOV DX, INPORTCMOV AL, 01B; PC1=0,PC0=1OUT DX, ALCALL DELAYMOV DX, INPORTAMOV SI, OFFSET XMOV AL, SIXLATOUT DX, ALMOV DX, INPORTCMOV AL, 10B; P
6、C1=1,PC0=0OUT DX, ALCALL DELAYMOV DL,0FFHMOV AH,6INT 21HJZ NEXT1MOV AH,4CHINT 21HMAIN ENDPKEYIN PROCAGAIN:MOV AH, 8INT 21HCMP AL, 30HJB AGAINCMP AL, 39HJA AGAINMOV DL, ALMOV AH, 2INT 21HRETKEYIN ENDPDELAY PROCPUSH BXPUSH CX MOV BX,100 MOV CX,0NEXT2:LOOP NEXT2 DEC BX JNZ NEXT2 POP CX POP BX RETDELAY ENDPCODE ENDSEND MAIN流程图:开始将数码管的字型码存入数据段从键盘输入2个数字输入数字存入数据段N设置8255控制字Y取数据段取个位数字偏移地址送入AL寄存器设置8255A口工作方式:将字型码输出至A口利用XLAT指令查得该数字所对应的字型码判断输入是否为2个数字Y初始化设置8255C口工作方式:使PC1置0,PC0置1调用延时子程序取数据段取十位数字偏移地址送入AL寄存器设置8255A口工作方式:将字型码输出至A口设置8255C口工作方式:使PC1置1,PC0置0检查是否有键按下调用延时子程序返回DOSNY
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1