您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 微机接口-8255并行接口实验报告
浙江工业大学计算机学院实验报告实验名称8255并行接口实验姓名徐洁学号201326810521班级计科1301班教师雷艳静日期2015/12/311一、实验内容与要求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二、实验原理与硬件连线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、方式13C口:可设置为并口或按位置位/复位工作方式。(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口引脚的功能无任何关系。4PA7~PA0PC4PC5PC3INTEAPB7~PB0PC2PC1PC0INTEB方式1(端口A)方式1(端口B)STBAIBFAINTRASTBBIBFBINTRB图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所示。各控制信号的定义如下。PA7~PA0PC6PC7PC3INTEAPB7~PB0PC2PC1PC0INTEB方式1(端口A)方式1(端口B)ACKAOBFAINTRAACKBOBFBINTRB图3方式1输出时,端口对应的控制信号5OBF:输出缓冲器满。有效时,表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置位/复位控制字:6注意:尽管该控制字针对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所示。开始设置8255C口输入A口输出从C口输入数据将此数据自A口输出有键按下吗?结束PC0PC1PC2PC3PC4PC5PC6PC7PA0PA1PA2PA3PA4PA5PA6PA7CSK0K1K2K3K4K5K6K7288HL0L1L2L3L4L5L6L7U188255NY图4TPC-USB平台8255方式0实验一连接图(2)8255方式1输出实验:端口A连接LED显示电路L0~L7,连接实验电路如图5所示。7图5TPC-USB平台8255方式1输出实验电路连接图(3)8255方式1输入实验:端口A接逻辑电平开关K0~K7。连接实验电路如图6所示。图6TPC-USB平台8255方式1输入实验电路连接图8三、设计思路、步骤和程序流程图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实验步骤(1)连接实验电路如图4所示,8255端口C接逻辑电平开关K0~K7,端口A连接LED显示电路L0~L7;(2)根据图7所示的流程图,编程,运行,观察开关的值与LED的值是否对应;(3)连接实验电路如图5所示;(4)根据图8所示的流程图,编程,运行,观察LED的亮灭情况;(5)连接实验电路如图6所示;(6)根据图9所示的流程图,编程,运行,观察逻辑开关的值和屏幕上显示的字符。93.3程序流程图开始设置8255C口输入A口输出从C口输入数据将此数据自A口输出有键按下吗?结束PC0PC1PC2PC3PC4PC5PC6PC7PA0PA1PA2PA3PA4PA5PA6PA7CSK0K1K2K3K4K5K6K7288HL0L1L2L3L4L5L6L7U188255NY图7TPC-USB平台8255方式0实验一的程序流程图开始设置中断矢量(IRQ3)开放中断(IRQ3)设8255A口方式1输出将8255的PC6置位BL赋初值1循环等待将BL中的数从A口输出发中断结束命令BL左移一位关闭中断(IRQ3)开中断返回DOS中断返回CF=1?(a)输出主程序(b)输出中断服务程序图8TPC-USB平台8255方式1输出实验的程序流程图10开始设置中断矢量(IRQ3)开放中断(IRQ3)设置8255A口方式1输入将8255的PC4置位设置中断次数计数器循环等待从A口输入数据在屏幕上显示相应的ASCII码发中断结束命令中断次数计数器减1关闭中断(IRQ3)开中断计数器为0?结束中断返回NY(a)主程序(b)输入中断服务程序图9TPC-USB平台8255方式1输入实验的程序流程图四、程序清单与执行结果4.1程序清单(1)8255方式0实验一代码:CODESEGMENTASSUMECS:CODESTART:MOVDX,28BH;设8255为C口输入,A口输出MOVAL,8BHOUTDX,ALIN_OUT:MOVDX,28AH;从C口输入一数据INAL,DX11MOVDX,288H;从A口输出刚才自C口所输入的数据OUTDX,ALMOVDL,0FFH;判断是否有按键MOVAH,06HINT21HJZIN_OUT;若无,则继续自C口输入,A口输出MOVAH,4CH;否则返回DOSINT21HCODEENDSENDSTART(2)8255方式1输出实验代码:CODESEGMENTASSUMECS:CODESTART:MOVAX,SEGIRQ3_INT;中断程序入口地址送中断向量表MOVDS,AXMOVDX,OFFSETIRQ3_INTMOVAX,250BH
本文标题:微机接口-8255并行接口实验报告
链接地址:https://www.777doc.com/doc-1843029 .html