miércoles, 20 de marzo de 2019

lab 03 Programación con Display de 7 segmentos

                        MICROCONTROLADORES LABORATORIO

                                   Programación con Display de 7 segmentos


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 de 7 segmentos y su funcionamiento 
-Conocer las técnicas de multiplexación 
-Programar HMI para juego de encestar. 

III. CONTENIDOS A TRATAR 

-Display 7 segmentos 
-Multiplexación de datos

IV. MARCO TEORICO TIPOS DE VARIABLES

Una variable es un objeto del lenguaje cuyo valor se puede cambiar. Antes de utilizar una variable ésta debe de ser declarada. Al declarar una variable, se le asocia un identificador, es decir, un nombre, con un tipo de almacenamiento cuya forma determina la visibilidad y existencia de la variable.

  •  TIPO ENTERO

Representa números enteros con o sin signo, que estarán compuestos por los dígitos del 0 al 9, pudiendo ser precedidos por los signos + o -.
Algunos ejemplo de datos enteros son: 0, 23, -176, -1, etc.
Para definir variables en C se antepone la palabra reservada del tipo al identificador de la variable. El tipo de datos entero se define en el lenguaje de programación C por la palabra reservada int.
Para definir un tipo de dato en C se escribe lo siguiente:
int nombre_variable = valor;
No es necesario que la variable tenga un valor predeterminado. Se puede definir sin asignarle ningún valor.
Si tenemos varios datos que son del mismo tipo, se pueden definir todas en la misma línea de código escribiendo un único int, separando el nombre de las variables por “,”. Una vez que se haya acabado de definir variables, se cierra la línea de código con “;”.

Por ejemplo:
int edad = 24;
int edad;
int edad, num, contador;

  • TIPO REAL
Se emplean para representar números reales (con decimales).
Para definir datos reales se antepone la palabra reservada float al identificador de la variable.
float identificador = valor;

Por ejemplo:
float numero1, numero2;
float numero3 = 123.43;
float numero3;

  • TIPO CARÁCTER
Este tipo de datos se emplea para representar un carácter perteneciente a un determinado código utilizado por el ordenador (normalmente el código ASCII).
Para representar este tipo de dato se antepone la palabra reservada char al identificador de la variable.
Char identificador = ‘valor’;
Una constante tipo char se representa como un solo carácter encerrado entre comillas simples.

Por ejemplo:
char letra, letra2;
char letra=’a’;
  • TIPO CADENA DE CARACTERES

Una cadena de caracteres es un número de caracteres consecutivos (incluso ninguno) encerrado entre unos delimitadores determinados, que en el lenguaje C son las comillas dobles.
Para definir variables de tipo cadena, estas se definen como vectores de caracteres, esto es, anteponiendo la palabra reservada char al identificador de la variable, y después entre corchetes la longitud máxima de cadena.
Char identificador[cantidad] = “ mensaje ”;

Por ejemplo:
char cadena[20];
char cadena[20] = “Hola mundo”;
char cadena[] = “HOLA”;


TAREA EVALUADA

1. Se tiene un sistema con 2 pulsadores (D0, D1) de entrada y 3 displays de salida, además de un zumbador en el pin E1. Programe según lo siguiente: 

a. Al empezar el programa, se debe mostrar el número 500. 
b. Al presionar D0, el número mostrado se debe incrementar en 5 unidades, además debe zonar un pitido. 
c. Al presionar D1, el número mostrado debe disminuir 5 unidades pero de de 1 en 1 cada segundo
d. Si el número llega a ser mayor a 600, debe sonar 3 pitidos. 

2. Describa el funcionamiento del programa previamente diseñado, demuestre funcionamiento mediante simulación y en tarjeta entrenadora. Grabe en video para evidencia.  



videos explicativos del laboratorio

ARTURO MAMANI BERNAL

https://youtu.be/InS0AkMlIlE


GUSTAVO MAMANI DE LA CRUZ





OBSERVACIONES:

-Para llamar a una subrutina, debemos colocar el nombre de esta y luego colocar paréntesis con la variable a ser evaluada, dependiendo del caso.
-Para hacer que la visualización de los tres Displays de 7 segmentos se vea en forma continua, tenemos que multiplexar el encendido de estos a una gran velocidad.
-Para hacer que se escuche un pitido en el parlante del entrenador se realizó una subrutina en la programación, en donde se creaba un tren de pulsos a una determinada frecuencia.
-Para realizar los tres pitidos en caso de que se sobrepase el número 600, se estableció un intervalo de 200ms entre ellos y uno de 1000ms en cada secuencia.
-Al momento de presionar los pulsadores, en los Displays de 7 segmentos solo se mostraba la cifra de unidades. Para solucionar este problema se creó un bucle con "for" adicional en vez de un retardo de tiempo.

CONCLUSIONES

-Se realizaron subrutinas y se aprendió a cómo llamarlas dentro del programa principal.
-Se modificó el programa base con las tareas a ser evaluadas, utilizando el programa PIC C Compiler, en donde se crearon nuevos bucles con "for" y se llamaron a las subrutinas necesarias.
-Se programaron bucles con "for" en la modificación del programa base, para no tener que copiar demasiadas lineas repetitivas.
-Se crearon bucles con "for" adicionales en lugar de los delays, para hacer que el numero se muestre en todo momento en los Displays casi de manera simultánea.
-Se logró transferir el archivo generado HEX al entrenador utilizando el programa PICKIT2.
-Se probó en el entrenador el correcto funcionamiento de las tareas a ser evaluadas, incluso se realizaron mejoras al programa anterior para que los Displays se visualizaran en todo momento incluso cuando se presionaban los pulsadores.



jueves, 14 de marzo de 2019

lab02 Programación básica con bucles de control.


MICROCONTROLADORES 

Programación básica con bucles de control.


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

  1. CONTENIDOS A TRATAR
        Control de puertos como entradas y/o salidas
        Generación de salida pulsante
        Bucles de control

IV.     MARCO TEORICO : BUCLES DE CONTROL  

  • BUCLES DE CONTROL
Las estructuras de control nos permiten controlar el flujo del programa: tomar decisiones, realizar acciones repetitivas etc, dependiendo de unas condiciones que nosotros mismos establezcamos. Así podemos hacer un script que nos salude cada día de la semana de una manera diferente. O por ejemplo hacer un script que nos pida la contraseña una y otra vez hasta que suministremos la opción correcta.

  •     BUCLES DE WHILE

El bucle while te permite seguir ejecutando un bloque de código mientras la condición a evaluar sea verdadera. Por lo tanto, aunque se puede utilizar con un contador (como un for), se suele utilizar cuando no sabes cuántas veces tienes que repetir el bucle.

While (condicion) {
// Instrucciones a ejecutar una y otra

//vez mientras la condición sea cierta
}
 
  •  BUCLES DE IF

El bucle if realiza una acción si se satisface una condición particular.
El bucle if sigue el siguiente formato.

if( conditional_test )
{
List of stitcher rules to execute if the condition is TRUE
}
La lista de reglas del agrupador se ejecuta si se satisface la prueba condicional. También se puede especificar una lista de reglas del agrupador que se ejecutarán si no se satisface la condición, como se muestra a continuación.

  •      BUCLES DE IF-ELSE

Como su nombre lo sugiere, es una combinación de if y else. Del mismo modo que else, extiende una sentencia if para ejecutar una sentencia diferente en caso que la expresión if original se evalúe como FALSE. Sin embargo, a diferencia de else, esa expresión alternativa sólo se ejecutará si la expresión condicional del elseif se evalúa como TRUE. Por ejemplo, el siguiente código debe mostrar a es mayor que b, a es igual que b o a es menor que b.
  •    BUCLES DE 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.
for (valor inicial; condicion; ejecutar en cada blucle) {
// Instrucciones a ejecutar mientras la condición sea cierta
}
Ejemplo:

for ($cantidad = 1; $cantidad <10; $i++) {
echo("$cantidad");
}







TAREA EVALUADAAPACIDAD 

1. 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: 
a. Al iniciar el programa todos los leds deben permanecer apagados. 
b. Al presionar A5, debe encender C0, al volver a presionar, debe encender C1 y así sucesivamente. 
c. Al presionar D0, los deben encender sucesivamente pero en sentido inverso. 
d. 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. 
2. Describa el funcionamiento del programa previamente diseñado, demuestre funcionamiento mediante simulación y en tarjeta entrenadora. Grabe un video para evidencia.

VIDEOS

ARTURO MAMANI BERNAL

link explicativo sobre lo resuelto en clases y tarea dejada
  https://youtu.be/QJIx1FPwOng

MAMANI DE LA CRUZ GUSTAVO





OBSERVACIONES:
-Hay que procurar realizar el programa en PIC C Compiler de forma ordenada y con comentarios si es posible, para poder entender el programa en caso de verlo más adelante.
-En caso de que el programa no salga como deseamos es recomendable depurarlo paso a paso el simulador de Proteus para así corregor los posibles errores que pudiera presentar.
-Es necesario copiar el archivo "16F877A.h" en la carpeta donde se creó el programa, para que sea reconocido mediante la instrucción "#include <16f877a.h>" que se utilizó en el encabezado del programa,.
-Se observó que al momento de realizar la simulación en Proteus y cargar el programa en el PIC, se observó que tanto el archivo HEX y COF lo ejecutan de manera correcta, pero con el archivo HEX no es posible depurarlo paso a paso.
-Al momento de programar en PIC C Compiler, debemos tomar en cuenta que para negar una variable hay que usar el comando "!" y no "TOGGLE", ya que este último se usa para puertos de salida.
-Utilizamos el comando "<<" y ">>" para recorrer el contenido de una variable una posición hacia la izquierda y derecha respectivamente.

 CONCLUSIONES

-realizó el manejo de puertos de forma grupal e independiente para el manejo de luces, realizando el programa dado en el laboratorio correspondiente.
-Se reconoció la función que cumplen las instrucciones en las directivas o cabeceras del programa utilizado: "#include <16f877a.h>", "#use delay (clock=20M)" y "#fuses HS, NOPROTECT, NOWDT".
-Se utilizaron funciones condicionales como "IF", "ELSE IF" para la realización de las condiciones establecidas al presionar cada pulsador.
-Se compiló el programa en PIC C Compiler a partir del cual se generaron los archivos HEX y COF para realizar la simulación en Proteus.
-Se logró transferir el archivo generado HEX al entrenador utilizando el programa PICKIT2 y se verificó el correcto funcionamiento del mismo.
-Se modificó el programa para encender un LED y desplazarlo hacia arriba y abajo mediando dos pulsadores y un tercer pulsador para habilitar dicho desplazamiento.






miércoles, 6 de marzo de 2019

Lab 01 !Herramientas de Programación Hardware y Software


MICROCONTROLADORES

Herramientas de Programación Hardware y Software


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 ESPECÍFICA DE LA SESIÓN

● Listar las partes internas generales de un microcontrolador.
● Identificar las funciones generales de un microcontrolador
● Introducción a la programación en PIC C Compiler

● Cómo utilizar el Entrenador 

III. CONTENIDOS A TRATAR

● Datasheet para el microcontroladores de gama media de Microchip. Estructura interna, memorias, CPU, ALU, W.

IV. RESULTADOS

● Diseñan y optimizan sistemas y procesos para cumplir con las condiciones establecidas y gestionando adecuadamente los recursos materiales y humanos.

V. MATERIALES Y EQUIPO

● CCS Compiler instalado.

PIC C Compiler es un inteligente y muy optimizado compilador C que contienen operadores estándar del lenguaje C y funciones incorporados en bibliotecas que son específicas a los registros de PIC, proporcionando a los desarrolladores una herramienta poderosa para el acceso al hardware las funciones del dispositivo desde el nivel de lenguaje C.  
● Entrenador de PICS

Cuando trabajamos con microcontroladores,  se suele utilizar una y otra vez los mismos circuitos o componentes electrónicos:  display LCD, display de leds, relés , etc. 
Si utilizamos un protoboard seguramente tendremos que desarmar nuestro circuito con microcontrolador, para darle paso a un nuevo proyecto.
Esto implica una pérdida de tiempo y esfuerzo, que podemos utilizar en otras actividades. Para resolver este problema, lo mejor será  adquirir o fabricar una placa de desarrollo o entrenamiento, para utilizar uno o toda una gama de microcontroladores.
● Pantalla LCD

Las pantallas LCD tienen una serie de pines, las cuales tienen unos nombres especiales que por supuesto tienen un orden de conexión, son 14 pines ordenados del  1 al 14, esto siempre viene indicado en la placa de las pantallas lcd, estos pines son para  la alimentación, el control y la comunicación, el envió y recibo de datos, tienen ademas 2 pines para el uso de un led interno que algunas pantallas lcd lo tienen y otras no, normalmente serán como se ve en la  siguiente imagen.
● PIC16F877A:

Es un microcontrolador de Microchip Technology fabricado en tecnología CMOS, su consumo de potencia es muy bajo y además es completamente estático (esto quiere decir que el reloj puede detenerse y los datos de memoria no se pierden) capaz de realizar diferentes actividades que requieran del procesamiento de datos digitales y del control y comunicación digital de diferentes dispositivos.        
                               
Resultado de imagen para PIC16F877a caracteristicas




VI. TAREA GUIADA DENTRO DEL LABORATORIO:

 1. Asegúrese de tener instalado en su computadora los siguientes programas: ISIS PROTEUS, PIC C COMPILER y PICKIT2.
2. Abra el compilador CCS Compiler y transcriba el código mostrado en el link. Luego descargue dicho programa hacia el PIC utilizando PICKIT2.
 CÓDIGO A TRANSCRIBIR:
 
 3. Compile el programa y utilice los archivos generados hex y cof para realizar la simulación del proyecto anterior.

4. Transfiera el archivo generado HEX al entrenador utilizando el programa PICKIT2 y verifique el correcto funcionamiento del mismo.

EVIDENCIA DE TRABAJO LABORATORIO
   



explicación de la tarea propuesta y lo avanzado en el laboratorio

TAREA A SER EVALUADA: 

  • Simule el programa en ISIS PROTEUS utilizando el archivo COF y depure el mismo paso a paso. 2. 
  • Modifique el programa para diseñar un “semáforo” con 3 salidas (leds) de tal manera que el led ROJO encienda durante 10 segundos, luego encienda el led AMBAR durante 3 segundos y finalmente encienda el led VERDE durante 8 segundos.
VIDEOS TAREAS PROPUESTA: 

ARTURO MAMANI BERNAL



GUSTAVO MAMANI DE LA CRUZ








Observaciones: 
  • Se observó que el entrenador de PICS cuenta con varios componentes muy diversos los cuales cumplen las funciones requeridas de acuerdo al tipo de conexión a realizar.
  • Se vio que el PIC 16F877a es un micro controlador mejorado además de poseer un almacenamiento bastante grande y un uso sencillo en aplicación.
  • Se observó que para poder determinar la funcionalidad de cada equipo electrónico a analizar debemos considerar todas las especificaciones y parámetros del mismo.

     Conclusiones
  • Se comprobó que  en el entrenador de PICS  nos permite  desarrollar de diferentes maneras  conexiones con un lenguaje de Pickit 2 el cual nos ayuda a  diseñar un programa   de manera esquemática para  generar un tipo de  circuito  que cumpla con la funcionalidad que  deseamos obtener.
  • Se demostró  que en el micro controlador PIC 16F877a   se puede trabajar en diferentes entradas ya que cuenta con  diversas entradas y salidas en las cuales se pueden configurar   diferentes funciones a realizar con  el software correspondiente.
  • Se comprobó que en los componentes eléctricos analizados se puede  realizar diversas funciones  en cuanto  a configuración y obtención de datos de tipo digital y analógico.
  • Se utilizó el comando while para ejecutar la instrucción sucesivamente solo si  se sigue cumpliendo la condición.   

    Integrantes: