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

并行接口单元由一片 8255 8255 8255 组成,其复位信号已连接到系统复位上,如下图所示。

上机实验

实验目的

  1. 学习利用并行接口芯片 8255 8255 8255 构成并行接口电路的基本方法;
  2. 熟悉掌握并行接口芯片 8255 8255 8255 的基本性能、硬件连接和初始化编程方法。

实验内容

编写一个基本输入输出程序,使 8255 8255 8255 的 A A A 口为输入, B B B 口为输出,完成拨动开关到数据灯的数据传输。

要求:数据灯的显示随开关动态改变。

实验原理

8255 8255 8255 可编程外围接口芯片是 I n t e l Intel Intel 公司生产的通用并行 I / O I/O I/O 接口芯片,它具有 A A A、 B B B、 C C C 三个并行接口,用 + 5 V +5V +5V 单电源供电,能在以下三种方式下工作:

  • 方式 0 0 0 – 基本输入/输出方式
  • 方式 1 1 1 – 选通输入/输出方式
  • 方式 2 2 2 – 双向选通工作方式

8255 8255 8255 的内部结构及引脚如图 3-1-1 所示, 8255 8255 8255 工作方式控制字和 C C C 口按位置位/复位控制字格式如图 3-1-2 和图 3-1-3 所示。




实验步骤

(1)关闭实验箱电源。
(2)实验接线如图3-1-4 所示,按图连接实验线路。
(3)编写实验程序,经编译、链接无误后装入系统。
(4)运行程序,拨动开关,同时观察 L E D LED LED 显示,验证程序功能。

实验代码

;8255并行接口实验----总结四句话
;1. 送控制口方式字
;2. A口输入
;3. B口输出
;4. 注意输入输出中间加延迟PORTA EQU 0640H ;input ,为什么是0640H,见代码解释2
PORTB EQU 0642H ;output
CONTROL EQU 0646HCODE SEGMENT
ASSUME CS:CODESTART:  MOV AL,090H  ;方式字,见代码解释1MOV DX,CONTROL ;找到8255控制口的地址OUT DX,AL  ;方式字送控制口
P:          MOV DX,PORTA ;找到8255的输入口A口IN AL,DX ;读入A口信号;调用子程序 起延时作用;因为一个脉冲很短,但是灯的亮与不亮有时间间隔,需要延迟时间  !!!!CALL DELAYMOV DX,PORTB ;找到8255的输出口B口OUT DX,AL ;送给B口信号让D0-D7控制数据灯的亮灭JMP PDELAY:  PUSH CXMOV CX, 0F00H
AA2:    PUSH AXPOP  AXLOOP AA2POP  CXRETCODE ENDS
END START

关于代码的解释:

  1. 由题目,基本输入输出程序,就是选择 8255 8255 8255 的方式 0 0 0, 8255 8255 8255 的 A A A 口为输入, B B B 口为输出,因此方式字是 10000000 B 10000000B 10000000B 即 90 H 90H 90H
    拨动开关控制数据灯的显示,这里说明我们 读进来的是开关信号,输出到数据灯进行显示。所以 8255 8255 8255 的 A A A 口 P A 0 − P A 7 PA0-PA7 PA0−PA7 连接开关及 L E D LED LED 显示单元的 K 0 − K 7 K0-K7 K0−K7 , 8255 8255 8255 的 B B B 口 P B 0 − P B 7 PB0-PB7 PB0−PB7 连接 D 0 − D 7 D0-D7 D0−D7 ,如下图所示:


2. 由表3-1-1已经知道, 8255 8255 8255 实验控制端口地址,但是为什么端口地址是这个呢? 这与 C S CS CS 片选地址连接的 I O Y IOY IOY 有关

  • C S CS CS 连接 I O Y 0 IOY0 IOY0 ,那么地址从 0600 H 0600H 0600H 开始, P A PA PA 口端口地址是 0600 H 0600H 0600H, P B PB PB 口端口地址是 0602 H 0602H 0602H, P C PC PC 口端口地址是 0604 H 0604H 0604H, C O N T R O L CONTROL CONTROL 控制口的端口地址是 0606 H 0606H 0606H。
  • C S CS CS 连接 I O Y 1 IOY1 IOY1,那么地址从 0640 H 0640H 0640H 开始到 0646 H 0646H 0646H,就是本实验中所采用的。
  • C S CS CS 连接 I O Y 2 IOY2 IOY2 ,那么地址从 0680 H 0680H 0680H 开始到 0686 H 0686H 0686H。

