8255并口控制器应用实验

时间:2024.4.20

8255并口控制器应用实验

一、实验目的

1. 掌握 8255 的工作方式及应用编程。

2. 掌握 8255 典型应用电路的接法。

二、实验内容

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

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

四、实验原理与步骤

实验步骤

(1)基本输入输出实验

实验说明:

本实验使 8255的端口A作为输出口工作在方式0,端口 B 作为输入口工作在方式0。用一组开关信号接入端口B,端口A 输出线接至一组数据灯上,然后通过对8255 芯片编程来实现输入输出功能。

图3-2 8255基本输入输出实验参考接线图

实验步骤如下:

①实验接线图如图3-2所示,按图连接实验线路图。

②运行Tdpit 集成操作软件,根据实验内容,调用程序代码(T8255-1.ASM),填写程序代码中的空缺处,编译、链接。

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

实验代码如下:

IOY0          EQU   9860H           ;片选IOY0对应的端口始地址

MY8255_A     EQU   9860H           ;8255的A口地址

MY8255_B     EQU   9861H           ;8255的B口地址

MY8255_C     EQU   9862H           ;8255的C口地址

MY8255_MODE  EQU   9863H         ;8255的控制寄存器地址

STACK1 SEGMENT STACK

        DW 256 DUP(?)

STACK1 ENDS

CODE SEGMENT

        ASSUME CS:CODE

START: MOV DX,MY8255_MODE         ;初始化8255工作方式

       MOV AL, 82H          ;工作方式0,A口输出,B口输入

       OUT DX,AL

LOOP1: MOV DX,MY8255_B            ;读B口

       IN  AL,DX

       MOV DX,MY8255_A            ;写A口

       OUT DX,AL

       MOV AH,1                   ;判断是否有按键按下

       INT 16H

       JZ  LOOP1                 ;无按键则跳回继续循环,有则退出

QUIT:  MOV AX,4C00H               ;结束程序退出

       INT 21H

CODE ENDS

     END START

(代码结束)

(2)流水灯显示实验

实验说明:

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

             图3-3流水灯显示参考程序流程图

实验步骤如下:

①实验接线图如图3-4所示,按图连接实验线路图。

②运行Tdpit 集成操作软件,根据实验内容,调用程序代码(T8255-2.ASM),填写程序代码中的空缺处,编译、链接。

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

④自己设计流水灯的流动模式,编写程序并实现。


图3-4 8255流水灯显示参考接线图

实验代码如下:

IOY0            EQU   9860H           ;片选IOY0对应的端口始地址

MY8255_A       EQU   IOY0+00H   ;8255的A口地址

MY8255_B       EQU   IOY0+01H     ;8255的B口地址

MY8255_C       EQU   IOY0+02H     ;8255的C口地址

MY8255_MODE  EQU   IOY0+03H    ;8255的控制寄存器地址

STACK1 SEGMENT STACK

        DW 256 DUP(?)

STACK1 ENDS

DATA SEGMENT

LA      DB  ?                     ;定义数据变量

LB      DB  ?

DATA ENDS

CODE SEGMENT

        ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

       MOV DS,AX

       MOV DX,MY8255_MODE         ;定义8255工作方式           

       MOV AL, 80H          ;工作方式0,A口和B口为输出

       OUT DX,AL

       MOV DX,MY8255_A            ;写A口发出的起始数据

       MOV AL, 80H

       OUT DX,AL

       MOV LA,AL

       MOV DX,MY8255_B            ;写B口发出的起始数据

       MOV AL, 01H

       OUT DX,AL

       MOV LB,AL

LOOP1: CALL DALLY

       MOV AL,LA                 ;将A口起始数据右移再写入A口

       ROR AL,1

       MOV LA,AL

       MOV DX,MY8255_A

       OUT DX,AL

       MOV AL,LB                 ;将B口起始数据左移再写入B口

       ROL AL,1

       MOV LB,AL

       MOV DX,MY8255_B

       OUT DX,AL

       MOV AH,1                   ;判断是否有按键按下

       INT 16H

       JZ  LOOP1                 ;无按键则跳回继续循环,有则退出

