hola, que tal! =)
espero me puedas ayudar!!!!
tengo un proyecto
de encender un display de 7 segmentos
por medio del puerto paralelo
lo electronico ya lo tengo
lo que no logro es desbloquear el paralelo en XP
ya trate hasta con ensamblador y nomas no puedo =(
este es el codigo en ensamblador y no me deja hacer nada
Pila segment para Stack 'Stack'
Db 64 Dup('Pila')
Pila ends
Datos segment para Public 'Datos'
Ce Db ",0ah,0dh,'$'"
Datos ends
Codigo segment para 'Codigo'
Assume Cs:Codigo,Ss
ila,Ds
atos
Push Ds
Sub Ax,Ax
Push Ax
Inicio:
Lea Dx, Ce
Mov Ah, 1
Int 21h
Cmp Al, 30h
Je Cero
Cmp Al, 31h
Je Uno
Cmp Al, 32h
Je Dos
Cmp Al, 33h
Je Tres
Cmp Al, 34h
Je Cuatro
Cmp Al, 35h
Je Cinco
Cmp Al, 36h
Je Seis
Cmp Al, 37h
Je Siete
Cmp Al, 38h
Je Ocho
Cmp Al, 39h
Je Nueve
Cmp Al, 40h
Cero:
Mov Ax, 0FDh;
Mov Ds, Ax
Mov Dx, 0378h
Out Dx, Ax
Int 14h
Jmp Inicio
Uno:
Mov Ax, 061h;
Mov Ds, Ax
Mov Dx, 0378h
Out Dx, Ax
Int 14h
Jmp Inicio
Dos:
Mov Ax, 0DBh;
Mov Ds, Ax
Mov Dx, 0378h
Out Dx, Ax
Int 14h
Jmp Inicio
Tres:
Mov Ax, 0F3f
Mov Ds, Ax
Mov Dx, 0378h
Out Dx, Ax
Int 14h
Jmp Inicio
Cuatro:
Mov Ax, 067h
Mov Ds, Ax
Mov Dx, 0378h
Out Dx, Ax
Int 14h
Jmp Inicio
Cinco:
Mov Ax, 0B7h
Mov Ds, Ax
Mov Dx, 0378h
Out Dx, Ax
Int 14h
Jmp Inicio
Seis:
Mov Ax, 0BFh
Mov Ds, Ax
Mov Dx, 0378h
Out Dx, Ax
Int 14h
Jmp Inicio
Siete:
Mov Ax, 0E1h
Mov Ds, Ax
Mov Dx, 0378h
Out Dx, Ax
Int 14h
Jmp Inicio
Ocho:
Mov Ax, 0FFh
Mov Ds, Ax
Mov Dx, 0378h
Out Dx, Ax
Int 14h
Jmp Inicio
Nueve:
Mov Ax, 0F7h
Mov Ds, Ax
Mov Dx, 0378h
Out Dx, Ax,
Int 14h
Jmp Inicio
Ret
Codigo ends
End
-------------------------------------------
aqui te mando el codigo en c++
con el que tambien no logro nada
#include <winbgim.h>
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <pt_ioctl.c>
main(void)
{
int cont=0;
initwindow(640,480);
OpenPortTalk();
while(cont<=25){
outportb(0x378,162);
delay(0.05);
outportb(0x378,170);
delay(0.05);
outportb(0x378,33);
delay(0.05);
outportb(0x378,42);
delay(0.05);
outportb(0x378,186);
delay(0.05);
outportb(0x378,194);
delay(0.05);
outportb(0x378,196);
delay(0.05);
outportb(0x378,202);
delay(0.05);
outportb(0x378,229);
delay(0.05);
outportb(0x378,214);
delay(0.05);
outportb(0x378,218);
delay(0.05);
outportb(0x378,234);
delay(0.05);
cont++;
}
while(cont<=50){
outportb(0x378,82);
delay(0.05);
outportb(0x378,84);
delay(0.05);
outportb(0x378,85);
delay(0.05);
outportb(0x378,86);
delay(0.05);
outportb(0x378,87);
delay(0.05);
outportb(0x378,92);
delay(0.05);
outportb(0x378,95);
delay(0.05);
outportb(0x378,98);
delay(0.05);
outportb(0x378,100);
delay(0.05);
outportb(0x378,101);
delay(0.05);
outportb(0x378,102);
delay(0.05);
outportb(0x378,103);
delay(0.05);
outportb(0x378,111);
delay(0.05);
cont++;
}
while(cont<=75){
outportb(0x378,3);
delay(0.05);
outportb(0x378,4);
delay(0.05);
outportb(0x378,5);
delay(0.05);
outportb(0x378,6);
delay(0.05);
outportb(0x378,10);
delay(0.05);
outportb(0x378,49);
delay(0.05);
outportb(0x378,51);
delay(0.05);
outportb(0x378,52);
delay(0.05);
outportb(0x378,53);
delay(0.05);
outportb(0x378,54);
delay(0.05);
outportb(0x378,58);
delay(0.05);
outportb(0x378,67);
delay(0.05);
outportb(0x378,68);
delay(0.05);
outportb(0x378,69);
delay(0.05);
outportb(0x378,70);
delay(0.05);
outportb(0x378,74);
delay(0.05);
outportb(0x378,83);
delay(0.05);
outportb(0x378,84);
delay(0.05);
outportb(0x378,85);
delay(0.05);
outportb(0x378,86);
delay(0.05);
outportb(0x378,90);
delay(0.05);
outportb(0x378,99);
delay(0.05);
outportb(0x378,100);
delay(0.05);
outportb(0x378,101);
delay(0.05);
outportb(0x378,102);
delay(0.05);
outportb(0x378,103);
delay(0.05);
cont++;
}
while(cont<=100){
outportb(0x378,51);
delay(0.05);
outportb(0x378,59);
delay(0.05);
outportb(0x378,60);
delay(0.05);
outportb(0x378,62);
delay(0.05);
outportb(0x378,63);
delay(0.05);
outportb(0x378,67);
delay(0.05);
outportb(0x378,71);
delay(0.05);
outportb(0x378,75);
delay(0.05);
outportb(0x378,76);
delay(0.05);
outportb(0x378,78);
delay(0.05);
outportb(0x378,79);
delay(0.05);
outportb(0x378,83);
delay(0.05);
outportb(0x378,87);
delay(0.05);
outportb(0x378,91);
delay(0.05);
outportb(0x378,92);
delay(0.05);
outportb(0x378,94);
delay(0.05);
outportb(0x378,95);
delay(0.05);
outportb(0x378,115);
delay(0.05);
outportb(0x378,119);
delay(0.05);
outportb(0x378,123);
delay(0.05);
outportb(0x378,124);
delay(0.05);
outportb(0x378,126);
delay(0.05);
outportb(0x378,127);
delay(0.05);
outportb(0x378,179);
delay(0.05);
outportb(0x378,183);
delay(0.05);
outportb(0x378,187);
delay(0.05);
outportb(0x378,188);
delay(0.05);
outportb(0x378,190);
delay(0.05);
outportb(0x378,247);
delay(0.05);
cont++;
}
while(cont<=125){
outportb(0x378,0);
delay(0.05);
outportb(0x378,1);
delay(0.05);
outportb(0x378,2);
delay(0.05);
outportb(0x378,4);
delay(0.05);
outportb(0x378,5);
delay(0.05);
outportb(0x378,6);
delay(0.05);
outportb(0x378,7);
delay(0.05);
outportb(0x378,8);
delay(0.05);
outportb(0x378,9);
delay(0.05);
outportb(0x378,15);
delay(0.05);
outportb(0x378,64);
delay(0.05);
outportb(0x378,71);
delay(0.05);
outportb(0x378,72);
delay(0.05);
outportb(0x378,79);
delay(0.05);
outportb(0x378,112);
delay(0.05);
outportb(0x378,113);
delay(0.05);
outportb(0x378,114);
delay(0.05);
outportb(0x378,116);
delay(0.05);
outportb(0x378,117);
delay(0.05);
outportb(0x378,118);
delay(0.05);
outportb(0x378,119);
delay(0.05);
outportb(0x378,120);
delay(0.05);
outportb(0x378,127);
delay(0.05);
outportb(0x378,128);
delay(0.05);
outportb(0x378,129);
delay(0.05);
outportb(0x378,130);
delay(0.05);
outportb(0x378,132);
delay(0.05);
outportb(0x378,133);
delay(0.05);
outportb(0x378,135);
delay(0.05);
outportb(0x378,136);
delay(0.05);
outportb(0x378,143);
delay(0.05);
outportb(0x378,144);
delay(0.05);
outportb(0x378,145);
delay(0.05);
outportb(0x378,146);
delay(0.05);
outportb(0x378,148);
delay(0.05);
outportb(0x378,149);
delay(0.05);
outportb(0x378,150);
delay(0.05);
outportb(0x378,151);
delay(0.05);
outportb(0x378,152);
delay(0.05);
outportb(0x378,159);
delay(0.05);
outportb(0x378,160);
delay(0.05);
outportb(0x378,161);
delay(0.05);
outportb(0x378,162);
delay(0.05);
outportb(0x378,164);
delay(0.05);
outportb(0x378,165);
delay(0.05);
outportb(0x378,166);
delay(0.05);
outportb(0x378,167);
delay(0.05);
outportb(0x378,168);
delay(0.05);
outportb(0x378,175);
delay(0.05);
outportb(0x378,176);
delay(0.05);
outportb(0x378,177);
delay(0.05);
outportb(0x378,178);
delay(0.05);
outportb(0x378,180);
delay(0.05);
outportb(0x378,181);
delay(0.05);
outportb(0x378,182);
delay(0.05);
outportb(0x378,183);
delay(0.05);
outportb(0x378,184);
delay(0.05);
outportb(0x378,191);
delay(0.05);
outportb(0x378,192);
delay(0.05);
outportb(0x378,193);
delay(0.05);
outportb(0x378,194);
delay(0.05);
outportb(0x378,196);
delay(0.05);
outportb(0x378,197);
delay(0.05);
outportb(0x378,198);
delay(0.05);
outportb(0x378,199);
delay(0.05);
outportb(0x378,200);
delay(0.05);
outportb(0x378,207);
delay(0.05);
outportb(0x378,208);
delay(0.05);
outportb(0x378,209);
delay(0.05);
outportb(0x378,210);
delay(0.05);
outportb(0x378,212);
delay(0.05);
outportb(0x378,213);
delay(0.05);
outportb(0x378,214);
delay(0.05);
outportb(0x378,215);
delay(0.05);
outportb(0x378,216);
delay(0.05);
outportb(0x378,223);
delay(0.05);
outportb(0x378,224);
delay(0.05);
outportb(0x378,225);
delay(0.05);
outportb(0x378,226);
delay(0.05);
outportb(0x378,228);
delay(0.05);
outportb(0x378,229);
delay(0.05);
outportb(0x378,230);
delay(0.05);
outportb(0x378,231);
delay(0.05);
outportb(0x378,232);
delay(0.05);
outportb(0x378,239);
delay(0.05);
outportb(0x378,240);
delay(0.05);
outportb(0x378,241);
delay(0.05);
outportb(0x378,242);
delay(0.05);
outportb(0x378,244);
delay(0.05);
outportb(0x378,245);
delay(0.05);
outportb(0x378,246);
delay(0.05);
outportb(0x378,247);
delay(0.05);
cont++;
}
while(cont<=150){
outportb(0x378,42);
delay(0.05);
outportb(0x378,43);
delay(0.05);
outportb(0x378,44);
delay(0.05);
outportb(0x378,45);
delay(0.05);
outportb(0x378,58);
delay(0.05);
outportb(0x378,59);
delay(0.05);
outportb(0x378,74);
delay(0.05);
outportb(0x378,75);
delay(0.05);
outportb(0x378,76);
delay(0.05);
outportb(0x378,77);
delay(0.05);
outportb(0x378,90);
delay(0.05);
outportb(0x378,91);
delay(0.05);
outportb(0x378,92);
delay(0.05);
outportb(0x378,93);
delay(0.05);
cont++;
}
while(cont<=175){
outportb(0x378,51);
delay(0.05);
outportb(0x378,54);
delay(0.05);
outportb(0x378,59);
delay(0.05);
outportb(0x378,60);
delay(0.05);
outportb(0x378,61);
delay(0.05);
outportb(0x378,62);
delay(0.05);
outportb(0x378,63);
delay(0.05);
cont++;
}
while(cont<=200){
outportb(0x378,51);
delay(0.05);
outportb(0x378,59);
delay(0.05);
outportb(0x378,67);
delay(0.05);
outportb(0x378,75);
delay(0.05);
outportb(0x378,179);
delay(0.05);
outportb(0x378,187);
delay(0.05);
cont++;
}
while(cont<=225){
outportb(0x378,51);
delay(0.05);
outportb(0x378,52);
delay(0.05);
outportb(0x378,53);
delay(0.05);
outportb(0x378,59);
delay(0.05);
outportb(0x378,61);
delay(0.05);
outportb(0x378,63);
delay(0.05);
outportb(0x378,67);
delay(0.05);
outportb(0x378,68);
delay(0.05);
outportb(0x378,69);
delay(0.05);
outportb(0x378,75);
delay(0.05);
outportb(0x378,77);
delay(0.05);
outportb(0x378,79);
delay(0.05);
outportb(0x378,83);
delay(0.05);
outportb(0x378,84);
delay(0.05);
outportb(0x378,85);
delay(0.05);
outportb(0x378,87);
delay(0.05);
outportb(0x378,91);
delay(0.05);
outportb(0x378,93);
delay(0.05);
outportb(0x378,95);
delay(0.05);
outportb(0x378,99);
delay(0.05);
outportb(0x378,100);
delay(0.05);
outportb(0x378,101);
delay(0.05);
outportb(0x378,107);
delay(0.05);
outportb(0x378,109);
delay(0.05);
outportb(0x378,111);
delay(0.05);
outportb(0x378,115);
delay(0.05);
outportb(0x378,116);
delay(0.05);
outportb(0x378,117);
delay(0.05);
outportb(0x378,119);
delay(0.05);
cont++;
}
getche();
closegraph();
ClosePortTalk();
}
--------------------------
en verdad espero que me puedas ayudar