# Configuracion de Interfaz 8255 con Lenguaje Ensamblador



## blackhamet (Abr 14, 2008)

Mucho gusto, soy algo nuevo en la electronica, pero en la universidad donde estoy estudiando, nos han pedido utilizar la interfaz 8255 PCI, pero no nos han dejado configurarla ni utilizarla con Visual Basic, donde obviamente es mas facil, sino que debemos configurarla y manipularla desde lenguaje ensamblador, pero no hemos podido, espero que alguien me puede orientar con esto, lo unico que puedo decirles, es que he encontrado la configuracion que necesito, supuestamente en el byte de configuracion deberia ir 10010000, que lo deja en modo 0, y con el puerto A de entrada y el B como salida, pero para manipularlo en asembled me pierdo, de antemano gracias, y espere que me puedan ayudar pronto


----------



## Eduardo (Abr 14, 2008)

A que llamas 'manipularlo' ? ? 

Cargarlo en el 8255 en VB es:  vbOut PortAddress%, PortNum%

Y en assembler es:

   mov dx,PortAddress
   mov al,PortNum       ; PortNum = 1001000b : Modo 0 #8
   out dx,al


Y la lectura en VB  PortNum% = vbInp(PortAddress%)
es equivalente a

   mov dx,PortAddress
   in al,dx
   mov PortNum,al



O tu problema es la escritura de todas las rutinas para el manejo del 8255?


----------



## blackhamet (Abr 15, 2008)

si gracias Eduardo, te explico mi situacion, yo estudio Ingenieria en Sistemas, pero llevo una clase llamada Arquitectura de Computadoras y Ensambladores, en la cual debemos llevar algo de electronica, y nos han dejado un proyecto, el cual vincula un circuito receptor de luz, el cual indica que intensidad se le acerca, con una bombilla por ejemplo, y te dice si es alta, media o baja, pero ese circuito ya esta hecho, el problema es que ahora debemos conectar este circuito con la computadora por medio del 8255, que reciba las señales del circuito que te menciones y que esto lo comunique a otra computadora y ademas que encienda un led dependiendo de que intensidad de luz se trate, entonces, no se si puede darme un ejemplo sencillo de un programa en ensamblador para recibir y mandar pulsos por medio de la 8255, estaria muy agradecido si puedes ayudarme y gracias por lo anterior


----------



## Eduardo (Abr 15, 2008)

Pero que sistema operativo vas a usar?  

Bajo Windows NT/2000/XP  el sistema no te deja acceder al hardware , tenes que hacerlo a traves de una DLL.

Bajo Linux desconozco, aunque supongo que idem anterior.

Bajo W95/98 si se puede aunque hay una perdida de tiempo porque se genera una excepcion.

Bajo DOS no hay problema, la maquina es TUYA, no la mierda enredada llena de bugs que vino despues.

Seguramente vos estas en el primer caso, yo no tengo codigo que sirva de ejemplo ni pienso escribir una DLL, pero por suerte tenes utilitarios freeware para acceder a los puertos.
Un ejemplo es este www.programmersheaven.com/download/22947/Download.aspx
Pero hay unos cuantos mas, y si Alzheimer no me engaña, hay alguno con codigo fuente.


----------



## blackhamet (Abr 15, 2008)

muchisimas gracias eduardo, si, la verdad se me olvido especificarte eso, estoy usando turbo assembler desde el DOS de windows xp. Te agradezco mucho tu ayuda, voy a ver el link que me dejaste y luego te escribo por cualquier cosa, gracias


----------



## cemolina (Dic 24, 2010)

Quiera saber como comunicarse con la 8255 desde dos sin entrar al sistema operativo, es decir que no quisiera utilizar dll's en xp o win98. En lenguaje ensamblador especificamente fasm. de antemano muchas gracias


----------

