InicioApuntes Y MonografiasPascal Accionar "Mottor Steppe" <Codigo fuent
Pascal Accionar "Mottor Steppe" <Codigo fuente>



Pascal Accionar "Mottor Steppe"   <Codigo fuent


El programa puede mover o accionar los motores Stepper por el puerto paralelo, aqui se los dejo, queda a criterio de ustedes si lo usan adecuadamente, porque si lo hacen mal o no saben la dirección del BIOS de su puerto Paralelo, pueden hacer estragos


program steppermotor;

uses crt;

const portAddr=$3BC;
motors=2;

var counter, a: integer;

procedure Low;
{Load one LOW bit in shift register}
begin
port[portAddr]:=$4; { [0100]b }
port[portAddr]:=$0; { b }
end;

procedure High;
{Load one HIGH bit in shift register}
begin
port[portAddr]:=$2; { b }
port[portAddr]:=$6; { [0110]b }
port[portAddr]:=$0; { b }
end;

procedure Strobe;
{Create STROBE signal for shift registers
to latch contents of shift reg. to output}
begin
port[portAddr]:=$1; { b }
port[portAddr]:=$0; { b }
end;

procedure Init;
{Makes all outputs of shift register(s) LOW}
begin
port[portAddr]:=$0; { b }
for counter := 1 to (8*motors) do Low;
Strobe;
end;

procedure Step 1;
{Load pattern for Step 1 [1000 1000]b }
begin
High; Low; Low; Low; High; Low; Low; Low;
end;

procedure Step 2;
{Load pattern for Step 2 [0010 1000]b }
begin
Low; Low; High; Low; High; Low; Low; Low;
end;

procedure Step 3;
{Load pattern for Step 3 [0100 1000]b }
begin
Low; High; Low; Low; High; Low; Low; Low;
end;

procedure Step 4;
{Load pattern for Step 4 [0001 1000]b }
begin
Low; Low; Low; High; High; Low; Low; Low;
end;

procedure Step 2Res;
{Load pattern for Step 2 with R3 in series
[0010 0000]b }
begin
Low; Low; High; Low; Low; Low; Low; Low;
end;

procedure Step 4Res;
{Load pattern for Step 4 with R3 in series
[0001 0000]b }
begin
Low; Low; Low; High; Low; Low; Low; Low;
end;

begin
{User defined}
ClrScr;
Init;
for a:= 1 to 50 do
begin
{Example causes one (slow) turn of both
motors in opposite direction.
mot_2; mot_1; strobe 1+2; Delay
--+------+-------+------+-----
| | | |
V V V V }
Step 1; Step 4; Strobe; delay(10);
Step 2; Step 3; Strobe; delay(10);
Step 3; Step 2; Strobe; delay(10);
Step 4; Step 1; Strobe; delay(10);
end;
delay(1000);
for a:= 1 to 50 do
begin
{Example causes one (fast) turn
of both motors in opposite direction.
mot_2; mot_1; strobe 1+2; Delay
--+------+-------+------+-----
| | | |
V V V V }
Step 4; Step 1; Strobe; delay(5);
Step 3; Step 2; Strobe; delay(5);
Step 2; Step 3; Strobe; delay(5);
Step 1; Step 4; Strobe; delay(5);
end;
Step 2Res;Step 2Res;
Step 4Res;Step 4Res;
Strobe;
end.


Datos archivados del Taringa! original
0puntos
502visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
1visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

w
Usuario
Puntos0
Posts44
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.