【微机原理 实验】红绿灯--可编程外围接口芯片8255(2)(硬件-含汇编代码)

实验八  可编程外围接口芯片8255(2)

 

更多微机实验:https://blog.csdn.net/yxp189/column/info/39992 

                         汇编语言-微机原理与接口技术-实验

注意未经允许,请勿转载!

           转载请标明出处~

适用课程:微机原理与接口技术(实验)

选用教材:微型计算机原理与接口技术-中国科学技术大学出版社

注意:8255芯片对应多个实验,请于???链接中查看~

 

一.实验目的

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

 

二.实验内容

如下图,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律亮灭。

 

三.编程提示:

   十字路口交通灯的变化规律要求:

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

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

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

(4) 南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。

(5) 转(1)重复。

 

四、实验电路图

【微机原理 实验】红绿灯--可编程外围接口芯片8255(2)(硬件-含汇编代码)_第1张图片

实验代码

;Author:YXP
;CSDN:yxp189
;Email:[email protected]
;如有问题,欢迎和我联系~
;转载请标明出处~


        DATA  SEGMENT
      IOPORT  EQU       0D100H-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

 

你可能感兴趣的:(汇编语言,微机原理)