Hola a todos, gracias Eduardo por tu respuesta, he corregido el error pero sigue sin funcionar.Expongo aquí el código y explico el sencillo esquema para ver si es culpa del esquema, cosa que dudo.
recordando esto /SEL_IN 17 outportb(0x37a,12);//poner /wr a nivel alto 1100
outportb(0x37a,10);//escribir dirección 1010
> outportb(0x37a,11);//bajar /wr 1011
> outportb(0x378,255);//escribir datos 11111111
> outportb(0x37a,10);// volver a subir /wr 1010
como la vez anterior he seguido el programa paso a paso (en el datasheet no te da tiempos máximos para realizar la operación sólo mínimos).Ahora sólo cambia /wr y se mantienen los datos.
El esquema se basa en una fuente de 12v (2A de cebek) conectada a un
7805.Por los terminales de salida se obtiene una salida estabilizada de 4.98v. Un condensador de 470uF está conectado en paralelo y un led y una resistencia al igual que vcc y gnd en paralelo.El modelo del
82C55 es un nec.Los pines del puerto paralelo he conectado los 4 bits de control, los bits de datos y la patita 18 de masa, la 25 no la he conectado puesto que el esquema no lo indica.El resto de patitas está al aire.
Detalle extra, en algunas placas las salidas de control /STROBE ,
/AUTOFEED
, INIT , /SEL_IN necesitan resistencias de pull-up (que estan en
la
impresora).¿Las resistencias pull up son necesarias? ¿De que valor deberian ser las resistencias pull up?
Si sirve de algo el sistema operativo es windows xp profesional y accedo al puerto paralelo por la última versión de porttalk con c.