一、实验目的:

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口输入

之后的代码中出现的80H与86H同理。

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端口为0010(1代表拨动的那个开关),则把0010给AL,后面通过把AL给8255A端口,控制灯。

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就代表灯D15和D0亮,后面分开控制BH、BL中1的移动,就可以控制灯的移动,比如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

8255 并行接口实验相关推荐

  1. 西北农林科技大学接口技术设计性实验一——8255并行接口实验

    西北农林科技大学接口技术实习报告 实验一 8255并行接口实验 一.实习目的 了解8255芯片的工作原理,熟悉其初始化编程方法以及输入.输出程序设计技巧.学会使用8255并行接口芯片实现各种控制功能, ...

  2. 微机接口实验一 :8255并行接口实验

    微机接口实验一 :8255并行接口实验 8255接口芯片非常重要的,使用非常简单,在以后的实验会经常使用到 1.1 实验内容 编写一个基本输入输出程序,使8255的A口为输入,B口为输出,完成拨动开关 ...

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

    实验6 8255并行接口实验[微机原理][实验] 前言 推荐 3.2 8255并行接口实验 3.2.1实验目的 3.2.2实验内容 3.2.3实验原理 3.2.4 实验说明及步骤 3.2.5实验提示 ...

  4. 实验一 8255并行接口实验

    上机实验 实验目的 实验内容 实验原理 实验步骤 实验代码 关于代码的解释: 扩展实验一 实验题目 实验代码 关键代码段解读 扩展实验二 实验题目 实验代码 关键代码解读 扩展实验三 实验题目 实验代 ...

  5. 微型计算机原理8255并行接口实验,微机原理实验二 8255A并行接口应用.pdf

    微机原理实验二 8255A并行接口应用 实验二 8255A 并行接口应用 一.实验目的 1.掌握8255A 的功能及方式0.1 的实现 2 .熟悉8255A 与CPU 的接口,以及传输数据的工作原理及 ...

  6. 汇编语言--8255并行接口实验

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

  7. 8255并行接口实验

    实验目的: 1.学习并掌握8255的工作方式及其应用. 2.掌握8255典型应用电路的接法. 二.实验环境: PC机一台,TD-PITD实验装置一套. 三.实验内容: 基本输入输出实验.编写程序,使8 ...

  8. 计算机接口并行实验,8255可编程并行接口实验实验报告

    <8255可编程并行接口实验实验报告>由会员分享,可在线阅读,更多相关<8255可编程并行接口实验实验报告(6页珍藏版)>请在人人文库网上搜索. 1.微机原理实验报告实验名称8 ...

  9. 8255总线实验 编写程序利用8255扩展单片机的IO口,控制8位数码管显示1-8。

    8255总线实验 编写程序利用8255扩展单片机的IO口,控制8位数码管显示1-8. 程序: #include<reg51.h> #include<absacc.h> #def ...

最新文章

  1. 2022年美国大学生数学建模竞赛——Problem A:自行车手的功率剖面
  2. Mockito的使用(一)——@InjectMocks、@Spy、@Mock
  3. Spring Boot开发MongoDB应用实践
  4. 【ArcGIS遇上Python】ArcGIS10.6 python批量将栅格中的特定值替换Setnull为NoData
  5. 撑起百万亿参数模型想象力!英伟达发布新一代SuperPOD超算,AI算力新巅峰!
  6. conda创建环境及激活环境失败问题
  7. Nginx默认虚拟主机、 Nginx用户认证、Nginx域名重定向、访问日志·····
  8. python学习day35 并发编程 操作系统 进程概念
  9. SpringBoot系列(9):SpringBoot配置文件详解
  10. 图像匹配之不变矩匹配法
  11. tomcat下面的starup.bat的作用
  12. CISCO常用配置命令
  13. 华为手机像素密度排行_「屏幕像素密度」(全解析)屏幕尺寸,分辨率,像素,PPI之间到底什么关系? - seo实验室...
  14. 涨握在线|欧或重启QE;英市港市合并!
  15. node重绘图片_使用nodejs生成图片的尝试
  16. Net分布式系统之七:日志采集系统(1)
  17. 2008年度最佳开源软件大奖
  18. Quartus II工具1——signaltap
  19. pwn题堆利用的一些姿势 -- IO_FILE
  20. 我为女友做了一款App

热门文章

  1. rxjava2下载地址
  2. 让Enter键实现Tab键的功能
  3. Windows 下安装 Xdebug 受难记之(3)
  4. CS5518设计MIPI转LVDS转换方案/MIPI转LVDS方案芯片
  5. linux的nslookup命令,Linux nslookup命令
  6. 新世纪的群众性幻想与癫狂
  7. 《中国移动交通强国建设试点实施方案》获批!
  8. flac格式如何转mp3,3招帮你搞定
  9. Java实现上传(支持多个文件同时上传)和下载
  10. 指针 习题11-1 输出月份英文名