微机接口实验报告.docx

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

微机接口实验报告.docx

《微机接口实验报告.docx》由会员分享,可在线阅读,更多相关《微机接口实验报告.docx(13页珍藏版)》请在冰点文库上搜索。

微机接口实验报告.docx

微机接口实验报告

微机接口实验报告

实验一:

I/O地址译码

一、实验目的

掌握I/O地址译码电路的工作原理。

二、实验原理和内容

实验电路如图

(1)所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。

译码输出端Y0〜Y7在实验台上I/O地址输出端引出,每个输出端包含8个地址,Y0:

280H-287H,Y1:

288H〜28FH,……当CPU执行I/O指令且地址在280H-2BFH范围内,译码器选中,必有一根译码线输出负脉冲。

例如:

执行下面两条指令

Y4输出一个负脉冲,执行下面两条指令

MOVDX,2A0H

OUTDXAL(或INAL,DX

Y5输出一个负脉冲。

MOVD,2A8H

OUTDXAL(或INAL,DX

利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。

三、实验程序

L1:

MOVDX,2A0H

//选通74LS138的11口

OUTDX,AL

//使端口A输出,给D触发器个时钟信

LOOP$

//延时

LOOP$

//延时

MOVDX,2A8H

//选用74LS138的10口

OUTDX,AL

//使D触发器清零

LOOP$

//延时

LOOP$

//延时

MOVAH,11

//十号功能调用

INT21H

//如果有键按下

INCAL

//AL加一,退出循环

JNZL1

//如果没键按下,则继续循环

四、总结

第一次实验比较简单、主要是学会了通过程序控制芯片及其端口的选通,其方法是根据芯片外围搭建的电路使DX进行写或读的操作、例如本实验里,要想选通74LS138的11口操作8255的端口A,贝懦要使AtyA^AyA^A^A^A^A^A=1010100000==2A0H同理操作10口时,则使DX=2A8H再加上延时DELAY功能,即可使LED灯循环亮灭。

但是如果不给芯片断电,则LED灯会一直循环,不能进进行人为的控制,所以又在后面加上了11号功能调用,只要当AL=0,循环结束。

实验二:

可编程并行接口

一、实验目的

掌握8255方式0的工作原理及使用方法。

二、实验内容

实验电路如图,8255C口接逻辑电平开关K0〜K7,A口接LED显示电路L0〜L7。

编程从8255C口输入数据,再从A口输出。

 

三、编程提示

1、8255控制寄存器端口地址28BH

A口的地址288H

C口的地址28AH

2、参考流程图

\

四、实验程序

 

MOVAL,B

 

L1:

MOVDX,28AH

 

 

INT21H

INCAL

JNZL1

MOVAH,4CH

INT21H

五、实验总结

这个实验可以看作是第一个实验的加强,同样也考验的是对端口

的读写操作,因为有了第一次实验的经验、所以这次实验特别顺利,没有出现什么问题。

实验三:

七段数码管静态显示

、实验目的

掌握数码管显示数字的原理

二、实验内容

静态显示:

按图1连接好电路,将8255的A口PALPA6分别与七段数码管的段码驱动输入端a〜g相连,位码驱动输入端S1接+5V(选中),SOdp接地(关闭)。

编程从键盘输入一位十进制数字(0〜9),在七段数码管上显示出来。

\

 

三、编程提示

1、实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。

2、段数码管的字型代码表如下表:

 

显朋字形

£

f

e

d

c

b

a

段码

0

0

1

1

1

1

1

1

3fh

1

0

0

0

0

1

1

0

06h

2

1

0

]

1

0

1

1

5bh

3

1

0

0

1

1

1

1

dfh

1

1

1

0

0

1

1

0

66h

5

1

1

0

1

1

0

1

6dh

6

1

1

1

1

1

0

1

7dh

7

0

0

0

0

1

1

1

07h

8

1

1

1

1

1

1

1

7fh

9

1

1

0

1

1

1

1

6fh

g

 

3、参考流程图(见图3)

四、实验程序

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

MOVDX,28BH

//建立表格用于显示数字

//写控制字寄存器

MOVAL,B//使端口C按方式0输出

 

OUTDX,AL

〃8255初始化,A口为输出

L2:

MOVAH,1

INT21H

CMPAL,30H

//和0比较

JBL1

//小于则结束程序

CMPAL,39H

//和9比较

JAL1

//大于则结束程序

 

SUBAL,30H

//ASCII码减30得到对应数字

 

 

MOVBX,OFFSETLED//将表LED的首地址赋值给BX

 

ADCBH,0

 

JMPL2

OUTDX,AL

//继续循环

L1:

MOVAH,4CH

INT21H

五、实验总结

因为以前在学习单片机和FPGA的时候都做过静态数码管的实

验,所以实验原理已经非常了解了,这里的难点就是用汇编语言来实现。

首先,要建立一个表以便于快速得到数字对应的数码管的值;其次写一个比较程序来确定输入的值是否是自然数;然后再通过ASCII

码减30即可得到这个数的值,经过查表就可以输出了,实验思路清晰,所以做起来并不难。

实验四:

七段数码管动态显示

一、实验目的

掌握数码管显示数字的原理

二、实验内容

动态显示:

按图2连接好电路,七段数码管段码连接不变,位码驱动输入端S1,

S0接8255C口的PC1,PC0编程在两个数码管上显示56。

三、参考流程图

 

四、实验程序

 

MOVDX,28BH

MOVAL,80H

//写控制字寄存器

//使端口C按方式0输出

 

OUTDX,AL

L1:

MOVDX,28AH

MOVAL,01H

OUTDX,AL

MOVDX,288H

MOVAL,7DH

OUTDX,AL

CALLDEALY

MOVDX,28AH

MOVAL,02H

OUTDX,AL

MOVDX,28BH

MOVAL,6DH

CALLDELAY

MOVAH,11

INT21H

INCAL

JNZL1

MOVAH,4CH

INT21H

//写端口C

//控制第一个数码管的位码

//写端口A

//使第一个数码管显示6

//延时

//写端口C

//控制第二个数码管的位码

//写端口A

//使第一个数码管显示5

//延时

//十一号功能调用

//延时子程序

DELAYPROC

MOVCX,00FFH

D2:

MOVBX,00FFH

D1:

PUSHAX

PUSHDX

POPDX

POPAX

DECBX

JNZD1

LOOPD2

RET

DELAYENDP

五、实验总结

在做完了静态数码管之后,我尝试做了一下动态数码

管。

再画了动态数码管流程图之后实验思路非常清晰,主要是要先选择端口C来控制位码,再选择端口A来控制段码,并且在两个数码管之间加入延时程序。

一开始写完程序后发现两只数码管都显示5,后来发现是因为在控制第二只数码管的位码时第一只数码管的位码并没有关闭,所以第一只数码管也显示了5,在发现问题后对程序进行了修改,实验现象就显现了。

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

当前位置:首页 > 经管营销 > 经济市场

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

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