【实验目的与要求】
通过并行接口8255 实现十字路口交通灯的模拟控制,掌握对并行口的使用。
【实验设备】
原理实验箱
【实验步骤】
如图,L7、L6、L5 作为南北路口的交通灯与PC7、PC6、PC5 相连,L2、L1、L0 作为东西路口的交通灯与PC2、PC1、PC0 相连。编程使六个灯按交通灯变化规律燃灭。
编程提示:
1.十字路口交通灯的变化规律要求:
(1) 南北路口的绿灯、东西路口的红灯同时亮3秒左右。
(2) 南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。
(3) 南北路口的红灯、东西路口的绿灯同时亮3秒左右。
(4) 南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。
(5) 转(1)重复。
参考流程图:
参考程序:JTD.ASM:
DATA SEGMENT
PORTC1 DB 24H,44H,04H,44H,04H,44H,04H ;六个灯可能的状态数据
DB 81H,82H,80H,82H,80H,82H,80H,0FFH;
DB 0FFH ;结束标志
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
MOV DX, 28BH
MOV AL, 90H
OUT DX,AL ;设置8255 为C 口输出
MOV DX, 28AH
RE_ON: MOV BX,0
ON:
MOV AL, PORTC1[BX]
CMP AL, 0FFH
JZ RE_ON
OUT DX, AL ;点亮相应的灯
INC BX
MOV CX, 20 ;参数赋初值
TEST AL, 21H ;是否有绿灯亮
JZ DE1 ;没有,短延时
MOV CX, 600 ;有,长延时
DE1: MOV DI,5000 ;DI 赋初值5000
DE0: DEC DI ;减1 计数
JNZ DE0 ;DI 不为0
LOOP DE1
MOV AH,1 ;是否有键按下
INT 16H
JE ON ;没有,转到ON
EXIT: MOV AH,4CH ;返回DOS
INT 21H
CODE ENDS
END START
【实验作业】
利用原理实验箱完成操作下载本文