其他分享
首页 > 其他分享> > 西北农林科技大学接口技术设计性实验一——8255并行接口实验

西北农林科技大学接口技术设计性实验一——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寄存器

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

实验过程

首先是实验电路板

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

然后是软件

打开选择如下

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

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

五、实验结果及分析

实物拍照

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

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

标签:8255,接口技术,EQU,al,mov,cx,实验,dx,out
来源: https://blog.csdn.net/weixin_44029810/article/details/110428142