QUIT:  MOV AX,4C00H               ;结束程序退出

       INT 21H

DALLY PROC NEAR                   ;软件延时子程序

       PUSH CX

       PUSH AX

       MOV  CX,0FFFH

D1:    MOV  AX,0FFFFH

D2:    DEC  AX

       JNZ  D2

       LOOP D1

       POP  AX

       POP  CX

       RET

DALLY ENDP

CODE ENDS

     END START

(代码结束)

8254定时/计数器应用实验内容

计数应用实验。编写程序,应用8254的计数功能,用开关模拟计数,使每当按动KKI+五次后,产生一次计数中断,并在屏幕上显示一个字符‘5’。

实验步骤

计数应用实验

实验说明:

编写程序,将8254的计数器0设置为方式0,计数值为5,用微动开关KKl+作为CLK0时钟,OUT0连接INTR,每当KKl+按动5次后产生中断请求,在屏幕上显示字符“5”。

实验步骤如下:

①实验接线如图4-1所示,按图接线。

②运行Tdpit 集成操作软件,根据实验内容,调用程序代码(T8254-1.ASM),填写程序代码中的空缺处,编译、链接。

③运行程序,按动KK1+产生单次脉冲,观察实验现象。

④改变计数值,验证8254的计数功能。

实验代码如下:

INTR_IVADD     EQU   01C8H        ;INTR对应的中断矢量地址

INTR_OCW1  EQU   0A1H  ;INTR对应PC机内部8259的OCW1地址

INTR_OCW2  EQU   0A0H  ;INTR对应PC机内部8259的OCW2地址

INTR_IM    EQU   0FBH   ;INTR对应的中断屏蔽字

IOY0           EQU   3000H         ;片选IOY0对应的端口始地址

MY8254_COUNT0  EQU   IOY0+00H*4   ;8254计数器0端口地址

MY8254_COUNT1  EQU   IOY0+01H*4   ;8254计数器1端口地址

MY8254_COUNT2  EQU   IOY0+02H*4   ;8254计数器2端口地址

MY8254_MODE    EQU   IOY0+03H*4   ;8254控制寄存器端口地址

                             

STACK1 SEGMENT STACK

        DW 256 DUP(?)

STACK1 ENDS

DATA SEGMENT

CS_BAK   DW  ?       ;保存INTR原中断处理程序入口段地址的变量

IP_BAK   DW  ?      ;保存INTR原中断处理程序入口偏移地址的变量

IM_BAK   DB  ?          ;保存INTR原中断屏蔽字的变量

STR1     DB  'COUNT: $'           ;显示的字符串

DATA ENDS

CODE SEGMENT

        ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

       MOV DS,AX

       CLI

       MOV AX,0000H               ;替换INTR的中断矢量

       MOV ES,AX

       MOV DI,INTR_IVADD         

       MOV AX,ES:[DI]

       MOV IP_BAK,AX     ;保存INTR原中断处理程序入口偏移地址

       MOV AX,OFFSET MYISR

       MOV ES:[DI],AX      ;设置当前中断处理程序入口偏移地址

       ADD DI,2

       MOV AX,ES:[DI]

       MOV CS_BAK,AX      ;保存INTR原中断处理程序入口段地址

       MOV AX,SEG MYISR

       MOV ES:[DI],AX          ;设置当前中断处理程序入口段地址

       MOV DX,INTR_OCW1 ;设置中断屏蔽寄存器,打开INTR屏蔽位

       IN  AL,DX

       MOV IM_BAK,AL              ;保存INTR原中断屏蔽字

       AND AL,INTR_IM

       OUT DX,AL

       STI

       MOV DX,OFFSET STR1         ;显示字符串

       MOV AH,9

       INT 21H

       MOV DX,MY8254_MODE         ;初始化8254工作方式

       MOV AL,10H                ;计数器0,方式0 

       OUT DX,AL            

       MOV DX,MY8254_COUNT0       ;装入计数初值

       MOV AL,4

       OUT DX,AL

