martes, 12 de marzo de 2019

LABORATORIO N°2

MICROCONTROLADORES

LABORATORIO 02

Programación Básica con Bucles de Control


  1. Capacidad Terminal
  • Utilizar al microcontrolador en aplicaciones de control electrónico.
  • Desarrollar y ejecutar programas en un microcontrolador PIC
  • Programar y configurar interfaces básicas del microcontrolador.
    2. Competencia Específica de la Sesión
    • Manejo de puertos de forma grupal e independiente para manejo de luces.
    • Programación de sonidos mediante subrutinas.
    • Creación de subrutinas mediante funciones.
    • Declaración de variables enteras.
    3. Materiales y Equipos
    CCS Compiler instalado


                                          
    Entrenador de PICS



    Pantalla LCD


                                                          
    PIC16F877A


    Resultado de imagen para PIC16F877A
                                          
    4. Fundamento Teórico

    4.1 BUCLE DE CONTROL WHILE
      • El bucle while o bucle mientras es un ciclo repetitivo basado en los resultados de una expresión lógica; se encuentra en la mayoría de los lenguajes de programación estructurados. El propósito es repetir un bloque de código mientras una condición se mantenga verdadera.
      • La condición ha de ser una sentencia que devuelva un valor booleano, y esta puede ser el valor booleano sí, verdadero (true) si la condición se cumple, o falso si esta no se cumple (false). También puede contener el nombre de una variable booleana, y el valor de la expresión dependerá de su contenido. Se debe tener en cuenta que además de las variables también puede haber llamadas a funciones que devuelvan un valor.
        • Sentencias comparativas: La forma más obvia tal vez, y la más usada sin duda, son las sentencias comparativas, que usan los operando igual, diferente, menor o igual, mayor o igual, menor y mayor. En el caso del lenguaje C, se utilizan los siguientes símbolos para representar las comparaciones anteriores: ==, !=, <=, >=, <, >.
        • Particularidades de lenguajes: En algunos lenguajes, se pueden utilizar variables no booleanas en la comparación. Por ejemplo, si la variable vale 0 será como si la condición no se cumpliera, y siempre que sea diferente de 0, se considerará que la condición se cumple.


         4.2 BUCLE DE CONTROL FOR
    • El bucle for es una estructura de control en programación en la que se puede indicar de antemano el número mínimo de iteraciones. Está disponible en casi todos los lenguajes de programación imperativos.
    ELEMENTOS DEL BUCLE "FOR"
      • Variable de Control: Prácticamente un mandato impuesto por el uso habitual es utilizar la letra i Iterador como variable de control, o bien sus sucesoras en caso de bucles anidados. El uso de esta letra críptica quizás a primera vista es sin embargo una excelente forma de aportar agilidad de lectura al código por su uso tan extensivo. Como raras veces los bucles anidados superan las tres dimensiones (por una sencilla cuestión de explosión exponencial), las letras i, j y k suelen ser las únicas relacionadas con este uso. En C se define en el primer parámetro de la instrucción junto con la inicialización (opcional).
      • Inicialización de la Variable de Control:En pseudolenguaje se pide explicitarlo (es la sección := Valor Inicial), sin embargo, otros lenguajes más permisivos como C no lo requieren de forma obligatoria. De todos modos, la práctica de utilizar variables de control que no se inicializan en el bucle no es recomendada para la legibilidad del código. En C se define en el primer parámetro del bucle junto con la variable de control.
      • Condición de Control: En pseudolenguaje se ve representado por el valor final que puede tomar la variable de control (la sección Valor Final). En C es el segundo parámetro y puede ser cualquier condición (ni siquiera es obligación que esté la variable de control, aunque una vez más, esto no se considera una buena práctica).
      • Incremento: En pseudolenguaje se toma por defecto el valor 1, aunque puede explicitarse por medio de la sentencia PASO = Valor Paso cualquier número entero (léase bien entero, o sea que técnicamente podemos decrementar). En C es el último parámetro.
      • Cuerpo: Es lo que se hará en cada iteración, pueden ser una o más instrucciones. En pseudolenguaje pesa la restricción de no poder alterar el valor de la variable de control; esto no es requerido en C, pero no se considera una buena práctica.

        4.3 BUCLE DE CONTROL IF - IF ELSE
      • Esta se usa cuando se necesita decidir cual de los caminos disponibles va a ser tomado basados en cierta condición. Si esta condición evaluada es verdadera, la sentencia que sigue a esta condición es ejecutada, de lo contrario y de la condición ser falsa entra en la sentencia else y esta será ejecutada.
    5. Desarrollo de tareas indicadas en el laboratorio

    Se tiene un sistema con 3 pulsadores (A5, D0, D1) de entrada y 8 leds de salida (Puerto C): Programar para que se comporte de la siguiente manera:
      • Al iniciar el programa todos los leds deben permanecer apagados.



      • Al presionar A5, debe encender C0, al volver a presionar, debe encender C1 y así sucesivamente.



      • Al presionar D0, los deben encender sucesivamente pero en sentido inverso.


      • La entrada D1 debe funcionar como un habilitador, es decir, por defecto el sistema está habilitado y funcionará como lo antes mencionado. Si presiono D1, el sistema quedará “congelado” y nada funcionará. Si vuelvo a presionar D1, el sistema nuevamente queda habilitado.

      6. EVIDENCIA DE TRABAJO



     7. OBSERVACIONES Y CONCLUSIONES

               OBSERVACIONES
      • De acuerdo al número de instrucciones que el microcontrolador maneja se le denomina de arquitectura RISC (reducido) o CISC (complejo).
      • Se observó que al momento de transferir la información desde el software PIC C COMPILER a el PICKIT2 se realiza mediante archivo .HEX.
      • Para evitar tener error como respuesta en la compilación del código introducido en el software PIC C COMPILER debemos agregar a la nueva carpeta que hemos creado el archivo ".h" acompañado del código del microcontrolador que utilizaremos.
      • Al comprobar que la compilación de información en el software PICKIT2 no se obtuvo lo esperado, en este caso era el parpadeo del led en la ubicación C3,se debió a que debimos primeramente habilitar las filas y columnas del ordenado conjunto de led's con la ayuda del dip switch presente al costado del mismo.
      • Se observó, que cuando asignamos como valor 1 a nuestra variable se podrá hacer visible el cambio según lo que se busque al modificar el programa, de lo contrario no podremos observar tal cambio aunque este mismo si se realiza internamente.
               CONCLUSIONES
      • Se logró desarrollar programas utilizando el software PIC C COMPILER, posteriormente se llevo a su ejecución con PICKIT2.
      • Para evitar dañar nuestro equipo de trabajo y realizar una corroboración adecuada del código introducido podemos utilizar nuestro programa ISIS PROTEUS, solo transfiriendo el archivo".cof".
      • Se entendió que el PIC utilizado en la presente sesión 16F877A es capaz de realizar diferentes actividades que requieran del procesamiento de datos digitales, de control y comunicación digital de diferentes dispositivos.
      • Se comprendió el manejo adecuado de puertos en forma grupal e independiente para el control de luces.
      • Se concluye que es importante conocer acerca de símbolos y comandos presentes en la programación ya que así podremos tener una interpretación más adecuada y desarrollar adecuadamente la experiencia.
          8. BIBLIOGRAFÍA

    • Marin, Francisco (2007) Diseño basado en microcontroladores.  Málaga: Universidad de Málaga. (004.16/M26D)
    • Pereira, Fabio (2007) Microcontroladores PIC. Sao Paulo:s.n. (005.13/P43)
    • José María Angulo Usátegui [y otros]. (2007) Electrónica digital y microprogramable .Madrid: Thomson. (621.381/A37/I)

          9. INTEGRANTE 

      Condori Ortíz, Daniel Agustín C5 - A



















        1 comentario: