8255 并行接口实验

news/2024/11/23 4:16:16/

一、实验目的:

1.掌握8255A的工作方式使用以及编程。

2.利用8255A完成将数码开关的输入送给发光二极管并显示

二、实验内容与要求:

1.基本输入输出实验。编写程序,使8255的A口为输出,B口为输入,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就发生相应改变。

2.流水灯显示实验。编写程序,使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮-一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。

3.方式1输入输出实验。编写程序,使8255工作在方式1控制下的A口输入,B口输出。

三、实验步骤

1.基本输入输出实验

本实验使8255端口A工作在方式О并作为输出口,端口B工作在方式О并作为输入口。用一组开关信号接入端口B,端口A输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。具体实验步骤如下,其中第(4)步到第(6)步固化功能可选作:

(1)实验接线图如图4.3.4所示,按图连接实验线路图。

(2)编写实验程序(例程文件名为:A82551.ASM),经编译、连接无误后装入系统。

(3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。

(4)点击“调试”下拉菜单中的“固化程序”项,将程序固化到系统存储器中。

(5)将386EX单板机系统的短路跳线JDBG短接到RUN端,然后按复位按键,观察程序是否正常运行﹔关闭实验箱电源,稍等后再次打开电源,看固化的程序是否运行,验证程序功能。

(6)实验完毕后,请将短路跳线JDBG的短路块短接到DBG端,以方便下次联机实验。

2流水灯显示实验

使8255的A口和B口均为输出,数据灯D7~DO由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~DO正好相反,由右向左,每次仅点亮一个灯,循环显示。实验接线图如图4.3.5所示。实验步骤如下所述:

(1)按图4.3.5连接实验线路图。

(2)编写实验程序(例程文件名为:A82552.ASM),经编译、链接无误后装入系统。

(3)运行程序,观察LED灯的显示,验证程序功能。

(4)自己改变流水灯的方式,编写程序。

(5)固化程序并脱机运行(可选做)。

3.方式1输入输出实验

本实验使8255端口A工作在方式О并作为输出口,端口B工作在方式1并作为输入口,则端口C的PC2成为选通信号输入端STBB,PCO成为中断请求信号输出端INTRB。当B口数据就绪后,通过发STBB信号来请求CPU读取端口B数据并送端口A输出显示。用一组开关信号接入端口B,端口A输出线接至一组数据灯上。具体实验步骤如下:

(1)按图4.3.6连接实验线路图。

(2)编写实验程序(例程文件名为:A82553.ASM),经编译、链接无误后装入系统。

(3)运行程序,然后改变拨动开关,准备好后,按动KK1,同时观察数据灯显示,应与开关组信号一致。

四、电路连接

1.基本输入输出实验

2.流水灯显示实验

3.方式1输入输出实验

五、代码设计

1.关于8255控制字

MOV DX, MY8255_MODEMOV AL, 82HOUT DX, AL

关于8255工作方式控制字和C口按位置位/复位控制字格式如下图所示。

82H=1000 0010B;表示工作方式0,A口输出,B口输入

之后的代码中出现的80H86H同理。

80H=1000 0000B;表示工作方式0,A口输出,B口输出

86H=1000 0110B;表示工作方式1,A口输出,B口输入

2.关于灯的控制

AA1:      MOV DX, MY8255_BIN  AL, DXCALL DELAYMOV DX, MY8255_AOUT DX, ALJMP AA1

8255 B端口的状态给AL,虽然这里是把B端口的地址送给AL,但是可以理解成把B端口状态给AL,例如B端口为00101代表拨动的那个开关),则把0010AL,后面通过把AL8255A端口,控制灯。

3.关于流水灯的控制

AA1:	MOV DX, MY8255_AMOV AL, BHOUT DX, ALROR BH, 1;右移移位MOV DX, MY8255_BMOV AL, BLOUT DX, ALROL BL, 1;左移一位	;延时CALL DELAYCALL DELAYJMP AA1

