martes, 12 de noviembre de 2019

laboratorio 11

LABORATORIO NRO. 10

MICROCONTROLADORES

Laboratorio N°10:

Programación con Display de 7 segmentos


1. COMPETENCIA 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 ESPECIFICA DE LA SESIÓN:
  • Conocer el Display de 7 segmentos y su funcionamiento.
  • Conocer las técnicas de multiplexación.
  • Programar HMI para juego de encestar.

III. FUNDAMENTO TEÓRICO

 Tipos de variables


Todos los programas necesitan, en algún momento, almacenar números o datos ingresado por el usuario. Estos datos son almacenados en variables que deben tener un tipo. Para declarar una variable en la programación se debe hacer de la siguiente forma:

tipo nombreVariable;

Si se quiere asignar el valor se designa así:

tipo nombre_variable = valor inicial;



bool

Por lo general utiliza 1 byte de memoria, valores: true o false.

char

Utiliza generalmente 1 byte de memoria, permite almacenar un carácter, valores; 256 caracteres.

unsigned short int


Utiliza generalmente 2 bytes de memoria, valores: de 0 a 65 535

short int

Utiliza generalmente 2 bytes de memoria, valores: de -32768 a 32767.

 unsigned long int

Utiliza generalmente 4 bytes de memoria, valores: de 0 a 4 294 967 295.

 long int
Utiliza generalmente 4 bytes de memoria, valores: de -2 147 483 648 a 2 147 483 647.

 int (16 bits)

Utiliza generalmente 2 bytes de memoria, valores: de -32 768 a 32 767.

 int (32 bits)

Utiliza generalmente 4 bytes de memoria, valores: de -2 147 483 648 a 2 147 483 647.

 unsigned int (16 bits)

Utiliza generalmente 2 bytes de memoria, valores: de 0 a 65 535.

 unsigned int (32 bits)

Utiliza generalmente 2 bytes de memoria, valores: de 0 a 4 294 967 295.

 double

Utiliza generalmente 8 bytes de memoria, valores: de 2.2e-308 a 3.4e-38.

 float

Utiliza generalmente 4 bytes de memoria, valores: de 1.2e-308 a 3.4e-38.
Atención!
El tamaño de las variables en memoria puede variara de un PC a otro.


Enteros

Los tipos de datos enteros son : short, int, long y long long, cada uno representando un numero entero de un tamaño o capacidad determinado. Según el compilador y la plataforma de hardware, cada uno de estos tipos de dato puede ocupar desde 1 byte hasta 8 bytes en memoria. Cabe añadir que en caso que no se declare si es con o sin signo, se toma con signo.


      -> Variables enteras: Con signo (+, -) y sin signo (+)
  • Enteros de 8 bits  -> 1 byte
  • Enteros de 16 bits -> 2 bytes
  • Enteros de 32 bits -> 4 bytes
  • Enteros de 64 bits -> 8 bytes

Reales

Los tipos de datos que representan a los números reales, ya que utilizan un sistema de representación basado en la técnica de coma flotante, que permite operar con números reales de diversas magnitudes, mediante un número decimal llamado mantisa y un exponente que indica el orden de magnitud.
La forma de declarar una variable flotante es escribiendo en una línea uno de los tipos de datos flotantes y a continuación el nombre de la variable y tal vez algún valor que se les quiera dar.

-> Variables reales (en como flotante)
  • Reales de 32 bits -> 4 bytes
  • Reales de 64 bits -> 8 bytes
  • Reales de 128 bits -> 16 bytes

Caracteres

Los caracteres se representan utilizando el tipo de char, que tiene solo 1 byte de tamaño. Este tipo se utiliza para representar los 256 caracteres de la tabla de caracteres del sistema. El tipo char es tambien un tipo entero, ya que puede tomar valores de 0 a 255. Por lo tanto también puede ser signed o unsigned. 

-> Variable no Numericas
  • Lógicas -> 1 - 8 bytes
  • Alfanumericas -> "n" bytes




V. VÍDEO DEMOSTRATIVO



VI. OBSERVACIONES Y CONCLUSIONES

        a. Observaciones
  • Fue necesario utilizar varias variables para poder realizar la compilación del programa, tales como definir las decenas, centenas y unidades para que se pueda visualizar en los displays los dígitos que se configuren siendo el máximo numero de 999 y el mínimo de 000.
  • Se llamo a un retardo para que evitar que se produzcan falsas pulsaciones
  • Se creo una tabla para los display referidos al anodo común para que cuando introduzcamos el valor deseado en sistema decimal, este se pueda mostrar en el display


        b. Conclusiones
  • Se utilizo el PIC 16F877A para realizar todas las tareas designadas, ejecutando así la programación a traves de la revisión del software PIC C COMPILER, que permite compilar y así establecer si existe alguna falla en la programación seguidamente se uso el PICKIT que nos permitió transmitir el código al PIC.
  • Se logro solucionar los inconvenientes que existieron tales como lo que se debía visualizar en el display, este no visualizaba como se esperaba, la medida de solución fue utilizar el watch window, esta interfaz nos permite visualizar los datos que deberían aparecer en el display.
  • Se conocieron los tipos de variables, cuantos bits pueden almacenar, como deben ser declaradas y se entendió la importancia de las mismas en la programación