根据下图中 系统总线的 I O Y 1 IOY1 IOY1 和 8255 8255 8255 单元的 C S CS CS 接线可知, P A PA PA 口端口地址为 0640 H 0640H 0640H, P B PB PB 口端口地址为 0642 H 0642H 0642H, C O N T R O L CONTROL CONTROL 控制口端口地址为 0606 H 0606H 0606H


3. 8255 8255 8255 的 初始化,如下:

  • 方式字送控制口,程序段:
 MOV AL,090H  ;方式字MOV DX,CONTROL ;找到8255控制口的地址OUT DX,AL  ;方式字送控制口
  • 输入输出口,程序段:
 MOV DX,PORTA ;找到8255的输入口A口IN AL,DX ;读入A口信号CALL DELAYMOV DX,PORTB ;找到8255的输出口B口OUT DX,AL ;送给B口信号让D0-D7控制数据灯的亮灭
  1. 出入是对于接口而言,比如 IN从接口进来,方向是从接口 P O R T A PORTA PORTA 到内部的寄存器 A L AL AL 。汇编中 IN 语句的数据传送方向是从右到左,即 D X DX DX 传送到 A L AL AL。
 MOV DX,PORTA ;找到8255的输入口A口IN AL,DX ;读入A口信号

OUT从接口出去,方向是从内部的寄存器 A L AL AL 到外部接口 P O R T B PORTB PORTB。汇编中 OUT 语句的数据传送方向也是从右到左,即 A L AL AL 传送到 D X DX DX。

 MOV DX,PORTB ;找到8255的输出口B口OUT DX,AL ;送给B口信号让D0-D7控制数据灯的亮灭
  1. 注意这里,如果端口地址是 8 b i t 8bit 8bit,可以直接输出到这个端口地址而不用先把端口地址送到 D X DX DX,但是 如果端口地址是 16 b i t 16bit 16bit,如本实验中 8255 8255 8255 的端口地址均为 16 b i t 16bit 16bit,那么必须先把端口地址送到 D X DX DX,再进行 INOUT 操作

下面举例一个 8 b i t 8bit 8bit 端口地址 60 H 60H 60H,

 MOV AL,80H ;1000 0000B,是LED7亮,其他灯灭OUT 60H,AL ;A口地址为60H,且为输出口,把控制灯亮灭的信号送A口输出

本实验中,读开关信号,控制数据灯亮灭,所以 A A A 口连接的开关信号 K 0 − K 7 K0-K7 K0−K7 就是输入口, B B B 口连接的数据灯亮灭的 D 0 − D 7 D0-D7 D0−D7 就是输出口,假如 A A A 口读进来的开关信号全是高电平 11111111 B 1111 1111B 11111111B,即开关全打开,那么数据灯就全亮

扩展实验一

实验题目

在基础实验上增加如下功能:
若开关 K 7 K7 K7~ K 0 K0 K0 均为高电平,则程序退出。

实验代码

PORTA EQU 0640H ;input
PORTB EQU 0642H ;output
CONTROL EQU 0646HCODE SEGMENT 'CODE'ASSUME CS:CODE
START:  MOV AL,90H ;方式字,A口输入B口输出MOV DX,CONTROLOUT DX,AL  ;初始化8255控制字BEGIN:   MOV DX,0640H ;A口输入开关信号IN AL,DXMOV DX,0642H ;B口输出数据灯亮灭信号OUT DX,ALCMP AL,0FFH ;1111 1111B ,K7-K0均为高电平,比较AL和0FFH相等时跳转到EXITJZ  EXITJMP BEGINEXIT:   MOV AL,00H  ;关所有灯MOV DX,0642HOUT DX,ALMOV AH,4CHINT 21HCODE ENDS
END START

