微机接口8255并行接口实验报告.docx

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

微机接口8255并行接口实验报告.docx

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

微机接口8255并行接口实验报告.docx

微机接口8255并行接口实验报告

浙江工业大学计算机学院

实验报告

实验名称8255并行接口实验

姓名徐洁

学号************

班级计科1301班

教师雷艳静

日期2015/12/31

一、实验内容与要求

1.1实验内容

8255方式0实验一:

从8255端口C输入数据,再从端口A输出,即TPC-USB平台按逻辑电平开关K0~K7通过编程使端口C接收,然后再通过端口A输出到LED显示电路L0~L7,这样逻辑电平开关的值就可以通过8255芯片显示在LED显示电路上。

 

8255方式1输出实验:

编程实现每按一次单脉冲按钮产生一个正脉冲,使8255产生一次中断,让CPU进行一次中断服务:

依次输出01H、02H、04H、08H、10H、20H、40H、80H使LED显示电路L0~L7依次发光,中断8次结束。

 

8255方式1输入实验:

编程实现每按一次单脉冲按钮产生一个正脉冲使8255产生一次中断请求,让CPU进行一次中断服务,读取逻辑电平开关预置的ASCII码,在屏幕上显示其对应的字符,中断8次结束。

1.2实验要求

(1) 具有一定的汇编编程的基础,能编写一些基本语句来实现实验。

实验前根据实验流程

图,写出对应代码; 

(2) 要了解8255A并行接口芯片内部结构和外部引脚,理解8255芯片的工作方式和程序设

计方法; 

(3) 熟悉实验平台TPC-USB了解各个接口的名称与功能,进行实验时能快速并正确地连接

好实验电路; 

(4) 8255方式0实验一:

连接PC与TPC-USB平台,用微机实验软件运行程序,用TPC-USB

平台上的逻辑电平开关与LED显示电路观察,LED显示的值与逻辑电平开关设的值对应; 

(5) 8255方式1输出实验:

连接PC与TPC-USB平台,用微机实验软件运行程序,手按单

脉冲按钮,观察LED显示电路能依次发光,按8次后,中断结束,程序结束; 

(6) 8255方式1输入实验:

连接PC与TPC-USB平台,用微机实验软件运行程序,用TPC-USB平台的逻辑电平开关设置一个ASCII码,按一次单脉冲,屏幕就能显示该ASCII码对应的字符,变更逻辑电平的开关,按一次单脉冲,屏幕就会显示变更的ASCII码对应的字符。

这样操作N次之后,中断结束,程序结束。

二、实验原理与硬件连线

2.1实验原理

1、8255A的内部结构:

图18255A内部结构图

(1)数据端口:

端口A:

内含一个8位的输入、输出锁存器/缓冲器,用作输入或输出时,其数据均可得到锁存。

端口B:

内含一个8位的输出锁存器/缓冲器和一个8位的输入缓冲器(输入无锁存)。

端口C:

内含一个8位的输出锁存器/缓冲器和一个8位的输入缓冲器(输入无锁存)。

●可作为一个独立的8位端口,也可分成两个4位端口。

●可用作数据输入/输出端口,也可作为控制/状态端口(联络信号),配合A、B端口一起工作。

●具有按位置位/复位功能。

(2)端口的输入/输出及其工作方式:

8255A可通过软件编程来分别设定每个端口的输入/输出及其工作方式。

A口:

有3种工作方式:

方式0(基本输入/输出)、方式1(选通输入/输出)、方式2(双向输入/输出)。

B口:

有2种工作方式:

方式0、方式1

C口:

可设置为并口或按位置位/复位工作方式。

(3)A组和B组控制逻辑:

A口和C口的高4位构成A组,由A组控制逻辑控制。

B口与C口的低4位构成B组,由B组控制逻辑控制。

A、B两组控制电路内部均有控制寄存器,用来接收CPU发来的读/写控制信号和控制字,并按控制字确定各端口的工作方式。

(4)数据总线缓冲器:

8位三态双向缓冲器,与系统数据总线相连,用于CPU与8255A之间传送数据、命令和状态信息。

(5)读/写控制逻辑:

接收CPU发来的地址信号和控制信号,转变为各种命令送到A、B组控制逻辑,对端口进行相应的操作。

