实验七 交通灯控制实验
一、实验目的
通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。 二、实验内容
本实验以L1、L2、L3作为东西路口的交通灯与PC0 PC1 PC2相连, L6、L7、L8作为南
北路口的交通灯与PC5、PC6、PC7相连,编程使六个灯按交通灯变化规律亮灭。 三、实验原理介绍
本实验用到两部分电路:8255 电路、LED 电路。 四、实验步骤 1、实验连线
CS0<-->8255CS,LED1<-->PC0,LED2<-->PC1,LED3<-->PC2,LED6<-->PC5 ,LED7<-->PC6,LED8<-->PC7。 五、实验提示
十字路口交通灯的变化规律要求:
1 南北路口的绿灯亮,东西路口的红灯同时亮30秒左右。 2 南北路口的绿灯闪烁若干次,同时东西路口的红灯继续亮。 3 南北路口的黄灯亮2秒,东西路口的红灯继续亮。 4 南北路口的红灯亮,同时东西路口的红灯继续亮2秒。
5 南北路口的红灯亮, 同时东西路口的红灯和黄等一起亮2秒。 6 南北路口的红灯亮, 同时东西绿灯亮30秒。 7 南北路口的红灯亮, 同时东西绿灯亮闪若干次。 8 南北路口的红灯亮, 同时东西黄灯亮2秒。 9 南北路口的红灯亮, 同时东西红灯亮2秒。
10 南北路口的红灯和黄等一起亮2秒,同时东西红灯亮。 11 转1 重复 六、程序框图(如图7)
实验程序
;*L1(RED),L2(YELLOW),L3(GREEN) 东西方向 L6(RED),L7(YELLOW),L8(GREEN) 南北方向*; ;*按任意键退出 ,交通灯顺序为:红灯亮,然后黄灯和红灯一起亮,绿灯亮,绿灯闪,黄灯亮,红灯亮.*; DATA SEGMENT
IOPORT EQU 0A800H IO8255C EQU IOPORT+0A4H IO8255CON EQU IOPORT+0A6H
MES DB 'Press any key to exit!',0AH,0DH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET MES MOV AH,9 INT 21H
MOV DX,IO8255CON ;使8255的C口为输出方式 MOV AX,80H OUT DX,AL
MOV AX,0DEH ;两个红灯亮,黄灯、绿灯灭
CALL DISP ;调用8255的C口显示单元(以下雷同) MOV AX,5
CALL DELAY ;延时1秒
LLL: MOV AX,0DCH ;东西路口红灯黄灯同时灯亮;南北路口红灯亮 CALL DISP MOV CALL MOV CALL