预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验2:8255七段数码管静动态显示 北京科技大学机械专业微机原理实验报告~用到的带走哦! 微机实验报告书 学号:姓名:班级: 同组名单:实验日期:20XX年.12.21 实验题目:七段数码管的静态显示实验目标:掌握数码 管显示数字的原理(功能:键盘输入一位十进制数字(0~9),用 七段数 码管显示。) 解题思路: 1.静态显示:按图10(a)连接好电路,将8255的A口 PA0-PA6分别与七段 数码管的断码驱动输入端a-g项链,位码驱动输入端S1接 +5V,S0、dp 接地。编程从键盘输入一位十进制数字,在七段数码管上显 示出来。 2.动态显示:按图10(b)连接好电路,七段数码管段码连 接不变,位码驱 动输入端S1,S0接8255C口的PC1,PC0。编程在两个数 码管上显示“56”。 程序框图:静态显示见图11(a),动态显示见图11(b)。 北京科技大学机械专业微机原理实验报告~用到的带走哦! 关键问题分析(静态显示): 1、按键判断和程序结束判断 按键来说,由于程序中必须输入数字,所以没有必要对是否 按键进行判断,只需要判断按键是否在0-9之间即可。用以下程 序即可: cmpal,'0'jlexit;jl,条件转移指令,即在小于时转移cmpal,'9' jgexit;jg,条件转移指令,即在大于时转移 程序中还要用到“cmp”即比较指令,用来比较输入数与0、9 的大小关系。程序结束:如若输入的数字小于0或者大于9,必 须直接跳出程序,即结束指令必须单独占用一个程序段,这样, 程序顺序执行完毕也可以顺利返回DOS。 2、七段码显示。 北京科技大学机械专业微机原理实验报告~用到的带走哦! 实验指导书中给出了七段码的字型代码。这样一来,七段码 的显示只需要用换码指令“XLAT”便可以轻松实现。前提是必须将 七段码字型编成数码表以字符串的形式写进程序中。 3、数字键ASCII码与数值间的转换。 因为0的ASCII码为30H,所以数字键ASCII码与数值间的 转换时只需减去30H即可,可用下列语句实现: subal,30h 程序清单: 静态显示: datasegment ioport io8255a io8255bequ0c800h-0280hequioport+288hequ ioport+28bh leddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh mesg1db0dh,0ah,'Inputanum(0--9h):',0dh,0ah,'$' dataends codesegment assumecs:code,ds:datamovds,axmovdx,io8255b;使8255 的A口为输出方式moval,80h;***-*****B,控制字PA以方式0 输出outdx,almovah,09hint21hmovah,01;从键盘接收字符 int21hcmpal,'0';是否小于0jlexit;如若小于0,则跳转到exit 退出程序cmpal,'9';是否大于9jgexit;如若大于9,则跳转到 exit退出程序subal,30h;将所得字符的ASCII码减30H,数字键 ascii码同数值转换movbx,offsetled;bx为数码表的起始地址 xlat;求出相应的段码movdx,io8255a;从8255的A口输出out dx,aljmpzby;转zbystart:movax,datazby:movdx,offsetmesg1; 显示提示信息 exit:movah,4ch;返回DOS 北京科技大学机械专业微机原理实验报告~用到的带走哦! int21h codeends endstart 动态显示: datasegment ioport io8255a io8255b io8255cequ0c800h-0280hequioport+28ahequ ioport+28bhequioport+288h leddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;段码 buffer1db5,6;存放要显示的个位和十位 bzdw?;位码 dataends codesegment assumecs:code,ds:datamovds,axmovdx,io8255b;将8255 设为A口输出moval,80h;***-*****B,控制字PA以方式0输出 outdx,almovdi,offsetbuffer1;设di为显示缓冲区start:mov ax,data loop2:movbh,02 z