2、8255A的工作方式:

(1)方式0——基本输入/输出:

A口、B口、C口的高4位和低4位均可独立地被设置为输入或输出。

8255A与CPU之间没有固定的应答联络信号,可用于无条件传送或查询方式传送。

单向I/O:

一次初始化只能指定端口作为输入或作为输出,不能指定其同时既作为输入又作为输出。

采用查询方式传送时,可以将端口A、端口B作为数据端口,用端口C存放外部设备状态信息,用于CPU查询。

(2)方式1输入:

当端口A作为方式1输入时,端口C的PC3、PC4、PC5作为端口A的联络控制信号。

当端口B作为方式1输入时,端口C的PC0、PC1、PC2作为端口B的联络控制信号。

PC6、PC7则可作为输入/输出数据口使用,如图2所示。

各控制信号的定义如下。

注意:

方式1下C口复位/置位功能与PC口引脚的功能无任何关系。

图2方式1输入时,端口对应的控制信号

STB:

输入选通信号。

有效时,可将数据从外设输入到A口或B口的锁存器中。

IBF:

输入缓冲器满信号,是对STB的响应。

有效时,对CPU:

表示8255端口有数据,通知CPU进行读取。

对外设:

表示CPU还未取走数据,阻止外设发新数据。

INTE:

中断允许信号。

INTE=1时允许8255向CPU发中断请求。

PC4=1允许A口中断;PC2=1允许B口中断。

该信号通过C口置位/复位来实现。

INTR:

中断请求信号。

INTR=1时,CPU可从端口读取数据。

读取后INTR自动清除。

(3)方式1输出:

当端口A作为方式1输出时,端口C的PC3、PC7、PC6作为端口A的联络控制信号。

当端口B作为方式1输出时,端口C的PC0、PC1、PC2作为端口B的联络控制信号。

PC4、PC5则可作为输入/输出数据口使用,如图3所示。

各控制信号的定义如下。

图3方式1输出时,端口对应的控制信号

OBF:

输出缓冲器满。

有效时,表CPU已把数据输出到8255。

对外设:

通知外设取走数据。

对CPU:

阻止CPU发新数据。

ACK:

外设的应答信号。

外设取走数据后,向8255发应答信号,并使OBF无效,此时CPU可发新数据。

INTE:

中断允许信号。

为1时允许8255向CPU发中断请求。

PC6=1允许A口中断;PC2=1允许B口中断。

该信号通过C口置位/复位来实现。

INTR:

中断请求信号。

为1时请求CPU向8255发数据。

3、8255A的编程:

(1)方式选择控制字:

实验时:

方式0:

端口C输入,端口A输出对应的控制字为:

10001011B=8bH;

方式1输出:

端口A方式1输出对应的控制字为:

10100000B=0a0H;

方式1输入:

端口A方式1输入对应的控制字为:

10111000B=0b8H;

(2)端口C置位/复位控制字:

注意:

尽管该控制字针对C口进行操作,但必须写入控制端口,而不是写入C口对应的地址。

实验时:

PC6置位:

对应的控制字:

00001101B=0dH;

PC4置位:

对应的控制字:

00001001B=09H;

(3)8255A初始化编程:

向8255A的控制端口写入方式选择控制字后即可完成初始化,然后CPU就可以访问A、B、C数据端口,进行数据输入/输出。

2.2硬件连线

(1)8255方式0实验一:

8255端口C接逻辑电平开关K0~K7,端口A连接LED显示电路L0~L7。

连接实验电路如图4所示。

图4TPC-USB平台8255方式0实验一连接图

(2)8255方式1输出实验:

端口A连接LED显示电路L0~L7,连接实验电路如图5所示。

图5TPC-USB平台8255方式1输出实验电路连接图

(3)8255方式1输入实验:

端口A接逻辑电平开关K0~K7。

连接实验电路如图6所示。

图6TPC-USB平台8255方式1输入实验电路连接图

三、设计思路、步骤和程序流程图

3.1设计思路

本次实验做的是丙型接口实验,需要用到8255并行接口芯片,了解芯片的内部结构后,理解芯片的工作原理,8255芯片的工作方式有多种,所做的实验是方式0和方式1,理解了工作方式后,便可根据8255芯片的初始化编程步骤画出程序流程图,再根据流程图,写出实验程序。

