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

📄 daad.asm

📁 可编程并行接口8255A完成的交通灯实验   用8255A的B端口和C端口控制12个LED的亮和灭(输出为0则亮
💻 ASM
字号:

CODE 		SEGMENT
ASSUME 		CS:CODE
ADPORT		EQU 	0060H
DAPORT		EQU 	0070H
CONTPORT 	EQU 	00DFH
DATAPORT 	EQU 	00DEH
DATA0		EQU 	0500H
DATA1		EQU 	0510H
DATA2		EQU 	0514H
DATA3		EQU 	0518H
DATA4       	EQU 	0519H
DATA5		EQU     051AH
DATA6		EQU     051CH

START:		JMP 	CONTORL
CONTORL:	CALL    FORMAT
                CALL    LEDDISP
                CALL    DELAY
                MOV 	AL,0D
DACON: 		PUSH    AX
                OUT     DAPORT,AL
                CLC
                MOV     SI,DATA5
                MOV     AL,1D
                ADC     AL,[SI]
                DAA
                MOV     [SI],AL
                INC     SI
                MOV     AL,0D
                ADC     AL,[SI]
                DAA
                MOV     [SI],AL
                MOV     SI,DATA5
                MOV     AL,[SI]
                MOV 	BX,DATA2
                CALL    CONVERS
                INC     SI
                MOV     AL,[SI]
                CALL    CONVERS1
                INC     BX
                MOV     DS:[BX],AL
                CALL    DELAY
ADCON:		MOV 	AX,00
                OUT     ADPORT,AL
                CALL    DELAY
                IN 	AL,ADPORT
                CALL    CBCDM
                MOV     BX,DATA6
                MOV     [BX],AX
                MOV 	BX,DATA1
                CALL    CONVERS
                MOV     AL,BYTE PTR DS:[051DH]
                CALL    CONVERS1
                INC     BX
                MOV     DS:[BX],AL
                CALL    LEDDISP
                POP     AX
                INC     AX
                CMP     AX,100H
                JB      DACON
                MOV     AX,0H
                MOV     WORD PTR DS:[DATA5], 0H
                JMP 	DACON

CONVERS:	PUSH    AX
           	CALL    CONVERS1
                MOV     DS:[BX],AL
                INC     BX
                POP     AX
                MOV     CL,4H
      		SHR     AL,CL
      		CALL    CONVERS1
	      	MOV     DS:[BX],AL
                RET

CONVERS1:	PUSH    BX
                MOV     BH,0H
      		AND     AL,0FH
      		MOV     BL,AL
      		MOV     AL,CS:[BX+DATA0]
                POP     BX
      		RET

LEDDISP:        MOV     AL,90H
	     	OUT     CONTPORT,AL
LED1:		CMP     BYTE PTR DS:[DATA3],07H
                JA      LED2
                MOV     BL,DS:[DATA3]
                MOV     BH,0H
                MOV     AL,DS:[BX+DATA1]
                OUT     DATAPORT,AL
                ADD     BYTE PTR DS:[DATA3],01H
                JNZ     LED1
LED2:           MOV     BYTE PTR DS:[DATA3],00
		RET

CBCDM:          MOV     BL,AL
                AND     AX,0FH
                CMP     AL,09H
                JNA     NEXTBIT
                ADD     AL,06H
NEXTBIT:	MOV     BYTE PTR DS:[DATA4],AL
		MOV     AL,BL
                MOV     BH,0
                MOV     BL,BYTE PTR DS:[DATA4]
                MOV     CL,4H
      		SHR     AL,CL
                JZ      OK
                MOV     CX,AX
                MOV     AL,BYTE PTR DS:[DATA4]
                CLC
NEXT:           ADD     AL,16H
                DAA
                JNC     NEXTBIT1
                ADD     AH,1H
NEXTBIT1:       DEC     CX
                JNZ     NEXT
                MOV     BX,AX
OK:             MOV     AX,BX
                RET

FORMAT: 	MOV 	AX,0H
                MOV 	DS,AX
                MOV 	BX,0
                MOV 	WORD PTR DS:[BX+DATA0],063FH
                ADD 	BX,2
                MOV 	WORD PTR DS:[BX+DATA0],4F5BH
                ADD 	BX,2
                MOV 	WORD PTR DS:[BX+DATA0],6D66H
                ADD 	BX,2
                MOV 	WORD PTR DS:[BX+DATA0],077DH
                ADD 	BX,2
                MOV 	WORD PTR DS:[BX+DATA0],6F7FH
                ADD 	BX,2
                MOV 	WORD PTR DS:[BX+DATA0],7C77H
                ADD 	BX,2
                MOV 	WORD PTR DS:[BX+DATA0],5E39H
                ADD 	BX,2
                MOV 	WORD PTR DS:[BX+DATA0],7179H
                ADD 	BX,2
                MOV 	WORD PTR DS:[BX+DATA0],525EH
                ADD 	BX,2
                MOV 	WORD PTR DS:[BX+DATA0],4077H
                ADD 	BX,2
                MOV 	WORD PTR DS:[BX+DATA0],7740H
                ADD 	BX,2
                MOV 	WORD PTR DS:[BX+DATA0],5E52H
                ADD 	BX,2
                MOV 	WORD PTR DS:[BX+DATA0],0H
                ADD 	BX,2
                MOV 	WORD PTR DS:[BX+DATA0],0H
                ADD 	BX,2
                MOV 	WORD PTR DS:[BX+DATA0],0H
                RET

DELAY:  	MOV 	AX,5H
DELAY1: 	DEC 	AX
                NOP
                NOP
                MOV 	CX,0FFFFH
DELAY2:		LOOP    DELAY2
                JNZ 	DELAY1
                RET

CODE 		ENDS
END  		START

⌨️ 快捷键说明

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