关键代码段解读

 CMP AL,0FFH ;1111 1111B ,K7-K0均为高电平,比较AL和0FFH相等时跳转到EXITJZ  EXITJMP BEGIN
  • 这里展示了如何用汇编语言表示 if-else,通过 CMP 语句对 A L AL AL 和 0 F F H 0FFH 0FFH 进行比较,这条语句不会改变 A L AL AL 的值,但是把 A L AL AL 和 0 F F H 0FFH 0FFH 相减(比较是用相减结果是否为零来看是否相同的),如果结果为 0 0 0 会影响标志位 Z F = 1 ZF=1 ZF=1( Z F ZF ZF 是零标志位, Z F ZF ZF 的值为 1 1 1 时代表结果全零,反之不全为 0 0 0)。
  • JZ 则是 Z F = 1 ZF=1 ZF=1 时跳转,这里即 CMP 比较的两者相等时跳转到其后的 EXIT,否则继续 BEGIN 循环。因为 CMP 比较结果会影响标志位 Z F ZF ZF,比较的两者相等时, Z F = 1 ZF = 1 ZF=1,JZ 跳转。

扩展实验二

实验题目

编写程序实现如下功能:
当 K 0 K0 K0 为高电平时,数据灯高 4 4 4 位亮;
当 K 0 K0 K0 为低电平时,数据灯低 4 4 4 位亮。

实验代码

PORTA EQU 0640H ;input
PORTB EQU 0642H ;output
CONTROL EQU 0646HCODE SEGMENT 'CODE'ASSUME CS:CODESTART:  MOV AL,90H ;方式字,A口输入B口输出MOV DX,CONTROLOUT DX,AL  ;初始化8255控制字HIGH:    MOV DX,0640HIN AL,DXAND AL,00000001B    ;只保留K0其他位归零CMP AL,00H   ;K0为0时跳转到LOW 让低4位数据灯亮JZ LOWMOV AL,0F0H   ;K0为1时让高4位数据灯亮MOV DX,0642HOUT DX,ALJMP HIGHLOW:    MOV AL,0FH  ;K0为低电平,数据灯低4位亮MOV DX,0642HOUT DX,ALJMP HIGHMOV AH,4CHINT 21HCODE ENDS
END START

关键代码解读

 AND AL,00000001B    ;只保留K0其他位归零CMP AL,00H   ;K0为0时跳转到LOW 让低4位数据灯亮JZ LOW
  • 这里只需要保留 K 0 K0 K0 位即可,由 K 0 K0 K0 位的值来控制数据灯的亮灭,因此让读进来的 A L AL AL 与 01 H 01H 01H 相与即可得到 K 0 K0 K0 的值。
  • CMP 比较 A L AL AL 和 00 H 00H 00H,如果相等,说明 K 0 K0 K0 是 0 0 0,否则 K 0 K0 K0 是 1 1 1。
  • 再根据 K 0 K0 K0 高电平时点亮数据灯高 4 4 4 位,就送 B B B 口 0 F 0 H 0F0H 0F0H 信号; K 0 K0 K0 低电平时点亮数据灯低 4 4 4 位,就送 B B B 口 0 F H 0FH 0FH 信号。

扩展实验三

实验题目

编写程序实现如下功能:
当 K 1 K 0 = 00 K1K0=00 K1K0=00 时,数据灯全部熄灭;当 K 1 K 0 = 01 K1K0=01 K1K0=01 时,数据灯低 4 4 4 位亮;
当 K 1 K 0 = 10 K1K0=10 K1K0=10 时,数据灯高 4 4 4 位亮;当 K 1 K 0 = 11 K1K0=11 K1K0=11 时,数据灯全亮。

实验代码

PORTA EQU 0640H ;input
PORTB EQU 0642H ;output
CONTROL EQU 0646HCODE SEGMENT 'CODE'ASSUME CS:CODESTART:  MOV AL,90H  ;方式字,A口输入B口输出MOV DX,CONTROLOUT DX,AL  ;初始化8255控制字A:  MOV DX,PORTAIN AL,DXAND AL,03H  ;只保留K1K0其他位归零CMP AL,00H ;K1K0为00时跳转 JZ A00CMP AL,01H    ;K1K0为01时跳转  JZ A01CMP AL,02H   ;K1K0为10时跳转  JZ A10CMP AL,03H   ;K1K0为11时跳转  JZ A11A00:MOV AL,00H   ;全熄灭MOV DX,PORTBOUT DX,ALJMP A
A01:    MOV AL,0FH  ;低四位亮MOV DX,PORTBOUT DX,ALJMP A
A10:    MOV AL,0F0H ;高四位亮MOV DX,PORTBOUT DX,ALJMP A
A11:    MOV AL,0FFH ;全亮MOV DX,PORTBOUT DX,ALJMP AB: MOV AL,0FHMOV DX,PORTBOUT DX,ALJMP AMOV AH,4CHINT 21HCODE ENDS
END START

