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

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

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

一、实验目的

通过对红绿黄灯的控制,熟练掌握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”。

五、流程图

N

两个路口红灯亮

延时

南北路口绿灯亮,东西路口红灯亮 有键按下?

延时 南北路口绿灯灭 两个路口黄灯闪烁 两个路口红灯亮 延时

显示提示信息 东西路口绿灯灭 读端口C 数据并保存 两个路口红灯亮

延时 设控制字为80H(端口C 均为输出)

东西路口绿灯亮,南北路口红灯亮 延时 两个路口黄闪烁 设控制字为81H(端口C 低四位为输入) 读/写 开始

六、实验程序

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”回车,即可看到按一定规律变化的红黄绿灯。

相关文档
最新文档