微机接口 8255并行接口实验报告_第1页
微机接口 8255并行接口实验报告_第2页
微机接口 8255并行接口实验报告_第3页
微机接口 8255并行接口实验报告_第4页
微机接口 8255并行接口实验报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江工业大学计算机学院实验报告实验名称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实验要求具有一定的汇编编程的基础,能编写一些基本语句来实现实验。实验前根据实验流程图,写出对应代码;要了解8255A并行接口芯片内部结构和外部引脚,理解8255芯片的工作方式和程序设计方法;熟悉实验平台TPC-USB了解各个接口的名称与功能,进行实验时能快速并正确地连接好实验电路;⑷8255方式0实验一:连接PC与TPC-USB平台,用微机实验软件运行程序,用TPC-USB平台上的逻辑电平开关与LED显示电路观察,LED显示的值与逻辑电平开关设的值对应;⑸8255方式1输出实验:连接PC与TPC-USB平台,用微机实验软件运行程序,手按单脉冲按钮,观察LED显示电路能依次发光,按8次后,中断结束,程序结束;⑹8255方式1输入实验:连接PC与TPC-USB平台,用微机实验软件运行程序,用TPC-USB平台的逻辑电平开关设置一个ASCII码,按一次单脉冲,屏幕就能显示该ASCII码对应的字符,变更逻辑电平的开关,按一次单脉冲,屏幕就会显示变更的ASCII码对应的字符。这样操作N次之后,中断结束,程序结束。

二、实验原理与硬件连线2.1实验原理1、8255A的内部结构:控II]A组端IIA=>PA,-PAt<=!)总统缱冲•器内部数据线A组端I:C高4位=>RD控II]A组端IIA=>PA,-PAt<=!)总统缱冲•器内部数据线A组端I:C高4位=>RDViiAii兰TTsKLSEI与制辑

读控鹿内部控制统内部控制B组端口BB蛆和:CCPI援U外部接口(1)数据端口:端口A:内含一个8位的输入、输出锁存器/缓冲器,用作输入或输出时,其数据均可得到锁存。端口B:内含一个8位的输出锁存器/缓冲器和一个8位的输入缓冲器(输入无锁存)。端口C:内含一个8位的输出锁存器/缓冲器和一个8位的输入缓冲器(输入无锁存)。•可作为一个独立的8位端口,也可分成两个4位端口。•可用作数据输入/输出端口,也可作为控制/状态端口(联络信号),配合A、B端口一起工作。•具有按位置位/复位功能。(2)端口的输入/输出及其工作方式:8255A可通过软件编程来分别设定每个端口的输入/输出及其工作方式。A口:有3种工作方式:方式0(基本输入/输出)、方式1(选通输入/输出)、方式2(双向输入/输出)。B口:有2种工作方式:方式0、方式1C口:可设置为并口或按位置位/复位工作方式。(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口引脚的功能无任何关系。

stbaAIBFAINTRAiIN!PB7〜PB0pc2PC1PC01stbaAIBFAINTRAiIN!PB7〜PB0pc2PC1PC011J,|方式1(端口B)STBbIBFbINTRbIBF:输入缓冲器满信号,是对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所示。各控制信号的定义如下。方式1(端口A)方式1(端口B)PA〜PA70竺PC^^7PC3-ACKAaOBFAaINTRPA〜PA70竺PC^^7PC3-ACKAaOBFAaINTRAPB广PB°PCACKbOBFbINTRb图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方式0:端口C输入,端口A输出对应的控制字为:10001011B=8bH;方式1输出:端口A方式1输出对应的控制字为:10100000B=0a0H;方式1输入:端口A方式1输入对应的控制字为:10111000B=0b8H;(2)端口C置位/复位控制字:0D&d4D]Do

注意:尽管该控制字针对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所示。K0•-K1*■K2•-K3•-K4K5・-K6K7•-288H•-PC0PA0PC1PA1PC2PA2PC3PA3K0•-K1*■K2•-K3•-K4K5・-K6K7•-288H•-PC0PA0PC1PA1PC2PA2PC3PA3PC4PA4PC5PA5PC6PA6PC7PA7CSU188255L0L1L2L3L4L5L6L7设置8255C口

输入入口输出从C口输入数据将此数据自A口输出有键按下吗?NY结束(2)8255方式1输出实验:端口A连接LED显示电路L0〜L7,连接实验电路如图5所示。2B3H-2SRH•-*(ACK)PA:A..PCsPA:•PA:•・PA:rG2CCPA'PA:»FAEPC;PA'♦L:L:L,L:L」L:LEL'图5TPC-USB平台8255方式1输出实验电路连接图(3)8255方式1输入实验:端口A接逻辑电平开关K0〜K7。连接实验电路如图6所示。.■♦IRQ•288H-28FH(5TB)图6TPC-USB平台8255方式1输入实验电路连接图三、设计思路、步骤和程序流程图3.1设计思路本次实验做的是丙型接口实验,需要用到8255并行接口芯片,了解芯片的内部结构后,理解芯片的工作原理,8255芯片的工作方式有多种,所做的实验是方式0和方式1,理解了工作方式后,便可根据8255芯片的初始化编程步骤画出程序流程图,再根据流程图,写出实验程序。根据实验连接图连接好电路,运行程序,便可达到并行传送的目的。实验一:通过movdx,28ahinal,dx读入C端口的字,即读入C端口的开关预置的值,又通过movdx,288Houtdx,al把从C端口读入的字送到A端口,所以A端口相应的灯会亮。实验二:每按一次单脉冲按钮,产生一次中断请求,通过moval,blmovdx,288houtdx,al将bl的值从8255的A口输出,由于bl初始化为01H,每一次中断以后执行shlbl,1将bl左移一位,即01H变成02H,依次变成04H、08H、10H…….所以L0〜L7会依次发光。实验三:每按一次单脉冲按钮,产生一次中断请求,通过movdx,288hinal,dx自8255端口A读入实验平台逻辑电平处的数据,又通过movdl,almovah,02hint21h将数据在屏幕上输出。bl初始化为8,每执行一次中断bl减1,所以N次以后退出。3.2实验步骤连接实验电路如图4所示,8255端口C接逻辑电平开关K0〜K7,端口A连接LED显示电路L0〜L7;根据图7所示的流程图,编程,运行,观察开关的值与LED的值是否对应;连接实验电路如图5所示;根据图8所示的流程图,编程,运行,观察LED的亮灭情况;连接实验电路如图6所示;根据图9所示的流程图,编程,运行,观察逻辑开关的值和屏幕上显示的字符。3.3程序流程图K0PC0PA0L0K1PC1PA1L1K2PC2PA2L2K3PC3PA3L3K4PC4PA4L4K5PC5PA5L5K6PC6PA6L6K7PC7PA7L7U188255288HCS图7TPC-USB平台8255方式0实验一的程序流程图(a)输出主程序(b)输出中断服务程序图8TPC-USB平台8255方式1输出实验的程序流程图3)输入中断服务程序(a)主程序图9TPC-USB四、程序清单与执行结果平台8255方式1输入实验的程序流程图4.1程序清单(1)8255方式0实验一代码:CODESEGMENTASSUMECS:CODESTART:;设8255;设8255为C口输入^口输出MOVAL,8BHOUTDX,ALIN_OUT:;从C;从C口输入一数据INAL,DX;;中断程序入口地址送中断向量表;设置中断向量程序;读取中断屏蔽字;开放IRQ3中断;设置8255端口A方式1输出MOVDX,288HOUTDX,ALMOVDL,0FFHMOVAH,06HINT21HJZIN_OUTMOVAH,4CHINT21HCODEENDSENDSTART(2)8255方式1输出实验代码:CODESEGMENTASSUMECS:CODESTART:MOVAX,SEGIRQ3_INTMOVDS,AXMOVDX,OFFSETIRQ3_INTMOVAX,250BHINT21HINAL,21HANDAL,0F7HOUT21H,ALMOVDX,28BHMOVAL,0A0HOUTDX,AL

;从A口输出刚才自C口所输入的数据;判断是否有按键;若无,则继续自C口输入^口输出;否则返回DOS;将8255;将8255的PC6置位OUTDX,AL;BL赋初值;BL赋初值1WIN:JMPWINIRQ3_INT:MOVAL,BLMOVDX,288HOUTDX,AL

;循环等待;中断服务程序;将BL中的数从端口A输出MOVAL,20H;发中断结束命令OUT20H,ALSHLBL,1;BL左移一位JNCNEXT;JNC对进位位进行判断,若CF!=1,跳转INAL,21H;恢复屏蔽字ORAL,08H;禁止IRQ3中断OUT21H,ALSTI;STI允许中断发生CLI禁止中断发生;返回DOS;;返回DOS;中断返回INT21HNEXT:IRETCODEENDSENDSTART(3)8255方式1输入实验代码:CODESEGMENTASSUMECS:CODESTART:MOVAX,SEGIRQ3_INTMOVDS,AXMOVDX,OFFSETIRQ3_INTMOVAX,250BHINT21HINAL,21HANDAL,0F7HOUT21H,ALMOVDX,28BHMOVAL,0B8HOUTDX,ALMOVAL,09HOUTDX,ALMOVBL,20WIN:JMPWINIRQ3_INT:MOVDX,288HINAL,DXMOVDL,ALMOVAH,02HINT21H

;中断程序入口地址送中断向量表;设置中断向量程序;读取中断屏蔽字;开放IRQ3中断;设置8255端口A方式1输入;将8255的PC4置位;设置中断次数;循环等待;中断服务程序;从A端口输入数据;输出DL中的字符到屏幕MOVDL,0DHINT21HMOVDL,0AHINT21HMOVAL,20HOUT20H,AL;回车;换行;中断结束命令;N;N次中断已到,恢复屏蔽字;禁止IRQ3中断;开中断;返回dos系统;中断返回DECBLJNZNEXTINAL,21HORAL,08HOUT21H,ALSTIMOVAH,4CHINT21HNEXT:IRETCODEENDSENDSTART(1)8255方式0实验一:注:LED注:LED灯的亮灭取决于逻辑电平开关,当开关置1时,灯亮;当开关置0时,灯灭(2)8255方式1输出实验:、l?;|.I、l?;|.I注:当程序刚运行时,只有最右边的灯L0亮,之后按一次单脉冲按钮,L1亮,接着L2亮,这样往左移动,直到L7亮,程序结束。

(3)8255方式1输入实验:注:逻辑电平开关设置一个值,屏幕上显示该值对应的ASCII码,比如现在设置的是31H,则屏幕上显示1。之后每按一次单脉冲按钮,屏幕上显示一次逻辑电平设置的值对应的ASCII码,直到中断次数结束。五、程序调试说明和实验感想5.1调试说明在做8255方式1输出实验时,在代码完成编译之后,每次一运行程序,都未能像原定的那样只有L0亮,而是无规则的亮,我刚开始以为是我代码在运行过程中有对BL进行重新赋值之类的操作,导致数据出错,但在我将程序重新从头到尾看了一遍之后,我发现问题应该不是出现在代码上,但实验设备在进行8255方式0实验一的实验时,又是可以正常工作的,说明实验设备也没问题。两边都没问题,我实在想不

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论