• 实验6 8255并行接口实验【微机原理】【实验】


    前言

    以下内容源自微机原理实验指导书
    仅供学习交流使用
    请您阅读文章声明,默认同意该声明

    推荐

    8255并行接口实验

    3.2 8255并行接口实验

    3.2.1实验目的

    1、掌握8255A并行接1芯片的基本结构及工作原理。
    2、掌握8255A工作方式0的特点及其使用方法。
    3、掌握8255A的端口A或端口B工作于方式1时的特点及其使用方法;掌握方式1输入或输出时端口C用作联络信号的引脚的定义及功能。
    4、掌据程序固化及脱机运行程序的方法。

    3.2.2实验内容

    1、基本输入输出实验。编写程序,使8255A的A口为输出,B口为输入,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就改变。
    2、流水灯显示实验。编写程序,使8255的A口和B口均为输出,实现16位数据灯的相对循环显示。
    3、(选做)方式1输入输出实验。编写程序,使8255工作在方式1控制下的A口输入,B口输出。

    3.2.3实验原理

    并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的。即可以同时传递8位、16位、32位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0–基本输入/输出方式、 方式1-选通输入出方式、方式2-双向选通工作方式。8255的内部结构及引脚如图3-2-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图3-2-2所示。

    在这里插入图片描述
    在这里插入图片描述
    8255实验单元电路图如图3-2-3所示。
    在这里插入图片描述

    3.2.4 实验说明及步骤

    1、基本输入输出实验
    本实验使8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。用一组开关信号接入端口B,端口A输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。具体实验步骤如下,其中第(4)步到第(6)步固化功能可选作:
    (1)实验接线图如图3-2-4所示,按图连接实验线路图。
    (2)编写实验程序,经编译、连接无误后装入系统。
    ------------理论知识-----------
    1、确认端口地址

    IO基地址0600H
    XR1---A0
    XR2---A1
    地址范围600H~603H
    端口A地址:0600H
    端口B地址:0602H
    端口C地址:0604H
    控制寄存器端口地址:0606H
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2、确定工作方式

    端口A工作于方式0,基本输出方式
    端口B工作于方式0,基本输入方式
    
    
    • 1
    • 2
    • 3

    3、确定控制字

    1 00  0 x 0 1 x
    
    • 1

    4、初始化程序

    A EQU 0600H
    B EQU 0602H
    C EQU 0604H
    S EQU 0606H
    CODE SEGMENT
    	ASSUME CS:CODE
    START:
    	;设置端口A,方式0输出
    	;设置端口B,方式0输入
    	MOV AL,10000010B
    	MOV DX,S      ;送控制字
    	OUT DX,AL
    	
    NEXT:	
    	;从B口读入开关状态
    	;将从B口读入的开关状态
    	;送给端口A输出
    	MOV DX,B              ;读B口发出的起始数据,B口输入 
        IN AL,DX 
        MOV DX,A               ;写A口发出的起始数据,A口输出 
        OUT DX,AL 
        
    	;有键按下否
    	MOV AH,1                   
        INT 16H 
    	JNZ QUIT
    		
    	JMP NEXT
    	
    QUIT:	
    	MOV AH,4CH
    	INT 21H
    CODE ENDS
    	END START
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    ------------理论知识-----------

    ------------具体实践-----------

    8255并行接口实验

    IOY0 EQU 0600H               ;8255的CS引脚连接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的控制寄存器地址 
    CODE SEGMENT                     ;定义代码段 
        ASSUME CS:CODE 
    START: MOV DX,MY8255_MODE       ;8255控制端口地址为3006H 
        MOV AL,82H  ;设置8255方式控制字,A、B口工作方式0,A口输出,B口输入 
        OUT DX,AL 
    LOOP1: MOV DX,MY8255_B            ;读B口发出的起始数据,B口输入 
        IN AL,DX 
        MOV DX,MY8255_A               ;写A口发出的起始数据,A口输出 
        OUT DX,AL 
        MOV AH,1                        ;判断是否有按键按下 
        INT 16H 
        JZ LOOP1                        ;无按键则跳回继续循环,有则退出 
    QUIT: MOV AX,4C00H                 ;结束程序退出 
        INT 21H 
    CODE ENDS 
        END START 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    ------------具体实践-----------

    (3)运行程序,改变拨动开始后观察LED显示,验证程序功能
    (4)点击“调试”下拉菜单中的“固化程序”项,将程序固化到系统存储器中
    (5)将386EX单板机系统的短路跳线JDBG每控到RUN端,然后按复位按键,观察程序是否正常运行;关闭实验箱电源,稍等后再次打开由测,看固化的段序是否运行,验证程序功能
    (6)实验完毕后,请将短路跳线DRG的短路块短接到DBG端,以方便下次联机实验。

    小提示:I386E CPU单板机支持联机调试模式和脱机独立运行模式。两种模式的切换是通过I386EX CPU单板机单元的右下角下层基板处的短路跳线JDBG来实现,短路块短接到DBG当,CPU与软件处于联机调试模式,该模式下,通过软件界南可对CPU进行下载程序,单步、断点、连续运行等调试,通过固化功能菜单,可将加载到CPU单板机存储器中的固化程序到FLASH存储器中。固化完成后,将短路块短接到RUN档,并复位或另加电,CPU将启动FLASH存储器中的程序进行独立运行,此时I386EX CPU 单板机就工作在脱机独市运行模式了

    在这里插入图片描述

    2、流水灯显示实验
    使8255的A口和B口均为输出,数据灯D7 ~ D0由左向右,每次仅亮一个灯,循环显示,D15~ D8与 D7~D0正好相反,由右向左,每次仅点亮一个灯,循环显示。实验接线图如图4.3.5所示。实验步骤如下所述:
    (1)按图3-2-5连接实验线路图。
    (2)编写实验程序,经编译、链接无误后装入系统。
    ------------理论知识-----------
    1、确认端口地址

    IO基地址0600H
    XR1---A0
    XR2---A1
    地址范围600H~603H
    端口A地址:0600H
    端口B地址:0602H
    端口C地址:0604H
    控制寄存器端口地址:0606H
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2、确定工作方式

    端口A工作于方式0,基本输出方式
    端口B工作于方式0,基本输出方式
    
    
    • 1
    • 2
    • 3

    3、确定控制字

    1 00  0 x 0 0 x
    
    • 1

    4、初始化程序

    A EQU 0600H
    B EQU 0602H
    C EQU 0604H
    S EQU 0606H
    CODE SEGMENT
    	ASSUME CS:CODE
    START:
    	;设置端口A、B方式0输出
    	MOV AL,10000000B
    	MOV DX,S      ;送控制字
    	OUT DX,AL
    	
    INIT:	
    	MOV BL,7FH
    	MOV CL,0FEH
    	
    	;A口输入数值1(7FH)
    	;B口输入数值2(FEH)
    NEXT:	
    	MOV DX,A
    	MOV AL,BL
    	OUT DX,AL
    	
    	MOV DX,B
    	MOV AL,CL
    	OUT DX,AL
    	
    	;有键按下否
    	MOV AH,1                   
        INT 16H 
    	JNZ QUIT
    	
    	;数值1右移,数值2左移
    	ROR BL,1
    	ROR CL,1
    	
    	
    	
    	JZ INIT
    	JNZ NEXT
    	
    QUIT:	
    	MOV AH,4CH
    	INT 21H
    CODE ENDS
    	END START
    	
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    ------------理论知识-----------

    ------------具体实践-----------
    8255做流水灯实验

    CODE SEGMENT
         ASSUME CS:CODE
    START: 
    	   MOV DX,606H
           MOV AL,80H;A口选择00方式,B口0方式
           OUT DX,AL;送控制字
           MOV CL,80H ;赋初值
           MOV BL,1H ;赋初值
     AA1:
        	MOV DX,600H 
            MOV AL,CL
            OUT DX,AL
            MOV DX,602H
            MOV AL,BL
            OUT DX,AL
            CALL DELAY ;延时作用
            ROL BL,1H  ;循环左移一位
            ROR CL,1H  ;循环右移一位
            JMP AA1
    DELAY:
      		PUSH CX
            MOV CX,0FFFFH
      	    AA2:PUSH AX
    	       POP AX
    	       LOOP AA2
    	    POP CX
    	   
           RET
           
      CODE ENDS
           END START
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    ------------具体实践-----------
    (3)运行程序,观察LED灯的显示,验证程序功能。
    (4)自己改变流水灯的方式,编写程序。
    (5)固化程序并脱机运行(可选做)。

    在这里插入图片描述

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

    在这里插入图片描述

    (1)按图3-2-6连接实验线路图。
    (2)编写实验程序,经编译、链接无误后装入系统。

    ------------理论知识-----------

    1、确认端口地址

    IO基地址0600H
    XR1---A0
    XR2---A1
    地址范围600H~603H
    端口A地址:0600H
    端口B地址:0602H
    端口C地址:0604H
    控制寄存器端口地址:0606H
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2、确定工作方式

    端口A 方式0 输出
    端口B 方式1 输入
    
    • 1
    • 2

    3、确定控制字

    1 00 0 x 1 1 1
    
    • 1

    4、初始化程序

    A EQU 0600H
    B EQU 0602H
    C EQU 0604H
    S EQU 0606H
    CODE SEGMENT
    	ASSUME CS:CODE
    START:
    	;设置端口A,方式0输出
    	;设置端口B,方式1输入
    	MOV AL,10000111B
    	MOV DX,S      ;送控制字
    	OUT DX,AL
    	
    	MOV DX,B
    	IN AL,DX
    	
    	MOV DX,A
    	OUT DX,AL
    
    	
    	
    	MOV AH,4CH
    	INT 21H
    CODE ENDS
    	END START
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

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

    3.2.5实验提示

    1、基本输入输出实验程序流程图如图3-2-5所示;
    2、流水灯显示实验程序程序流程图如图3-2-6所示:

    在这里插入图片描述

    最后

    请您阅读文章声明,默认同意该声明
    打赏通道
    请添加图片描述

  • 相关阅读:
    我的小程序接口被刷爆了
    ubuntu同步本地代码到github最新版
    redis的原理和源码-数据持久化方式RDB的介绍和源码解析
    java计算机毕业设计面试刷题系统源码+系统+mysql数据库+lw文档
    Crosslink-NX器件应用案例(1):SLVS/LVDS/HiSPI/DVP转MIPI D-PHY CSI
    【 web网页设计期末课程大作业】基于HTML+CSS+JavaScript智慧路灯综合管理系统
    Python Opencv实践 - 车牌定位(纯练手,存在失败场景,可以继续优化)
    本地安装AI大模型
    【 WebStorm 】常用快捷键
    STM32输出互补死区刹车PWM
  • 原文地址:https://blog.csdn.net/qq_51625007/article/details/125400791