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

📄 h8259-1.asm

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




INTPORT2 EQU 0021H
INTQ3	 EQU INTREEUP3
INTQ7	 EQU INTREEUP7
CONTPORT EQU 00DFH
DATAPORT EQU 00DEH
DATA0	 EQU 0580H
DATA1	 EQU 0500H
DATA2	 EQU 0508H
DATA3	 EQU 0518H
DATA4	 EQU 0520H
        ORG 1800H
START:	JMP Tint1
Tint1:	CALL FORMAT
	CLD
	MOV DI,DATA0
	MOV CX,08H
	XOR AX,AX
	REP STOSW
	MOV SI,DATA3
	CALL LEDDISP			;DISP 8259-1
	MOV AX,0H
	MOV DS,AX
	CALL WRINTVER			;WRITE INTRRUPT
	MOV AL,13H
	MOV DX,INTPORT1
	OUT DX,AL
	MOV AL,08H
	MOV DX,INTPORT2
	OUT DX,AL
	MOV AL,09H
	OUT DX,AL
	MOV AL,0F7H
	OUT DX,AL
	MOV BYTE PTR DS:[0601H],01H	;TIME=1
	STI
WATING: JMP WATING
WRINTVER:MOV AX,0H
	 MOV ES,AX
	 MOV DI,002CH
	 LEA AX,INTQ3
	 STOSW
	 MOV AX,CS
	 STOSW
	 MOV DI,003CH
	 LEA AX,INTQ7
	 STOSW
	 MOV AX,CS
	 STOSW
	 RET
INTREEUP3:CLI
	  MOV AL,DS:[0601H]
	  CALL CONVERS
	  MOV SI,DATA0
	  CALL LEDDISPD
	  MOV AL,20H
	  MOV DX,INTPORT1
	  OUT DX,AL
	  ADD BYTE PTR DS:[0601H],01H
	  CMP BYTE PTR DS:[0601H],06H
	  JNA INTRE1
	  MOV SI,DATA4
	  CALL LEDDISP
INTRE3:   JMP INTRE3
CONVERS:MOV BH,0H
	AND AL,0FH
	MOV BL,AL
	MOV AL,CS:[BX+DATA2]
	MOV BX,DATA0
	MOV DS:[BX],AL
	RET
INTRE1:   MOV AL,20H
	  MOV DX,INTPORT1
	  OUT DX,AL
	  STI
	  IRET
INTREEUP7: CLI
	   MOV SI,DATA1
	   CALL LEDDISP
	   MOV AL,20H
	   MOV DX,INTPORT1
	   OUT DX,AL
	   IRET
LEDDISP:MOV AL,90H
	MOV DX,CONTPORT
	OUT DX,AL
	MOV BYTE PTR DS:[0600H],00
LED1:	CMP BYTE PTR DS:[0600H],07H
	JA  LED2
	MOV BL,DS:[0600H]
	MOV BH,0H
	MOV AL,CS:[BX+SI]
	MOV DX,DATAPORT
	OUT DX,AL
	ADD BYTE PTR DS:[0600H],01H
	JNZ LED1
LED2:	RET
LEDDISPD:MOV AL,90H
	MOV DX,CONTPORT
	OUT DX,AL
	MOV BYTE PTR DS:[0600H],00
LEDD1:	 CMP BYTE PTR DS:[0600H],07H
	JA  LEDD2
	MOV BL,DS:[0600H]
	MOV BH,0H
	MOV AL,DS:[BX+SI]
	MOV DX,DATAPORT
	OUT DX,AL
	ADD BYTE PTR DS:[0600H],01H
	JNZ LEDD1
LEDD2:	 RET
FORMAT: MOV BX,0
	MOV WORD PTR DS:[BX+0500H],5050H
	ADD BX,2
	MOV WORD PTR DS:[BX+0500H],0079H
	ADD BX,2
	MOV WORD PTR DS:[BX+0500H],0000H
	ADD BX,2
	MOV WORD PTR DS:[BX+0500H],0000H
	ADD BX,2
	MOV WORD PTR DS:[BX+0500H],063FH
	ADD BX,2
	MOV WORD PTR DS:[BX+0500H],4F5BH
	ADD BX,2
	MOV WORD PTR DS:[BX+0500H],6D66H
	ADD BX,2
	MOV WORD PTR DS:[BX+0500H],077DH
	ADD BX,2
	MOV WORD PTR DS:[BX+0500H],6F7FH
	ADD BX,2
	MOV WORD PTR DS:[BX+0500H],7C77H
	ADD BX,2
	MOV WORD PTR DS:[BX+0500H],5E39H
	ADD BX,2
	MOV WORD PTR DS:[BX+0500H],7179H
	ADD BX,2
	MOV WORD PTR DS:[BX+0500H],4006H
	ADD BX,2
	MOV WORD PTR DS:[BX+0500H],4040H
	ADD BX,2
	MOV WORD PTR DS:[BX+0500H],6D6FH
	ADD BX,2
	MOV WORD PTR DS:[BX+0500H],7F5BH
	ADD BX,2
	MOV WORD PTR DS:[BX+0500H],3F5EH
	ADD BX,2
	MOV WORD PTR DS:[BX+0500H],5C3FH
	ADD BX,2
	MOV WORD PTR DS:[BX+0500H],6D6FH
	ADD BX,2
	MOV WORD PTR DS:[BX+0500H],7F5BH
	RET
CODE ENDS
END  START

⌨️ 快捷键说明

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