关键代码解读

 AND AL,03H  ;只保留K1K0其他位归零CMP AL,00H ;K1K0为00时跳转 JZ A00CMP AL,01H    ;K1K0为01时跳转  JZ A01CMP AL,02H   ;K1K0为10时跳转  JZ A10CMP AL,03H   ;K1K0为11时跳转  JZ A11
  • 这里只需要保留 K 1 K 0 K1K0 K1K0 位即可,由 K 1 K 0 K1K0 K1K0 位的值来控制数据灯的亮灭,因此让读进来的 A L AL AL 与 03 H 03H 03H 相与即可得到 K 1 K 0 K1K0 K1K0 的值。
  • CMP 分别比较 A L AL AL 和 00 H 00H 00H, 01 H 01H 01H, 02 H 02H 02H, 03 H 03H 03H,如果相等,就跳转到各自的部分去执行,送 B B B 口相应信号点亮相应的数据灯。

实验一 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并行接口实验,微机原理实验二 8255A并行接口应用.pdf

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

  5. 8255 并行接口实验

    一.实验目的: 1.掌握8255A的工作方式使用以及编程. 2.利用8255A完成将数码开关的输入送给发光二极管并显示 二.实验内容与要求: 1.基本输入输出实验.编写程序,使8255的A口为输出,B ...

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

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

  7. 8255并行接口实验

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

  8. 微机实验2 ——简单并行接口实验

    目录 实验要求 实验代码 字符转ASCII码的实验 ASCII码转字符的实验 实验连线 字符转ASCII码的实验 ASCII码转字符的实验 实验现象 字符转ASCII码的实验 ASCII码转字符的实验 ...

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

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

最新文章

  1. apache2.4.6支不支持jsp_Spring Boot中文参考指南(2.1.6)50、Kotlin 支持
  2. (chap4 IP协议) 全局地址和私有地址
  3. C/C++遍历Windows文件夹下的所有文件
  4. c语言递归汉诺塔次数,c语言递归解决汉诺塔参数变化的疑惑
  5. 10款翻译引擎全面对比,别再无脑吹DeepL了,根本不好用!
  6. 数据库系统原理与设计(第3版)第二章课后习题
  7. 事业心是成功的“动力源”
  8. oracle独占锁表禁止查询,oracle 锁表查询及解决、表字段查询
  9. 运行HQL时,报错:Container killed by YARN for exceeding memory limits
  10. java的栈区 堆区存放什么_简单整理java中的栈内存, 堆内存是什么?
  11. OSChina 周日乱弹 —— 局长:怕你不爱我
  12. Unity3D 对于在VR中普通摄像头和VR摄像头同时存在——分屏
  13. 小米note2鸿蒙ROM,小米最新刷机包rom下载_奇兔rom市场
  14. 【小5聊】腾讯位置服务之小程序简单使用以及显示附近WC步行路线
  15. 每周一品 · 扬声器(喇叭)中的磁性材料
  16. 华师计算机设计大赛,广东省首届高校大学生计算机设计大赛在华师举行
  17. 200行JS代码为你的网页挂上红灯笼
  18. PowerManager屏幕休眠断网与距离感应器P-Sensor
  19. 行车助理(江西省) 下载
  20. android:scaleType 属性介绍

热门文章

  1. [CCFwithAxin]201709-2公共钥匙盒
  2. 图像采集卡的选择和主要参数
  3. html星星坠落效果,抖音星球坠落特效怎么弄 摘下星星送给你
  4. YL-56声音检测模块
  5. win10下idea的ctrl+shit+f和F8快捷键失效解决办法
  6. 《RabbitMQ实战指南》读书笔记
  7. total command关闭按钮如何修改为最小化
  8. 简易售货机JAVA sql_JAVA基础---简易自动售货机
  9. 盛世昊通联手民族品牌CaldiceKris,创造价值互联
  10. 盛世昊通微达国际联合出品《天下无拐》,还孩子们一片蓝天