WAIT1: MOV AH,1                   ;判断是否有按键按下

       INT 16H

       JZ  WAIT1               ;无按键则跳回继续等待,有则退出

QUIT:  CLI

       MOV AX,0000H               ;恢复INTR原中断矢量

       MOV ES,AX

       MOV DI,INTR_IVADD 

       MOV AX,IP_BAK     ;恢复INTR原中断处理程序入口偏移地址

       MOV ES:[DI],AX

       ADD DI,2

       MOV AX,CS_BAK       ;恢复INTR原中断处理程序入口段地址

       MOV ES:[DI],AX

       MOV DX,INTR_OCW1   ;恢复INTR原中断屏蔽寄存器的屏蔽字

       MOV AL,IM_BAK

       OUT DX,AL

       STI

       MOV AX,4C00H               ;返回到DOS

       INT 21H

MYISR PROC NEAR                   ;中断处理程序MYISR

       PUSH AX

       MOV AL,35H

       MOV AH,0EH

       INT 10H

       MOV AL,20H

       INT 10H

       MOV DX,MY8254_COUNT0       ;重装计数初值

       MOV AL,4

       OUT DX,AL

OVER:  MOV DX,INTR_OCW2    ;向PC机内部8259发送中断结束命令

       MOV AL,20H

       OUT DX,AL

       MOV AL,20H

       OUT 20H,AL

       POP AX

       IRET

      

MYISR ENDP

      

CODE ENDS

     END START

(代码结束)


第二篇:微机接口实验报告-8255并口控制器实验 (1)-基本输入输出实验


【实验目的】

掌握8255 的工作方式及应用编程。

掌握8255的典型应用电路接法。

【试验设备】

PC微机一台、TD-PIT+实验系统一套。

【实验内容】

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

【实验原理】

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

图8-1  8255的内部结构及引脚

【实验说明及步骤】

本实验使8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。用一组开关信号接入端口B,端口A输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。参考程序流程如图8-3所示。

实验步骤如下。

1.确认从PC机引出的两根扁平电缆已经连接在实验平台上。

2.参考图8-4所示连接实验线路。

3.首先运行CHECK程序,查看I/O空间始地址。

4.利用查出的地址编写程序,然后编译链接。

5.运行程序,拨动开关,看数据灯显示是否正确。

(a)工作方式控制字                        (b)C口按位置位/复位控制字

8-2  8255控制字格式

图8-3  8255并口应用实验(1)参考程序流程图

图8-4  8255并口应用实验(1)参考接线图

【汇编源程序】

CODE   SEGMENT

        ASSUEM     CS:CODE

START:

        MOV        DX,0DC0CH

        MOV        AL,10000010B

        OUT         DX,AL

PP:

        MOV        DX,0DC04H

        IN           AL,DX

        MOV        DX,0DC00H

        OUT         DX,AL

        MOV        AH,1

        INT          16H

        JZ           PP

QUIT:

        MOV        AH,4CH

        INT         21H

CODE   ENDS

END   START

【实验结果】

在基本的输入输出实验中,A口的工作方式作为输入,接到开关上作为控制输入信号,而B口作为输出端连接到LED灯上可以通过灯的点亮和熄灭来判断输出信号。从实验中可以明显的看到,当key开关拨动后,经过8255处理后的输出信号端相对应的LED灯就会被点亮。具体图像如下(由于条件的限制,图像不是很清晰):

【实验总结】

可以通过对8255工作方式控制的设置,可以实现对对不同的端口设置其输入输出功能,从而实现输入与输出数据的处理功能。

【思考题】

任意设定一组开关状态(1或0):K7K6K5K4K3K2K1K0为 11010010 ,运行程序后,从B口读入到AL的值为 11010010 ,A口输出数据后,LED数据灯显示D7D6D5D4D3DD1D0 为 11010010(1表示灯亮,0表示灯不亮)

提示:可使DEBUG查看输入的数据:

E:\TANGDU \PIT-ASM>DEBUG  程序名.EXE(必须是EXE文件)

-U   ;反汇编

-T    ;用T命令单步运行,观察AL,特别是执行IN指令后AL的值。

       例如,8255A初始化前AX=0000H;8255初始化后,AX=0082H(AL为控制字82H);执行IN指令后,AL的值即为从B口读入开关量。

更多相关推荐:
并行口8255A的应用实验报告

大学实验报告20xx年月日课题名称汇编语言微机原理及接口技术实验名称并行口8255A应用班级姓名学号指导教师评定签名一实验目的进一步掌握8255A可编程并行口使用方法二实验内容1实验原理实验原理图如图37所示P...

8255A 并 行 口 实 验

并行口实验一目的1掌握8255A和微机接口方法2掌握8255A的工作方式和编程原理并行口实验一内容一实验原理如实验原理图58所示PC口8位接8个开关K1K8PB口8位接8个发光二极管从PC口读入8位开关量送PB...

8255A 并 行 口 实 验(一)目 的

并行口实验一目的1掌握8255A和微机接口方法2掌握8255A的工作方式和编程原理一实验原理如实验原理图58所示PC口8位接8个开关K1K8PB口8位接8个发光二极管从PC口读入8位开关量送PB口显示拨动K1K...

8255并行口实验实验报告

8255一实验目的并行口实验实验报告作者掌握8255A的编程原理二实验设备CPU挂箱8086CPU模块三实验内容8255A的A口作为输入口与逻辑电平开关相连8255A的B口作为输出口与发光二极管相连编写程序使得...

8255并口实验实验报告

实验报告实验名称并行接口实验8255姓名学号班级教师日期一实验内容与要求11实验内容8255方式0实验一从8255端口C输入数据再从端口A输出即TPCUSB平台按逻辑电平开关K0K7通过编程使端口C接收然后再通...

8255A并行口实验

实验四1OUTDXALINCDXOUTDXALMOVCX0800HLOOPNOTALJMPP11CODEENDSENDH18255A并行口实验PA输入PB输出一实验目的掌握8255A和微机接口方法掌握8255A...

8255A并行口实验

学号实习报告计算机应用综合实习硬件起止日期20xx年09月14日至20xx年09月21日学班成生姓名级绩指导教师签字电子与信息工程系20xx年9月20日一实习目的1利用微机接口芯片8255并行控制LED点阵显示...

8255A可编程并行接口实验二键盘实验 - 单片机原理及应用实验报告

计算机与信息工程学院设计性实验报告一实验目的1掌握8255A编程原理2了解键盘电路的工作原理3掌握键盘接口电路的编程方法二实验设备EL8051III型单片机实验箱三实验原理1识别键的闭合通常采用行扫描法和行反转...

8255A可编程并行口实验

428255A可编程并行口实验1实验目的1掌握并行接口芯片8255A和微机接日的连接方法2掌握并行接口芯片8255A的工作方式及其编程方法2实验内容l实验原理实验原理如图4I所示PC口8位接8个开关K1一K8P...

微机原理8255并行口实验

微机原理与汇编语言实验报告一实验名称8255并行口实验二实验目的掌握8255A的编程原理三实验设备MUT型实验箱8086CPU模块四实验内容1任务本实验用到两部分电路开关量输入输出电路和8255可编程并口电路8...

微机原理第三次实验实验3 8255A并行口实验(一)

实验38255A并行口实验一一实验目的1了解实验箱的组成及实验系统软件的使用2掌握8255A的工作方式编程原理和与微机的接口方法二实验内容用8255PA口控制PB口三实验接线图四编程指南8255A芯片简介825...

8255并行口实验

计算机与通信工程学院试验报告书课程名称微机原理及应用设计题目8255并行口实验实验类型授课老师实验日期20xx1125班级通信1102移动方向学号姓名成绩一实验目的1掌握掌握8255A的编程原理的编程原理及其工...

8255a并行口实验报告(27篇)