微机实验 可编程并行接口8255

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理实验报告

实验题目:可编程并行接口8255

一、实验目的

1、掌握8255的基本输入输出和PC端口位控的工作方式及应用编程。

2、掌握8255的典型应用电路接法。

二、实验知识回顾

8255控制字

1、控制方式

2、C端口置位复位控制字

三、实验内容

1、 8255流水灯显示,首先用逻辑电平开关预置一个数字,从A口读入,写入01H到C端口上,左移一次在进行输出,A口读入数据作为左移次数,这样循环下去,从而实现流水灯的显示。

2、用PC端口位控制法控制LED灯,依次点亮LED灯。

四、实验器材

微机原理实验箱1个

电脑(带TPC-USB软件)1台

插线若干

五、实现过程

1、8255流水灯显示

(1)流程图

(2)程序源代码

io8255a equ 2a0h ;8255A口地址

io8255b equ 2a1h ;8255B口地址

io8255c equ 2a2h ;8255C口地址

io8255mode equ 2a3h ;控制寄存器地址

stack1 segment stack

dw 256 dup(?)

stack1 ends

data segment

la db ? ;定义数据变量

lb db ?

data ends

code segment

assume cs:code,ds:data

start:mov ax,data ;程序由start处开始

mov ds,ax

mov dx,io8255mode ;定义8255的工作方式

mov al,90h ;方式0A口输入C口输出

out dx,al ;

mov dx,io8255a ;A口的地址存入dx

in al,dx ;从dx也就是A口读入数据

mov la,al ;读入的数据暂存在la变量

mov dx,io8255c ;C口的地址存入dx

mov al,01h ;将寄存器最低位置零

out dx,al ;置位后的值输入给dx,也就是C口

mov lb,al ;置位后的值暂存于变量lb

loop1:call delay

mov al,la ;将A口数据写入CX用以计数

mov ch,00h

mov cl,la

loop2:call delay

mov al,lb

rol al,1 ;在寄存器内进行位移操作

mov lb,al ;将操作后的结果重新写入变量al,为后面调用做准备mov dx,io8255c ;dx代表C口的地址

out dx,al ;将al中存储的值写入dx,即C口

mov ah,1 ;选择dos的模式为从键盘读取数据

int 16h ;进入中断

jnz quit ;ZF为0则跳到quit

dec cx ;计数器减一

jnz loop2 ;若cx!=0,跳到loop2

quit:mov ax,4c00h ;结束程序并退出int 21h

delay proc near ;延时子程序push cx

push ax

mov cx,01fh

d1: mov ax,0ffffh

d2: dec ax

jnz d2

loop d1

pop ax

pop cx

ret

delay endp

code ends

end start

2、位控设置C口输出点亮LED

(1)流程图

(2)程序源代码

io8255a equ 2a0h ;8255A口地址

io8255b equ 2a1h ;8255B口地址io8255c equ 2a2h ;8255C口地址io8255mode equ 2a3h ;控制寄存器地址stack1 segment stack

dw 256 dup(?)

stack1 ends

data segment

la db ? ;定义数据变量

lb db ?

data ends

code segment

assume cs:code,ds:data

start:mov ax,data ;程序由start处开始

mov ds,ax

mov dx,io8255mode ;定义8255的工作方式

mov al,00001111b ;位控设置C口最高位为1

out dx,al

mov cx,7 ;剩余未点亮灯数为7 loop1:call delay

dec al

dec al

out dx,al

dec cx

jnz loop1

delay proc near ;延时子程序

push cx

push ax

mov cx,01fh

d1: mov ax,0ffffh

d2: dec ax

jnz d2

loop d1

pop ax

pop cx

ret

delay endp

code ends

end start

(3)实验结果图

相关文档
最新文档