微机实验——十字路口交通灯控制器

问题描述:

使用8255,发光二极管等器件搭建交通灯控制器。 模拟十字路口的红绿灯,求显示状态分别为

南北绿东西红,持续时间为4s;

南北黄东西红,闪2次,每次闪为1s;

南北红东西绿,持续时间为4s;

南北红东西黄,闪2次,每次闪为1s。

采用一个按键的形式模拟急救车出现,采用中断形式通知CPU,要求使东南西北四个方向都为红灯1s。

 

问题分析及连线 :

基本问题流程图:

微机实验——十字路口交通灯控制器_第1张图片

当按下空格键时,东西、南北都亮起红灯,时间为1秒。

8255连线图如下所示:

微机实验——十字路口交通灯控制器_第2张图片

 

 汇编代码:

data segment
io8255a        equ 28ah
io8255b        equ 28bh
io8255c     equ 28ch
portc1  db 24h,44h,04h,44h,04h   
    db  81h,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          
    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,1000         
    test  al,21h         
    jz    de1           
    mov   cx,4000        
de1:mov   di,36000       
    push dx
    mov ah,06h
    mov dl,0ffh
    int 21h
    pop dx   
    jnz cmp0
de0:    dec   di            
    jnz   de0             
    loop  de1
    jz  on               
exit:    mov   ah,4ch     
    int   21h
cmp0: cmp al,20h
      jz SOS
      jmp de0
SOS: mov al,84h
     out dx,al
     mov cx,1000
     jmp de1
code ends
    end start

 

你可能感兴趣的:(微机实验——十字路口交通灯控制器)