西北农林科技大学接口技术实习报告
-
姓名:李金阳
-
年级:计算机1801
-
学号:2018012964
实验一 8255并行接口实验
一、实习目的
- 了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。学会使用8255并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。
- 熟悉8255内部结构和与8086的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。
- 认真预习本节实验内容,尝试自行编写程序,填写实验报告。
二、实习内容
设电路接有4个开关和8个发光二极管(共阳极),开关端口地址为381H,发光管端口地址为382H,要求画出8088CPU(最小工作模式)下接口电路(译码电路用138译码器实现),并编写实现如下控制的控制程序:
- 开关K3K2K1K0=0000时,8个灯全灭
- 开关K3K2K1K0=0001时,8个灯从左向右依次点亮(1个灯)
- 开关K3K2K1K0=0010时,8个灯从右向左依次点亮(1个灯)
- 开关K3K2K1K0=0011时,8个灯闪烁显示
- 开关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