实验五 可编程并行接口(8255A)
- 格式:doc
- 大小:91.50 KB
- 文档页数:2
实验五8255A 并行口实验(一)一、实验目的⒈掌握8255A 和微机接口方法。
⒉掌握8255A 的工作方式和编程原理。
二、实验内容用8255PA 口控制PB 口。
三、实验程序原程序CODE SEGMENTASSUME CS:CODEIOCONPT EQU 0FF2BHIOBPT EQU 0FF29HIOAPT EQU 0FF28HORG 11B0HSTART: MOV AL,90HMOV DX,IOCONPTOUT DX,ALNOPNOPNOPIOLED1:MOV DX,IOAPTIN AL,DXMOV DX,IOBPTOUT DX,ALMOV CX,0FFFFHDELAY: LOOP DELAYJMP IOLED1CODE ENDSEND START逻辑或CODE SEGMENTASSUME CS:CODEIOCONPT EQU 0FF2BHIOBPT EQU 0FF29HIOAPT EQU 0FF28HORG 11B0HSTART: MOV AL,90HMOV DX,IOCONPTOUT DX,ALNOPNOPNOPIOLED1:MOV DX,IOAPTIN AL,DXand AL,00000011Bjz LP1JNZ lp2LP1:MOV DX,IOBPTMOV AL,0ffhOUT DX,ALMOV CX,0FFFFHDELAY: LOOP DELAYJMP IOLED1lp2:mov DX,IOBPTMOV AL,0FEHout DX,ALMOV CX,0FFFFHLOOP DELAYJMP IOLED1CODE ENDSEND START流水灯DA TA SEGMENTX DB 10 DUP (?)Y DB 10 DUP (?)SUM DB ?DA TA ENDSSTACK SEGMENTSTA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACK,ES:DA TA IOCONPT EQU 0FF2BHIOBPT EQU 0FF29HIOAPT EQU 0FF28HORG 11B0HSTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AX; MOV SI,OFFSET X; MOV CL,01H; MOV [SUM],CLMOV AL,90HMOV DX,IOCONPTOUT DX,ALNOPNOPNOPIOLED1:MOV AL,11111110BMOV DL,ALLP1:MOV DX,IOBPTOUT DX,ALMOV CL,1ROL AL,CLMOV CX,000FFHDL Y:LOOP DL YMOV CX,0FFFFHDELAY: LOOP DELAYJMP LP1CODE ENDSEND START四、实验结果原程序,k1,到k8分别控制L1到L8,当开关置低,灯亮逻辑或,K1和K2同时置高,K1置高K2置低和K1置低K2置高时灯亮,同时置低灯灭。
可编程并行接口实验(8255A方式1)实验目的掌握8255A工作方式1的使用方法;进一步掌握编写中断服务程序的方法。
实验内容1.8255A选通行输出实验,具体要求:(1)设置8255A的A 口工作在方式1输出;(2)每按一次单脉冲按钮产生一个正脉冲使8255A产生一次中断;(3)设计中断服务程序:依次输出01H,02H,04H,08H,10H,20H,40H,80H。
使L0—L7依次发光。
2.8255A选通行输入实验,具体要求:(1)设置8255A的A 口工作在方式1输入;(2)每按一次单脉冲按钮产生一个正脉冲使8255A产生一次中断;(3)设计中断服务程序:读取开关表示的ASCII码,在屏幕上显示其对应的字符。
实验连线1实验内容1连线(1)8255A芯片的A口PA7~PA0连发光二极管L7~L0;(2)PC3连接IRQ;(3)PC6连接单脉冲发生器。
2实验内容2连线(1)8255A芯片的A口PA7~PA0连逻辑开关K7~K0;(2)PC3连接IRQ;(3)PC4连接单脉冲发生。
流程图这是试验2的流程图,实验1相似实验代码试验2的代码是在试验1的代码基础上稍作改动,这里只列出试验2的代码:ASSUME CS:CODE,DS:DATADATA SEGMENT ;数据段定义IOPORT EQU 5400H-280HIOPORT_CENT EQU 5000H ;9054芯片的I/O起始地址MASKZ EQU 0FBH ;8259A主片屏蔽码MASKC EQU 0F7H ;8259A从片屏蔽码INTNUM DW 0 ;保存ES的定义量INTNUMSE DW 0 ;保存BX的定义量DA TA ENDSSTACK1 SEGMENT STACK ‘STACK1’DB 50 DUP(?)STACK1 ENDSCODE SEGMENT ;代码段定义START:MOV DX,IOPORT+28BH ;根据实验连线,此次实验控制口为540BH MOV AL,0B0H ; 设置8255A的控制关键字(设置成方式1,端口A输入) OUT DX,ALCLI ;关中断MOV DX,IOPORT_CENT+68H ;设置9054芯片使能寄存器IN AX,DXOR AX,0900HOUT DX,AX;得到原中断向量并保存MOV AH,35H ;取中段向量MOV AL,73H ;针对本台计算机查表得出中断类型号为73HINT 21HMOV INTNUMSE,BX ;保存BXMOV AX, ES ;保存ESMOV INTNUM, AX;设置新中断向量MOV AX,CSMOV DS,AXMOV DX,OFFSET INTPROC ;设置新的中断向量MOV AL,073HMOV AH,25HINT 21H;设置中断屏蔽寄存器IN AL,21H ;8259A主片的中断屏蔽寄存器端口地址为21HAND AL,MASKZ ;中断屏蔽寄存器中主片相应位置1,本实验中第三位置1 OUT 21H,ALIN AL,0A1H ;8259A从片的中断屏蔽寄存器端口地址为0A1HAND AL,MASKCOUT 0A1H,AL ;中断屏蔽寄存器中从片相应位置1,本实验中第四位置1 STI ;开中断MOV AL,00001001B ;设置PC4为1MOV DX,IOPORT+28BHOUT DX,ALOUTER:MOV AH,01H ;判断是否有任意键按下INT 16HJZ OUTER ;没有键按下程序重复MOV AX, INTNUM ;恢复原中断向量MOV DS,AXMOV DX, INTNUMSEMOV AL,073HMOV AH,25HINT 21H;恢复中断屏蔽寄存器IN AL,21HOR AL,04HOUT 21H,ALIN AL,0A1HOR AL,08HOUT 0A1H,ALMOV DX,IOPORT_CENT+68H ;关闭9054IN AX,DXOR AX,0F6FFHOUT DX,AXMOV AH,4CH ;有键按下,程序结束,返回DOS界面INT 21H;中断服务子程序INTPROC:PUSH AX ;寄存器入栈保护PUSH BXPUSH CXPUSH DXPUSH DSSTI ;开中断MOV CX,0FFFFHH: LOOP HMOV DX,IOPORT+288H ;A口输入IN AL,DXMOV DL,AL ;输出开关所对应的字符MOV AH,02HINT 21HMOV AL,20H ;发出EOI结束中断OUT 20H,ALOUT 0A0H,ALCLI ;关中断POP DS ;寄存器出栈POP DXPOP CXPOP BXPOP AXIRET ;中断返回CODE ENDSEND START结果描述试验1:每按一次单脉冲,L0~L7依次发光。
4.4 8255A可编程并行接口实验二4.4.1 实验目的1、进一步掌握8255A并行接口芯片的基本结构及工作原理。
2、掌握8255A的A口或B口工作于方式1时的特点及其使用方法;掌握方式1输入或输出时C口用作联络信号的引脚的定义及功能。
4.4.2 实验预习要求1、复习8255A工作方式1的特点及工作原理;C口用作联络信号的引脚定义及功能。
2、复习中断服务程序的编写方法。
3、预先编写好实验程序。
4.4.3 实验内容按图4.4-1连接线路。
& &图4.4-18255A的A口工作于方式1输出。
C口的PC3用作中断请求信号(INTR)。
PC6用作外设应答信号(ACK),表示CPU输出到8255A的数据已被外设取走。
PC7用作输出缓冲器满信号(OBF),OBF 信号实验中未用。
用每按一次单脉冲按钮K所产生的负脉冲(模拟外设的应答信号)使8255A产生一次中断请求,让CPU进行一次中断服务。
在中断服务程序中向8255A依次输出01H、02H、04H、08H、10H、20H、40H、80H使L0 L7依次发光,中断8次程序结束返回DOS。
4.4.4 实验提示1、主机中可编程中断控制器8259A的I/O地址为20H和21H。
2、8255A的I/O地址为:控制寄存器端口地址28BHA口的地址288HC 口的地址28AH3、实验台接口卡设置为使用ISA总线中的IRQ7将实验台上的中断请求信号IRQ送到主板的8259A,若接口卡非如此设置,请根据具体设置在编写程序时作适当修改。
4、中断服务程序中通过OUT指令将数据输出到8255A的A口,以便点亮发光二极管时,要延时一段时间,否则将无法看到二极管发光。
实验程序流程图如图4.4-2和4.4-3所示。
4.4.5 实验报告要求1、根据流程图编写实验程序,并说明在实验过程中遇到了哪些问题,是如何处理的。
2、总结8255A工作方式1的特点及使用方法。
3、写出实验小结,内容包括实验心得(收获)、不足之处或今后应注意的问题等。
微机原理实验实验五可编程并行接口实验一、实验目的1. 理解可编程并行接口8255A芯片的结构和功能;2. 掌握8255A芯片初始化程序的设计方法;3. 掌握8255A芯片与CPU信号的连接方法以及并行接口设计和编程方法;4. 掌握七段数码管的静态和动态显示原理;5. 掌握利用七段数码管显示计算数机内部信息。
二、实验内容1. ※●利用8255A芯片设计接口电路并编程实现:A口输出数据,驱动四个LED,使其顺序显示‘0’~‘F’的二进制状态,每个状态保持1秒钟。
(1)电路框图(2)源程序(3)运行结果2. ※●设计接口电路并编程实现:两个七段数码管分别显示“HP”,字符保持3秒钟后两个数码管同时熄灭。
(1)电路框图(2)源程序(3)运行结果HP字符显示3秒后同时熄灭3. 通过对8255A芯片的实验,对比实验五、实验六,谈谈你对8255A的认识和体会以及输入输出接口调试的过程;8255A是可编程并行I/O接口芯片,通过对它进行编程,可实现无条件、有条件和中断方式的接口电路。
它适合于外部设备和微机之间进行近距离、大量和快速的信息交换,比如微机与并行接口打印机或者磁盘驱动器等。
输入输出接口调试过程:先搞清四个端口地址,然后根据所要实现的功能对控制端口写控制字,然后对其他端口进行数据交换,验证硬件电路的正确性。
4.简单叙述数码管接口电路设计的原则和调试方法;送入数码管的数据分为段码和位码,段码决定数码管显示什么样的字符,位码决定哪一位的数码管显示该字符。
调试时,先对连接段码的端口送入数据,然后对连接位码的端口送入数据,观察数码管的显示状态,改变位码端口数据,继续观察数码管的显示状态。
不能先送位码,再送段码,即不能先点亮再显示,因为这样可能会在段码未稳定之前显示错误的字符。
5. 叙述七段数码管动态显示延时时间长短对视觉有何影响?延时程序的作用是保持当前显示数码管足够时间,同时稳定显示效果,以形成视觉暂留。
人眼的视觉暂留时间大概在二十四分之一秒左右,所以一般电视电影至少是24帧以上,才会看起来是连续的动作,延时的时间设置小于40ms即可,延时太短会加重cpu的负担,延时太长,则看起来是不断闪烁的,不能连续显示。
最新8255实验报告实验目的:本次实验旨在熟悉并掌握Intel 8255A可编程并行接口的功能及其编程方法。
通过实验,学习如何利用8255A实现并行数据的输入输出操作,并了解其在微型计算机系统中的应用。
实验设备与器件:1. 微机实验箱及接口电路板2. Intel 8255A 可编程并行接口芯片3. 8位微处理器(如8086)4. 示波器、逻辑笔等测试工具实验原理:Intel 8255A是一种3态可编程并行输入/输出接口芯片,具有三个8位并行I/O端口:端口A、端口B和端口C。
端口A和端口B可用于输入输出,端口C分为两个4位端口C1和C2,可分别进行输入输出操作。
8255A通过控制字寄存器(控制字1和控制字2)来设置工作模式和端口方向。
实验步骤:1. 初始化8255A:通过编程设置控制字寄存器,定义端口A、B的工作模式(例如,端口A为输入,端口B为输出)和端口C的配置(C1和C2的输入输出模式)。
2. 编写程序代码,实现端口A的数据读取和端口B的数据输出。
3. 使用示波器检测端口C的输入输出信号,验证其功能。
4. 通过改变控制字寄存器的设置,观察并记录端口工作模式变化后的行为。
实验结果:1. 端口A成功读取了外部输入的二进制数据,并在显示器上显示出来。
2. 端口B按照程序设定输出了相应的控制信号,通过LED灯或其他指示设备得到了验证。
3. 端口C1和C2在不同的控制字设置下,能够正确地执行输入输出操作,信号波形通过示波器得到了确认。
实验结论:通过本次实验,我们成功地对Intel 8255A可编程并行接口进行了编程和操作,实现了并行数据的输入输出。
实验结果表明,8255A在并行接口通信中具有重要作用,能够提高数据传输效率,适用于需要高速并行数据传输的场合。
图一、产生500us方波图二、按键控制LED亮
图三、流水灯依次点亮4、实验程序流程框图和程序清单
程序一、
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP ZHP
ORG 0100H
MAIN: MOV DPTR, #03H
MOV A, #95H
MOVX @DPTR, A
MOV TMOD, #02H
SETB EA
SETB ET0
MOV TH0, #06H
图四、产生500us方波图五、按键控制LED亮
图六、流水灯依次点亮
6、实验总结
本次实验是使用8255扩展外部I/O口,在本次实验中,我认为最为重要的就是电路图的设计以及其地址的计算,在弄清楚该问题的情况下,本次实验就没有什么很大的问题了。
7、思考题
1、在8255PC口上外接8个发光二极管,利用8255PC口的置位/复位控制字控制其按某种规律变化。
程序三、
CJNE R1, #11H, ZHP。
实验四并行接口实验一、实验目的1.掌握通过8255A并行口进行数据传输的方法。
2.控制16位数据灯的相对循环显示。
二、实验设备PC机一台,TD—PIT/TD—PIT—B实验装置一套。
三、实验内容1、基本输入输出实验。
编写程序,使8255的A口为输出,B口为输入,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就改变。
2、流水灯显示实验。
编写程序,使8255的A口和B口均为输出,实现16位数据灯的相对循环显示。
四、8255工作原理并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图3-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图3-2所示。
图3-1 8255的内部结构及引脚图3-2 8255控制字格式五、实验步骤I、基本输入输出实验本实验使8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。
参考程序流程如图3-3所示。
图3-3 8255并行接口芯片基本输入/输出实验(1)参考程序流程图实验步骤编写程序,使8255并行接口芯片端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。
用一组开关信号接入端口B,端口A输出线接至一组数据灯上,实现输入输出功能。
具体实验步骤如下。
1)确认从PC机引出的两根扁平电缆已经连接在实验平台上。
2)打开实验箱电源,首先运行PCI_BIOS.EXE程序,查看I/O空间始地址。
3)参考图3-4所示连接实验线路。
4)利用查出的地址编写程序,然后编译链接。
5)运行程序,拨动开关,看数据灯显示是否正确图3-4 8255并行接口芯片基本输入/输出实验参考接线图==================================================================================== 文件名: A82551.ASM功能描述: B为输入,A口为输出,将读入的数据输出显示====================================================== SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODE, SS:SSTACKSTART: MOV DX, 0646HMOV AL, 82HOUT DX, ALAA1: MOV DX, 0642HIN AL, DXCALL DELAYMOV DX, 0640HOUT DX, ALJMP AA1DELAY: PUSH CXMOV CX, 0F00HAA2: PUSH AXPOP AXLOOP AA2POP CXRETCODE ENDSEND START实验现象:当拔动B接口对应的开关时候,A接口对应的二极管亮。
实验五可编程并行接口(8255A)
一.实验目的
1.掌握8255A方式0的工作原理及使用方法
二.实验内容
1.按下面图4-1可编程并行口接口8255A电路连接线路,如下图所示:
图4-1可编程并行口接口8255A
2.编写程序,实现从PC口读入开关状态,然后在PA口输出开关状态。
编程可参考如下流程图:
其中288H是8255A芯片的PA口地址。
三.编程提示
1.PA口地址=(DC00H-280H)+288H=0DC08H,其余端口地址可依此类推。
下面是整个接口程序的参考源程序,请补充完整
8255A并行口输出实验,8255A工作于方式0。
stack segment para stack
X db 100 dup(?)
stack ends
data segment
Y db 100 dup(?)
data ends
code segment 'code'
assume cs:code,ds:data,ss:stack
start: mov ax,data
mov ds,ax
____________ ;8255A初始化
next: ___________ ;从PC口输入数据
;从PA口输出数据
__________
以下语句是用于判断是否按下ESC键,如果按下则退出。
mov dl , 0ffH
mov ah , 06H
int 21h
jz next ;无键按下则继续从PC口读入数据
mov ah , 4ch
int 21h
code ends
end start
2. 编译及运行
将上述程序对应的工程建立在E:\wjyl\bxk目录下,编译、连接、构建后生成exe文件。
运行不能直接在WINXP系统下,必须在纯DOS系统下。
四.思考题
1. 8255A的工作方式0的特点是什么?
2.这个程序里有查询环节吗?如果有,作用是什么?。