十字路口红绿灯闪烁实
课程名称:
实验项目:
实验地点:
专业班级:
学生姓名:
指导教师: 本科实验报告 微机原理及接口技术 十字路口红绿灯闪烁实验 学号:
年 日
月
实验三、十字路口红绿灯闪烁实验 一实验目的
通过对红、绿、黄灯的控制,熟练掌握8255A接口芯片的编程方法。
二、实验内容
对8255A接口芯片进行编程使红、绿、黄发光二极管按照十字路口交通灯的形式点亮或熄灭。
三、线路连接
发光二极管共8个,其中两组绿黄红灯共6个,L2、L3、L4为一组,L5、L6、L7为一组;试验台连接如图所示。高电平为“1”时,点亮。如图2所示。
四、编程提示
(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
MOV AL,30H
OUT DX,AL
CALL DELAY10
LLL: MOV DX,IO8255C
MOV AL,12H
OUT DX,AL
CALL DELAY10
CALL DELAY10
CALL
CALL
MOV
OUT
MOV
TTT: MOV
OUT
PUSH
MOV
LOP1: CALL
LOOP
MOV
OUT
MOV
LOP2: CALL
LOOP
POP
LOOP
MOV
OUT
CALL
MOV
OUT
CALL
CALL
CALL
CALL
MOV
OUT
MOV
GGG: MOV
OUT
PUSH
MOV
LOP3: CALL
LOOP DELAY10 DELAY10 AL,10H DX,AL CX,0040H AL,0CH DX,AL CX CX,80H DELAY1 LOP1 AL,00H DX,AL CX,80H DELAY1 LOP2 CX TTT AL,30H DX,AL DELAY10 AL,21H DX,AL DELAY10 DELAY10 DELAY10 DELAY10 AL,20H DX,AL CX,0040H AL,0CH DX,AL CX CX,80H DELAY1 LOP3
MOV CX,80H
LOP4: CALL DELAY1
LOOP LOP4
POP CX
LOOP GGG
MOV AL,30H
OUT DX,AL
CALL DELAY10
PPP:
DELAY1
CCC:
DELAY1
DELAY10
UUU:
DELAY10
CODE
MOV AH,06H MOV DL,0FFH INT 21H JNZ PPP JMP LLL MOV AX,4C00H INT 21H PROC NEAR PUSH CX MOV CX,0FFFFH LOOP CCC POP CX RET ENDP PROC NEAR PUSH AX PUSH CX MOV CX,0F00H CALL DELAY1 LOOP UUU POP CX POP AX RET ENDP ENDS END START
六、实验结果
七、
七、思考题
程序中红、绿、黄灯点亮和熄灭的延时时间是如何设定的?
答:程序中红、绿、黄灯点亮和熄灭的延时时间通过用延时子程序CALL DELAY 10的次数来设定。
八、实验感想
本次实验的目的是:通过对红、绿、黄灯的控制,熟练掌握8255A接口芯片的编程方法。通过本次试验,进一步了解了可编程并行接口8255A的基本知识点。了解了该芯片的性能及有关的应用。通过本次实验学习,对于可编程接口芯片有了更深的认识掌握了基本的微机接口方法,同时也提高了自身的动手能力。