8001H=1000 0000 0000 0001, 1即为控制灯亮,这时的80001H就代表灯D15D0亮,后面分开控制BHBL1的移动,就可以控制灯的移动,比如BH=1000 0000 亮一次后 做循环移位操作(向左或向右),就可以实现灯的流水效果,把1理解成灯亮,1移动,1到的位置灯亮,所以1不得移动,形成流水灯。

六、实验现象

1.基本输入输出实验

2.流水灯显示实验

数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正好相反,由右向左,每次仅点亮一个灯,循环显示。

3.方式1输入输出实验

七、完整代码

1.基本输入输出实验
;=========================================================
; 文件名: A82551.ASM
; 功能描述: A口为输入,B口为输出,将读入的数据输出显示
;           IOY0
;=========================================================IOY0         EQU   0600H          ;片选IOY0对应的端口始地址
MY8255_A     EQU   IOY0+00H*2     ;8255的A口地址
MY8255_B     EQU   IOY0+01H*2     ;8255的B口地址
MY8255_C     EQU   IOY0+02H*2     ;8255的C口地址
MY8255_MODE  EQU   IOY0+03H*2     ;8255的控制寄存器地址SSTACK  SEGMENT STACKDW 32 DUP(?)
SSTACK  ENDS
CODE    SEGMENTASSUME CS:CODE
START:  MOV DX, MY8255_MODEMOV AL, 82HOUT DX, AL
AA1:    MOV DX, MY8255_BIN  AL, DXCALL DELAYMOV DX, MY8255_AOUT DX, ALJMP AA1
DELAY:  PUSH CXMOV CX, 0F00H
AA2:    PUSH AXPOP  AXLOOP AA2POP  CXRET
CODE    ENDSEND  START2.流水灯显示实验
;=========================================================
; 文件名: A82552.ASM
; 功能描述: A口为输出,B口为输出,流水灯显示
;=========================================================IOY0         EQU   0600H          ;片选IOY0对应的端口始地址
MY8255_A     EQU   IOY0+00H*2     ;8255的A口地址
MY8255_B     EQU   IOY0+01H*2     ;8255的B口地址
MY8255_C     EQU   IOY0+02H*2     ;8255的C口地址
MY8255_MODE  EQU   IOY0+03H*2     ;8255的控制寄存器地址SSTACK  SEGMENT STACKDW 32 DUP(?)
SSTACK  ENDS
CODE    SEGMENTASSUME CS:CODE
START:  MOV DX, MY8255_MODEMOV AL, 80HOUT DX, ALMOV BX, 8001H
AA1:    MOV DX, MY8255_AMOV AL, BHOUT DX, ALROL BH, 2MOV DX, MY8255_BMOV AL, BLOUT DX, ALROL BL, 1   CALL DELAYCALL DELAYJMP AA1
DELAY:  PUSH CXMOV CX, 0F000H
AA2:    PUSH AXPOP  AXLOOP AA2POP  CXRET
CODE    ENDSEND  START3.方式1输入输出实验;=========================================================
; 文件名: A82553.ASM
; 功能描述: 本实验使8255端口A工作在方式0并作为输出口,
;           端口B工作在方式1并作为输入口
;=========================================================IOY0         EQU   0600H          ;片选IOY0对应的端口始地址
MY8255_A     EQU   IOY0+00H*2     ;8255的A口地址
MY8255_B     EQU   IOY0+01H*2     ;8255的B口地址
MY8255_C     EQU   IOY0+02H*2     ;8255的C口地址
MY8255_MODE  EQU   IOY0+03H*2     ;8255的控制寄存器地址STACK1  SEGMENT STACKDW 256 DUP(?)
STACK1  ENDS
CODE    SEGMENTASSUME CS:CODE
START:  MOV DX,MY8255_MODE         ;初始化8255工作方式MOV AL,86H                 ;工作方式1,A口输出,B口输入OUT DX,ALMOV DX,MY8255_MODE         ;C口PC2置位MOV AL,05H                 OUT DX,ALPUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET MIR7         ;取中断入口地址MOV SI, 003CH               ;中断矢量地址MOV [SI], AX                ;填IRQ7的偏移矢量MOV AX, CS                  ;段地址MOV SI, 003EHMOV [SI], AX                ;填IRQ7的段地址矢量CLIPOP DS;初始化主片8259MOV AL, 11HOUT 20H, AL             ;ICW1MOV AL, 08HOUT 21H, AL             ;ICW2MOV AL, 04HOUT 21H, AL             ;ICW3MOV AL, 01HOUT 21H, AL             ;ICW4MOV AL, 6FH             ;OCW1OUT 21H, ALSTI       
AA1:    NOPJMP AA1
MIR7:   PUSH AXMOV DX,MY8255_B            ;读B口IN  AL,DXMOV DX,MY8255_A            ;写A口OUT DX,ALMOV AL,20HOUT 20H,AL       POP AX  IRET  
DELAY:  PUSH CXMOV CX, 0F00H
AA0:    PUSH AXPOP  AXLOOP AA0POP CXRE
CODE    ENDSEND START


