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

📄 qichexinhaodengkongzhi.txt

📁 用硬件为:可编程并行I/O接口8255A实现汽车信号灯控制情况公11种状态(只含有代码)
💻 TXT
字号:
DATA SEGMENT
DB55 EQU 319H
DC55 EQU 31AH
CTL  EQU 31BH
CRT DB 'START',0DH,0AH,'$'
ERR DB 'ERROR',0DH,0AH,'$'
DATA ENDS
STACK SEGMENT STACK
STA DW 50 DUP(?)
STACK ENDS
CODE SEGMENT
MAIN PROC FAR
     ASSUME CS:CODE,DS:DATA,SS:STACK
START:MOV AX,DATA
      MOV DS,AX
      MOV DX,OFFSET CRT         ;显示“START”
      MOV AH,09H
      INT 21H
L0:   MOV DX,CTL                ;8255控制口
      MOV AL,82H                ;工作于方式0,B口输入,C口输出
      OUT DX,AL
      MOV DX,DB55
      IN  AL,DX
      CMP AL,83H                ;若开关为停止,返回DOS
      JNZ L1
      MOV AX,4C00H
      INT 21H
L1:   CMP AL,07H                ;若为左转,将灯的状态值赋给BX,进入
      JNZ L2                    ;显示子程序
      MOV BL,2AH
      MOV BH,3FH
      CALL LL1
      JMP  L0
L2:   CMP AL,0BH                ;若为右转,将灯的状态值赋给BX,进入
      JNZ L3                    ;显示子程序
      MOV BL,15H
      MOV BH,3FH
      CALL LL1
      JMP  L0
L3:   CMP AL,13H              
      JNZ L4                  
      MOV BL,00H
      MOV BH,3FH
      CALL LL1
      JMP  L0 
L4:   CMP AL,23H              
      JNZ L5                    
      MOV BL,0FH
      MOV BH,0FH
      CALL LL1
      JMP  L0
L5:   CMP AL,27H              
      JNZ L6                    
      MOV BL,0AH
      MOV BH,1FH
      CALL LL1
      JMP  L0
L6:   CMP AL,2BH              
      JNZ L7                    
      MOV BL,05H
      MOV BH,2FH
      CALL LL1
      JMP  L0
L7:   CMP AL,33H              
      JNZ L8                    
      MOV BL,00H
      MOV BH,0FH
      CALL LL1
      JMP  L0
L8:   CMP AL,37H              
      JNZ L9                    
      MOV BL,00H
      MOV BH,3DH
      CALL LL1
      JMP  L0
L9:   CMP AL,3BH              
      JNZ L10                    
      MOV BL,00H
      MOV BH,3EH
      CALL LL1
      JMP  L0
L10:  CMP AL,43H              
      JNZ L11                    
      MOV BL,03H
      MOV BH,3FH
      CALL LL1
      JMP  L0
L11:  MOV DX,OFFSET ERR         ;若状态均不符合,则为违规
      MOV AH,09H                ;操作,输出错误信息
      INT 21H
      JMP L0
      RET
MAIN  ENDP
LL1 PROC NEAR
       PUSH AX
       PUSH CX
       PUSH DX
       MOV CX,04H
       MOV DX,DC55
LOP1:  MOV AL,BL
       OUT DX,AL
       CALL DELAY2               ;调用延时子程序
       MOV AL,BH
       OUT DX,AL
       CALL DELAY2
       LOOP LOP1                 ;循环5次
       POP DX
       POP CX
       POP AX
       RET
LL1    ENDP
DELAY1 PROC NEAR
       PUSH CX
       MOV CX,0FFFFH
CCC:   LOOP CCC
       POP CX
       RET
DELAY1 ENDP
DELAY2 PROC NEAR
       PUSH CX
       MOV CX,0100H
UUU:   CALL DELAY1
       LOP UUU
       POP CX
       RET
DELAY2 ENDP
CODE ENDS
       END START

⌨️ 快捷键说明

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