您好,欢迎来到百家汽车网。
搜索
您的当前位置:首页交通灯

交通灯

来源:百家汽车网
实验二 交通灯控制实验(8255A)

一.实验目的

通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。 二.实验内容

红 黄 绿 红 黄 绿

按图中虚线连接电路,L7、L6、L5路口的交通灯与PC7、PC6、PC5相连,L0作为东西路口的交通灯与PC2、PC1、编程使六个灯按交通灯变化规律亮三.编程提示: 十字路口交通灯的变求:

(1) 南北路口的绿灯、东西路口的亮30秒左右。

(2) 南北路口的黄灯闪烁若干次,路口的红灯继续亮。

(3) 南北路口的红灯、东西路口的亮30秒左右。

(4) 南北路口的红灯继续亮、同时的黄灯亮闪烁若干次。 (5) 转(1)重复。 四、参考流程图

返回DOS 是否有键按下 Y 开始 设置8255A口输出C口输出 南北路口绿灯亮,东西路口红灯亮 作为南北L2、L1、PC0相连。灭。 化规律要红灯同时同时东西绿灯同时东西路口

长延时 南北路口黄灯闪,东西路口红灯亮 南北路口红灯亮,东西路口绿灯亮 长延时 南北路口红灯亮,东西路口黄灯闪 N 四、程序清单 Jtd.asm

;***********************************; ;* 十字路口红绿灯模拟演示程序 *; ;* 端口各灯的设置: *; ;* 1红 1黄 1绿 0 0 2红 2黄 2绿 *; ;***********************************;

data segment

ioport equ 0d400h-0280h io8255a equ ioport+28ah io8255b equ ioport+28bh

portc1 db 24h,44h,04h,44h,04h,44h,04h ;六个灯可能 db 81h,82h,80h,82h,80h,82h,80h ;的状态数据 db 0ffh ;结束标志 data ends code segment

assume cs:code,ds:data start:

mov ax,data mov ds,ax

mov dx,io8255b mov al,90h

out dx,al ;设置8255为C口输出 mov dx,io8255a 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,2000 ;有,长延时

de1: mov di,9000 ;di赋初值5000 de0: dec di ;减1计数 jnz de0 ;di不为0 loop de1 push dx mov ah,06h mov dl,0ffh int 21h pop dx

jz on ;没有,转到on exit: mov ah,4ch ;返回 int 21h code ends end start

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baijiahaobaidu.com 版权所有 湘ICP备2023023988号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务