目录
- 一、实验目的
- 二、实验内容
- 三、实验报告
- 四、运行结果
一、实验目的
通过实验,掌握8255工作方式的设定及并行口输入输出的方法。
二、实验内容
电路连接:
C口(PC0~PC7)⟺⟺逻辑电平开关(K0~K7)
PC0⟺K0
PC1⟺K1
PC2⟺K2
PC3⟺K3
PC4⟺K4
PC5⟺K5
PC6⟺K6
PC7⟺K7
A口(PA0~PA7)⟺⟺LED显示(L0~L7)
PA0⟺L0
PA1⟺L1
PA2⟺L2
PA3⟺L3
PA4⟺L4
PA5⟺L5
PA6⟺L6
PA7⟺L7
8255/CS⟺⟺IO译码(288H-28FH)
编写程序,将C口开关的状态从A口输出,反映到发光管上。
已知,开关K0-K7打到上面输出1,打到下面输出0;
发光管L0-L7引脚上输入1则亮,0则灭。
所以可以推得,开关K0打到上面,对应的L0的发光二极管应该点亮。
操作步骤:把开关推上去,在K0-K7引脚上会收到对应的高电平,那么我们把高电平信号读到C口,然后将数据送到A口输出,那这个高电平就送到了对应的发光二极管的驱动端,这个发光二极管就可以点亮了。
有了片选端口的地址,在设计内部,把8255的A1和A0的引脚分别和CPU的A1、A0相连
A1 A0取00的时候就会选择8255的A口
取01的时候就会选择8255的B口
取10的时候就会选择8255的C口
取11的时候就会选择8255的控制口
A1 A0就构成了我们的低位地址线,再加上片选的高位地址线就得到8255的端口地址。
8255的端口地址:
A口为 288H
C口为28AH
控制口为28BH。
可以定义为符号名:
a8255 equ 288H ;8255 A口 1000
c8255 equ 28aH ;8255 C口 1010
k8255 equ 28bH ;8255控制口 1011
三、实验报告
①写出8255的控制字,并解释该实验中控制字设置的意义。
本题:
②画出程序流程图
③写出程序并适当加注释。
a8255 equ 288H ;8255 A口
c8255 equ 28aH ;8255 C口
k8255 equ 28bH ;8255 控制口
code segment
assume cs:code
start:
mov dx,28bh ;c口输入,a口输出
mov al,89h ;1000 1001b根据8255A的方式选择控制字
out dx,al
inout:
mov dx,c8255 ;从c口输入一数据
in al,dx
mov dx,a8255 ;从a口输出刚才来自c口的数据
out dx,al ;所输入的数据
mov dl,offh ;判断开关是否是按下
mov ah,06h ;dos中断服务功能号06h
int 21h
jz inout ;若无则继续来自c的输入,a输出(zf=1,转移)
mov ah,4ch ;否则返回
int 21h
end start
code ends
a8255 equ 288H ;8255 A口
c8255 equ 28aH ;8255 C口
k8255 equ 28bH ;8255 控制口
code segment
assume cs:code
start:
mov dx,28bh ;c口输入,a口输出
mov al,89h ;1000 1001b根据8255A的方式选择控制字
out dx,al
inout:
mov dx,c8255 ;从c口输入一数据
in al,dx
mov dx,a8255 ;从a口输出刚才来自c口的数据
out dx,al ;所输入的数据
jmp inout
end start
code ends
四、运行结果
运行程序,拨动开关,相应的二极管被点亮。