http://www.ppmy.cn/news/115745.html

相关文章

详解8259A

详解8259A 可编程中断控制器 可编程中断控制器(PIC - Programmable Interrupt Controller)是微机系统中管理设备中断请求的管理者。当PIC向处理器的INT引脚发出一个中断信号时,处理器会立刻停下当时所做的事情并询问PIC需要执行哪个中断服务请求。PIC则…

8251A可编程串行接口

8251A可编程串行接口 串行通信8251A的工作原理异步接收方式异步发送方式8251A的初始化 串行通信 串行:数据1位1位的进行传输。在传输过程中,每一位数据都占据一个固定的时间长度串行通信用波特率表示数据传输速率。波特率:每秒传输数据的位数…

8259A

5.3 8259A可编程中断控制器 中断控制器是专门用来处理中断的控制芯片。它的功能是在有多个中断源的系统中,协助CPU实现对外部中断请求的管理,对它们进行优先权排队后选中当前优先权最高的中断请求向CPU发出中断请求信号;并且,当C…

可编程接口芯片8255A

微机接口技术之可编程接口芯片 文章目录 微机接口技术之可编程接口芯片可编程并行输入/输出接口芯片8255A功能8255A的内部结构8255A的管脚分配8255A的工作方式及编程8255A的三种工作方式方式0方式1方式2 可编程并行输入/输出接口芯片8255A 功能 8255A是…

8259A详解

可编程中断控制器8259A 8259A的外部引线8259A的内部结构8259A的工作过程8259A的工作方式8259A的初始化编程 8259A的外部引线 采用28脚双列直插式封装。 D0~D7:双向数据线,与系统的数据总线相连。编程时控制字,命令字由此写入;中断响应时&…

8259A简介

文章目录 1中断简介1.1中断1.2禁止中断与中断屏蔽1.3中断嵌套1.4中断类型号和中断向量表 2,8259A简介2.1 8259A介绍2.2 8259A内部结构2.3 8259A引脚2.3.1 与CPU相连的引脚2.3.2 与外设相连的引脚 2.4 8259a可编程寄存器 1中断简介 1.1中断 定义:CPU暂停当前程序的…

关于 Intel 8253/8254

Intel 8253/8254是一个可编程定时/计数器(PIT-Programmable Interval Timer)芯片,用于处理计算机中的精确时间延迟。该芯片提供了 3个独立的16位计数器通道。每个通道可工作在不同的工作方式下, 并且这些工作方式均可以使用软件来设置。 对于…

高通8155/8295 boot分析

目录 前言 通用boot流程 8155/8295 boot流程概述 前言 本文将基于高通8155/8295 QA hypervisor平台分析整个boot的启动流程。高通其他SOC芯片的启动流程大致相同,所以本文也具备一定的参考性。 阅读本文需要你有一定的嵌入式开发经验或者具备一定的操作系统原理…