实验08_交通灯控制实验
实验八 交通灯控制实验 一、实验目的 通过并行接口 8255 实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。
二、实验内容 如图 8-1,L7、L6、L5 作为南北路口的交通灯与 PC7、PC6、PC5 相连,L2、L1、L0 作为东西路口的交通灯与 PC2、PC1、PC0 相连。编程使六个灯按交通灯变化规律亮灭。
图 8-1 三、编程提示: 十字路口交通灯的变化规律要求:
(1)南北路口的绿灯、东西路口的红灯同时亮 30 秒左右。
(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。
(3)南北路口的红灯、东西路口的绿灯同时亮 30 秒左右。
(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。
(5)转(1)重复。
;***********************************;;* 十字路口红绿灯模拟演示程序 *;;* 端口各灯的设置: *;;* 1红1黄1绿0 0 2红2黄2绿 *;;***********************************;data segment io8255a equ 28ah io8255b equ 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;设置为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,200;参数赋初值 test al,21h;是否有绿灯亮 jz de1;没有,短延时 mov cx,2000;有,长延时 de1: mov di,9000;di赋初值 de0: dec di;减计数 jnz de0;di不为 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
版权声明:
1.大文斗范文网的资料来自互联网以及用户的投稿,用于非商业性学习目的免费阅览。
2.《实验08_交通灯控制实验》一文的著作权归原作者所有,仅供学习参考,转载或引用时请保留版权信息。
3.如果本网所转载内容不慎侵犯了您的权益,请联系我们,我们将会及时删除。
