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

西北农林科技大学接口技术实习报告

实验一 8255并行接口实验

一、实习目的

  1. 了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。学会使用8255并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。
  2. 熟悉8255内部结构和与8086的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。
  3. 认真预习本节实验内容,尝试自行编写程序,填写实验报告。

二、实习内容

设电路接有4个开关和8个发光二极管(共阳极),开关端口地址为381H,发光管端口地址为382H,要求画出8088CPU(最小工作模式)下接口电路(译码电路用138译码器实现),并编写实现如下控制的控制程序:

  1. 开关K3K2K1K0=0000时,8个灯全灭
  2. 开关K3K2K1K0=0001时,8个灯从左向右​依次点亮(1个灯)
  3. 开关K3K2K1K0=0010时,8个灯从右向左依次点亮(1个灯)​
  4. 开关K3K2K1K0=0011时,8个灯闪烁显示​
  5. 开关K3K2K1K0=1111时,8个灯全亮​

三、实验电路连接

在这里插入图片描述
在这里插入图片描述

四、程序代码

实习代码如下

.model small
ComAdd	    EQU	 0273H
PaAdd		EQU	 0270H
PBAdd		EQU	 0271H
PCAdd		EQU	 0272H
.data
.stack 100H;栈段


.code
;初始程序
START:
      mov ax,@DATA
      mov ds,ax
      mov dx,ComAdd
      mov al,10000010B
      out dx,al
fun:
      call delay1
      mov dx,PBAdd
      in al,dx
      and al,0FH;取低位地址
      cmp al,0FH
      je LEDoff;八个灯全灭
      cmp al,01H
      je LEDLtoR;灯从左到右依次显示
      cmp al,02H
      je LEDRtoL;灯从右到左依次显示
      cmp al,03H
      je LEDbuling;八个灯交替显示
      cmp al,00H
      je LEDon;八个灯全亮
LEDoff:
    ;灯全liang
      mov dx,PaAdd
      mov al,0FFH
      out dx,al
      jmp fun
LEDon:
    ;灯全亮
      mov dx,PaAdd
      mov al,00H
      out dx,al
      jmp START
LEDLtoR:
      mov cx,8
      mov al,07FH
      mov dx,PaAdd
LtoR:
      out dx,al
      ror al,1
      call delay5
      loop LtoR
      jmp fun
LEDRtoL:
      mov cx,8
      mov al,0FEH
      mov dx,PaAdd
RtoL:
      out dx,al
      rol al,1
      call delay5
      loop RtoL
      jmp fun
LEDbuling:
      mov dx,PaAdd
      mov al,00H
      out dx,al
      call delay5
      mov al,0FFH
      out dx,al
      jmp fun
delay1  proc near
;延时程序,重复计时⏲12000;定义子程序的伪指令
      push cx
      mov cx,12000
delay101: 
      loop delay101;循环函数
      pop cx
      ret;return返回指令
delay1 endp
delay5 proc near
;延时程序,重复计时⏲12000次
      push cx
      mov cx,5
delay501: 
      call delay1
      pop cx
      ret
delay5 endp

END START

解释:

ComAdd EQU 0273H代表控制寄存器的端口地址0273H
PaAdd EQU 0270H代表8255a A端口的地址0270H
PBAdd EQU 0271H代表8255a B端口的地址0271H
PCAdd EQU 0272H代表8255a C端口的地址0272H

@DATA的意义是数据段的数据
ds为数据段寄存器,一般用于存放数据
mov al,10000010B代表将8255a的方式控制字传入AX寄存器

  • 8255A的工作方式控制字,设置工作方式0方式1方式2
  • B口4种方式,方式1有选通信号,方式0是无条件的输入输出方式(程序控制方式)没有选通信号

在这里插入图片描述

  • PC的高四位
    在这里插入图片描述

  • A口有三种工作方式
    在这里插入图片描述

  • 到底输入输出由D4来决定

在这里插入图片描述

  • D7固定1

在这里插入图片描述

在这里插入图片描述

out dx,al 把AL里的值传到DX里

实验过程

首先是实验电路板

在这里插入图片描述
在这里插入图片描述

  • 连接好相应的线后,比如pa连接到输出电灯泡,pb连接到输入开关

然后是软件

打开选择如下

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后就可以导入软件运行了

五、实验结果及分析

实物拍照

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我也是做了好久改了好多BUG

  • 16
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的算算

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值