jueves, 15 de marzo de 2018

LABORATORIO NRO. 2

laboratorio 2

programación básica con bucles de control


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

materiales y equipos 


  • CCS compiler instalado.
  • entrenador de pics .
  • pantalla LCD.
  • PIC 16F877A.
  • PC con sotware de simulacion .



marco teórico 

Se denomina microcontrolador a un dispositivo programable capáz de realizar diferentes actividades que requieran procesamiento de datos digitales y del control y comunicación digital de diferentes dispositivos.


Generalmente se cree que un microcontrolador es igual a un microprocesador. Pero tiene muchas diferencias, ya que funcionan de distinta forma.

MICROPROCESADOR


Los microprocesadores tienen una arquitectura destinada al procesamiento de datos.
Para un microprocesador la CPU, la RAM, la ROM y perifericos se encuentran separados.
Los programas que se corren en un microprocesador siempre tienen un fín.





MICROCONTROLADOR


Un microcontrolador tiene un arquitectura destinada a procesos de control.
En un solo chip llevan CPU, la RAM, la ROM, periféricos, timers, conversores AD y DA.

Los programas que se realizan en un microcontrolador nunca tienen fin, es decir solo se termina el programa cuando se corta la energía




¿que es un  bucle ?


Un bucle o ciclo, en programación, es una secuencia que ejecuta repetidas veces un trozo de código, hasta que la condición asignada a dicho bucle deja de cumplirse. Los tres bucles más utilizados en programación son el bucle while, el bucle for y el bucle do-while.

bucle 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



bucle if -else.
Se trata de una estructura de control que permite redirigir un curso de acción según la evaluación de una condición simple, sea falsa o verdadera.
Si la condición es verdadera, se ejecuta el bloque de sentencias 1; de lo contrario, se ejecuta el bloque de sentencias 2.


   IF (Condición) THEN
      (Bloque de sentencias 1)
   ELSE
      (Bloque de sentencias 2)
   END IF


bucle 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.
evidencia de la tarea 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.

el código de la programación  

#include <16f877a.h> // Incluimos archivo con PIC a utilizar
#use delay (clock=20M) // Indicamos al compilador que trabajaremos a 20Mhz
#fuses HS, NOPROTECT, NOWDT // Configuración básica de los fusibles
int salida=0; // Declaramos variable "salida" como entera y valor UNO
int habilitador=1;
void main () // FUNCION PRINCIPAL del programa, indispensable
{
output_c(0b00000000); // Sacamos por el puerto C el valor de salida (00000000)
// Este comando se realiza por única vez
while (true) // Bucle de REPETICION infinita por valer "true"
{
IF (habilitador == 1)
{
IF (!input(PIN_A5) && (salida ==0))
{
salida=1;
output_c(salida);
delay_ms(500); // "Congela el tiempo" durante 500 ms
}
ELSE IF (!input(PIN_A5))
{
salida = salida << 1;
output_c(salida);
delay_ms(500);
}
IF (!input(PIN_D0)) // SI detectamos 0 voltios en PIN A5 (presionando pulsador)
{
salida = salida >> 1; // Recorremos el contenido de "salida" una posición a la derecha
output_c(salida); // 
delay_ms(500); // "Congela el tiempo" durante 500 ms para evitar falsas pulsaciones
}
}
IF (!input(PIN_D1))
{
habilitador = !habilitador;
delay_ms(500); // "Congela el tiempo" durante 500 ms para evitar falsas pulsaciones
}
}
}

el codigo en el programa ccs compiler 



simulacion en isis preteus 









funcionamiento






observaciones.

- observamos que para que el led suba o baja nosotros teníamos que poner el siguiente comando ">> o <<" respectivamente .

- se observo que nosotros al poner " ! " en la programación significa que el comando esta detectando  cero voltios.

- al empezar la programación siempre tenemos que poner # include que significa el archivo ha utilizar #use delay nos indica en que frecuencia va ha trabajar # fuses HS ,NOPROTEC,NOWDT nos indican los fusibles.

conclusiones.


- se logro el manejo de los diferentes puertos de forma grupal e independiente para el respectivo manejo de las luces así poder visualizar la tarea planteada.

- logramos aprender y comprender el manejo de comando IF ,VOID,WHILE para la respectiva programación .

- se comcluyo que para sabes programar en microcontrladores debemos aprender a utilizar los diferentes comandos que tiene el lenguaje C.




foto



bibliografia y pagina web recomendada
- Marin, Francisco (2007) Diseño basado en microcontroladores . Malaga : Universidad de Malaga(004.16/M26D)
- Pereira; Fabio (2007) Microcontroladores PIC.Sao Paulo:s.n.(005.13/P43)


LABORATORIO NRO. 1



laboratorio 1
herramienta de programación  harware 
y software.

competencia especifica de la sesión 

- listar las partes internas de un microcontrolador.
- identificar las funciones generales de un microcontrolador.
- introduccion ala progrmacion en PIC.
- C compilador
- como utilizar el entrenador

marco teórico 

Se denomina microcontrolador a un dispositivo programable capáz de realizar diferentes actividades que requieran procesamiento de datos digitales y del control y comunicación digital de diferentes dispositivos.


Generalmente se cree que un microcontrolador es igual a un microprocesador. Pero tiene muchas diferencias, ya que funcionan de distinta forma.

MICROPROCESADOR


  • Los microprocesadores tienen una arquitectura destinada al procesamiento de datos.
  • Para un microprocesador la CPU, la RAM, la ROM y perifericos se encuentran separados.
  • Los programas que se corren en un microprocesador siempre tienen un fín.


MICROCONTROLADOR


  • Un microcontrolador tiene un arquitectura destinada a procesos de control.
  • En un solo chip llevan CPU, la RAM, la ROM, periféricos, timers, conversores AD y DA.
  • Los programas que se realizan en un microcontrolador nunca tienen fin, es decir solo se termina el programa cuando se corta la energía.



Descripción del PIC 16F877

El PIC 16F877 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 la memoria no se pierden). Tiene una memoria memoria de programa tipo FLASH, lo que representa gran facilidad en el desarrollo de prototipos y en su aprendizaje, pues permite reprogramarlo nuevamente sin ser borrado con anterioridad.

características principales del PIC 16F877a

- Memoria de programa: FLASH de 8K de instrucciones de 14 bits
- Memorias de datos: SRAM de 512 bytes, EEPROM de 256 bytes
- Pines I/O (Input/Output) : 6 del puerto A, 8 del puerto B, 8 del puerto C, 8 del puerto D y 3    del puerto E, además de 8 entradas analógicas.
- Pila (Stack): 8 niveles (14 bits)
- Fuentes de interrupción: 14
- Instrucciones: 35
- Compatible modo SLEEP
- Frecuencia máxima del oscilador de 20MHz
- Conversor Analógico/Digital de 10 bits multicanal (8 canales de entrada)
- Corriente máxima absorbida/suministrada (sink/source) por pin: 25 mA
- Voltaje nominal: 3 a 5.5V DC (CMOS)
- Power On Reset
- Power Up Timer (PWRT) 
- Oscilador Start Up Timer (OST)

arquitectura interna 






entradas y salidas de los puertos





evidencia de la tarea en el laboratorio

Simule el programa en ISIS PROTEUS utilizando el archivo COF y depure el mismo paso a paso.
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.




simulación en proteus



funcionamiento 




  • reemplace  la instruccion output_high(pin_co) por output_bit(pin_co,1) ; ¿funciona igual ?
         el funcionamiento es el mismo porque ambos indican que en el  pin co los llega  5
         voltios 

  • elimine y comente la instrucción "while(true)" ¿que sucede ?
        si no lo colocamos el comando mencionado realizara el proceso indicado en el codigo 
        solo una vez.



observaciones

  • se observo que el comando while hace la función de realizar el ciclo infinito cuando lo hemos eliminado en nuestro programa solo funciona una solo vez.
  • el software PICKIT2 tiene un característica que consiste en poder de realizar el programa desarrollado paso a paso esto nos serviría como ayuda para identificar los errores cometidos en la programación.
  • observamos que se debe de especificar el PIC con la que se debe realizar la compilación .este paso es importante para la compilación del PIC con la que se esta trabajando
conclusiones

  • concluimos que en la estructura del programa ,los comando  son los que mandan las instrucciones y operadores por eso motivo debemos  saber la estructura.
  • logramos ala conclusión de identificar y ejecutar las herramientas de programación tanto en software y hardware para su desarrollo , compilación,simulador y ejecución .
  • se logro hacer con éxito la programación del semáforo ,esto se debe porque aprendimos la estructura del programación C y la función de los distintos comando.


foto

  • abat salas rayan




bibliografia y paginas web recomendadas
- Marin, Francisco (2007) Diseño basado en microcontroladores . Malaga : Universidad de Malaga(004.16/M26D)
- Pereira; Fabio (2007) Microcontroladores PIC.Sao Paulo:s.n.(005.13/P43)