8255LED流水灯控制

更新时间:2023-11-26 15:27:02 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验四 8255 LED流水灯控制实验

一、实验目的

1、认识8255接口芯片、学习其在微机系统中的应用; 2、学习8255编程原理;

3、掌握LED流水灯汇编语言编程方法。 二、实验仪器

1、DJ-598KC开发系统 1台 2、PC机 1台 三、实验内容

1、8086实验箱主系统电路组成

★该流水灯系统采用8255芯片扩展连接“LED灯” 模块 。

★实验仪上包括12只发光二极管及相应驱动电路,见下图所示。发光二极 管控制信号输入端L1-L12,当输入端为低电平“0”时发光二极管亮,否则灭。

2、8255编程要点指南

8255是一个通用的可编程的并行接口芯片,它提供有三个I/O口,每个口都可以通过编程设置为多种工作方式,在中小系统中应用广泛,其组成结构如下图。

★三个I/O口,分别是PA口、PB口和PC口。每个口提供八根数据线,如PA口线(PA0~PA7),用于连接外设。

★DB、CB和AB总线用于连接CPU三总线,DB用于接收来自CPU的控制命令字或数据,CB用于选择对8255数据口读或写操作,AB用于选择对哪个口读写操作。

★A组和B组控制电路用于编程控制PA口、PB口和PC口的工作方式选择。见下图控制命令字格式。

若采用A口的方式0来控制LED灯,则控制字为1000 0000B = 80H 。

★编程控制方法

a.设置控制命令字,使A口工作在方式0下——向控制口写控制命令字。 b.输出要点亮的LED数据——向A口写点亮数据。

c.8255基地址为0FF28H,则A口地址0FF28H,B口地址0FF29H,C口地址0FF2AH,控制口地址0FF2BH。

3. 实验系统搭建与使用

a.键盘显示器设置:JK开关置“系统”处,进入监控状态。

b.通讯选择设置:KB6开关置“88”处,并将随机配送的串行通讯线,一端与实验仪的RS232D型插座CZ1相连,另一端与PC机COM1或COM2串行口相连。

c.电路连接:将8255A芯片A口的PA0-PA7依次接Ll-L8,B口的PB0-PB3依次接L9-L12。

d.接通实验仪电源,+5V LED指示灯正常发光,实验仪数码管显示闪动P.,说明实验仪初始化成功,处于待命状态。(否则应及时关闭电源,待修正常后使用)

e.打开PC机电源,执行DJ8086K的集成调试软件,关于该软件的详细说明请参阅《DJ-8086K实验系统与PC机联机操作》。

4.LED流水灯程序设计

1)、实验要求

要求利用L1~L12灯实现LED流水灯。 2)实验分析

通过不断的延时点亮下一个LED灯。需要延时函数。

3)实验程序清单

① 控制LED1→LED8轮流点亮。

CODE SEGMENT ASSUME CS:CODE IOAPT EQU 0FF28H IOBPT EQU 0FF29H IOCPT EQU 0FF2AH IOCONPT EQU 0FF2BH ORG 1000H START: CLC

MOV AL,80H

MOV DX,IOCONPT

OUT DX,AL ;设置控制字80H

MOV AL,0FEH MOV DX,IOAPT

NEXT: OUT DX,AL ;点亮L1 CALL DELAY1

ROL AL,01H ;循环左移 JMP NEXT

DELAY1: PUSH AX ;延时程序 PUSH CX

MOV CX,0030H

DELY2: CALL DELAY2 LOOP DELY2

POP CX POP AX

RET

DELAY2: PUSH CX

MOV CX,500H DELA1: LOOP DELA1

POP CX RET CODE ENDS END START

② 修改程序控制LED1→LED12轮流点亮。

提示:a.将指令MOV AL,0FEH改为MOV AX,0FFFEH b.将指令OUT DX,AL 改为OUT DX,AX C. 将指令ROL AL,01H 改为ROL AX,01H 四、实验报告要求

根据“LED流水灯程序设计”内容,修改程序,择其一实现其他I/O口控制、反向流水、间隔流水等效果。要求报告上有程序代码、操作方法和运算结果。

本文来源:https://www.bwwdw.com/article/snlt.html

Top