Documente Academic
Documente Profesional
Documente Cultură
INFORME DEL PROYECTO 2 Titulo del proyecto Utilizacin del puerto paralelo
PP YY
1. 2.
2.1 Objetivos principales Utilizar el puerto paralelo en diversas aplicaciones controladas por una interfaz programada. Controlar varias aplicaciones desarrolladas para la utilizacin del puerto paralelo. 2.2 Objetivos secundarios Investigar la utilizacin del puerto paralelo. Controlar las salidas del puerto paralelo. Programar aplicaciones en las cuales se utilice el puerto paralelo. 2.3 Resumen Mediante la utilizacin de C# realizar aplicaciones en las cuales podamos controlar las salidas del puerto paralelo, realizar una aplicacin en la cual se utilice todas las salidas del puerto siendo estas las salidas del datos y pines de control en las cuales se realizara una secuencia de luces para comprobar la salida de datos. En otra aplicacin se realizara una aplicacin para el control de un circuito externo de potencia, el cual se activara o desactivara mediante un botn, teniendo en cuenta que en esta aplicacin se deber controlar el voltaje que
nos proporciona la salida del puerto paralelo y el voltaje con el cual funcionara el circuito de potencia en nuestro caso un foco de 110v. Nuestra ltima aplicacin ser un contador ascendente descendente el cual se realizara el inicio y cambio por medio del mismo botn. 2.4 Palabras clave: (Puerto Paralelo, pines salida, programacin)
2.5 Introduccin Para poder acceder a utilizar una interfaz Pc usuario debemos conocer el funcionamiento del puerto paralelo para lo cual debemos tener en cuales son los pines que vamos a utilizar, para esto expresamos que: Puerto de salida, puerto 888 va del pin 2 hasta el 9, por este puerto podemos sacar la informacin que queramos mandar a un circuito desde el ordenador, para lo cual tenemos 8 bits, el de menor peso es el pin 2 y el de mayor peso es el 9 siendo as que podemos tener hasta 256 posibles combinaciones. Puerto de entrada salida, puerto 890 y son los pines 1, 14, 16 y 17 este puerto es especial para mandar datos tanto de entrada como de salida, los cuales debemos analizar el valor de salida ya que las salidas de estos son negados. Ya que tenemos claro la configuracin del puerto paralelo debemos incluir la librera inpout32.dll en el system.32 del computador, al incluir esta librera deberamos aadir al programa de C#. Ahora tenemos un mtodo para sacar informacin por nuestro puerto. El mtodo Output maneja dos variables enteras iniciales, es la direccin de nuestro puerto de salida, que en nuestro caso es el 888, debido a que tenemos 8 bits en nuestro puerto de salida es posible manejar cada pin de nuestros ocho bits de la siguiente manera: nombre del puerto.Output(888, pin a utilizar), el pin a utilizar debe ser el numero binario transformado a decimal. 2.6 Materiales y Metodologa
Marco terico. Puerto paralelo Puerto paralelo. Es una interfaz entre un ordenador y un perifrico. El puerto paralelo transmite la informacin byte por byte, es decir que los 8 bits de datos que forman un byte viajan juntos. Un ejemplo de puerto paralelo es el puerto de la impresora. El Puerto Paralelo solo fue creado y usado para la interfaz de las impresoras y la P.C. hoy en da vemos que es uno de los mas usados para conectar diversos perifricos a su PC por su alta velocidad y fiabilidad en la transmisin de datos por lo cual, ha ido perfeccionndose cada da ms.[1]
El puerto paralelo de las computadoras, de acuerdo a la norma Centronics, est compuesto por un bus de comunicacin bidireccional de 8 bits de datos, adems de un conjunto de lneas de protocolo. Las lneas de comunicacin cuentan con un retenedor que mantiene el ltimo valor que les fue escrito hasta que se escribe un nuevo dato, las caractersticas elctricas son: Tensin de nivel alto: 3,3 o 5 V. Tensin de nivel bajo: 0 V. Intensidad de salida mxima: 2,6 mA. Intensidad de entrada mxima: 24 mA.
PUERTO PARALELO El puerto paralelo primeramente estaba previsto para ser utilizado nicamente para la conexin de las impresoras, en ordenadores antiguos este puerto no se le puede utilizar de forma bidireccional puesto que los driver de funcionamiento no lo permite. La programacin directa del registro puede comunicar bidireccional con el puerto. [2]
Programacin Los programas realizados permiten manejar datos procedentes del evento click de un botn en #, los cuales han sido almacenados en variables de memoria. Como sabemos, los datos contenidos en las variables de memoria se pierden al finalizar el programa que las utiliza. De esta manera no es posible guardar los datos introducidos durante una ejecucin del programa para ser utilizados en futuras ejecuciones. Los comandos utilizados la elaboracin de las aplicaciones a presentar son de programacin bsica, siendo estas comandos como timmer, eventos click de los botones, comparaciones y como novedad la utilizacin de banderas para el control de estados de los diferentes programas.
InitializeComponent();
}
f++; if (f%2==1)
{
secuencia();
}
else
{
tmr1.Enabled = false; tmr2.Enabled = false; tmr3.Enabled = false; tmr4.Enabled = false; tmr5.Enabled = false; tmr6.Enabled = false; tmr7.Enabled = false; tmr8.Enabled = false; tmr9.Enabled = false; tmr10.Enabled = false; tmr11.Enabled = false;
tmr12.Enabled = false; tmr13.Enabled = false; tmr14.Enabled = false; tmr15.Enabled = false; tmr16.Enabled = false; tmr17.Enabled = false; tmr18.Enabled = false; tmr19.Enabled = false; tmr20.Enabled = false; tmr21.Enabled = false; tmr22.Enabled = false; PortInterop.Output(888, 0); PortInterop.Output(890, 11); //btnSecuencia1.Visible = true;
}
// btnSecuencia1.Visible = false;
}
public void secuencia(){ tmr1.Enabled = true; tmr2.Enabled = true; tmr3.Enabled = true; tmr4.Enabled = true; tmr5.Enabled = true; tmr6.Enabled = true; tmr7.Enabled = true; tmr8.Enabled = true; tmr9.Enabled = true; tmr10.Enabled = true; tmr11.Enabled = true; tmr12.Enabled = true; tmr13.Enabled = true; tmr14.Enabled = true; tmr15.Enabled = true; tmr16.Enabled = true; tmr17.Enabled = true; tmr18.Enabled = true; tmr19.Enabled = true; tmr20.Enabled = true;
PortInterop.Output(888, 1); txt1.Text = Convert.ToString(1); txt2.Text = ; txt3.Text = ; txt4.Text = ; txt5.Text = ; txt6.Text = ; txt7.Text = ; txt8.Text = ; txt9.Text = ; txt10.Text = ; txt11.Text = ; txt12.Text = ;
}
tmr1.Enabled = false; txt1.Text = ; PortInterop.Output(888, 2); txt2.Text = Convert.ToString(2); txt3.Text = ; txt4.Text = ; txt5.Text = ; txt6.Text = ; txt7.Text = ; txt8.Text = ; txt9.Text = ; txt10.Text = ; txt11.Text = ; txt12.Text = ;
}
tmr2.Enabled = false; txt1.Text = ; txt2.Text = ; PortInterop.Output(888, 4); txt3.Text = Convert.ToString(3); txt4.Text = ; txt5.Text = ; txt6.Text = ; txt7.Text = ; txt8.Text = ; txt9.Text = ; txt10.Text = ; txt11.Text = ; txt12.Text = ;
}
tmr3.Enabled = false; txt1.Text = ; txt2.Text = ; txt3.Text = ; PortInterop.Output(888, 8); txt4.Text = Convert.ToString(4); txt5.Text = ; txt6.Text = ; txt7.Text = ; txt8.Text = ; txt9.Text = ; txt10.Text = ; txt11.Text = ; txt12.Text = ;
}
tmr5.Enabled = false; txt1.Text = ; txt2.Text = ; txt3.Text = ; txt4.Text = ; txt5.Text = ; PortInterop.Output(888, 32); txt6.Text = Convert.ToString(6); txt7.Text = ; txt8.Text = ; txt9.Text = ; txt10.Text = ; txt11.Text = ; txt12.Text = ;
}
tmr6.Enabled = false; txt1.Text = ; txt2.Text = ; txt3.Text = ; txt4.Text = ; txt5.Text = ; txt6.Text = ; PortInterop.Output(888, 64); txt7.Text = Convert.ToString(7); txt8.Text = ; txt9.Text = ; txt10.Text = ; txt11.Text = ; txt12.Text = ;
}
tmr7.Enabled = false; txt1.Text = ; txt2.Text = ; txt3.Text = ; txt4.Text = ; txt5.Text = ; txt6.Text = ; txt7.Text = ; PortInterop.Output(888, 128); txt8.Text = Convert.ToString(8); txt9.Text = ; txt10.Text = ; txt11.Text = ; txt12.Text = ;
}
tmr8.Enabled = false; PortInterop.Output(888, 0); txt1.Text = ; txt2.Text = ; txt3.Text = ; txt4.Text = ; txt5.Text = ; txt6.Text = ; txt7.Text = ; txt8.Text = ; PortInterop.Output(890, 10); txt9.Text = Convert.ToString(9); txt10.Text = ; txt11.Text = ; txt12.Text = ;
}
txt2.Text = ; txt3.Text = ; txt4.Text = ; txt5.Text = ; txt6.Text = ; txt7.Text = ; txt8.Text = ; txt9.Text = ; PortInterop.Output(890, 9); txt10.Text = Convert.ToString(10); txt11.Text = ; txt12.Text = ;
}
tmr10.Enabled = false; txt1.Text = ; txt2.Text = ; txt3.Text = ; txt4.Text = ; txt5.Text = ; txt6.Text = ; txt7.Text = ; txt8.Text = ; txt9.Text = ; txt10.Text = ; PortInterop.Output(890, 15); txt11.Text = Convert.ToString(11); txt12.Text = ;
}
tmr11.Enabled = false; txt1.Text = ; txt2.Text = ; txt3.Text = ; txt4.Text = ; txt5.Text = ; txt6.Text = ; txt7.Text = ; txt8.Text = ;
PortInterop.Output(888, 1);
}
tmr12.Enabled = false; txt1.Text = ; txt2.Text = ; txt3.Text = ; txt4.Text = ; txt5.Text = ; txt6.Text = ; txt7.Text = ; txt8.Text = ; txt9.Text = ; txt10.Text = ; txt12.Text = ; PortInterop.Output(890, 15); txt11.Text = Convert.ToString(11);
}
tmr13.Enabled = false; txt1.Text = ; txt2.Text = ; txt3.Text = ; txt4.Text = ; txt5.Text = ; txt6.Text = ; txt7.Text = ; txt8.Text = ; txt9.Text = ; txt11.Text = ;
tmr14.Enabled = false; txt1.Text = ; txt2.Text = ; txt3.Text = ; txt4.Text = ; txt5.Text = ; txt6.Text = ; txt7.Text = ; txt8.Text = ; txt10.Text = ; txt11.Text = ; txt12.Text = ; PortInterop.Output(890, 10); txt9.Text = Convert.ToString(9);
}
PortInterop.Output(890, 11); tmr15.Enabled = false; txt1.Text = ; txt2.Text = ; txt3.Text = ; txt4.Text = ; txt5.Text = ; txt6.Text = ; txt7.Text = ; txt9.Text = ; txt10.Text = ; txt11.Text = ; txt12.Text = ; PortInterop.Output(888, 128); txt8.Text = Convert.ToString(8);
}
tmr16.Enabled = false; txt1.Text = ; txt2.Text = ; txt3.Text = ; txt4.Text = ; txt5.Text = ; txt6.Text = ; txt8.Text = ; txt9.Text = ; txt10.Text = ; txt11.Text = ; txt12.Text = ; PortInterop.Output(888, 64); txt7.Text = Convert.ToString(7);
}
tmr17.Enabled = false; txt1.Text = ; txt2.Text = ; txt3.Text = ; txt4.Text = ; txt5.Text = ; txt7.Text = ; txt8.Text = ; txt9.Text = ; txt10.Text = ; txt11.Text = ; txt12.Text = ; PortInterop.Output(888, 32); txt6.Text = Convert.ToString(6);
}
tmr19.Enabled = false; txt1.Text = ; txt2.Text = ; txt3.Text = ; txt5.Text = ; txt6.Text = ; txt7.Text = ; txt8.Text = ; txt9.Text = ; txt10.Text = ; txt11.Text = ; txt12.Text = ; PortInterop.Output(888, 8); txt4.Text = Convert.ToString(4);
}
tmr20.Enabled = false; txt1.Text = ; txt2.Text = ; txt4.Text = ; txt5.Text = ; txt6.Text = ; txt7.Text = ; txt8.Text = ; txt9.Text = ; txt10.Text = ; txt11.Text = ; txt12.Text = ; PortInterop.Output(888, 4); txt3.Text = Convert.ToString(3);
tmr21.Enabled = false; txt1.Text = ; txt3.Text = ; txt4.Text = ; txt5.Text = ; txt6.Text = ; txt7.Text = ; txt8.Text = ; txt9.Text = ; txt10.Text = ; txt11.Text = ; txt12.Text = ; PortInterop.Output(888, 2); txt2.Text = Convert.ToString(2); secuencia();
}
this.Close();
} }
InitializeComponent();
}
f++; if (f % 2 == 1)
{
tmr2.Stop(); tmr1.Start();
}
else
{
tmr1.Stop(); tmr2.Start();
} }
a = 0; b = 0; f = 0;
}
a++; if (a == 10)
{
a = 0; b++; if (b==10)
{
b = 0;
} }
a--; if (a == -1)
a = 9; b--; if (b == -1)
{
b = 9;
} }
this.Close();
} }
InitializeComponent();
}
g++; if (g % 2 == 1)
{
else
{
this.Close();
} }
2.7 Resultados y Discusin Al realiza un anlisis del funcionamiento podemos recalcar que existen varias opciones manifestaciones de los eventos que pueden realizarse si se mantiene presionado el botn, pero al realizar una prueba de funcionamiento esto se queda limitado a una sola opcin de acuerdo a como fue diseado lgicamente el programa, en nuestro caso el estado cambia cuando soltemos el botn, si lo mantenemos presionado el estado no cambia ni se realiza cambios en el funcionamiento del mismo. 2.8 Conclusiones Las aplicaciones realizadas se comportan de acuerdo a las necesidades que tuvimos al desarrollarlas, al utilizar estados para que realice un proceso determinado limitamos el nivel de errores que se pueden presentar al dejar solo como eventos en funcin de botn, lo cual nos ayuda a mantener un control de todos los procesos que se puedan realizar en la aplicacin. Al probar el funcionamiento del puerto y medir cuanto son los niveles de voltaje que este nos brinda, pudimos rescatar que no existe un valor real como nos dice la teora, por lo cual debemos realizar operaciones de amplificacin de dichos voltajes para la respectiva utilizacin en los diferentes circuitos armados en este practica. 2.9 Referencias bibliogrficas [1] http://mimosa.pntic.mec.es/~flarrosa/puerto.pdf [2] El Gran libro del PC interno: programacin de sistemas hardware a fondo By Luis Durn Rodrguez capitulo 29 Pag 1055