Diagramas de flujo

Diagramas de flujo gyJhonatanSierra ‘IOR6pR 15, 2011 I g pagos 2. 1. Diagramas de flujo para Microprocesadores Ya que los microprocesadores trabajan básicamente a partir de su programación, ya sea en lenguaje de maquina o en lenguaje C, los diagramas de flujo serán de gran ayuda para resolver cualquier tipo de problema relacionado con este tipo de dispositivos. Podemos representar cada variable con un nombre específico y poderlo operar dentro del diagrama. A continuación varios ejemplos de cómo utilizar los diagramas de flujo en una aplicación para micros usando nombres específicos de las variables que se an a operar.

Ejemplo 2. 6. Diagrama de flujo qu diodo led a partir de PACE 1 orig un interruptor. to View nut*ge El diagrama muestra r y apagar un led mediante un interrup posibles estados, encendido o apagado, lo cual se representa a partir de números binarios 00 1. El O representa el estado apagado del led y el 1 representa el estado encendido del led. El interruptor se maneja de la misma manera que el led, y además, es la variable que cambia externamente al micro. Cuando el interruptor cambia de estado el símbolo de decisión cambia de respuesta, por lo tanto, el led también cambia de estado.

Como se observa claramente, existe una línea que parte del fin del diagrama hasta antes de la decisión, lo cual significa que el diagrama se encuentra en un ciclo infinito. Este ciclo infinito se utiliza para aplicativos con micros ya que la secuencia del programa se debe realizar infinitas Swlpe to vlew nexr page infinitas veces mientras esté conectado a una fuente de alimentación. Un ejemplo claro de esto es cuando utilizamos un celular; este funciona mientras la batería esté conectada al dlspositivo, y además, cuando finalizamos una llamada el dispositivo queda listo para realizar cualquier otra acción.

Ejemplo 2. 7. Diagrama de flujo que a partir de dos interruptores se controle un led, un interruptor para encendido y otro para apagado. Cuando el primero esté en 1 enciende el led, y cuando esté en O revisa el otro interruptor si está en 1 apaga el led. El diagrama muestra el control de un led a partir de dos interruptores. El segundo condicional depende del primero, es decir, que el primer interruptor debe estar apagado para que funcione el segundo, si este se enciende el led se apaga. Ejemplo 2. 8.

Diagrama de flujo que controle dos leds a partir de dos interruptores. El primer interruptor enciende y apaga el primer ed, y el segundo enciende y apaga el segundo led. En el diagrama observamos 2 interruptores, cada uno dentro de un símbolo de decisión, que no dependen de la respuesta del otro. Cada uno maneja una decisión por aparte, lo que permite tenerlos totalmente independientes. El interruptor 1 simplemente controla el led 1 y el interruptor 2 controla el led 2. Ejemplo 2. 9. Diagrama de flujo que a partir de un interruptor controle dos leds.

Cuando el interruptor esté encendido, encienda el primer led y apague el segundo, y cuan tor esté apagado, apague 2 OF el primer led y encienda el apague el primer led y encienda el segundo. El diagrama muestra solo un símbolo de decisión en el cual se expone el interruptor. para cada una de las repuestas se realizan dos acciones, prender y apagar un led. Como en todas estas aplicaciones, debe haber una línea que conecte el final con el condicional para que el ciclo sea infinito. Ejemplo 2. 10. Diagrama de flujo que controle dos leds a partir de 3 interruptores.

El primer y el segundo interruptor controlan los leds 1 y 2 respectivamente, encendiéndolos y apagándolos, y cuando se enciende el tercer interruptor, enciende los dos leds, no permitiendo que funcionen los otros interruptores. El diagrama presenta 3 símbolos de decisión en los cuales se condicionan los 3 interruptores. Los dos primeros interruptores dependen del tercer interruptor, si este está encendido, los dos leds se mantienen encendidos, sino los otros interruptores controlan cada uno de los leds. . 2. 1. L enguaje de microprocesadores En los ejemplos descritos anteriormente, se utiliza un lenguaje informal para describir las operaciones que se desean realizar. Por ejemplo se utilizan las palabras «interruptor», «led», para las operaciones que se hacen sobre ellos. Los micros utilizan un lenguaje más formal para referirse a los uertos de entrada y salida digital, los cuales se utilizan para conectar cualquier tipo de dispositivo que funcione a partir de tecnología digital.

Cada uno de esos puertos se puede configurar como entrada o salida digital según se desee, lo más importante es describirlo al principio 3 OF salida digital según se desee, lo más importante es describirlo al principio de cada proyecto. Los puertos, en su mayoría, cuentan con 8 pines que pueden ser utilizados de cualquier forma, ya sea como entrada o como salida. La característica principal de los puertos es que pueden utilizar a la vez algunos pines como ntrada y otros como salida. por ejemplo, utilizar 2 pines de entrada y 6 de salida o viceversa según el problema a resolver.

Cuando se refieren a los 8 pines de un puerto, se denomina con su nombre completo «PORT» y se le agrega la letra que la identifica, por ejemplo «PORTB». Si se desea referenciar un solo pin del puerto, se representa con la letra Ry se especifica la letra del puerto y además el número del pin que se va utilizar. Por ejemplo, el pin 7 del puerto B se representa como RB7. A continuación se mostrarán algunos ejemplos utilizando el lenguaje formal de los microprocesadores. Ejemplo 2. 11. El ejemplo 2. . ilustra el diagrama de flujo de un interruptor que controla a un led.

En este ejemplo se muestra el mismo problema utilizando un lenguaje acorde a los microprocesadores. Como se observa en el diagrama, se utilizan los pines del puerto B, el primero como entrada (RBO) y el segundo como salida (RBI). La entrada será utilizada para conectar el interruptor, y la salida para conectar un led. Además en el primer símbolo de proceso se observa la declaración de entradas y salidas en cada uno de los pines. Ejemplo 2. 12. En el ejemplo 2. 9. se mue a de flujo que controla 40F19 dos leds a partir de un inte Ste ejemplo 2. 9. muestra un diagrama de flujo que controla dos leds a partir de un interruptor. En este ejemplo se complementa haciéndolo con lenguaje formal. En el problema se deben utilizar 3 pines del puerto B, 2 como salida (RBI Y RB2) y uno como entrada (RBO), para conectar los leds y el interruptor respectivamente. MPLAB Es un software de la empresa Microchip, y por ende sirve para la programación del dispositivoen estudio por éste curso, el PIC18F452. Es necesario además de su instalación, la disposición del complemento mcc18 para la correcta programación y compilación en lenguaje C. . 1. 1 . Manual para el uso de MPLAB La primera vista al abrir el programa es: Una vez abierto el programa y para crear el proyecto, lo primero que se recomienda hacer es ir a Project y dar clic en new como se observa a continuación: Una vez efectuado ésta instrucción, se despliegan dos opciones: En el primer ítem, se le da el nombre al proyecto, para éste caso PRUEBA, es el nombre asignado. Para la ubicación se le da clic en el botón browse y en el desplegable buscamos la ubicación.

Para éste fin es recomendable crear una carpeta con el nombre PROYECTOS en el disco duro C, para su fácil disposición. Se continúa el proceso, dando clic en OK, y tenemos: Nos ubicamos en file, dam ew volvemos a dar clic, 9 con lo cual nos aparece: cruz roja y nos mostrará lo siguiente: De ésta manera, le damos el nombre al archivo, se recomienda dar el mismo nombre que el dado al proyecto, es decir PRUEBA para su fácil ubicacion. En la casilla desplegable, se le da la extensión con la que se desea guardar el archivo, en este caso C source (. , . h). Guardamos. Debido a esto ya tenemos el proyecto y el archivo . C, que contiene nuestra programación. Para visualizarlo, compilarlo y demás, se debe abrir, ésta acción se efectúa así: En el recuadro que aparece en la parte superior izquierda, donde parece el nombre del archivo con la extensión . mcw. Nos ubicamos en la opción que dice «SOURCE FILES», click derecho y abrimos la opción «Add files», como se muestra a continuacion: Procedemos dando clic en Add Files, y tenemos: En esta opción buscamos la carpeta creada: proyectos».

Estando ahí, hacemos clic sobre el archivo que creamos y el mostrara la extensión debajo de la opción Source files con el nombre del archivo y la extensión C y tenemos: Luego clic derecho sobre Linker Scripts, Add Files. Luego, buscamos la siguiente ruta, C: mccl 8, Ikr, y estando en Ikr buscamos 1 8f452. lkr y damos abrir Para vlsualizar el códlgo amos doble clic sobre éste, para nuestro caso «PRUEBA. c» lo que mostrará la siguiente pantalla: Seguido abrimos la opción 6 9 selectlanguagetoolsuite. e la tercera opción MPLAB buildoptions, proyect y tenemos: En este recuadro llenamos los datos correspondientes primer recuadro y los tres últimos. * En el primero buscaremos la carpeta en la que guardamos los proyectos «c:/proyectos» (según recomendación). * En el cuarto «INCLUDE PATH», se Sigue la ruta Mi pc, C, rnccl 8, hacemos clic cobre la carpeta «h» y damos click en aceptar. * En el Quinto, «librarypath» la siguiente ruta: Mi PC, C, mcc18, acemos clic cobre la carpeta «lib». Por último la casilla: «librarypath» la siguiente ruta: Mi PC, C, mccl 8, hacemos clic cobre la carpeta «lib» y en la última casilla «linker-sciptpath» la siguiente ruta: Mi PC, C, mcc18, hacemos clic cobre la carpeta «Ikr». Hecho esto tenemos: Aceptamos, después compilamos y si el programa está bien estructurado y el proyecto bien creado, tenemos: 3. 1. Implementación Práctica Para familiarizarse con la programación en lenguaje C, usando MPLAB, se retoman los ejercicios hechos en la unidad dos en diagramas de flujo y los pasaremos al software. De ésta manera tenemos: Ejemplo 3. 2. Programa que con el uso de un interruptor apague y encienda un diodo led. Solución: Se debe tener en cuenta que para manejar la librería del PIC18F452, ésta se debe llamar así: De igual forma el cuerpo d e inicia con voidmain 9 (void). entradas y salidas, que se configuran dependiendo los pines a controlar, en este caso tenemos una sola salida un Led y una sola entrada un interruptor. Como se ilustra en el dlagrama de pines del PIC18F452, el puerto B, está conformado por ocho pines, que constan de RBO, RBI, RB2, RB3, RB4, RB5, RB6, y RB7. por lo tanto así no usemos la totalidad del puerto se debe configurarlo plenamente.

Las entradas las configuramos con un 1 (los pines libres en el puerto de trabajo, son recomendables configurarlos como entradas) y las salidas con un cero, de esta forma tenemos: N,’A I I N,’A N,’A NIA N,’A LED INTI RB7 1 RB5 RB4 RB3 RB2 RBI RBO II 11011 Si se configura las entradas y salidas en binario como lo ilustra la tabla anterior tenemos: También se puede configurar en hexadecimal, por lo tanto y teniendo en cuenta la siguiente tabla como repaso, tenemos que TRISB=OxFD; De igual forma y como recomendación es bueno inicializar en estado apagado las salidas, con el fin de evitar que el programa argue valores no deseados en las mismas, de ésta forma para éste ejemplo tendremos: PORTBbits. RB1=O; Para iniciar un ciclo de programa lo denotamos dentro de un While, en éste caso:while (1) Para iniciar con el progra un símil con el diagrama 9 de flujo, la pregunta la pla iante un if, que bajo el se le atribuyen dos acciones, un sí o un no, es decir para el primer caso: Ejecuta el encendido del Led, de ésta manera tenemos: PORTBbits. RB1=1 ; Y si no se ha oprimido el interruptor, simplemente se deja en estado apagado el led: Else PORTBbits. RB1=o; El programa quedaría: #include <pl 8f452. > void main (void) PORTBbits. RB1-O; while (1) else PORTBbits. RB1 -O; Ejemplo 3. 2. 2. Dos interruptores, un led. Con un interruptor se enciende el led y con el segundo interruptor ismo led. De esta forma tenemos: main (void) PORTBbits. RB2=o; PORTBbits. RB3=o; PORTBbits. RB2 if(PORTBbits. RB1 ) PORTBbits. RB3-1, PORTBbits. RB3=O, Ejemplo 3. 2. 4. Tres interruptores, dos leds, con el primer interruptor encendemos el primer led, con el segundo interruptor encendemos el segundo led y con el tercer interruptor encendemos los dos leds simultáneamente. NIA I N,’A I N/A LED2 1 LEDI I INT31 INT21 INTI RB7 1 RB6 RB5 RB4 RB3 RB2 RBI RBO 8f452. h> voidmain (void)