laboratorio 10

martes, 5 de noviembre de 2019


LABORATORIO N11

MICROCONTROLADORES

Programación con LCD



I. 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


II. COMPETENCIA ESPECIFICA DE LA SESIÓN

  • Conocer el Display LCD y su funcionamiento
  • Programar eficientemente el LCD
  • Programar HMI para proyecto actual
III. FUNDAMENTOS TEÓRICOS




¿Qué es un LCD?   
  • El LCD(Liquid Crystal Dysplay) o pantalla de cristal líquido es un dispositivo empleado para la visualización de contenidos o información de una forma gráfica, mediante caracteres, símbolos o pequeños dibujos dependiendo del modelo. Está gobernado por un microcontrolador el cual dirige todo su funcionamiento.
  • En este caso vamos a emplear un LCD de 16x2, esto quiere decir que dispone de 2 filas de 16 caracteres cada una. Los píxeles de cada símbolo o carácter, varían en función de cada modelo.
¿Cómo es su conexionado?
  • En la siguiente imagen de Proteus se puede observar la estructura de sus pines.
  • Lo podemos dividir en los Pines de alimentación, pines de control y los pines del bus de datos bidireccional. Por lo general podemos encontrar ademas en su estructura los pines de Anodo de led backlight y cátodo de led backlight.



Pines de alimentacion:
  • Vss: Gnd
  • Vdd: +5 V
  • Vee: Es el pin que controla el contraste del LCD, lo regulamos conectando un potenciometro de 10K conectado a Vdd.

Librería del LCD:
  • Para poder visualizar los caracteres o símbolos en el LCD es necesario que en el programa de código fuente a emplear, incluyamos la librería de este. 
  • En este caso empleamos la librería "lcd.c", la cual hemos modificado. Siempre que utilicemos una librería de este tipo tendremos que analizarla para saber cuales son los pines de control y los pines para el Bus de datos, en este caso podemos observar que están definidos al comienzo de la misma.
                #define LCD_ENABLE_PIN PIN_D0
                #define LCD_RS_PIN PIN_D1
                #define LCD_RW_PIN PIN_D2
                #define LCD_DATA4 PIN_D4
                #define LCD_DATA5 PIN_D5
                #define LCD_DATA6 PIN_D6
                #define LCD_DATA7 PIN_D7
  • En el resto de la librería se puede encontrar todas las estructuras necesarias así como las funciones que nos permiten utilizar nuestro LCD.
  • Podemos encontrar funciones como :
                lcd_init: inicializa el lcd.
                lcd_gotoxy: establece la posicion de escritura en el lcd.
                lcd_putc: nos muestra un dato en la siguiente posición del lcd, podemos emplear                   funciones como \f para limpiar el display, \n cambio a la segunda línea,

                 \b mueve una posición atrás.
                lcd_getc(x,y): devuelve caracteres a la posición x,y.
                Otras funciones: lcd_send_nibble(BYTE n), lcd_send_byte(BYTE address,                            BYTE n).



V. VIDEO DEMOSTRATIVO




  a. Observaciones
  • Es necesario asegurarse que la programación que lo que se este realizando sea lo que se esta solicitando, es decir, que no es solo completar o añadir algo dado que si no se  entiende la programación no se podrá solucionar un problema que pueda surgir.
  • Es necesario definir las variables con las que se van a trabajar, para que al momento de compilar no exista conflicto y menos aún  errores que impidan realizar el correcto desarrollo del laboratorio
  • Para programar Microcontroladores PIC en un tiempo reducido y con un nivel muy bajo de complejidad, podemos utilizar el compilador PCW.


  b. Conclusiones

  • Se realizaron diversas condiciones para realizar las tareas a realizar, tales como la condición "if" y "else if" que ayudaron a cumplir las condiciones.
  • Se logro realizar la programación tanto en el simulador como en el entrenador notando el correcto funcionamiento del código de programación realizado.
  • Se concluye que la pantalla LCD es mucho mas practico para utilizar a diferencia de un display, ademas ene la pantalla LCD se pueden mostrar muchos mas cosas que en un display.
  • Se concluye que la programación de pantallas de LCD con el uso de librería es relativamente fácil, ya que simplifica mucho los comandos, y los caracteres como letras o números ya vienen incluidos en las librerías