微机原理十字路口红绿灯闪烁实验

时间:2025-07-11

实验三 十字路口红绿灯闪烁实验

一、 实验目的

通过对红绿黄灯的控制,熟练掌握8255A接口芯片的编程方法

二、 实验内容

对8255A接口芯片进行编程,使红黄绿发光二级管按照十字路口交通灯的形式点亮或者熄灭。

三、 线路连接

发光二级管共8个,其中两组红黄绿灯用六个,L2、L3、L4为一组,L5、L6、L7、为一组;试验台连接如图所示。高电平时,灯点亮。

四、 编程提示

1、 红、黄、绿灯变化规律

设有一个十字路口,两组灯分别代表东西和南北两个方向,其红黄绿灯变化规律为:

(1)两个路口红灯全亮

(2)南北路口绿灯亮,东西路口红灯亮

(3)南北路口绿灯灭,东西路口红灯亮

(4)两个路口黄灯闪烁

(5)两个路口红灯全亮

(6)东西路口绿灯亮,南北路口红灯亮

(7)东西路口绿灯灭,南北路口红灯亮

(8)两个路口黄灯闪烁

(9)转向(2)循环执行

2. 设置8255A方式控制字

设置8255A的端口C工作在方式0,为输出。D0、D1控制绿灯,D2、D3控制黄灯,D4、D5控制红灯。需要点亮哪一位指示灯时,8255A相应端口对应为就输出“1”。

五、流程图

六、实验程序

DATA SEGMENT

IOPORT EQU 0D880H-280H

IO8255C EQU IOPORT+282H

IO8255T EQU IOPORT+283H

PB DB ?

MESS DB 'ENTER ANY KEY CAN EXIT TO DOS!',0DH,0AH,'$' DATA ENDS

STACK SEGMENT STACK

STA DW 50 DUP(?)

TOP EQU LENGTH STA

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK

START: MOV AX,DATA

MOV DS,AX

MOV ES,AX

MOV AH,09H

MOV DX,OFFSET MESS

INT 21H

MOV DX,IO8255T

MOV AL,81H

OUT DX,AL

MOV DX,IO8255C

IN AL,DX

MOV PB,AL

MOV DX,IO8255T

MOV AL,80H

OUT DX,AL

MOV DX,IO8255C

MOV AL,PB

OR AL,0CH

OUT DX,AL

MOV AL,30H

OUT DX,AL

CALL DELAY10

LLL: MOV DX,IO8255C

MOV AL,12H

OUT DX,AL

CALL DELAY10

CALL DELAY10

CALL DELAY10

CALL DELAY10

OUT DX,AL

MOV CX,0040H

TTT: MOV AL,0CH

OUT DX,AL

PUSH CX

MOV CX,80H

LOP1: CALL DELAY1

LOOP LOP1

MOV AL,00H

OUT DX,AL

MOV CX,80H

LOP2: CALL DELAY1

LOOP LOP2

POP CX

LOOP TTT

MOV AL,30H

OUT DX,AL

CALL DELAY10

MOV AL,21H

OUT DX,AL

CALL DELAY10

CALL DELAY10

CALL DELAY10

CALL DELAY10

MOV AL,20H

OUT DX,AL

MOV CX,0040H

GGG: MOV AL,0CH

OUT DX,AL

PUSH CX

MOV CX,80H

LOP3: CALL DELAY1

LOOP LOP3

MOV AL,00H

OUT DX,AL

MOV CX,80H

LOP4: CALL DELAY1

LOOP LOP4

POP CX

LOOP GGG

MOV AL,30H

OUT DX,AL

CALL DELAY10

MOV DL,0FFH

INT 21H

JNZ PPP

JMP LLL

PPP: MOV AX,4C00H

INT 21H

DELAY1 PROC NEAR

PUSH CX

MOV CX,0FFFFH

CCC: LOOP CCC

POP CX

RET

DELAY1 ENDP

DELAY10 PROC NEAR

PUSH AX

PUSH CX

MOV CX,0F00H

UUU: CALL DELAY1

LOOP UUU

POP CX

POP AX

RET

DELAY10 ENDP

CODE ENDS

END START

七、实验步骤

1、在windows环境下,打开“开始”菜单,选择“运行”项,然后输入”CMD”,按“确定”进去DOS环境。

2、输入“E:”回车,输入“CD MASM”回车。

3、输入“EDIT ZF1.ASM”回车,进入编辑状态,将以上源程序写入,完成后,如下图,按“Alt+F”打开文件菜单,选“Save”存盘,选“Exit”退出编辑状态。

4、对原程序进行汇编连接,输入“ML ZF1.ASM”回车

5、打开扩展卡I/O端口地址,用ALLOWIO命令打开I/O端口地址: 输入“RUN”回车。

6、按实验电路图1接好线,给实验箱通电。

输入“NT”回车,即可看到按一定规律变化的红黄绿灯。

八、思考题

程序中红.绿.黄灯点亮和熄灭的延时时间是如何设定的?

答:通过CALL指令调用子程序DELAY10,DELAY10的功能是通过执行循环执行压入堆栈和弹出堆栈来实现延时,改变循环次数即CX的设定值即可改变延时时间。

…… 此处隐藏:290字,全部文档内容请下载后查看。喜欢就下载吧 ……
微机原理十字路口红绿灯闪烁实验.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219