根据实验连接图连接好电路,运行程序,便可达到并行传送的目的。

实验一:

通过mov dx,28ah  in  al,dx读入C端口的字,即读入C端口的开关预置的值,又通过mov dx,288H    out dx,al 把从C端口读入的字送到A端口,所以A端口相应的灯会亮。

实验二:

每按一次单脉冲按钮,产生一次中断请求,通过mov al,bl   mov dx,288h   out dx,al将bl的值从8255的A口输出,由于bl初始化为01H,每一次中断以后执行shl bl,1  将bl左移一位,即01H变成02H,依次变成04H、08H、10H…….所以L0~L7会依次发光。

实验三:

每按一次单脉冲按钮,产生一次中断请求,通过mov dx,288h  in al,dx自8255端口A读入实验平台逻辑电平处的数据,又通过mov dl,al   mov ah,02h   int 21h 将数据在屏幕上输出。

bl初始化为8,每执行一次中断bl减1,所以N次以后退出。

3.2实验步骤

(1) 连接实验电路如图4所示,8255端口C接逻辑电平开关K0~K7,端口A连接LED显

示电路L0~L7; 

(2) 根据图7所示的流程图,编程,运行,观察开关的值与LED的值是否对应; 

(3) 连接实验电路如图5所示; 

(4) 根据图8所示的流程图,编程,运行,观察LED的亮灭情况; 

(5) 连接实验电路如图6所示; 

(6) 根据图9所示的流程图,编程,运行,观察逻辑开关的值和屏幕上显示的字符。

3.3程序流程图

图7TPC-USB平台8255方式0实验一的程序流程图

(a)输出主程序(b)输出中断服务程序

图8TPC-USB平台8255方式1输出实验的程序流程图

(a)主程序(b)输入中断服务程序

图9TPC-USB平台8255方式1输入实验的程序流程图

四、程序清单与执行结果

4.1程序清单

(1)8255方式0实验一代码:

CODESEGMENT

ASSUMECS:

CODE

START:

MOVDX,28BH;设8255为C口输入,A口输出

MOVAL,8BH

OUTDX,AL

IN_OUT:

MOVDX,28AH;从C口输入一数据

INAL,DX

MOVDX,288H;从A口输出刚才自C口所输入的数据

OUTDX,AL

MOVDL,0FFH;判断是否有按键

MOVAH,06H

INT21H

JZIN_OUT;若无,则继续自C口输入,A口输出

MOVAH,4CH;否则返回DOS

INT21H

CODEENDS

ENDSTART

(2)8255方式1输出实验代码:

CODESEGMENT

ASSUMECS:

CODE

START:

MOVAX,SEGIRQ3_INT;中断程序入口地址送中断向量表

MOVDS,AX

MOVDX,OFFSETIRQ3_INT

MOVAX,250BH;设置中断向量程序

INT21H

INAL,21H;读取中断屏蔽字

ANDAL,0F7H;开放IRQ3中断

OUT21H,AL

MOVDX,28BH;设置8255端口A方式1输出

MOVAL,0A0H

OUTDX,AL

MOVAL,0DH;将8255的PC6置位

OUTDX,AL

MOVBL,01H;BL赋初值1

WIN:

JMPWIN;循环等待

IRQ3_INT:

;中断服务程序

MOVAL,BL;将BL中的数从端口A输出

MOVDX,288H

OUTDX,AL

MOVAL,20H;发中断结束命令

OUT20H,AL

SHLBL,1;BL左移一位

JNCNEXT;JNC对进位位进行判断,若CF!

=1,跳转

INAL,21H;恢复屏蔽字

ORAL,08H;禁止IRQ3中断

OUT21H,AL

STI;STI允许中断发生CLI禁止中断发生

MOVAH,4CH;返回DOS

INT21H

NEXT:

IRET;中断返回

CODEENDS

ENDSTART

 

(3)8255方式1输入实验代码:

CODESEGMENT

ASSUMECS:

CODE

START:

MOVAX,SEGIRQ3_INT;中断程序入口地址送中断向量表

MOVDS,AX

MOVDX,OFFSETIRQ3_INT

MOVAX,250BH;设置中断向量程序

INT21H

INAL,21H;读取中断屏蔽字

ANDAL,0F7H;开放IRQ3中断

OUT21H,AL

MOVDX,28BH;设置8255端口A方式1输入

MOVAL,0B8H

OUTDX,AL

MOVAL,09H;将8255的PC4置位

OUTDX,AL

MOVBL,20;设置中断次数

WIN:

JMPWIN;循环等待

IRQ3_INT:

;中断服务程序

MOVDX,288H;从A端口输入数据

INAL,DX

MOVDL,AL

MOVAH,02H;输出DL中的字符到屏幕

INT21H

MOVDL,0DH;回车

INT21H

MOVDL,0AH;换行

INT21H

MOVAL,20H;中断结束命令

OUT20H,AL

DECBL

JNZNEXT

INAL,21H;N次中断已到,恢复屏蔽字

ORAL,08H;禁止IRQ3中断

OUT21H,AL

STI;开中断

MOVAH,4CH;返回dos系统

INT21H

NEXT:

IRET;中断返回

CODEENDS

ENDSTART

 

4.2执行结果

(1)8255方式0实验一:

注:

LED灯的亮灭取决于逻辑电平开关,当开关置1时,灯亮;当开关置0时,灯灭

(2)8255方式1输出实验:

注:

当程序刚运行时,只有最右边的灯L0亮,之后按一次单脉冲按钮,L1亮,接着L2亮,这样往左移动,直到L7亮,程序结束。

(3)8255方式1输入实验:

注:

逻辑电平开关设置一个值,屏幕上显示该值对应的ASCII码,比如现在设置的是31H,则屏幕上显示1。

之后每按一次单脉冲按钮,屏幕上显示一次逻辑电平设置的值对应的ASCII码,直到中断次数结束。

五、程序调试说明和实验感想

5.1调试说明

(1)在做8255方式1输出实验时,在代码完成编译之后,每次一运行程序,都未能像原定的那样只有L0亮,而是无规则的亮,我刚开始以为是我代码在运行过程中有对BL进行重新赋值之类的操作,导致数据出错,但在我将程序重新从头到尾看了一遍之后,我发现问题应该不是出现在代码上,但实验设备在进行8255方式0实验一的实验时,又是可以正常工作的,说明实验设备也没问题。

两边都没问题,我实在想不出哪里还有可能出问题。

就这样我纠结了快20分钟,后来无意间看到书上说依次输出01H、02H、04H~~~~~于是我就想要不把movbl,1改成movbl,01h,我这么一改,结果就成功了。

后来我问老师这是为什么,老师说大概是设备内部转码编译的时候出了问题,1不是变成00000001B而是其他的字符串了。

(2)在做8255方式1输入实验时,程序上倒是没出什么问题,不过就是我自己对于实验的内容理解错误了。

刚开始时,我以为是输入03H,那么屏幕上就显示3,结果当我真这么做时,屏幕给了我个爱心,我当时还以为是我程序写错了。

后来在询问同学之后,才发现是我自己理解错了,我们通过逻辑电平开关输入的03H对应的ASCII码就是爱心,要想像我设想的那样还要对程序进行加工才行。

5.2实验感想与收获

这次是我参加的第三次实验,相对于以前的两次实验,这次实验要成熟许多,通过预习实验,我参照书上的流程图,还是比较轻松的就完成了代码的编写,而且实验设备也比较给力,能够正常运行。

通过这次实验,我感觉当一个程序给出流程图之后,那它真的没有什么难度可言,可笑我以前还那样的舍本逐末,去看别人写的代码,结果是花了更多的时间,却只了解了个大概,而这次通过自己逐字逐条的编写代码,我对8255有了更进一步的了解,而且汇编的编码能力也有了一定的提高。

同时这次实验也告诉我,编写一个程序前,要先编写流程图。

5.3实验特色

所做的实验特色在于加入了一个中断程序,每按一次脉冲屏幕只会显示一次所显示的内容,让我们对于8255内部的运行情况有了更进一步的了解。

5.4展望

如果有充裕的时间,我想修改一下8255方式1输入实验,使得逻辑电平输入的值,便是屏幕上显示的值。

 

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

当前位置:首页 > 农林牧渔 > 林学

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

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