FASE 1: Análisis del Problema y Propuesta de solución utilizando Microcontrolador PIC.
Introducción
Materiales a usar:
- CCS Compiler instalado.
- Entrenador de PICS
- Pantalla LCD
- PIC16F877A
Los pics son una familia de micro controladores tipo RISC fabricados por Microchip Technology INC., y hoy en día los PICs vienen con periféricos incluidos tales como módulos de comunicación serie UART, núcleos de control de motores, etc.
Ahora veremos algunas características del PIC:
Diagrama de bloques sobre la tarjeta entrenadora con pic PIC16F877A
Observaciones y Conclusiones:
Observaciones y Conclusiones:
FASE 3: CODIGO EN PIC CCS E IMPLEMENTACION FISICA.
Observaciones y Conclusiones:
Propuestas de proyecto.
-Reloj con PIC
-Cerradura electrónica 4x4 con el PIC 16F877A
-Control de Tanque con pic16F877 y lcd 16x2
-Alarma Programable PIC16F877A
Conversor ADC.

#include <16f877a.h>
#device adc=10
#fuses HS, NOPROTECT, NOWDT
#use delay(clock=20M)
#define lcd_data_port getenv("sfr:portd")
//#define lcd_rs_pin pin_b0
//#define lcd_rw_pin pin_b1
//#define lcd_enable_pin pin_b2
#define LCD_ENABLE_PIN PIN_D3
#define LCD_RS_PIN PIN_D2
#define LCD_RW_PIN PIN_A0
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#include <lcd.c>
void main()
{
int16 q;
float p;
setup_adc_ports(ALL_ANALOG);
setup_adc(adc_clock_internal);
lcd_init();
while(true)
{
set_adc_channel(3);
delay_us(20);
lcd_gotoxy(1,1);
q=read_adc();
p=(5.0*q)/1024.0;
printf(lcd_putc," ADC = %4Ld",q);
printf(lcd_putc,"\n voltaje = %1.2f",p);
}
}
Video
Programación Mediante Maquinas de Estados.
#include <16f877a.h>
#device adc=10
#fuses HS, NOPROTECT, NOWDT
#use delay(clock=20M)
#define lcd_data_port getenv("sfr:portd")
//#define lcd_rs_pin pin_b0
//#define lcd_rw_pin pin_b1
//#define lcd_enable_pin pin_b2
#define LCD_ENABLE_PIN PIN_D3
#define LCD_RS_PIN PIN_D2
#define LCD_RW_PIN PIN_A0
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#include <lcd.c>
void main()
{
int16 q;
int s;
float p;
int ESTADO=1;
int m=0;
setup_adc_ports(ALL_ANALOG);
setup_adc(adc_clock_internal);
lcd_init();
while(true)
{
while(ESTADO==1)
{
set_adc_channel(1);
delay_us(20);
lcd_gotoxy(1,1);
q=read_adc();
p=(5.0*q)/1024.0;
printf(lcd_putc," ADC = %4Ld",q);
printf(lcd_putc,"\n voltaje = %1.2f",p);
delay_ms(100);
IF (input(PIN_b1))
{
ESTADO=2;
}
}
delay_ms(50);
printf(lcd_putc," \f ");
while(ESTADO==2)
{
IF (input(PIN_b2))
{
delay_ms(50);
m=m+1;
}
IF (input(PIN_b3))
{
delay_ms(100);
m=m-1;
}
lcd_gotoxy(1,1);
printf(lcd_putc," CONTADOR");
printf(lcd_putc,"\n %i",m);
IF (input(PIN_b1))
{
ESTADO=1;
}
}
printf(lcd_putc," \f ");
}
}
Vídeo
Observaciones y Conclusiones:
- En este laboratorio aprendimos como es que funciona un convertidor ADC y come hacer uno mediante programacion en el programa CCS compiler.
- En este laboratorio aprendimos a realizar maquinas de estados las cuales nos ayudaron a realizar trabajos los cuales tenían funciones múltiples.
- Realizamos una maquina de estados simples para comprobar que este efectivamente este nos ahorraba tiempo y mejoraba el funcionamiento de nuestra programación, ya que ahora no era necesario usar algunos códigos.
- Observamos que podemos aplicar maquinas de estados en cualquier tipo de proyecto en donde este tenga mas de una función.
FASE 2: SIMULACION EN PROTEUS.
Observaciones y Conclusiones:
- Observamos que fue necesario usar el circuito integrado ds1307 para poder tener una hora exacta y sin problemas de adelanto o trazo de esta.
- El circuito integrado ds1307 contaba con una alimentación externa de 3 V la cual hacia que el reloj de 32.768 kz siga operando, y por la tanto el tiempo de este no se detendría amenos que cortemos la alimentación de 3 V.
- Aprendimos que los pines del puerto B tienen la función principal de interrupciones, por eso es que utilizamos estos puertos como pulsadores de hora,min,clk y pause.
FASE 3: CODIGO EN PIC CCS E IMPLEMENTACION FISICA.
CÓDIGO:
IMPLEMENTACIÓN FÍSICA
Observaciones y Conclusiones:
- Observamos que es importante revisar antes el datasheet de los componentes a utilizar, ya que mucho de estos tienen alimentación propia y funciones especificas.
- Fue muy importante revisar foros de electrónica para buscar información del enlace entre el PIC y el ds1307.
- Aprendimos a utilizar y conectar el ds1307.
- Fue necesario hacer pruebas de la programacion en el simulador Proteus para poder armarlo físicamente.
- Hicimos uso de maquinas de estados para poder hacer la configuración de la hora en nuestro reloj.
FASE 4: FUNCIONAMIENTO FISICO.














No hay comentarios:
Publicar un comentario