SlideShare una empresa de Scribd logo
UNIVERSIDADDEL BIO-BIO
Facultadde Ingeniería
Departamentode IngenieríaEléctricayElectrónica
Laboratoriode Microcontroladores
INFORME DE
LABORATORIO N°1:
“Control de entradas/salidas”
Integrantes: Diego Anabalon
Juan A. Tapia
Sección: 02
Fecha Entrega: 22/04/19
Profesor: Samuel Bustos
UNIVERSIDADDEL BIO-BIO
Facultadde Ingeniería
Departamentode IngenieríaEléctricayElectrónica
Laboratoriode Microcontroladores
OBJETIVOS
 Familiarizarse con las aplicaciones de Compilación, Simulación y
Programación para microcontroladores PIC.
 Aprender a definir y controlar terminales de entrada y salida.
UNIVERSIDADDEL BIO-BIO
Facultadde Ingeniería
Departamentode IngenieríaEléctricayElectrónica
Laboratoriode Microcontroladores
MARCO TEORICO
1) Describir el microcontrolador utilizado y sus principales
características
El PIC16F84 es un microcontrolador a 8 bits de la familia PIC perteneciente
a la Gama Media (según la clasificación dada a los microcontroladores por la
misma empresa fabricante) Microchip.
Se trata de uno de los microcontroladores más populares del mercado
actual, ideal para principiantes, debido a su arquitectura de 8 bits, 18 pines, y un
conjunto de instrucciones RISC muy amigable para memorizar y fácil de entender.
Se ha usado en numerosas aplicaciones, que van desde los automóviles a
decodificadores de televisión.
Fig. N°1 “Imagen referencia PIC16F84”
UNIVERSIDADDEL BIO-BIO
Facultadde Ingeniería
Departamentode IngenieríaEléctricayElectrónica
Laboratoriode Microcontroladores
Especificaciones:
- Fabricante: Microchip
- Categoría de producto: Microcontroladores de 8 bits - MCU
- Núcleo: PIC
- Serie de procesadores: PIC16
- Ancho de bus de datos: 8 bit
- Frecuencia de reloj máxima: 20 MHz
- Tamaño de memoria del programa: 1.75 KB
- Tamaño de RAM de datos: 68 B
- Conversión analógico-digital en chip: No
- Voltaje de alimentación operativo: 2 V a 5.5 V
- Tamaño de ROM de datos: 64 B
- Temperatura de trabajo máxima: + 85 C
- Temperatura de trabajo mínima: - 40 C
- Número de entradas / salidas programables: 13
- Número de temporizadores: 1
- Empaquetado: Tube
- Tipo de memoria de programa: Flash
- Cantidad de empaque de fábrica: 25
- Voltaje de alimentación - Máx.: 5.5 V
- Voltaje de alimentación - Mín.: 4 V
2) Describir que son los #Fuses, y definir brevemente cada uno de ellos.
Son configuraciones de la forma de funcionamiento del microcontrolador, se
transfieren al PIC cada vez que se graba un programa. El PIC 16F84A posee
cuatro fusibles que son:
- Oscilador (OSC): Es el modo de oscilación que va a usar el PIC
- WDT (Watchdog Timer): El famoso “perro guardián” del PIC. Esta es una
capacidad del PIC de autoresetearse en situaciones donde por ejemplo hay
un bucle infinito.
- PWRT (Power Up Timer Reset): Si activamos este FUSE, lo que
conseguimos es que se genere un retardo en la inicialización del Pic. Esto
se usa para que la tensión se estabilice.
- CP (Code Protect): Lo único que hace es impedir que algun curioso se
apropie de tu creación no tiene efecto alguno en el correcto funcionamiento
del PIC.
UNIVERSIDADDEL BIO-BIO
Facultadde Ingeniería
Departamentode IngenieríaEléctricayElectrónica
Laboratoriode Microcontroladores
3) Describir la función de la directiva #use fast_io(X)
Esta directiva se utiliza para optimizar el código generado por el compilador
cuando se utilizan funciones de manejo de entrada y salida como “input(pin)”
definidas ya en CCS.
4) Describir qué hace la función set_tris_X(value)
Estas funciones permiten escribir directamente los registros tri-estado para la
configuración de los puertos (configurar pines de entrada y salida)
5) Explicar qué hacen y cómo se utlizan las siguientes funciones:
output_high(pin), output_low(pin), output_x(value), output_bit(pin,
value), input(pin)
- output_high(pin): pone a "1" el pin indicado. Ejemplo : Output_high(PIN_C0)
- output_low(pin): pone a "0" el pin indicado. Ejemplo : Output_low(PIN_D0)
- output_x(value): Se usa para controlar el puerto entero, está la función
dónde x es la letra del puerto a usar. Ejemplo, para usar el puerto b,
pondremos output_b(DATO);
- output_bit(pin, value): Los parámetros configura el PIN ingresado con el
estado del valor "0" o "1". Esta función se utiliza para cambiar los estados
del algún PIN. Ejemplo: output_bit(PIN_D0, 0)
- input(pin): El parámetro configura un PIN específico para determinar su
estado actual. Devuelve el estado "0" o "1" de la patilla indicada en pin.
Ejemplo: if(input(pin_a1)==1 || input(pin_a2)==1)
6) Explicar las configuraciones pull-up y pull-down para las conexiones
de entrada de un microcontrolador.
- PULL-UP: En la configuración pull up, cuando el circuito está en reposo, P1
sin pulsar, la caída de tensión es de 5V (HIGH), en cambio cuando
pulsamos P1 se deriva toda la corriente a masa y la caída de tensión es 0V
(LOW).
UNIVERSIDADDEL BIO-BIO
Facultadde Ingeniería
Departamentode IngenieríaEléctricayElectrónica
Laboratoriode Microcontroladores
- PULL-DOWN: En la configuración pull down, cuando el circuito está en
reposo como se muestra en la imagen de arriba, la caída de tensión en la
resistencia es prácticamente 0V (LOW), en cambio si pulsamos P1, dejará
pasar la corriente y tendremos una diferencia de potencial de 5V (HIGH).
Este es el uso normal del estado LOW y HIGH.
ACTIVIDAD DE LABORATORIO
Generar un programa en C que funcione de manera similar a un semáforo
de cruce peatonal, simulado con tres luces led para los automóviles, dos luces led
para los peatones, y dos botones.
El semáforo para los automóviles debe permanecer normalmente en verde
y el de los peatones en rojo, una vez que se detecte el accionamiento de uno de
los botones, el semáforo para automóviles debería permanecer en amarillo por
tres segundos, y luego en rojo por 10 segundos.
Luego de que el semáforo para automóviles esté en rojo, la luz para los
peatones debe cambiar a verde, y 3 segundos antes de cambiar a rojo debe
comenzar a parpadear.
Al volver a activar la luz roja para los peatones, debe activarse la luz verde
para los automóviles y permanecer así hasta que vuelva a presionarse uno de los
botones.
Utilizando el Software Proteus, diseñar el circuito necesario para
implementar el problema propuesto. Considerar en el diseño la disposición de
resistencias pull-up o pull-down para la conexión de los botones, y las resistencias
en serie con los leds. Simular el circuito con el programa realizado en C.
Grabar programa en el microcontrolador e implementar el diseño del
circuito.
UNIVERSIDADDEL BIO-BIO
Facultadde Ingeniería
Departamentode IngenieríaEléctricayElectrónica
Laboratoriode Microcontroladores
PROCEDIMIENTO REALIZADO
Materiales utilizados:
- 2 leds verdes.
- 2 leds rojos.
- 1 led amarillo.
- 5 resistencias de 330[Ω].
- 1 PIC 16F84A.
- Entrenador Digital.
- Multitester
- Cable de Timbre.
El circuito con que trabajamos es:
Fig. N°2: “Circuito en Proteus”
UNIVERSIDADDEL BIO-BIO
Facultadde Ingeniería
Departamentode IngenieríaEléctricayElectrónica
Laboratoriode Microcontroladores
CÓDIGO:
#include <16F628.h>
#FUSES NOWDT //"Perro guardian" en caso de entrar a un bucle infinito
#FUSES NOPROTECT //No proteccion
#FUSES INTRC //Oscilador interno del microcontrolador
#use delay(clock=4000000)
#use fast_io(A) //Directiva que me hace el codigo mas eficiente
#use fast_io(B)
void main(){
set_tris_A(0b00000011); //Defino entradas y salidas: 0=salida, 1=entradas
set_tris_B(0b00000000); //la b indica que estoy trabajando en binario
output_b(0b00000000);
delay_ms(1000); //ms=milisegundos
output_high(pin_a3); //se enciende el verde de los vehiculos
output_high(pin_b1); //se enciende el rojo de los peatones
while(true){
if(input(pin_a0) == 1){
output_low(pin_a3); //se apaga verde de autos
output_high(pin_b2); //enciende amarillo por 3s
delay_ms(3000);
UNIVERSIDADDEL BIO-BIO
Facultadde Ingeniería
Departamentode IngenieríaEléctricayElectrónica
Laboratoriode Microcontroladores
output_low(pin_b2); //se apaga amarillo
output_low(pin_b1); //se apaga rojo peatones
output_high(pin_a2); //se prende rojo vehiculo
output_high(pin_b0); //se enciende verde de peatones
delay_ms(7000); //pausa de 7 segundos
output_low(pin_b0); //parpadeo 3s peatones
delay_ms(250);
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
delay_ms(250);
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
delay_ms(250);
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
delay_ms(250);
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
delay_ms(250);
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
delay_ms(500);
UNIVERSIDADDEL BIO-BIO
Facultadde Ingeniería
Departamentode IngenieríaEléctricayElectrónica
Laboratoriode Microcontroladores
output_low(pin_a2); //se apaga el rojo autos
output_high(pin_a3); //se enciende verde autos (estado inicial)
output_high(pin_b1); //se prende rojo peatones (estado inicial)
}
if(input(pin_a1) == 1){ //ciclo para el otro interruptor
output_low(pin_a3); //se apaga verde de autos
output_high(pin_b2); //enciende amarillo por 3s
delay_ms(3000);
output_low(pin_b2); //se apaga amarillo
output_low(pin_b1); //se apaga rojo peatones
output_high(pin_a2); //se prende rojo vehículo
output_high(pin_b0); //se enciende verde de peatones
delay_ms(7000);
output_low(pin_b0); //parpadeo 3s peatones
delay_ms(250);
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
delay_ms(250);
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
delay_ms(250);
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
delay_ms(250);
UNIVERSIDADDEL BIO-BIO
Facultadde Ingeniería
Departamentode IngenieríaEléctricayElectrónica
Laboratoriode Microcontroladores
delay_ms(250);
output_low(pin_b0);
delay_ms(250);
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
delay_ms(250);
output_high(pin_b0);
delay_ms(250);
output_low(pin_b0);
delay_ms(500);
output_low(pin_a2); //se apaga el rojo autos
output_high(pin_a3); //se enciende verde autos (estado inicial)
output_high(pin_b1); //se prende rojo peatones (estado inicial)
}
}
}
UNIVERSIDADDEL BIO-BIO
Facultadde Ingeniería
Departamentode IngenieríaEléctricayElectrónica
Laboratoriode Microcontroladores
Luego montar el circuito y cargar el programa al PIC tenemos las siguientes
secuencias de imágenes donde podemos ver la ejecución del programa de forma
practica:
Fig. N°3: “Rojo peatones y verde automóvil”
Fig. N°4: “Rojo peatones y amarillo
automóvil”
UNIVERSIDADDEL BIO-BIO
Facultadde Ingeniería
Departamentode IngenieríaEléctricayElectrónica
Laboratoriode Microcontroladores
Figura N°5: “Verde peatones y rojo
automóvil”
Figura N°6: “Verde parpadeando peatones y
rojo automóvil”
UNIVERSIDADDEL BIO-BIO
Facultadde Ingeniería
Departamentode IngenieríaEléctricayElectrónica
Laboratoriode Microcontroladores
Figura N°7: “Rojo peatones y verde automóvil
(estado inicial)”
UNIVERSIDADDEL BIO-BIO
Facultadde Ingeniería
Departamentode IngenieríaEléctricayElectrónica
Laboratoriode Microcontroladores
CONCLUSION
 Los #FUSES son configuraciones de la forma de funcionamiento del
microcontrolador, se transfieren al PIC cada vez que se graba un programa
 #use fast_io(X) se utiliza para optimizar el código generado por el
compilador cuando se utilizan funciones de manejo de entrada y salida.
 Las funcionesset_tris_X(value) permiten escribir directamente los registros
tri-estado para la configuración de los puertos
 output_high(pin): pone a "1" el pin indicado
output_low(pin): pone a "0" el pin indicado
output_x(value): Se usa para controlar el puerto entero
output_bit(pin, value): configura el PIN ingresado con el estado del valor "0"
o "1". Esta función se utiliza para cambiar los estados del algún PIN
input(pin): El parámetro configura un PIN específico para determinar su
estado actual. Devuelve el estado "0" o "1" de la patilla indicada en pin.

Más contenido relacionado

PDF
2.1 puertos como salida
PDF
62962340 manual-arduino-uno
PDF
Pic16 f877
PDF
1. microcontrolador
PDF
⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886
DOCX
Uso del timer2 para pwm con el pic 16 f877a con el compilador hi tech
PDF
Programación PIC16F84A
PDF
⭐⭐⭐⭐⭐ (Práctica 2) DESARROLLO DE APLICACIONES CON #PIC16F886
2.1 puertos como salida
62962340 manual-arduino-uno
Pic16 f877
1. microcontrolador
⭐⭐⭐⭐⭐ (Práctica 6) DESARROLLO DE APLICACIONES CON PIC16F886
Uso del timer2 para pwm con el pic 16 f877a con el compilador hi tech
Programación PIC16F84A
⭐⭐⭐⭐⭐ (Práctica 2) DESARROLLO DE APLICACIONES CON #PIC16F886

La actualidad más candente (18)

PPT
Curso Micro Tema 1
PDF
PROYECTOS CON PIC 16F84
DOCX
Ejemplos pic c
PPTX
Presentacion pic 16f887 y 18f4550
PDF
⭐⭐⭐⭐⭐ (Práctica 3) DESARROLLO DE APLICACIONES CON #PIC16F886
PPT
Sistemas Microprocesados I
PDF
Curso de microcontroladores pic18 f4550
PDF
05.Manejo de interrupciones
PDF
50824079 datasheet-pic18f4550-espanol
PDF
⭐⭐⭐⭐⭐ (Práctica 4) DESARROLLO DE APLICACIONES CON #PIC16F886
PDF
Implementacion del 16F84A
PDF
Pic16f877 guia detallada parte2
PPTX
Registros del Pic 16F84
PDF
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
PDF
Curso de programacion en c++ para microcontroladores pic 16 f87xx
PDF
programacion con microcontrolador pic 16f84
PDF
USBee_datasheet
PDF
Digitalio config 16f887a_886
Curso Micro Tema 1
PROYECTOS CON PIC 16F84
Ejemplos pic c
Presentacion pic 16f887 y 18f4550
⭐⭐⭐⭐⭐ (Práctica 3) DESARROLLO DE APLICACIONES CON #PIC16F886
Sistemas Microprocesados I
Curso de microcontroladores pic18 f4550
05.Manejo de interrupciones
50824079 datasheet-pic18f4550-espanol
⭐⭐⭐⭐⭐ (Práctica 4) DESARROLLO DE APLICACIONES CON #PIC16F886
Implementacion del 16F84A
Pic16f877 guia detallada parte2
Registros del Pic 16F84
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
Curso de programacion en c++ para microcontroladores pic 16 f87xx
programacion con microcontrolador pic 16f84
USBee_datasheet
Digitalio config 16f887a_886
Publicidad

Similar a Lab 01 micro (20)

PDF
Curso de programacion en c++ para microcontroladores pic 16 f87xx
PDF
Curso de programacion en c++ para microcontroladores pic 16 f87xx
PDF
5.Interrupciones_tp_para_educacion_investigacion.pdf
PDF
Curso-de-PLC.pdf
DOC
Introducción pic 16 f 84 universidad de la marina mercante
PDF
Dialnet programando microcontroladorespicenlenguajec-4587553
DOCX
Microprosedador
PDF
62962340 manual-arduino-uno
PDF
⭐⭐⭐⭐⭐ #Microcontroladores y #LabView
PDF
Programación de un PIC con Niple
PPTX
Tarea final
PDF
Microcontroladores ss13
PDF
Microcontroladores ss13
PDF
Curso integral pic_236
DOC
Tutorial-pic16 f877a- algunas-mejoras
PPTX
⭐⭐⭐⭐⭐ (Práctica 1) DESARROLLO DE APLICACIONES CON #PIC16F886
PPT
Arduino(Tipos y su Programacion)
PDF
Curso de microcontroladores capitulo 03
PDF
Libro basico pic
PDF
tema CAPITULO 3 PROGRAMACION PLC SIEMENS.pdf
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
5.Interrupciones_tp_para_educacion_investigacion.pdf
Curso-de-PLC.pdf
Introducción pic 16 f 84 universidad de la marina mercante
Dialnet programando microcontroladorespicenlenguajec-4587553
Microprosedador
62962340 manual-arduino-uno
⭐⭐⭐⭐⭐ #Microcontroladores y #LabView
Programación de un PIC con Niple
Tarea final
Microcontroladores ss13
Microcontroladores ss13
Curso integral pic_236
Tutorial-pic16 f877a- algunas-mejoras
⭐⭐⭐⭐⭐ (Práctica 1) DESARROLLO DE APLICACIONES CON #PIC16F886
Arduino(Tipos y su Programacion)
Curso de microcontroladores capitulo 03
Libro basico pic
tema CAPITULO 3 PROGRAMACION PLC SIEMENS.pdf
Publicidad

Último (20)

PPTX
NILS actividad 4 PRESENTACION.pptx pppppp
PDF
Informe Estudio Final Apagon del 25 de febrero
PPTX
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
PDF
NORMATIVA Y DESCRIPCION ALCANTARILLADO PLUVIAL.pdf
PPTX
GEOLOGIA, principios , fundamentos y conceptos
PDF
manual-electricidad-automotriz-sistemas-electricos-bateria-alumbrado-iluminac...
PDF
Estrategias de apoyo de tecnología 2do periodo pdf
PPTX
MODULO 1.SEGURIDAD Y SALUD CONCEPTOS GENERALES.pptx
PDF
TESTAMENTO DE DESCRIPTIVA ..............
PDF
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
PDF
Oficio SEC 293416 Comision Investigadora
PPTX
Notificacion e investigación de incidentes y accidentes de trabajo.pptx
PDF
SUBDIVISIÓN URBANA PUEDE ENFRENTAR SERVIDUMBRE DE PASO.pdf
DOCX
CONCEPTOS BASICOS DE LA PROGRAMACION STEP
PDF
Informe Comision Investigadora Final distribución electrica años 2024 y 2025
PPTX
Seminario de telecomunicaciones para ingeniería
PPT
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
PPTX
Contexto Normativo NSR10, presentacion 2025
PDF
Módulo-de Alcance-proyectos - Definición.pdf
PPTX
Cortinas-en-Presas-de-Gravedad-Vertedoras-y-No-Vertedoras.pptx
NILS actividad 4 PRESENTACION.pptx pppppp
Informe Estudio Final Apagon del 25 de febrero
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
NORMATIVA Y DESCRIPCION ALCANTARILLADO PLUVIAL.pdf
GEOLOGIA, principios , fundamentos y conceptos
manual-electricidad-automotriz-sistemas-electricos-bateria-alumbrado-iluminac...
Estrategias de apoyo de tecnología 2do periodo pdf
MODULO 1.SEGURIDAD Y SALUD CONCEPTOS GENERALES.pptx
TESTAMENTO DE DESCRIPTIVA ..............
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
Oficio SEC 293416 Comision Investigadora
Notificacion e investigación de incidentes y accidentes de trabajo.pptx
SUBDIVISIÓN URBANA PUEDE ENFRENTAR SERVIDUMBRE DE PASO.pdf
CONCEPTOS BASICOS DE LA PROGRAMACION STEP
Informe Comision Investigadora Final distribución electrica años 2024 y 2025
Seminario de telecomunicaciones para ingeniería
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
Contexto Normativo NSR10, presentacion 2025
Módulo-de Alcance-proyectos - Definición.pdf
Cortinas-en-Presas-de-Gravedad-Vertedoras-y-No-Vertedoras.pptx

Lab 01 micro

  • 1. UNIVERSIDADDEL BIO-BIO Facultadde Ingeniería Departamentode IngenieríaEléctricayElectrónica Laboratoriode Microcontroladores INFORME DE LABORATORIO N°1: “Control de entradas/salidas” Integrantes: Diego Anabalon Juan A. Tapia Sección: 02 Fecha Entrega: 22/04/19 Profesor: Samuel Bustos
  • 2. UNIVERSIDADDEL BIO-BIO Facultadde Ingeniería Departamentode IngenieríaEléctricayElectrónica Laboratoriode Microcontroladores OBJETIVOS  Familiarizarse con las aplicaciones de Compilación, Simulación y Programación para microcontroladores PIC.  Aprender a definir y controlar terminales de entrada y salida.
  • 3. UNIVERSIDADDEL BIO-BIO Facultadde Ingeniería Departamentode IngenieríaEléctricayElectrónica Laboratoriode Microcontroladores MARCO TEORICO 1) Describir el microcontrolador utilizado y sus principales características El PIC16F84 es un microcontrolador a 8 bits de la familia PIC perteneciente a la Gama Media (según la clasificación dada a los microcontroladores por la misma empresa fabricante) Microchip. Se trata de uno de los microcontroladores más populares del mercado actual, ideal para principiantes, debido a su arquitectura de 8 bits, 18 pines, y un conjunto de instrucciones RISC muy amigable para memorizar y fácil de entender. Se ha usado en numerosas aplicaciones, que van desde los automóviles a decodificadores de televisión. Fig. N°1 “Imagen referencia PIC16F84”
  • 4. UNIVERSIDADDEL BIO-BIO Facultadde Ingeniería Departamentode IngenieríaEléctricayElectrónica Laboratoriode Microcontroladores Especificaciones: - Fabricante: Microchip - Categoría de producto: Microcontroladores de 8 bits - MCU - Núcleo: PIC - Serie de procesadores: PIC16 - Ancho de bus de datos: 8 bit - Frecuencia de reloj máxima: 20 MHz - Tamaño de memoria del programa: 1.75 KB - Tamaño de RAM de datos: 68 B - Conversión analógico-digital en chip: No - Voltaje de alimentación operativo: 2 V a 5.5 V - Tamaño de ROM de datos: 64 B - Temperatura de trabajo máxima: + 85 C - Temperatura de trabajo mínima: - 40 C - Número de entradas / salidas programables: 13 - Número de temporizadores: 1 - Empaquetado: Tube - Tipo de memoria de programa: Flash - Cantidad de empaque de fábrica: 25 - Voltaje de alimentación - Máx.: 5.5 V - Voltaje de alimentación - Mín.: 4 V 2) Describir que son los #Fuses, y definir brevemente cada uno de ellos. Son configuraciones de la forma de funcionamiento del microcontrolador, se transfieren al PIC cada vez que se graba un programa. El PIC 16F84A posee cuatro fusibles que son: - Oscilador (OSC): Es el modo de oscilación que va a usar el PIC - WDT (Watchdog Timer): El famoso “perro guardián” del PIC. Esta es una capacidad del PIC de autoresetearse en situaciones donde por ejemplo hay un bucle infinito. - PWRT (Power Up Timer Reset): Si activamos este FUSE, lo que conseguimos es que se genere un retardo en la inicialización del Pic. Esto se usa para que la tensión se estabilice. - CP (Code Protect): Lo único que hace es impedir que algun curioso se apropie de tu creación no tiene efecto alguno en el correcto funcionamiento del PIC.
  • 5. UNIVERSIDADDEL BIO-BIO Facultadde Ingeniería Departamentode IngenieríaEléctricayElectrónica Laboratoriode Microcontroladores 3) Describir la función de la directiva #use fast_io(X) Esta directiva se utiliza para optimizar el código generado por el compilador cuando se utilizan funciones de manejo de entrada y salida como “input(pin)” definidas ya en CCS. 4) Describir qué hace la función set_tris_X(value) Estas funciones permiten escribir directamente los registros tri-estado para la configuración de los puertos (configurar pines de entrada y salida) 5) Explicar qué hacen y cómo se utlizan las siguientes funciones: output_high(pin), output_low(pin), output_x(value), output_bit(pin, value), input(pin) - output_high(pin): pone a "1" el pin indicado. Ejemplo : Output_high(PIN_C0) - output_low(pin): pone a "0" el pin indicado. Ejemplo : Output_low(PIN_D0) - output_x(value): Se usa para controlar el puerto entero, está la función dónde x es la letra del puerto a usar. Ejemplo, para usar el puerto b, pondremos output_b(DATO); - output_bit(pin, value): Los parámetros configura el PIN ingresado con el estado del valor "0" o "1". Esta función se utiliza para cambiar los estados del algún PIN. Ejemplo: output_bit(PIN_D0, 0) - input(pin): El parámetro configura un PIN específico para determinar su estado actual. Devuelve el estado "0" o "1" de la patilla indicada en pin. Ejemplo: if(input(pin_a1)==1 || input(pin_a2)==1) 6) Explicar las configuraciones pull-up y pull-down para las conexiones de entrada de un microcontrolador. - PULL-UP: En la configuración pull up, cuando el circuito está en reposo, P1 sin pulsar, la caída de tensión es de 5V (HIGH), en cambio cuando pulsamos P1 se deriva toda la corriente a masa y la caída de tensión es 0V (LOW).
  • 6. UNIVERSIDADDEL BIO-BIO Facultadde Ingeniería Departamentode IngenieríaEléctricayElectrónica Laboratoriode Microcontroladores - PULL-DOWN: En la configuración pull down, cuando el circuito está en reposo como se muestra en la imagen de arriba, la caída de tensión en la resistencia es prácticamente 0V (LOW), en cambio si pulsamos P1, dejará pasar la corriente y tendremos una diferencia de potencial de 5V (HIGH). Este es el uso normal del estado LOW y HIGH. ACTIVIDAD DE LABORATORIO Generar un programa en C que funcione de manera similar a un semáforo de cruce peatonal, simulado con tres luces led para los automóviles, dos luces led para los peatones, y dos botones. El semáforo para los automóviles debe permanecer normalmente en verde y el de los peatones en rojo, una vez que se detecte el accionamiento de uno de los botones, el semáforo para automóviles debería permanecer en amarillo por tres segundos, y luego en rojo por 10 segundos. Luego de que el semáforo para automóviles esté en rojo, la luz para los peatones debe cambiar a verde, y 3 segundos antes de cambiar a rojo debe comenzar a parpadear. Al volver a activar la luz roja para los peatones, debe activarse la luz verde para los automóviles y permanecer así hasta que vuelva a presionarse uno de los botones. Utilizando el Software Proteus, diseñar el circuito necesario para implementar el problema propuesto. Considerar en el diseño la disposición de resistencias pull-up o pull-down para la conexión de los botones, y las resistencias en serie con los leds. Simular el circuito con el programa realizado en C. Grabar programa en el microcontrolador e implementar el diseño del circuito.
  • 7. UNIVERSIDADDEL BIO-BIO Facultadde Ingeniería Departamentode IngenieríaEléctricayElectrónica Laboratoriode Microcontroladores PROCEDIMIENTO REALIZADO Materiales utilizados: - 2 leds verdes. - 2 leds rojos. - 1 led amarillo. - 5 resistencias de 330[Ω]. - 1 PIC 16F84A. - Entrenador Digital. - Multitester - Cable de Timbre. El circuito con que trabajamos es: Fig. N°2: “Circuito en Proteus”
  • 8. UNIVERSIDADDEL BIO-BIO Facultadde Ingeniería Departamentode IngenieríaEléctricayElectrónica Laboratoriode Microcontroladores CÓDIGO: #include <16F628.h> #FUSES NOWDT //"Perro guardian" en caso de entrar a un bucle infinito #FUSES NOPROTECT //No proteccion #FUSES INTRC //Oscilador interno del microcontrolador #use delay(clock=4000000) #use fast_io(A) //Directiva que me hace el codigo mas eficiente #use fast_io(B) void main(){ set_tris_A(0b00000011); //Defino entradas y salidas: 0=salida, 1=entradas set_tris_B(0b00000000); //la b indica que estoy trabajando en binario output_b(0b00000000); delay_ms(1000); //ms=milisegundos output_high(pin_a3); //se enciende el verde de los vehiculos output_high(pin_b1); //se enciende el rojo de los peatones while(true){ if(input(pin_a0) == 1){ output_low(pin_a3); //se apaga verde de autos output_high(pin_b2); //enciende amarillo por 3s delay_ms(3000);
  • 9. UNIVERSIDADDEL BIO-BIO Facultadde Ingeniería Departamentode IngenieríaEléctricayElectrónica Laboratoriode Microcontroladores output_low(pin_b2); //se apaga amarillo output_low(pin_b1); //se apaga rojo peatones output_high(pin_a2); //se prende rojo vehiculo output_high(pin_b0); //se enciende verde de peatones delay_ms(7000); //pausa de 7 segundos output_low(pin_b0); //parpadeo 3s peatones delay_ms(250); output_high(pin_b0); delay_ms(250); output_low(pin_b0); delay_ms(250); output_high(pin_b0); delay_ms(250); output_low(pin_b0); delay_ms(250); output_high(pin_b0); delay_ms(250); output_low(pin_b0); delay_ms(250); output_high(pin_b0); delay_ms(250); output_low(pin_b0); delay_ms(250); output_high(pin_b0); delay_ms(250); output_low(pin_b0); delay_ms(500);
  • 10. UNIVERSIDADDEL BIO-BIO Facultadde Ingeniería Departamentode IngenieríaEléctricayElectrónica Laboratoriode Microcontroladores output_low(pin_a2); //se apaga el rojo autos output_high(pin_a3); //se enciende verde autos (estado inicial) output_high(pin_b1); //se prende rojo peatones (estado inicial) } if(input(pin_a1) == 1){ //ciclo para el otro interruptor output_low(pin_a3); //se apaga verde de autos output_high(pin_b2); //enciende amarillo por 3s delay_ms(3000); output_low(pin_b2); //se apaga amarillo output_low(pin_b1); //se apaga rojo peatones output_high(pin_a2); //se prende rojo vehículo output_high(pin_b0); //se enciende verde de peatones delay_ms(7000); output_low(pin_b0); //parpadeo 3s peatones delay_ms(250); output_high(pin_b0); delay_ms(250); output_low(pin_b0); delay_ms(250); output_high(pin_b0); delay_ms(250); output_low(pin_b0); delay_ms(250); output_high(pin_b0); delay_ms(250); output_low(pin_b0); delay_ms(250);
  • 11. UNIVERSIDADDEL BIO-BIO Facultadde Ingeniería Departamentode IngenieríaEléctricayElectrónica Laboratoriode Microcontroladores delay_ms(250); output_low(pin_b0); delay_ms(250); output_high(pin_b0); delay_ms(250); output_low(pin_b0); delay_ms(250); output_high(pin_b0); delay_ms(250); output_low(pin_b0); delay_ms(500); output_low(pin_a2); //se apaga el rojo autos output_high(pin_a3); //se enciende verde autos (estado inicial) output_high(pin_b1); //se prende rojo peatones (estado inicial) } } }
  • 12. UNIVERSIDADDEL BIO-BIO Facultadde Ingeniería Departamentode IngenieríaEléctricayElectrónica Laboratoriode Microcontroladores Luego montar el circuito y cargar el programa al PIC tenemos las siguientes secuencias de imágenes donde podemos ver la ejecución del programa de forma practica: Fig. N°3: “Rojo peatones y verde automóvil” Fig. N°4: “Rojo peatones y amarillo automóvil”
  • 13. UNIVERSIDADDEL BIO-BIO Facultadde Ingeniería Departamentode IngenieríaEléctricayElectrónica Laboratoriode Microcontroladores Figura N°5: “Verde peatones y rojo automóvil” Figura N°6: “Verde parpadeando peatones y rojo automóvil”
  • 14. UNIVERSIDADDEL BIO-BIO Facultadde Ingeniería Departamentode IngenieríaEléctricayElectrónica Laboratoriode Microcontroladores Figura N°7: “Rojo peatones y verde automóvil (estado inicial)”
  • 15. UNIVERSIDADDEL BIO-BIO Facultadde Ingeniería Departamentode IngenieríaEléctricayElectrónica Laboratoriode Microcontroladores CONCLUSION  Los #FUSES son configuraciones de la forma de funcionamiento del microcontrolador, se transfieren al PIC cada vez que se graba un programa  #use fast_io(X) se utiliza para optimizar el código generado por el compilador cuando se utilizan funciones de manejo de entrada y salida.  Las funcionesset_tris_X(value) permiten escribir directamente los registros tri-estado para la configuración de los puertos  output_high(pin): pone a "1" el pin indicado output_low(pin): pone a "0" el pin indicado output_x(value): Se usa para controlar el puerto entero output_bit(pin, value): configura el PIN ingresado con el estado del valor "0" o "1". Esta función se utiliza para cambiar los estados del algún PIN input(pin): El parámetro configura un PIN específico para determinar su estado actual. Devuelve el estado "0" o "1" de la patilla indicada en pin.