Saludos. Veran soy un novato en las cuestiones de electronica y en la escuela nos propusieron una practica que consiste en lo siguiente: Tenemos que elaborar un codigo en ensamblador para controlar un PPI 8255 cuyos puertos A, B y C estan conectados a unos leds. El proposito del programa es enviar señales para activar los puertos de forma un led se encienda y recorra las 24 salidas del 8255 y de regreso en un ciclo.
Un compañero me compartio el siguiente codigo, pero el problema es que no esta documentado, en si esta sencillo, pero quisiera que alguien me pudiera explicar en que consisten las lineas mas esenciales del programa (programar el 8255, enviar los datos a los leds, el ciclo).
Estamos ejecutando el codigo en una PC con Windows 98, mediante las salidas del puerto paralelo LPT1.
Apreciare mucho su ayuda. Muchas Gracias.
EDIT: Por alguna razon no me permitio adjuntar el .asm, asi que les dejo el texto tal como es. Y si algun moderador pudiera modificar el post para adjuntar este texto lo agradeceria mucho. Aqui el archivo en un link:
Un compañero me compartio el siguiente codigo, pero el problema es que no esta documentado, en si esta sencillo, pero quisiera que alguien me pudiera explicar en que consisten las lineas mas esenciales del programa (programar el 8255, enviar los datos a los leds, el ciclo).
Estamos ejecutando el codigo en una PC con Windows 98, mediante las salidas del puerto paralelo LPT1.
Apreciare mucho su ayuda. Muchas Gracias.
EDIT: Por alguna razon no me permitio adjuntar el .asm, asi que les dejo el texto tal como es. Y si algun moderador pudiera modificar el post para adjuntar este texto lo agradeceria mucho. Aqui el archivo en un link:
Código:
--------------------------------------------------------------------
.MODEL SMALL
.CODE
PROGRAMA:
;-Inicia 8085
START:
MOV DX,0378H
MOV AL,80H
OUT DX,AL
CALL RETARDO
MOV DX,037aH
MOV AL,04
OUT DX,AL
CALL RETARDO
MOV DX,037aH
MOV AL,00
OUT DX,AL
CALL RETARDO
MOV DX,037aH
MOV AL,04
OUT DX,AL
CALL RETARDO
;-Termina 8085
;-Inicia Corrimiento Puerto A
MOV DX,0378H
MOV AL,80H
OUT DX,AL
CALL RETARDO
CALL ENCENDERA
;---------------------
MOV DX,0378H
MOV AL,40H
OUT DX,AL
CALL RETARDO
CALL ENCENDERA
;---------------------
MOV DX,0378H
MOV AL,20H
OUT DX,AL
CALL RETARDO
CALL ENCENDERA
;---------------------
MOV DX,0378H
MOV AL,10H
OUT DX,AL
CALL RETARDO
CALL ENCENDERA
;---------------------
MOV DX,0378H
MOV AL,8H
OUT DX,AL
CALL RETARDO
CALL ENCENDERA
;---------------------
MOV DX,0378H
MOV AL,4H
OUT DX,AL
CALL RETARDO
CALL ENCENDERA
;---------------------
MOV DX,0378H
MOV AL,2H
OUT DX,AL
CALL RETARDO
CALL ENCENDERA
;---------------------
MOV DX,0378H
MOV AL,1H
OUT DX,AL
CALL RETARDO
CALL ENCENDERA
;---------------------
MOV DX,0378H
MOV AL,00H
OUT DX,AL
CALL RETARDO
CALL ENCENDERA
;-Termina Corrimiento Puerto A
;-Inicia Corrimiento Puerto C
MOV DX,0378H
MOV AL,80H
OUT DX,AL
CALL RETARDO
CALL ENCENDERC
;---------------------
MOV DX,0378H
MOV AL,40H
OUT DX,AL
CALL RETARDO
CALL ENCENDERC
;---------------------
MOV DX,0378H
MOV AL,20H
OUT DX,AL
CALL RETARDO
CALL ENCENDERC
;---------------------
MOV DX,0378H
MOV AL,10H
OUT DX,AL
CALL RETARDO
CALL ENCENDERC
;---------------------
MOV DX,0378H
MOV AL,8H
OUT DX,AL
CALL RETARDO
CALL ENCENDERC
;---------------------
MOV DX,0378H
MOV AL,4H
OUT DX,AL
CALL RETARDO
CALL ENCENDERC
;---------------------
MOV DX,0378H
MOV AL,2H
OUT DX,AL
CALL RETARDO
CALL ENCENDERC
;---------------------
MOV DX,0378H
MOV AL,1H
OUT DX,AL
CALL RETARDO
CALL ENCENDERC
;---------------------
MOV DX,0378H
MOV AL,00H
OUT DX,AL
CALL RETARDO
CALL ENCENDERC
;---------------------
;-Termina Corrimiento Puerto A
;-Inicia Corrimiento Puerto B
MOV DX,0378H
MOV AL,01H
OUT DX,AL
CALL RETARDO
CALL ENCENDERB
;---------------------
MOV DX,0378H
MOV AL,02H
OUT DX,AL
CALL RETARDO
CALL ENCENDERB
;---------------------
MOV DX,0378H
MOV AL,04H
OUT DX,AL
CALL RETARDO
CALL ENCENDERB
;---------------------
MOV DX,0378H
MOV AL,08H
OUT DX,AL
CALL RETARDO
CALL ENCENDERB
;---------------------
MOV DX,0378H
MOV AL,10H
OUT DX,AL
CALL RETARDO
CALL ENCENDERB
;---------------------
MOV DX,0378H
MOV AL,20H
OUT DX,AL
CALL RETARDO
CALL ENCENDERB
;---------------------
MOV DX,0378H
MOV AL,40H
OUT DX,AL
CALL RETARDO
CALL ENCENDERB
;---------------------
MOV DX,0378H
MOV AL,80H
OUT DX,AL
CALL RETARDO
CALL ENCENDERB
;---------------------
;-Termina Corrimiento Puerto B
;-Inicia Corrimiento De Regreso Puerto B
MOV DX,0378H
MOV AL,40H
OUT DX,AL
CALL RETARDO
CALL ENCENDERB
;---------------------
MOV DX,0378H
MOV AL,20H
OUT DX,AL
CALL RETARDO
CALL ENCENDERB
;---------------------
MOV DX,0378H
MOV AL,10H
OUT DX,AL
CALL RETARDO
CALL ENCENDERB
;---------------------
MOV DX,0378H
MOV AL,08H
OUT DX,AL
CALL RETARDO
CALL ENCENDERB
;---------------------
MOV DX,0378H
MOV AL,04H
OUT DX,AL
CALL RETARDO
CALL ENCENDERB
;---------------------
MOV DX,0378H
MOV AL,02H
OUT DX,AL
CALL RETARDO
CALL ENCENDERB
;---------------------
MOV DX,0378H
MOV AL,01H
OUT DX,AL
CALL RETARDO
CALL ENCENDERB
;---------------------
MOV DX,0378H
MOV AL,00H
OUT DX,AL
CALL RETARDO
CALL ENCENDERB
;---------------------
;-Termina Corrimiento De Regreso Puerto B
;-Inicia Corrimiento De Regreso Puerto C
MOV DX,0378H
MOV AL,01H
OUT DX,AL
CALL RETARDO
CALL ENCENDERC
;---------------------
MOV DX,0378H
MOV AL,2H
OUT DX,AL
CALL RETARDO
CALL ENCENDERC
;---------------------
MOV DX,0378H
MOV AL,4H
OUT DX,AL
CALL RETARDO
CALL ENCENDERC
;---------------------
MOV DX,0378H
MOV AL,8H
OUT DX,AL
CALL RETARDO
CALL ENCENDERC
;---------------------
MOV DX,0378H
MOV AL,10H
OUT DX,AL
CALL RETARDO
CALL ENCENDERC
;---------------------
MOV DX,0378H
MOV AL,20H
OUT DX,AL
CALL RETARDO
CALL ENCENDERC
;---------------------
MOV DX,0378H
MOV AL,40H
OUT DX,AL
CALL RETARDO
CALL ENCENDERC
;---------------------
MOV DX,0378H
MOV AL,80H
OUT DX,AL
CALL RETARDO
CALL ENCENDERC
;---------------------
MOV DX,0378H
MOV AL,00H
OUT DX,AL
CALL RETARDO
CALL ENCENDERC
;---------------------
;-Termina Corrimiento De Regreso Puerto C
;-Inicia Corrimiento De Regreso Puerto A
MOV DX,0378H
MOV AL,1H
OUT DX,AL
CALL RETARDO
CALL ENCENDERA
;---------------------
MOV DX,0378H
MOV AL,2H
OUT DX,AL
CALL RETARDO
CALL ENCENDERA
;---------------------
MOV DX,0378H
MOV AL,4H
OUT DX,AL
CALL RETARDO
CALL ENCENDERA
;---------------------
MOV DX,0378H
MOV AL,8H
OUT DX,AL
CALL RETARDO
CALL ENCENDERA
;---------------------
MOV DX,0378H
MOV AL,10H
OUT DX,AL
CALL RETARDO
CALL ENCENDERA
;---------------------
MOV DX,0378H
MOV AL,20H
OUT DX,AL
CALL RETARDO
CALL ENCENDERA
;---------------------
MOV DX,0378H
MOV AL,40H
OUT DX,AL
CALL RETARDO
CALL ENCENDERA
;---------------------
MOV DX,0378H
MOV AL,80H
OUT DX,AL
CALL RETARDO
CALL ENCENDERA
;---------------------
MOV DX,0378H
MOV AL,00H
OUT DX,AL
CALL RETARDO
CALL ENCENDERA
;---------------------
JMP START
;-Termina Corrimiento De Regreso Puerto A
INICIO: SHR AL,01
OUT DX,AL
CALL RETARDO
CMP AL,00H
JNZ INICIO
MOV AX,4C00H
INT 21H
RETARDO:
MOV BX,3FFFH
MOVCX: MOV CX,3FFFH
DECCX: DEC CX
JNZ DECCX
DEC BX
JNZ MOVCX
RET
ENCENDERA:
MOV DX,037aH
MOV AL,07
OUT DX,AL
CALL RETARDO
MOV DX,037aH
MOV AL,03
OUT DX,AL
CALL RETARDO
MOV DX,037aH
MOV AL,07
OUT DX,AL
CALL RETARDO
RET
ENCENDERC:
MOV DX,037aH
MOV AL,05
OUT DX,AL
CALL RETARDO
MOV DX,037aH
MOV AL,01
OUT DX,AL
CALL RETARDO
MOV DX,037aH
MOV AL,05
OUT DX,AL
CALL RETARDO
RET
ENCENDERB:
MOV DX,037aH
MOV AL,06
OUT DX,AL
CALL RETARDO
MOV DX,037aH
MOV AL,02
OUT DX,AL
CALL RETARDO
MOV DX,037aH
MOV AL,06
OUT DX,AL
CALL RETARDO
RET
MOV AX,4C00H
INT 21H
.STACK
END PROGRAMA
-----------------------------------------------------------
Última edición por un moderador: