0% encontró este documento útil (0 votos)
2K vistas70 páginas

Carrito en C++

Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2K vistas70 páginas

Carrito en C++

Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD TECNOLGICA DE TULA TEPEJI

OPTATIVA I
CARRITO CONTROLADO CON TURBO C++

DOCENTE:
ING. JOSE ALBERTO GARCIA CHAVEZ

CARRERA:
INGENIERIA EN MECATRNICA

ALUMNOS:
GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WILFRIDO CRDENAS GONZLEZ

CICLO ESCOLAR

2010 2011

ABRIL DE 2011.
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

INDICE

INTRODUCCION

ESTRUCTURAS BASICAS EN C++

CONDICIONES

CICLOS DE CONTROL

SENTENCIAS

PROYECTO REALIZADO: CARRITO EN TURBO C++ INFORMACION ADICIONAL

7 8

Conceptos Bsicos de graficacion Conexin y programacin con el puerto paralelo Puerto paralelo en un PC Entradas y salidas del Puerto Paralelo Desarrollo del Proyecto PROGRAMA EVIDENCIAS IMAGEN VISUAL DE PANTALLA (Librera LAW)

8 15 17 20 26 30 65 68

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

INTRODUCCION

Compilador de C, de Borland, que se emplea para crear una gran variedad de productos comerciales. Es conocido por su bien diseado depurador. Las versiones orientadas a objetos, de Borland, de C son Turbo C++ y Borland C++. EL lenguaje C es el resultado de un proceso de desarrollo, este influenci a otro, inventado por Ken Thompson. En los aos 70; ste lenguaje llev a la aparicin del C. Con la popularidad de las microcomputadoras muchas compaas comenzaron a implementar su propio C por lo cual surgieron discrepancias entre s. Algunos de las C existentes son:

C es un lenguaje de programacin de nivel medio ya que combina los elementos del lenguaje de alto nivel con la funcionalidad del ensamblador. Su caracterstica principal es ser prtale, es decir, es posible adaptar los programas escritos para un tipo de computadora en otra. Otra de sus caractersticas principales es el ser estructurado, es decir, el programa se divide en mdulos (funciones) independientes entre s.
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

El lenguaje C inicialmente fue creado para la programacin de:

Actualmente, debido a sus caractersticas, puede ser utilizado para todo tipo de programas.

ESTRUCTURA BASICA EN TURBO C++

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

Estructuras de Decisin o Seleccin

Estructuras de Repeticin o Bucles

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

PROYECTO: EL CARRITO EN TURBO C++

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

INFORMACION ADICIONAL
CONCEPTOS BSICOS DE GRAFICACIN Tal como un artista selecciona diversos medios para representar sus pinturas, los programadores, escogen un modo y formato especial para habilitar el monitor para graficar. Cada modo proporciona ciertas caractersticas como la resolucin, nmero posible de colores, modo texto o modo grfico y otros elementos donde cada modo requiere de cierto equipo (hardware). Resolucin Las imgenes grficas mostradas en un monitor de computadora se componen de pequeos puntos llamados pxeles, los cuales estn distribuidos en la pantalla en filas; existe una cantidad especfica de filas y cada fila tiene una cantidad especfica de pxeles. La cantidad de pxeles usada en la pantalla se conoce como resolucin. Cada modo grfico tiene una resolucin particular. Inicializar el monitor en modo grfico Para habilitar el monitor en modo grfico y utilizar sus pxeles, es necesario incluir el encabezado #include<graphics.h> que contiene las declaraciones y funciones relacionadas con graficacin e inicializar el monitor en modo grfico y utilizar sus pxeles con la funcin initgraph(). Dicha funcin requiere las declaraciones mostradas en la Fig. 1. int monitor=DETECT; // Variable para detectar el tipo de monitor int modo; // Modo de operacin del monitor

Tambin se puede declarar e inicializar con un tipo de monitor especfico como lo presenta la Fig. 2. int monitor=VGA; // Variable para usar el monitor tipo VGA int modo=VGAHI; // Usar el monitor VGA a su maxima resolucin

La funcin initgraph() Una vez declaradas las variables monitor y modo que controlarn la resolucin identificando el tipo de pantalla o monitor y su modo de operacin respectivamente, se utiliza la funcin initgraph() para habilitar el monitor seleccionado en modo grfico. La funcin initgraph() tiene 3 parmetros o argumentos: 1) La variable que identifica el monitor. 2) El modo de operacin grfico.
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

3) Subdirectorio que contiene los controladores de los monitores (archivos con extensin BGI) y los archivos con los tipos de letra (extensin CHR) como lo muestra la Fig.3.

Si se desea usar el directorio actual por defecto, se utiliza la funcin initgraph() como lo indica la Fig. 4

La funcin closegraph() Para terminar de usar el monitor en modo grfico y devolverlo a su modo de texto normal se usa la funcin closegraph(). Uso de coordenadas Una vez que se inicializa el monitor en modo grfico, las coordenadas tienen al pxel como unidad de medida. La funcin getmaxx() calcula la cantidad de pxeles por rengln y la funcin getmaxy() calcula la cantidad de renglones de la pantalla. Las funciones de grficos tienen como estndar el orden de manejo de coordenadas como columna, rengln; es decir, primero se anota la columna y despus el rengln para posicionarse en dicha coordenada. FUNCIONES DE GRAFICACIN Sera muy difcil considerar todas las opciones posibles de todas las funciones de graficacin; sin embargo, en esta antologa se tratan los temas fundamentales para implementar este tipo de funciones. Bsicamente mostraremos que antes de utilizar un color, un tipo de lnea, de relleno, etc. es necesario definirlo. Pxeles, lneas, figuras geomtricas, colores y rellenos En esta seccin se presentan las funciones bsicas de graficacin, utilizadas para colocar pixeles, lneas, figuras geomtricas, etc. en la pantalla. La funcin putpixel() Tal como se mencion en la seccin anterior, al habilitar el monitor en modo grfico, la pantalla se divide en pequeos puntos llamados pixeles. La funcin putpixel() coloca un punto o pxel de un color especfico en determinada coordenada de la pantalla. Esta funcin requiere 3 argumentos (Fig. 5): 1) Columna del punto (coordenada x). 2) Rengln del punto (coordenada y). 3) Color del pxel.
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

El cdigo fuente del programa de la Fig. 6 muestra un ejemplo que inicializa el monitor en modo grfico y coloca , en forma aleatoria, mltiples pixeles de colores en la pantalla hasta que se oprima cualquier tecla.

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

La funcin line() Esta funcin se utiliza para dibujar una lnea entre 2 puntos. Para ello, la funcin requiere 4 parmetros que representan las coordenadas (en pixeles) de los dos puntos que se desea unir mediante una lnea recta. La Fig. 7 muestra un ejemplo que une los puntos 50,100 y 300,200 (columna, rengln respectivamente). /* Programa para inicializar el monitor en modo grafico Tecnicas avanzadas de programacion en Lenguaje C++ */ #include <graphics.h> // Encabezado con declaraciones de graficos #include <conio.h> // Para el uso de kbhit() #include <stdlib.h> // Para el uso de random() #include <dos.h> // Para el uso de delay void main(void) { int monitor=VGA, modo=VGAHI; // Declaracion de tipo de monitor y modo initgraph(&monitor,&modo,"\\tc\\bgi"); // Inicializa el modo grafico indicando el monitor y modo utilizado // El subdirectorio \\tc\\bgi indica la ruta de localizacion de los // archivos *.BGI (monitores) y *.CHR (tipos de letras) while(!kbhit()) // Mientras no se oprima cualquier tecla { putpixel(random(getmaxx()),random(getmaxy()),random(getmaxcolor ())); // Coloca un pixel en la pantalla, seleccionando al azar la columna // (1..getmaxx), el renglon (1..getmaxy) y el color (1..getmaxcolor) delay(5); } closegraph(); // Termina el modo grafico (vuelve a su modo normal) }

La funcin setlinestyle() Esta funcin se utiliza para determinar el tipo de lnea o trazo que se desea. Se pueden utilizar trazos con lnea continua, lnea punteada, lnea interrumpida, o un patrn de lnea definido por el usuario. Esta funcin requiere 3 argumentos: Tipo de lnea: Puede ser SOLID_LINE, DOTTED_LINE, CENTER_LINE, DASHED_LINE o USERBIT_LINE. Patrn: Este argumento regularmente es ignorado (excepto cuando se trata de un tipo de lnea definido por el usuario). Ancho de lnea: Define la amplitud del trazo.

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

La Fig. 8 muestra un ejemplo que une los puntos 50,100 y 300,200 con una lnea punteada.

La funcin circle() Esta funcin dibuja un crculo y requiere 3 argumentos: 1) Coordenada de la columna del centro (en pixeles). 2) Coordenada del rengln del centro (en pixeles). 3) Radio del crculo (en pixeles). La Fig. 9 dibuja un crculo cuyo centro se encuentra en el punto 300,150 y su radio es de 27 pixeles.

Se pueden combinar funciones de graficacin para obtener trazos especficos o determinados colores, slo es cuestin de definir previamente el color o tipo de trazo deseado para despus invocar la funcin de graficacin deseada. El ejemplo de la Fig. 10 muestra el cdigo necesario para dibujar un crculo con un trazo interrumpido. En este caso primeramente se define el tipo de lnea (trazo) deseado y posteriormente se invoca la funcin circle() con los parmetros adecuados.

La funcin rectangle() Esta funcin dibuja un rectngulo indicando las coordenadas de las esquinas superior izquierda e inferior derecha respectivamente. La Fig. 11 muestra un ejemplo de una funcin que dibuja un rectngulo desde el punto 50,100 hasta el punto 400,250.

La funcin ellipse() Se usa esta funcin para dibujar un arco elptico o una elipse completa. Esta funcin requiere 6 argumentos: 1) Columna del centro de la elipse (coordenada x).
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

2) Rengln del centro de la elipse (coordenada y). 3) ngulo inicial del arco. 4) ngulo donde termina el arco. 5) Radio horizontal de la elipse. 6) Radio vertical de la elipse. Se puede dibujar una elipse completa indicando el ngulo inicial como 0 (cero) y el ngulo final como 359 . La Fig. 12 dibuja una elipse completa con centro en 100,150, con radio horizontal de 25 y radio vertical de 40 pixeles.

La funcin arc() Se usa esta funcin para dibujar un arco circular. Esta funcin requiere argumentos: 1) Columna del centro del arco (coordenada x). 2) Rengln del centro del arco (coordenada y). 3) ngulo inicial del arco. 4) ngulo donde termina el arco. Los puntos de inicio y final del arco se especifican por medio de sus ngulos medidos en el sentido de las manecillas del reloj; es decir, con 0 en las 3:00, 90 en las 12:00 y as sucesivamente. La Fig. 13 dibuja un arco de 30 con centro en 100,150 y radio 40 pixeles.

La funcin setcolor() Se utiliza esta funcin para definir el color de los trazos siguientes; es decir, antes de dibujar un trazo de un color especfico, ste debe definirse. Esta funcin slo tiene un argumento que representa el cdigo del color deseado. P. ejem. BLACK, RED, BLUE, GREEN, YELLOW, etc. o bien su nmero entero correspondiente. La Fig. 14 muestra la tabla de colores y sus respectivos valores.

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

La Fig. 15 muestra un ejemplo del uso de la funcin setcolor() donde se dibuja un circulo de color rojo y despus un rectangulo de color azul.

Definiendo el tipo de relleno de una figura con la funcin setfillstyle() Si se desea rellenar una figura, es necesario definir previamente el patrn y color del relleno. La Fig. 16 muestra los patrones de relleno disponibles.

PATRN VALOR DESCRIPCIN


ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

Por ejemplo, si se desea definir el patrn de relleno de puntos cercanos de color rojo, se usa la funcin setfillstyle() como lo muestra la Fig. 17. Setfillstyle (CLOSE_DOT_FILL, RED);

Conexin y programacin con el puerto paralelo Las comunicaciones en paralelo se realizan mediante la transferencia simultnea de todos los bits que constituyen el dato (byte o palabra). Presentan la ventaja de que la transmisin puede ser ms rpida. Sin embargo, las comunicaciones en paralelo no pueden ser implementadas para grandes distancias debido a que no es viable la conexin fsica de todas las lneas necesarias. Las comunicaciones en paralelo propiamente dichas no han sido normalizadas, lo que s se reconoce es la norma Centronic:, para la conexin del PC a la impresora, mediante el envo simultneo de 8 bits de datos (un byte), adems de un conjunto de lneas de protocolo (handshake o intercambio). La operacin ms frecuente en la que interviene el puerto paralelo del PC es en el envo de datos a la impresora. Los antiguos circuitos integrados que se incluan en las tarjetas de interface del puerto paralelo no permitan la recepcin de datos, slo estaban diseados para el envo de informacin al exterior. Las versiones recientes de estas tarjetas de interface de puertos paralelo s permiten la recepcin de datos y dan la posibilidad, por ejemplo, de intercambiar informacin entre PC a travs del puerto paralelo, siempre que se utilice el software adecuado.

La norma Centronics hace referencia a las caractersticas de la conexin entre un interface de puerto paralelo y una impresora. Las lneas son latcheadas, esto es, mantienen siempre el ltimo valor establecido en ellas mientras no se cambien expresamente y los niveles de tensin y de corriente coinciden con los niveles de la lgica TTL, cuyos valores tpicos son: -Tensin de nivel alto: 5 V. -Tensin de nivel bajo: 0 v. -Intensidad de salida mxima: 2.6 mA. -Intensidad de entrada mxima: 24 mA. La norma Centronics establece el nombre y las caractersticas de 36 lneas elctricas para la conexin entre el PC y la impresora.
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

En realidad, para la transferencia de las seales de datos y de control a travs de la tarjeta de interface paralelo slo se requieren 18 lneas, las restantes son lneas de masa que se enrollan alrededor de los cables de seal para proporcionarles apantallamiento y proteccin contra interferencias. Por esto, las citadas tarjetas suelen incorporar un conector hembra DB-25, mientras que prcticamente todas las impresoras incorporan un conector hembra tipo Centronics macho de 36 pines, Los cables comerciales para la conexin paralelo entre el PC y la impresora tienen una longitud de 2 metros, aunque no es recomendable que tengan una longitud superior a 5 metros si se desea una conexin fiable y sin interferencias. En la siguiente tabla se describen todas las lneas del estndar Centronics, con indicacin de su denominacin y el nmero de pin que le corresponde, tanto en el conector tipo Centronics de 36 pines como en el conector DB-25. En esa tabla se indica que las 8 lneas correspondientes a los bits de datos (D0 a D7) son lneas de sal ida, pues as lo establece el estndar Centronics, sin embargo y sobre todo en las implementaciones ms recientes, la circuitera asociada al interface del puerto paralelo puede ser tal que las lneas de datos pueden ser ledas desde el PC y, por tanto, ser consideradas como lneas bidireccionales, aunque sea en determinadas condiciones y con el software adecuado.

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

Descripcin de los pines del Puerto paralelo:

El puerto paralelo en un PC Todos los ordenadores tipo PC estn equipados, al menos, con una tarjeta de interface paralelo, frecuentemente junto a un interface serie. Como sistema operativo, el DOS puede gestionar hasta cuatro interfaces de puertos paralelo, LPT1 , LPT2 , LPT 3 y LPT4, adems, reserva las siglas PRN como sinnimo del LPT 1, de modo que puede ser tratado como un archivo genrico. En el byte 0040:0011 del BIOS almacena el nmero de interfaces de puertos paralelo que se hayan instalado en el equipo. La direccin de entrada/salida de cada uno de los puertos paralelo y el nmero
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

de puertos instalados en un PC se muestra en la pantalla inicial de arranque del equipo es frecuente, casi estandard que las direcciones de los dos primeros puertos paralelos sean las siguientes: LPT1 = 0x378 Hexadecimal LPT2 = 0x278 Hexadecimal Las tarjetas del puerto paralelo tiene una estructura muy simple; consta de tres registros: de control, de estado y de datos. Todas las seales que intervienen en el puerto tienen asociado un bit en uno de esos registros, de acuerdo con las funciones asignadas a cada lnea en particular. El registro de datos Es de tipo latch de 8 bits, que puede ser ledo y escrito desde el procesador. Es el registro donde el procesador, en operaciones de salida (OUT), pone el dato que se quiere enviar a la impresora y su direccin coincide con la direccin base del puerto paralelo ( 0x 378 en LPT 1 ). En la Figura 32.1 se muestra la distribucin de los bits de este registro y los pines asociados a cada uno de ellos en el conector DB-25.

El registro de estado El registro de estado indica la situacin actual de la impresora conectada al puerto, de acuerdo con los niveles de tensin que tengan las lneas ACK, BSY, PAP y OF/ON , lo que permite controlar el comportamiento de la impresora. Se trata de un registro de entrada (Lectura) de informacin, su direccin se obtiene sumando 1 a la direccin base del puerto (0x379 en LPT1).

Error es 11,10,12,12,15 Los bits de este registro se designan segn se muestran en la Figura 32.2, en la que el smbolo / delante del nombre del bit indica que es activo a nivel bajo.
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

Pero el bit 7 adems ( / BSY ) del registro de estado (bit 7) es invertido por el hardware y, por tanto, la lnea tiene un nivel complementado al que aparece en ese bit. El significado que tienen los bits de este registro es el siguiente: Si el bit 7 (/BSY Busy) est a O, significa que la impresora est ocupada (buffer de impresin lleno, procesando informacin, pendiente de inicializar, etc. ). El bit 6 (/ACK Acknoledge) indica que se ha producido una transferencia correcta: cuando del puerto paralelo se transfiere un byte a la impresora, la impresora activa la lnea ACK de reconocimiento del carcter y, como consecuencia, el bit ACK del registro de estado pasa a nivel bajo; cuando el bit ACK est a nivel alto, significa que la impresora est ocupada y no se pueden realizar envos. El bit 5 (PAP Paper) si est a 1, seala que la impresora no dispone de papel. El bit 4 (OF/ON Line Off) indica cuando est a 1, que la impresora no est en lnea. El bit 3 (ERR) si est a 0, indica que se ha producido un error de impresora (mal funcionamiento, falta de papel, impresora fuera de lnea ...). Los bits 0,1 y 2 no se utilizan. El registro de control El registro de control permite controlar las transferencias de informacin con la impresora, y puede ser escrito y ledo desde el microprocesador. Es un registro de entrada/salida cuya direccin se obtiene sumando 2 a la direccin base del puerto ( 0x37A en L PT 1 ). Los bits de este registro se designan en la Figura 32.3, donde el smbolo / delante del nombre del bit indica que es activo a nivel bajo.

El smbolo ( * ) indica que los bits STR, ALF y OSL del registro de control son invertidos por el hardware con relacin a las lneas correspondientes al cable de conexin, por lo que el nivel de los bits 0,1 y 3 del registro es complementado con relacin a las lneas correspondientes. El significado que tienen los bits de este registro es el siguiente: El bit 4 ( IRQ ) es el que permite controlar la generacin de interrupciones de tipo hardware desde el puerto paralelo. Si este bit est a 1, el interface paralelo puede
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

generar la peticin de interrupcin IRQ7 (en LPT1), que se corresponden con las interrupcin 0x0Fh respectivamente del procesador 80X86. Esta peticin de interrupcin se produce cuando se da una transicin HL en la lnea ACK. El bit 3 (DSL) : La mayora de las impresoras paralelo IBM-compabiles, no utilizan esta lnea y son activadas con un pulsador de on-line. El bit 2 (INI) produce una inicializacin de la impresora ( es poco utilizado ). Si el bit 1 (ALF) est a nivel alto, la impresora produce automticamente un cambio de lnea (LF) cada vez que recibe un retorno de carro (CR). El bit 0 (STR) controla la lnea que permite validar el dato existente en el registro de datos. La puesta a 1 del bit STR genera un impulso corto que indica a la impresora que el carcter del registro de datos es vlido y debe ser aceptado. As pues, cada vez que se precise enviar un carcter, no basta con ponerlo en el registro de datos, sino que hay que hacer un reset en el bit STR del registro de control y validar el dato volviendo a poner un 1 en ese bit. Los bits 5, 6 y 7 no se utilizan. Entradas y salidas por el puerto paralelo Al hablar de operaciones de entrada y salida por el puerto paralelo no debe olvidarse que, inicialmente, este elemento se desarroll de acuerdo con el estn dar Centronics con el fin, casi exclusivo, de que el PC pudiese enviar datos en paralelo a la impresora conectada, no se pens en la posibilidad inversa: que el PC pudiese recibir datos a travs de ese puerto. Las operaciones de entrada y salida de informacin a travs del puerto paralelo en el PC las realizaremos gestionando el puerto paralelo en el nivel de registros, es decir, programando directamente los circuitos integrados o chips que constituyen la tarjeta de interface, lo cual permitir aprovechar al mximo todas las posibilidades que ofrezca realmente el hardware de la tarjeta de interface. Caractersticas E/S Cuando usamos el puerto paralelo para otro cometido distinto al original, solo,podemos hablar de 12 lneas de salida de informacin desde el ordenador: pines del 2 al 9 registro de datos pines 1,14, 16 y 17 registro de control 15 lneas de entrada al mismo: pines 2-9 registro de datos pines 10,11,12,13 y 15 registro de estado
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

Esto hace del puerto paralelo un interface de comunicacin con el exterior bastante flexible. El registro de estado es de slo lectura. Cuando se lee este registro, lo que se recibe es el estado lgico De los pines 10, 11, 12, 13 y 15 del conector DB-25 (el bit S 7 contiene el complemento del estado de la lnea). Los tres bits de menor peso (SO-S2) no se utilizan y, habitualmente, se encuentran a nivel alto El registro de control es parcialmente bidireccional. Cuando se escribe en los cuatro bits de menor peso (C0 - C3 ) lo que se hace es establecer el nivel lgico de los pines C 2 de forma directa y C0, C 1 y C 3 de forma complementada. Los tres bits de mayor peso (C 5 C 7) no se utilizan. De forma experimental, se ha podido comprobar que, slo en algunas tarjetas de interface paralelo, el bit C 6 del registro de control influye en la configuracin, de modo que si C 6 = 0 las I lneas de datos se configuran como ENTRADAS y si C 6 = 1 las lneas de datos se configuran como SALIDAS. Otras tarjetas, sobre todo si son bidireccionales, no permiten el cambio de nivel de ese bit. El registro de datos es de tipo latch de lectura y de escritura, de modo que cuando se realiza una operacin de escritura (OUT) el dato se carga en los bits correspondientes
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

y las lneas asociadas del conector tienden a alcanzar la tensin correspondiente a ese estado. En algunas ocasiones las lneas de datos de la tarjeta de interface paralelo (Centronics) son bidireccionales, pero la etapa de salida se ha construido mediante buffers con transistores en colector abierto. En este caso, el hecho de que las operaciones de entrada y salida se hagan por las mismas lneas, condiciona notablemente el proceso de lectura, ya que con esa configuracin electrnica de las lneas de datos (D0 - D7), los valores lgicos ledos dependern del nivel lgico presente en el registro y del valor de tensin en la lnea ( que no tienen por qu coincidir) de acuerdo con lo mostrado en la Tabla 32.2.

A la vista de la Tabla 32.2, lo que se deduce es que, si se va a realizar una operacin de lectura sobre el puerto paralelo, lo que se va a leer realmente es la operacin AND lgica entre el nivel lgico del registro y el nivel lgico de la lnea, lo que implica que, si se desea realizar una lectura real del estado de las lneas, deber escribirse antes el dato 0xFF en el registro de datos del puerto paralelo. La tarjeta de E/S que se va a utilizar es un simulador de impresora, donde se pueden activar los 8 bits de datos y realizar lecturas del registro de control. Las instrucciones en Turbo C que dan acceso a los puertos estn en la librera conio.h y son, para escribir, outp (puerto ,dato), y para leer inp (puerto). La tarjeta consta de 2 bferes para aislar las conexiones desde al PC y el exterior. Cada Led representa 1 bit del registro de datos, siendo el Led superior el correspondiente a D0 y el inferior al D7. Debemos pensar que si tenemos 8 bits de datos, cada uno de ellos se encendera de acuerdo a la potencia de 2 que nos da su peso, as los datos 1,2,4,8,16,32,64 y 128, encenderan cada uno de los Leds D0 a D7. Si queremos activar el Led de D3 escribiramos la siguiente instruccin en C: outp (0x378, 8) -instruccin -puerto -dato Uso de la tarjeta como secuenciador Si pensamos en la estructura real de un circuito digital que realice una secuenciacin veremos que se asemeja a este diagrama:
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

En una memoria Eprom guardamos los datos y mediante un contador fijo vamos leyendo las distintas posiciones. Este circuito simple tiene el inconveniente poder realizar slo una secuencia programada, aunque con alguna lgica adicional podemos incluir varios programas y seleccionarlos a posteriori. Vemos que es necesario un circuito contador y tambin presenta el problema de modificar el programa de la secuenciacin, que debe ser extrada la memoria, borrarla completamente, y re grabar el nuevo programa y todos los anteriores. Si utilizamos una tarjeta de E/S nos podemos olvidar de la Eprom e implementarla mediante una matriz. Podemos declarar una matriz de caracteres, cuyos valores estn dentro del rango de 8 bits y se puede inicializar la matriz con el programa o secuencia que necesitemos. Luego mediante bucles del tipo for o while se puede recorrer la matriz, e incluso variar el recorrido y el programa en funcin de ciertas condiciones. Un ejemplos : Recorrido del puerto: #include <conio.h> void main (void) { char i=0; for (i=0;i<256;i++) outp (0x378,i); } Parpadeo de todos los leds de forma simultnea durante 10 veces: #include <conio.h> void main (void) { char i; for (i=0;i<10;i++) outp (0x378,255); outp (0x378,0); } Encendido secuencial ascendente descendente #include <conio.h>
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

void main (void) { char datos [ ]={1,2,4,8,16,32,64,128}; char i; outp (0x378,0); for (i=0,i<8,i++) // Recorrido ascendente outp (0x378,datos[i]); outp (0x378,0); for (i=7,i<0,i--) outp (0x378,datos[i]); // Recorrido descendente }

Uno de los posibles convertidores que cumplen todos nuestros requerimientos es el LTC 1092 de Linear Technology. Su funcionamiento es el siguiente: El integrado LTC 1092 comienza su ciclo cuando la lnea de seleccin (CS) se pone a cero. Despus de unos 2 ciclos de estabilizacin el integrado proporciona una conversin por aproximaciones sucesivas, para despus transmitir el resultado mediante 10 pulsos de reloj (1 por bit). Esta seal ser generada ordenador. La forma de hacerlo es fcil. Se pone una de las salidas del puerto paralelo alto, se espera un poco, despus se vuelve a poner a nivel bajo y volvemos a esperar otro poco; y as sucesivamente. En medio de este proceso leemos el valor que nos proporciona el convertidor. La frecuencia de muestreo debe ser entre 10KHz y 500Khz. El resto de las lneas del puerto paralelo se situarn a nivel alto para que todas ellas en paralelo puedan alimentar al circuito. Otros componentes: Todos los convertidores AD necesitan una tensin de referencia que es aquella que equivale al fondo de escala del convertidor. Si el circuito es de 10 bits podemos alcanzar hasta 210-1= 1023Vref. y 0 0voltios. Mediante el integrado LM336 de National generamos una tensin estable y prcticamente inmune a cambios de temperatura centrada en 2.49v y gracias a una resistencia ajustable regulamos a 1 voltio. (Tcnicamente el circuito puede ajustarse hasta medir tensiones de 2.5v de fondo de escala). Ya slo nos queda por describir el ltimo componente, que es el sensor de temperatura. Se trata del LM35 que ofrece una tensin /C de 0.01 voltio, as 0 0 voltios y 25 0,25 voltios. Como el fondo de escala es de 1 voltio la temperatura mxima es de 100 grados.
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

Ahora se requiriere de un programa en el PC con el fin de transformar las seales analgicas en digitales. Como podemos ver en listado adjunto podemos direccionar el puerto paralelo realizando una operacin de salida (OUT) en puerto correspondiente, que por defecto es 0x378h para el LPT1

Recordemos que todas las salidas deben ponerse a nivel alto, exceptuando aquellas donde van a existir variaciones. La programacin del chipLTC1092 es relativamente sencilla. Si seguimos el esquema, el bit 0 del puerto corresponde con la seal CS mientras que el bit 1 corresponde con la seal de reloj. Para la entrada de datos se utiliza el bit 7 del registro de estado (pin 11). Tenemos dos macros, denominadas HIGH y LOW que determinan el estado del reloj. El algoritmo opera de la siguiente forma a la hora de realizar una conversin: en primer lugar, con el reloj en estado bajo, procedemos a activar la lnea CS, que debe pasar del estado alto de reposo al bajo de comienzo de actividad. Deber mantenerse en este estado bajo hasta terminar el ciclo, momento en el cual se alzar. Seguidamente, se produce un ciclo de reloj, es decir , se pone el reloj a nivel bajo y acto seguido a nivel alto. En este ciclo no se realiza ninguna operacin. A partir de este momento, todo est preparado para recibir los bits uno a uno. En cada ciclo de reloj leeremos el puerto de entrada recibiendo un bit. Dicho de otra manera, subimos el bit de reloj, lo bajamos y leemos un bit en el puerto. Esta operacin la realizaremos diez veces, obteniendo as
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

diez bits, de forma que nos llega primero el de mayor peso (D9) [en el programa b=512 porque son 10 bits] y finalmente el de menor (Do). El resultado obtenido puede verse influenciado por inestabilidades fruto de la electrnica, por lo que es recomendable el empleo de un filtro que estabiliza la lectura. En general, las medidas ofrecidas por el tienen una gran estabilidad, aunque es posible que en ocasiones se pueda producir algn "ruido" externo que estropee el valor de la seal. Para minimizar estos problemas, se suele emplear algn algoritmo que obtenga la media de tres o cuatro lecturas consecutivas, lo que suaviza la respuesta eliminado picos indeseados.

Desarrollo del proyecto


Comenz con el diseo del carro a trabajar con grficos y las coordenadas de inicio, que herramientas utilizaramos para facilitar la programacin.

Decidimos utilizar struct para las coordenadas en x, y para el inicio y fin de cada figura (rectngulos).

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

Lo siguiente fue la asignacin de los movimientos adelante, atrs, derecha e izquierda con las flechas del teclado, esto lo hicimos asignando un valor a 4 variables (DERE, IZQ, ARRI, ABA). #define ARRI 72 #define ABA 80 #define IZQ 75 #define DER 77 #define ESC 27

Realizamos case en el programa para cada uno de las direcciones que tomara el carrito con ayuda de una variable de tipo char llamada tecla el case deben de estar dentro de un do while del cual solo podramos salir con escape del teclado, esto fue asignado a una variable la cual tambin definimos anteriormente.

Los casos ARRI y ABA fueron los ms fcil de hacer ya que estos solo se incrementa o decremento la posicin en x, y de pendiendo el caso.

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

Las opciones DERE e IZQ fueron las ms complicadas ya en estas se tena que hacer un arreglo especial, dependiendo la posicin en la que se encontrara la figura girara conforme a la instruccin que sedaba y fuera capaz de identificar en donde se encuentra para poder moverse a una nueva.

1 2 4 1

Esto se logro con ayuda de contadores y banderas que ayudaban a guardar la direccin en la que se encontraba el carro. Despus de esto hicimos las restricciones de pantalla a si como las restricciones de los giros si es que la pantalla no era suficiente. La comunicacin del puerto paralelo y el carrito fue nuestro siguiente paso, y en el que nos dimos cuenta que pera activar nuestra seal a control remoto necesitbamos negar nuestras salidas y hacer una placa con un integrado 74ls04.

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

Para finalizar utilizamos nuestra propia librera y presentacin al mismo tiempo, hacer un pequeo men para hacer posible la seleccin de un color (Rojo, Azul, Cyen, Maganta y Verde) para el carro.

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

PROGRAMA REALIZADO EN EL PROYECTO


#include<LAW.h> #define ARRI 72 #define ABA 80 #define IZQ 75 #define DER 77 #define ESC 27 void color(); struct { int x,y,x1,y1,x2,y2; } r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,v1,v2,l1,l2,l3,l4,l5,l6,lz1,lz2; int main() { int aux1,y3,cont=0,cont2=0,b=0,aux2,aux3; char tecla; textcolor(7); presentacion();

color(); cin>>aux3; if(aux3>0&&aux3<6) { int gdriver = DETECT, gmode, errorcode;


ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

initgraph(&gdriver, &gmode, "c:\\tc\\bgi"); outportb(0x378,255);

r1.x=525; r1.y=295; r1.x1=610; r1.y1=474; r1.y2=400; r1.x2=600;

r2.x=520; r2.y=317; r2.x1=525; r2.y1=338; r2.y2=320; r2.x2=522;

r3.x=520; r3.y=425; r3.x1=525; r3.y1=446; r3.y2=430; r3.x2=522;

r4.x=610; r4.y=317; r4.x1=615; r4.y1=338; r4.y2=320; r4.x2=613;

r5.x=610; r5.y=425; r5.x1=615; r5.y1=444; r5.y2=430; r5.x2=613;

r6.x=530; r6.y=370; r6.x1=605; r6.y1=400; r6.y2=430; r6.x2=560;

r7.x=550; r7.y=380; r7.x1=580; r7.y1=390; r7.y2=385; r7.x2=555; v1.x=530; v1.y=330; v1.x1=605; v1.y1=360; v1.y2=350;

v1.x2=560;

v2.x=530; v2.y=410; v2.x1=605; v2.y1=440;


ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

v2.y2=420;

v2.x2=560;

l1.x=530; l1.y=400; l1.x1=525; l1.y1=410;

l2.x=530; l2.y=370; l2.x1=525; l2.y1=360;

l3.x=610; l3.y=410; l3.x1=605; l3.y1=400;

l4.x=610; l4.y=360; l4.x1=605; l4.y1=370;

l5.x=610; l5.y=385; l5.x1=605; l5.y1=385;

l6.x=525; l6.y=385; l6.x1=530; l6.y1=385;

lz1.x=530; lz1.y=295; lz1.x1=540; lz1.y1=300; lz1.x2=532; lz1.y2=297;

lz2.x=590; lz2.y=295; lz2.x1=600; lz2.y1=300; lz2.x2=592; lz2.y2=297;

/* draw a rectangle */ while(tecla!=ESC) { clrscr(); //cleardevice();


ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

setcolor(BLACK); rectangle(r1.x,r1.y,r1.x1,r1.y1); setfillstyle(SOLID_FILL,aux3); floodfill(r1.x2,r1.y2,BLACK);

setcolor(BLACK); rectangle(r2.x,r2.y,r2.x1,r2.y1); setfillstyle(SOLID_FILL,BLACK); floodfill(r2.x2,r2.y2,BLACK);

//R4 rectangle(r3.x,r3.y,r3.x1,r3.y1); setfillstyle(SOLID_FILL,BLACK); floodfill(r3.x2,r3.y2,BLACK); rectangle(r4.x,r4.y,r4.x1,r4.y1); setfillstyle(SOLID_FILL,BLACK); floodfill(r4.x2,r4.y2,BLACK);

//R5 rectangle(r5.x,r5.y,r5.x1,r5.y1); setfillstyle(SOLID_FILL,BLACK); floodfill(r5.x2,r5.y2,BLACK);

//ventana1 setcolor(6); rectangle(v1.x,v1.y,v1.x1,v1.y1); setfillstyle(SOLID_FILL,BLACK); floodfill(v1.x2,v1.y2,6);

//ventana2 rectangle(v2.x,v2.y,v2.x1,v2.y1); setfillstyle(SOLID_FILL,BLACK); floodfill(v2.x2,v2.y2,6);

//R6 rectangle(r6.x,r6.y,r6.x1,r6.y1); setfillstyle(SOLID_FILL,BLACK); floodfill(r6.x2,r6.y2,6);

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

//R7 setcolor(6); rectangle(r7.x,r7.y,r7.x1,r7.y1); setfillstyle(SOLID_FILL,BLACK); floodfill(r7.x2,r7.y2,6); //lineas de ventana

//l1 line(l1.x,l1.y,l1.x1,l1.y1);

//l4 line(l4.x,l4.y,l4.x1,l4.y1);

//l2 line(l2.x,l2.y,l2.x1,l2.y1);

//l5 line(l5.x,l5.y,l5.x1,l5.y1);

//l3 line(l3.x,l3.y,l3.x1,l3.y1);

//l6 line(l6.x,l6.y,l6.x1,l6.y1);

//lz1 if(b==1) { aux2=rand()%5; } else { aux2=4; }

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

setcolor(0); rectangle(lz1.x,lz1.y,lz1.x1,lz1.y1); setfillstyle(SOLID_FILL,aux2); floodfill(lz1.x2,lz1.y2,0);

rectangle(lz2.x,lz2.y,lz2.x1,lz2.y1); setfillstyle(SOLID_FILL,aux2); floodfill(lz2.x2,lz2.y2,0); delay(1);

outportb(0x378,255); tecla=getch(); kbhit(); switch (tecla) { case ARRI: if(r1.y>=0) { if(cont==0||cont==4) { outportb(0x378,1); outportb(0x378,1); r1.y--; r1.y1--; r1.y2--; r2.y--; r2.y1--; r2.y2--; r3.y--; r3.y1--; r3.y2--;

r4.y--; r4.y1--; r4.y2--;

r5.y--; r5.y1--; r5.y2--;

r6.y--; r6.y1--; r6.y2--;

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

r7.y--; r7.y1--; r7.y2--;

v1.y--; v1.y1--; v1.y2--;

v2.y--; v2.y1--; v2.y2--;

l1.y--; l1.y1--;

l2.y--; l2.y1--;

l3.y--; l3.y1--;

l4.y--; l4.y1--;

l5.y--; l5.y1--;

l6.y--; l6.y1--;

lz1.y--; lz1.y1--; lz1.y2--;

lz2.y--; lz2.y1--; lz2.y2--;

} }

if(r1.x>0) { if(cont==1) { outportb(0x378,1); outportb(0x378,1); r1.x--; r1.x1--; r1.x2--; r2.x--; r2.x1--;


ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

r2.x2--;

r3.x--; r3.x1--;

r3.x2--;

r4.x--; r4.x1--; r4.x2--;

r5.x--; r5.x1--; r5.x2--;

r6.x--; r6.x1--; r6.x2--;

r7.x--; r7.x1--; r7.x2--;

v1.x--; v1.x1--; v1.x2--;

v2.x--; v2.x1--; v2.x2--;

l1.x--; l1.x1--;

l2.x--; l2.x1--;

l3.x--; l3.x1--;

l4.x--; l4.x1--;

l5.x--; l5.x1--;

l6.x--; l6.x1--;

lz1.x--; lz1.x1--; lz1.x2--;

lz2.x--; lz2.x1--; lz2.x2--;


ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

} } if(r1.x1<639) { if(cont==3) { outportb(0x378,1); outportb(0x378,1); r1.x++; r1.x1++; r1.x2++; r2.x++; r2.x1++; r2.x2++; r3.x++; r3.x1++; r3.x2++;i

r4.x++; r4.x1++; r4.x2++;

r5.x++; r5.x1++; r5.x2++;

r6.x++; r6.x1++; r6.x2++;

r7.x++; r7.x1++; r7.x2++;

v1.x++; v1.x1++; v1.x2++;

v2.x++; v2.x1++; v2.x2++;

l1.x++; l1.x1++;

l2.x++; l2.x1++;

l3.x++; l3.x1++;
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

l4.x++; l4.x1++;

l5.x++; l5.x1++;

l6.x++; l6.x1++;

lz1.x++; lz1.x1++; lz1.x2++;

lz2.x++; lz2.x1++; lz2.x2++;

} } if(r1.y1<479) { if(cont==2) { outportb(0x378,1); outportb(0x378,1); r1.y++; r1.y1++; r1.y2++; r2.y++; r2.y1++; r2.y2++; r3.y++; r3.y1++; r3.y2++;

r4.y++; r4.y1++; r4.y2++;

r5.y++; r5.y1++; r5.y2++;

r6.y++; r6.y1++; r6.y2++;

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

r7.y++; r7.y1++; r7.y2++;

v1.y++; v1.y1++; v1.y2++;

v2.y++; v2.y1++; v2.y2++;

l1.y++; l1.y1++;

l2.y++; l2.y1++;

l3.y++; l3.y1++;

l4.y++; l4.y1++;

l5.y++; l5.y1++;

l6.y++; l6.y1++;

lz1.y++; lz1.y1++; lz1.y2++;

lz2.y++; lz2.y1++; lz2.y2++;

} } break;

case ABA:
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

if(r1.y1<479) { if(cont==0||cont==4) { outportb(0x378,0x2); outportb(0x378,0x2); r1.y++; r1.y1++; r1.y2++; r2.y++; r2.y1++; r2.y2++; r3.y++; r3.y1++; r3.y2++;

r4.y++; r4.y1++; r4.y2++;

r5.y++; r5.y1++; r5.y2++;

r6.y++; r6.y1++; r6.y2++;

r7.y++; r7.y1++; r7.y2++;

v1.y++; v1.y1++; v1.y2++;

v2.y++; v2.y1++; v2.y2++;

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

l1.y++; l1.y1++;

l2.y++; l2.y1++;

l3.y++; l3.y1++;

l4.y++; l4.y1++;

l5.y++; l5.y1++;

l6.y++; l6.y1++;

lz1.y++; lz1.y1++; lz1.y2++;

lz2.y++; lz2.y1++; lz2.y2++;

} }

if(r1.x1<639) { if(cont==1) { outportb(0x378,0x2); outportb(0x378,0x2); r1.x++; r1.x1++; r1.x2++; r2.x++; r2.x1++; r2.x2++; r3.x++; r3.x1++; r3.x2++;

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

r4.x++; r4.x1++; r4.x2++;

r5.x++; r5.x1++; r5.x2++;

r6.x++; r6.x1++; r6.x2++;

r7.x++; r7.x1++; r7.x2++;

v1.x++; v1.x1++; v1.x2++;

v2.x++; v2.x1++; v2.x2++;

l1.x++; l1.x1++;

l2.x++; l2.x1++;

l3.x++; l3.x1++;

l4.x++; l4.x1++;

l5.x++; l5.x1++;

l6.x++; l6.x1++;

lz1.x++; lz1.x1++; lz1.x2++;

lz2.x++; lz2.x1++; lz2.x2++;

} }
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

if(r1.x>0) { if(cont==3) { outportb(0x378,0x2); outportb(0x378,0x2); r1.x--; r1.x1--; r1.x2--; r2.x--; r2.x1--; r2.x2--; r3.x--; r3.x1--; r3.x2--;

r4.x--; r4.x1--; r4.x2--;

r5.x--; r5.x1--; r5.x2--;

r6.x--; r6.x1--; r6.x2--;

r7.x--; r7.x1--; r7.x2--;

v1.x--; v1.x1--; v1.x2--;

v2.x--; v2.x1--; v2.x2--;

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

l1.x--; l1.x1--;

l2.x--; l2.x1--;

l3.x--; l3.x1--;

l4.x--; l4.x1--;

l5.x--; l5.x1--;

l6.x--; l6.x1--;

lz1.x--; lz1.x1--; lz1.x2--;

lz2.x--; lz2.x1--; lz2.x2--;

} } if(r1.y>0) {

if(cont==2) { outportb(0x378,0x2); outportb(0x378,0x2);

r1.y--; r1.y1--; r1.y2--;

r2.y--; r2.y1--; r2.y2--;

r3.y--; r3.y1--; r3.y2--;

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

r4.y--; r4.y1--; r4.y2--;

r5.y--; r5.y1--; r5.y2--;

r6.y--; r6.y1--; r6.y2--;

r7.y--; r7.y1--; r7.y2--;

v1.y--; v1.y1--; v1.y2--;

v2.y--; v2.y1--; v2.y2--;

l1.y--; l1.y1--;

l2.y--; l2.y1--;

l3.y--; l3.y1--;

l4.y--; l4.y1--;

l5.y--; l5.y1--;

l6.y--; l6.y1--;

lz1.y--; lz1.y1--; lz1.y2--;

lz2.y--; lz2.y1--; lz2.y2--;

}
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

} break;

case IZQ: cont++;

if(cont==1) { if(r1.x1-179>=0&&r1.y+184<=479) { outportb(0x378,0x4); outportb(0x378,0x4); outportb(0x378,0x4); outportb(0x378,0x4);

r1.x=r1.x1-179; r1.y=r1.y1-85;

lz1.x=r1.x; lz1.x1=lz1.x+5; lz1.y=r1.y1-20; lz1.y1=lz1.y+10; r2.x=r1.x+27; r2.y=r1.y+85; r2.x1=r2.x+26; r2.y1=r2.y+5; r3.x=r1.x1-60; r3.y=r1.y+85; r3.x1=r3.x+26; r3.y1=r3.y+5;

lz2.x=r1.x; lz2.x1=lz2.x+5; lz2.y=r1.y+10; lz2.y1=lz2.y+10; r4.x=r1.x+27; r4.y=r1.y-5; r4.x1=r4.x+26; r4.y1=r1.y;

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

r5.x=r1.x1-60; r5.y=r1.y-5; r5.x1=r5.x+26; r5.y1=r1.y;

r6.x=r1.x+75; r6.y=r1.y+5; r6.x1=r6.x+30; r6.y1=r6.y+75;

r7.x=r1.x+85; r7.y=r1.y+25; r7.x1=r7.x+10; r7.y1=r7.y+30;

v1.x=r1.x+30; v1.y=r1.y+5; v1.x1=v1.x+30; v1.y1=v1.y+75;

v2.x=r1.x1-60; v2.y=r1.y+5; v2.x1=v2.x+30; v2.y1=v2.y+75;

l1.x=r1.x+105; l1.y=r1.y1-5; l1.x1=l1.x+10; l1.y1=l1.y+5;

l2.x=r6.x; l2.y=r1.y1-5; l2.x1=l2.x-10; l2.y1=l2.y+5;

l3.x=r6.x; l3.y=r6.y; l3.x1=l3.x-10; l3.y1=l3.y-5;

l4.x=r6.x1; l4.y=r6.y; l4.x1=l4.x+10; l4.y1=l4.y-5; } else { cont=0;

l5.x=r6.x1-15; l5.y=r6.y; l5.x1=l5.x; l5.y1=l5.y-5;

l6.x=r6.x1-15; l6.y=r6.y1+5; l6.x1=l6.x; l6.y1=l6.y-5;

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

} }

if(cont==2) { if(r1.y+179<=479&&r1.x+184<=639) { outportb(0x378,0x4); outportb(0x378,0x4); outportb(0x378,0x4); outportb(0x378,0x4); r1.x=r1.x1-85; r1.y1=r1.y+179; cont2=2;

lz1.x=r1.x+10; lz1.x1=lz1.x+10; lz1.y=r1.y1-5; lz1.y1=lz1.y+5;

lz2.x=r1.x1-20; lz2.x1=lz2.x+10; lz2.y=r1.y1-5; lz2.y1=lz2.y+5;

r2.x=r1.x1; r2.y=r1.y1-42; r2.x1=r2.x+5; r2.y1=r2.y+26;

r3.x=r1.x1; r3.y=r1.y+26; r3.x1=r3.x+5; r3.y1=r3.y+26;

r4.x=r1.x-5; r4.y=r1.y+136; r4.x1=r4.x+5; r4.y1=r4.y+26;

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

r5.x=r1.x-5; r5.y=r1.y+26; r5.x1=r1.x; r5.y1=r5.y+21;

r6.x=r1.x+5; r6.y=r1.y+75; r6.x1=r6.x+75; r6.y1=r6.y+30;

r7.x=r1.x+25; r7.y=r1.y+85; r7.x1=r7.x+30; r7.y1=r7.y+10;

v1.x=r1.x+5; v1.y=r1.y+30; v1.x1=v1.x+75; v1.y1=v1.y+30;

v2.x=r1.x+5; v2.y=r1.y1-60; v2.x1=v2.x+75; v2.y1=v2.y+30;

l1.x=r6.x; l1.y=r1.y1-105; l1.x1=r1.x; l1.y1=l1.y-10;

l2.x=r6.x; l2.y=r6.y1; l2.x1=r1.x; l2.y1=l2.y+10;

l3.x=r6.x1; l3.y=r6.y1; l3.x1=r1.x1; l3.y1=l3.y+10;

l4.x=r6.x1; l4.y=r6.y; l4.x1=r1.x1; l4.y1=l4.y-10; } else { cont=1; }

l5.x=r6.x1; l5.y=r6.y+15; l5.x1=r1.x1; l5.y1=l5.y;

l6.x=r6.x; l6.y=r6.y+15; l6.x1=r1.x; l6.y1=l6.y;

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

if(cont==3) { if(r1.x+179<=639&&r1.y1-184>=0) { outportb(0x378,0x4); outportb(0x378,0x4); outportb(0x378,0x4); outportb(0x378,0x4); r1.x1=r1.x+179; r1.y1=r1.y+85; cont2=1;

lz1.x=r1.x1-5; lz1.x1=lz1.x+5; lz1.y=r1.y1-20; lz1.y1=lz1.y+10;

lz2.x=r1.x1-5; lz2.x1=lz2.x+5; lz2.y=r1.y+10; lz2.y1=lz2.y+10;

r2.x=r1.x+136; r2.y=r1.y-5; r2.x1=r2.x+26; r2.y1=r2.y+5;

r3.x=r1.x+27; r3.y=r1.y-5; r3.x1=r3.x+26; r3.y1=r3.y+5;

r4.x=r1.x+27; r4.y=r1.y+85; r4.x1=r4.x+26; r4.y1=r4.y+5;

r5.x=r1.x1-47; r5.y=r1.y1; r5.x1=r5.x+21; r5.y1=r5.y+5;

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

r6.x=r1.x+75; r6.y=r1.y+5; r6.x1=r6.x+30; r6.y1=r6.y+75;

r7.x=r1.x+85; r7.y=r1.y+25; r7.x1=r7.x+10; r7.y1=r7.y+30;

v1.x=r1.x+30; v1.y=r1.y+5; v1.x1=v1.x+30; v1.y1=v1.y+75;

v2.x=r1.x1-60; v2.y=r1.y+5; v2.x1=v2.x+30; v2.y1=v2.y+75;

l1.x=r1.x+105; l1.y=r1.y1-5; l1.x1=l1.x+10; l1.y1=l1.y+5;

l2.x=r6.x; l2.y=r1.y1-5; l2.x1=l2.x-10; l2.y1=l2.y+5;

l3.x=r6.x; l3.y=r6.y; l3.x1=l3.x-10; l3.y1=l3.y-5;

l4.x=r6.x1; l4.y=r6.y; l4.x1=l4.x+10; l4.y1=l4.y-5;

l5.x=r6.x1-15; l5.y=r6.y; l5.x1=l5.x; l5.y1=l5.y-5;

l6.x=r6.x1-15; l6.y=r6.y1+5; l6.x1=l6.x; l6.y1=l6.y-5;

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

} else { cont=2; } } if(cont==4) { if(r1.y1-179>=0&&r1.x1-184>=0) { outportb(0x378,0x4); outportb(0x378,0x4); outportb(0x378,0x4); outportb(0x378,0x4); r1.x1=r1.x+85; r1.y=r1.y1-179;

lz1.x=r1.x+10; lz1.x1=lz1.x+10; lz1.y=r1.y; lz1.y1=lz1.y+5;

lz2.x=r1.x1-20; lz2.x1=lz2.x+10; lz2.y=r1.y; lz2.y1=lz2.y+5;

r2.x=r1.x1; r2.y=r1.y1-42; r2.x1=r2.x+5; r2.y1=r2.y+26;

r3.x=r1.x1; r3.y=r1.y+26; r3.x1=r3.x+5; r3.y1=r3.y+26;

r4.x=r1.x-5; r4.y=r1.y+136; r4.x1=r4.x+5; r4.y1=r4.y+26;


ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

r5.x=r1.x-5; r5.y=r1.y+26; r5.x1=r1.x; r5.y1=r5.y+21;

r6.x=r1.x+5; r6.y=r1.y+75; r6.x1=r6.x+75; r6.y1=r6.y+30;

r7.x=r1.x+25; r7.y=r1.y+85; r7.x1=r7.x+30; r7.y1=r7.y+10;

v1.x=r1.x+5; v1.y=r1.y+30; v1.x1=v1.x+75; v1.y1=v1.y+30;

v2.x=r1.x+5; v2.y=r1.y1-60; v2.x1=v2.x+75; v2.y1=v2.y+30;

l1.x=r6.x; l1.y=r1.y1-105; l1.x1=r1.x; l1.y1=l1.y-10;

l2.x=r6.x; l2.y=r6.y1; l2.x1=r1.x; l2.y1=l2.y+10;

l3.x=r6.x1; l3.y=r6.y1; l3.x1=r1.x1; l3.y1=l3.y+10;

l4.x=r6.x1; l4.y=r6.y; l4.x1=r1.x1; l4.y1=l4.y-10;

l5.x=r6.x1; l5.y=r6.y+15; l5.x1=r1.x1; l5.y1=l5.y;

l6.x=r6.x; l6.y=r6.y+15; l6.x1=r1.x; l6.y1=l6.y;

cont=0; } else {
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

cont=3; } } break;

case DER: cont2++; if(cont==0) { if(r1.x+179<=639&&r1.y+184<=479) { outportb(0x378,0x8); outportb(0x378,0x8); outportb(0x378,0x8); outportb(0x378,0x8); r1.x1=r1.x+179; r1.y=r1.y1-85; cont=3; cont2=1;

lz1.x=r1.x1-5; lz1.x1=lz1.x+5; lz1.y=r1.y+10; lz1.y1=lz1.y+10;

lz2.x=r1.x1-5; lz2.x1=lz2.x+5; lz2.y=r1.y1-20; lz2.y1=lz2.y+10;

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

r2.x=r1.x+136; r2.y=r1.y-5; r2.x1=r2.x+26; r2.y1=r2.y+5;

r3.x=r1.x+27; r3.y=r1.y-5; r3.x1=r3.x+26; r3.y1=r3.y+5;

r4.x=r1.x+27; r4.y=r1.y+85; r4.x1=r4.x+26; r4.y1=r4.y+5;

r5.x=r1.x1-47; r5.y=r1.y1; r5.x1=r5.x+21; r5.y1=r5.y+5;

r6.x=r1.x+75; r6.y=r1.y+5; r6.x1=r6.x+30; r6.y1=r6.y+75;

r7.x=r1.x+85; r7.y=r1.y+25; r7.x1=r7.x+10; r7.y1=r7.y+30;

v1.x=r1.x+30; v1.y=r1.y+5; v1.x1=v1.x+30; v1.y1=v1.y+75;

v2.x=r1.x1-60; v2.y=r1.y+5; v2.x1=v2.x+30; v2.y1=v2.y+75;

l1.x=r1.x+105; l1.y=r1.y1-5; l1.x1=l1.x+10; l1.y1=l1.y+5;

l2.x=r6.x; l2.y=r1.y1-5; l2.x1=l2.x-10; l2.y1=l2.y+5;

l3.x=r6.x; l3.y=r6.y; l3.x1=l3.x-10; l3.y1=l3.y-5;

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

l4.x=r6.x1; l4.y=r6.y; l4.x1=l4.x+10; l4.y1=l4.y-5;

l5.x=r6.x1-15; l5.y=r6.y; l5.x1=l5.x; l5.y1=l5.y-5;

l6.x=r6.x1-15; l6.y=r6.y1+5; l6.x1=l6.x; l6.y1=l6.y-5;

} else { cont=0; } } if(cont==1) { if(r1.y1-179>=0&&r1.x+184<=639) { outportb(0x378,0x8); outportb(0x378,0x8); outportb(0x378,0x8); outportb(0x378,0x8); r1.x=r1.x1-85; r1.y=r1.y1-179; cont=0;

lz1.x=r1.x+10; lz1.x1=lz1.x+10; lz1.y=r1.y; lz1.y1=lz1.y+5;

lz2.x=r1.x1-20; lz2.x1=lz2.x+10; lz2.y=r1.y; lz2.y1=lz2.y+5;


ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

r2.x=r1.x1; r2.y=r1.y1-42; r2.x1=r2.x+5; r2.y1=r2.y+26;

r3.x=r1.x1; r3.y=r1.y+26; r3.x1=r3.x+5; r3.y1=r3.y+26;

r4.x=r1.x-5; r4.y=r1.y+136; r4.x1=r4.x+5; r4.y1=r4.y+26;

r5.x=r1.x-5; r5.y=r1.y+26; r5.x1=r1.x; r5.y1=r5.y+21;

r6.x=r1.x+5; r6.y=r1.y+75; r6.x1=r6.x+75; r6.y1=r6.y+30;

r7.x=r1.x+25; r7.y=r1.y+85; r7.x1=r7.x+30; r7.y1=r7.y+10;

v1.x=r1.x+5; v1.y=r1.y+30; v1.x1=v1.x+75; v1.y1=v1.y+30;

v2.x=r1.x+5; v2.y=r1.y1-60; v2.x1=v2.x+75; v2.y1=v2.y+30;

l1.x=r6.x; l1.y=r1.y1-105; l1.x1=r1.x; l1.y1=l1.y-10;

l2.x=r6.x; l2.y=r6.y1; l2.x1=r1.x; l2.y1=l2.y+10;

l3.x=r6.x1; l3.y=r6.y1; l3.x1=r1.x1; l3.y1=l3.y+10;

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

l4.x=r6.x1; l4.y=r6.y; l4.x1=r1.x1; l4.y1=l4.y-10;

l5.x=r6.x1; l5.y=r6.y+15; l5.x1=r1.x1; l5.y1=l5.y;

l6.x=r6.x; l6.y=r6.y+15; l6.x1=r1.x; l6.y1=l6.y;

} else { cont=1; } } if(cont==2) { if(r1.x1-179>=0&&r1.y1-184>=0) { outportb(0x378,0x8); outportb(0x378,0x8); outportb(0x378,0x8); outportb(0x378,0x8); r1.x=r1.x1-179; r1.y1=r1.y+85; cont=1;

lz1.x=r1.x; lz1.x1=lz1.x+5; lz1.y=r1.y1-20; lz1.y1=lz1.y+10;

lz2.x=r1.x; lz2.x1=lz2.x+5; lz2.y=r1.y+10; lz2.y1=lz2.y+10;


ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

r2.x=r1.x+27; r2.y=r1.y+85; r2.x1=r2.x+26; r2.y1=r2.y+5;

r3.x=r1.x1-60; r3.y=r1.y+85; r3.x1=r3.x+26; r3.y1=r3.y+5;

r4.x=r1.x+27; r4.y=r1.y-5; r4.x1=r4.x+26; r4.y1=r1.y;

r5.x=r1.x1-60; r5.y=r1.y-5; r5.x1=r5.x+26; r5.y1=r1.y;

r6.x=r1.x+75; r6.y=r1.y+5; r6.x1=r6.x+30; r6.y1=r6.y+75;

r7.x=r1.x+85; r7.y=r1.y+25; r7.x1=r7.x+10; r7.y1=r7.y+30;

v1.x=r1.x+30; v1.y=r1.y+5; v1.x1=v1.x+30; v1.y1=v1.y+75;

v2.x=r1.x1-60; v2.y=r1.y+5; v2.x1=v2.x+30; v2.y1=v2.y+75;

l1.x=r1.x+105; l1.y=r1.y1-5; l1.x1=l1.x+10; l1.y1=l1.y+5;

l2.x=r6.x; l2.y=r1.y1-5; l2.x1=l2.x-10; l2.y1=l2.y+5;

l3.x=r6.x; l3.y=r6.y; l3.x1=l3.x-10; l3.y1=l3.y-5;

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

l4.x=r6.x1; l4.y=r6.y; l4.x1=l4.x+10; l4.y1=l4.y-5; } else { cont=2; } } if(cont==3&&cont2==2) {

l5.x=r6.x1-15; l5.y=r6.y; l5.x1=l5.x; l5.y1=l5.y-5;

l6.x=r6.x1-15; l6.y=r6.y1+5; l6.x1=l6.x; l6.y1=l6.y-5;

if(r1.y+179<=479&&r1.x1-184>=0)

{ outportb(0x378,0x8); outportb(0x378,0x8); outportb(0x378,0x8); outportb(0x378,0x8);

r1.x1=r1.x+85; r1.y1=r1.y+179; cont=2; cont2=0;

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

lz1.x=r1.x+10; lz1.x1=lz1.x+10; lz1.y=r1.y1-5; lz1.y1=lz1.y+5;

lz2.x=r1.x1-20; lz2.x1=lz2.x+10; lz2.y=r1.y1-5; lz2.y1=lz2.y+5;

r2.x=r1.x1; r2.y=r1.y1-42; r2.x1=r2.x+5; r2.y1=r2.y+26;

r3.x=r1.x1; r3.y=r1.y+26; r3.x1=r3.x+5; r3.y1=r3.y+26;

r4.x=r1.x-5; r4.y=r1.y+136; r4.x1=r4.x+5; r4.y1=r4.y+26;

r5.x=r1.x-5; r5.y=r1.y+26; r5.x1=r1.x; r5.y1=r5.y+21;

r6.x=r1.x+5; r6.y=r1.y+75; r6.x1=r6.x+75; r6.y1=r6.y+30;

r7.x=r1.x+25; r7.y=r1.y+85; r7.x1=r7.x+30; r7.y1=r7.y+10;

v1.x=r1.x+5; v1.y=r1.y+30; v1.x1=v1.x+75; v1.y1=v1.y+30;

v2.x=r1.x+5; v2.y=r1.y1-60; v2.x1=v2.x+75; v2.y1=v2.y+30;

l1.x=r6.x; l1.y=r1.y1-105; l1.x1=r1.x; l1.y1=l1.y-10;

l2.x=r6.x; l2.y=r6.y1; l2.x1=r1.x; l2.y1=l2.y+10;

l3.x=r6.x1; l3.y=r6.y1; l3.x1=r1.x1; l3.y1=l3.y+10;


ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

l4.x=r6.x1; l4.y=r6.y; l4.x1=r1.x1; l4.y1=l4.y-10;

l5.x=r6.x1; l5.y=r6.y+15; l5.x1=r1.x1; l5.y1=l5.y;

l6.x=r6.x; l6.y=r6.y+15; l6.x1=r1.x; l6.y1=l6.y;

} else { cont=3; cont2=0; } }

r1.x2=r1.x+2; r1.y2=r1.y+2; break;

case 'c': b=1; outportb(0x378,16); outportb(0x378,16); outportb(0x378,16); outportb(0x378,16); break; } cout<<b;


ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

//getch();

r1.x2=r1.x+2; r1.y2=r1.y+2;

r2.x2=r2.x+2; r2.y2=r2.y+2;

r3.x2=r3.x+2; r3.y2=r3.y+2;

r4.x2=r4.x+2; r4.y2=r4.y+2;

r5.x2=r5.x+2; r5.y2=r5.y+2;

r7.x2=r7.x+2; r7.y2=r7.y+2;

v1.x2=v1.x+2; v1.y2=v1.y+2; v2.x2=v2.x+2; v2.y2=v2.y+2;

lz1.x2=lz1.x+2; lz1.y2=lz1.y+2; lz2.x2=lz2.x+2; lz2.y2=lz2.y+2;

} closegraph(); } else { clrscr(); cout<<"\n\n\n OPCION INCORRETA!!";

getch(); } return 0; }
ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

void color() { cout<<"\n\n SELECCIONE EL COLOR DE AUTO\n\n"; cout<<"1-AZUL\n"; cout<<"2-VERDE\n"; cout<<"3-CYAN\n"; cout<<"4-ROJO\n"; cout<<"5-MAGENTA\n"; }

EVIDENCIAS

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

DISEO DE PANTALLA (LibreraLAW)


#include <iostream.h> #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include<dos.h>

presentacion() { cout<<" \n\n\n\n\n\n\n\n\n\n\n <<UNIVERSIDAD TECNOLOGICA DE TULA TEPEJI>> \n\n\n"; cout<<" cout<<" cout<<" cout<<" ->PROYECTO DE OPTATIVA AVANZADA<-\n\n\n"; Proyect: Pofesor: -= CONTROL DE UN CARRO CON C++=-\n\n"; -= ING. ALBERTO GARCIA CHAVEZ=-\n\n\n";

Integrantes: ->GUADALUPE ADRIANA RAMIREZ HERNANDEZ<-\n\n ->LUIS MIGUEL HERNANDEZ<-\n\n ->WILFRIDO GONZALEZ CARDENAZ<-\n\n"; cout<<" \n } Grupo: *>8IMCAG3<*\n";

NOTA: El al momento de escribirlo a Word se redujo espacios y se tuvo que abreviar por columnas, al igual que el use port este se tiene que bajar para poder usar el puerto de la impresora. El DB25.

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

ALUMNOS: GUADALUPE ADRIANA RAMIREZ HERNANDEZ LUIS MIGUEL HERNANDEZ WIFRIDO CARDENAS GONZALEZ 8 IMC G3 DE INGENIERIA EN MECATRONICA

También podría gustarte