⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 t8255-2.asm

📁 T8255-2.asm 8255流水灯显示实验
💻 ASM
字号:
;T8255-2.asm
;8255流水灯显示实验

;****************根据查看端口资源修改下列符号值*******************
        IOY0  EQU       9C00H       ;片选IOY0对应的端口始地址
;*****************************************************************
    MY8255_A  EQU       IOY0+00H*4  ;8255的A口地址
    MY8255_B  EQU       IOY0+01H*4  ;8255的B口地址
    MY8255_C  EQU       IOY0+02H*4  ;8255的C口地址
 MY8255_MODE  EQU       IOY0+03H*4  ;8255的控制寄存器地址

      STACK1  SEGMENT   STACK
              DW        256 DUP(?)
      STACK1  ENDS

        DATA  SEGMENT
          LA  DB        ?           ;定义数据变量
          LB  DB        ?
        DATA  ENDS

        CODE  SEGMENT
              ASSUME    CS:CODE,DS:DATA

      START:  MOV       AX,DATA
              MOV       DS,AX

              MOV       DX,MY8255_MODE          ;定义8255工作方式
              MOV       AL,80H      ;工作方式0,A口和B口为输出
              OUT       DX,AL

              MOV       DX,MY8255_A ;写A口发出的起始数据
              MOV       AL,80H
              OUT       DX,AL
              MOV       LA,AL

              MOV       DX,MY8255_B ;写B口发出的起始数据
              MOV       AL,01H
              OUT       DX,AL
              MOV       LB,AL

      LOOP1:  CALL      DALLY
              MOV       AL,LA       ;将A口起始数据右移再写入A口
              ROR       AL,1
              MOV       LA,AL
              MOV       DX,MY8255_A
              OUT       DX,AL

              MOV       AL,LB       ;将B口起始数据左移再写入B口
              ROL       AL,1
              MOV       LB,AL
              MOV       DX,MY8255_B
              OUT       DX,AL

              MOV       AH,1        ;判断是否有按键按下
              INT       16H
              JZ        LOOP1       ;无按键则跳回继续循环,有则退出

       QUIT:  MOV       AX,4C00H    ;结束程序退出
              INT       21H

       DALLY  PROC      NEAR        ;软件延时子程序
              PUSH      CX
              PUSH      AX
              MOV       CX,3FFH
         D1:  MOV       AX,0FFFFH
         D2:  DEC       AX
              JNZ       D2
              LOOP      D1
              POP       AX
              POP       CX
              RET
       DALLY  ENDP

        CODE  ENDS
              END       START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -