Professional Documents
Culture Documents
MECATRONICA
NOMBRE DEL TRABAJO:
Banco De Ejercicios T2
PRESENTADO POR:
García Casiano. Marco Antonio
Mariano Meléndez Cirilo
N0. CONTROL:
20TE0717*
20TE0644*
DOCENTE:
ING. Luis Juárez Ramiro
MATERIA:
FECHA:
Microcontroladores
06/10/2023
SEMESTRE:
Séptimo
1
Tabla de contenido
INTRODUCCION ............................................................................................................................................................... 3
Banco De Ejercicios Tema 2 ............................................................................................................................................. 4
Ejercicio 1 .................................................................................................................................................................... 4
Programación - Explicación del código ............................................................................................................................ 6
Creación del circuito ejercicio 1 ....................................................................................................................................... 8
Electrónica – Explicación de componentes en proteus .................................................................................................... 9
RESULTADO FINAL EJERCICIO 1 FUNCIONANDO .............................................................................................................10
EJERCICIO 2 ....................................................................................................................................................................11
2.- Realizar un programa para que, al pulsar el botón, se encienda la lámpara alimentada con corriente alterna. .......11
CODIGO ..........................................................................................................................................................................11
EXPLICACION DEL CODIGO – PROGRAMACION ..............................................................................................................12
Explicación circuito en proteus .......................................................................................................................................14
Resultados del ejercicio 2 - FUNCIONANDO ...................................................................................................................15
Referencias .....................................................................................................................................................................17
2
INTRODUCCION
3
Banco De Ejercicios Tema 2
Ejercicio 1
1.- Programar el microcontrolador de la imagen para que contabilice del 0 al 9, se incremente la cuenta
cada que se pulse el pulsador NA. Al llegar al 9 reiniciar con el 0.
4
A continuación, copiaremos e incrustaremos el siguiente código en el c compiler para poder seguir y
al final compilar y no marcara errores.
5
Programación - Explicación del código
LIST P=16F84A: Esta línea especifica el microcontrolador PIC que se está utilizando, en este caso,
el PIC16F84A.
INCLUDE <P16F84A.INC>: Esta línea incluye el archivo de encabezado para el PIC16F84A, que
contiene definiciones de registros y constantes utilizadas por el microcontrolador.
CBLOCK 0X0C: Esta sección define un bloque de registros de uso general. En este caso, solo se
define un registro llamado "Contador" que se utilizará para llevar un registro del valor del contador.
ENDC: Esta línea indica el final del bloque de registros de uso general.
ORG 0: Establece el origen del programa en la dirección de memoria 0.
bsf STATUS,RP0: Establece el bit RP0 en el registro STATUS, lo que significa que se selecciona
el banco de registros 1 para la próxima instrucción.
movlw 0x00: Mueve el valor 0x00 al registro de trabajo (WREG).
movwf TRISB: Copia el valor de WREG al registro TRISB, configurando así el puerto B como salida.
bsf TRISA,RA0: Establece el bit RA0 en el registro TRISA, configurando el pin RA0 como entrada.
bcf STATUS,RP0: Borra el bit RP0 en el registro STATUS, cambiando de vuelta al banco de
registros 0.
clrf Contador: Borra el registro Contador (inicializa el contador en cero).
clrf PORTB: Borra el puerto B (inicializa el display de 7 segmentos en apagado).
Bucle: Etiqueta para un bucle infinito.
btfsc PORTA,RA0: Verifica si el pin RA0 está en 0 (botón presionado).
goto $-.1: Si el botón está presionado, se ejecutará esta instrucción de salto a la dirección actual
menos una instrucción, lo que crea un ciclo de espera hasta que el botón se suelte.
btfss PORTA,RA0: Verifica si el pin RA0 está en 1 (botón liberado).
goto $-.1: Si el botón está liberado, se ejecutará esta instrucción de salto, creando otro ciclo de
espera.
6
movf Contador,W: Mueve el valor de Contador al registro de trabajo (WREG).
call TABLA: Llama a la subrutina TABLA con el valor de Contador como argumento.
movwf PORTB: Mueve el valor desde WREG al puerto B para mostrar el valor del contador en el
display de 7 segmentos.
incf Contador,F: Incrementa el valor de Contador en 1.
movlw .10: Carga el valor 10 en WREG.
subwf Contador,W: Sustrae el valor en WREG de Contador y almacena el resultado en WREG.
btfsc STATUS,Z: Verifica si el bit de cero (Z) en el registro STATUS está configurado. Si es cero,
salta al bucle.
clrf Contador: Borra el registro Contador si el resultado fue cero (vuelve a 0).
goto Bucle: Salta de nuevo al bucle infinito.
TABLA: Esta es una subrutina que utiliza la instrucción addwf PCL,F para realizar un salto a una
tabla de valores en la memoria programada a continuación. Esta tabla almacena los valores de los
segmentos para mostrar los dígitos del 0 al 9 en el display de 7 segmentos.
DT 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x67: Esta línea define la tabla de valores
para los dígitos del 0 al 9 en formato hexadecimal. Cada valor representa qué segmentos del display
de 7 segmentos deben encenderse para mostrar un dígito específico.
END: Indica el final del programa.
7
Creación del circuito ejercicio 1
Ahora una vez copiado e incrustado el programa en nuestro c compiler procedemos a compilar y si no
hay errores quiere decir que ya quedo el código listo para ocupar en proteus 8. Ahora procedemos a
abrir el proteus y comenzar a estructurar el circuito de la imagen de arriba es decir quedaría asi.
8
Electrónica – Explicación de componentes en proteus
A continuación, te proporcionaré una explicación general de cómo configurar este circuito en Proteus:
• Coloca todos los componentes en la ventana de diseño de Proteus.
• Conecta el pin VDD (alimentación) del PIC16F628A a 5V y el pin VSS (tierra) a GND.
• Conecta un oscilador de 4 MHz (si estás usando un oscilador externo) a los pines OSC1 y OSC2
del PIC16F628A.
• Conecta los pines RA0 a RA6 del PIC16F628A a los segmentos del display de 7 segmentos.
Asegúrate de utilizar resistencias limitadoras para cada segmento.
• Conecta el ánodo común del display al voltaje positivo (5V) y el cátodo común a través de una
resistencia a tierra (GND).
• Conecta un botón entre un pin GPIO del PIC16F628A y tierra (GND). Asegúrate de usar una
resistencia pull-up para este pin para evitar flotación.
9
RESULTADO FINAL EJERCICIO 1 FUNCIONANDO
10
EJERCICIO 2
CODIGO
Ahora bien comenzaremos por copiar el código que a continuación se pondrá en la siguiente imagen,
para ello primero abriremos nuestro programa c compiler para poder incrustar el código y probarlo.
11
EXPLICACION DEL CODIGO – PROGRAMACION
12
Si el botón (bit 0 del puerto B) se detecta como presionado (bit_test(Push)), se realiza lo siguiente:
Se espera un retraso de 200 ms (delay_ms(200)) para evitar la detección de rebotes del botón.
Luego, se verifica nuevamente si el botón está presionado en un bucle while para asegurarse de
que el botón se haya soltado completamente.
Cuando el botón se suelta, se invierte el valor de la variable start (start = !start) para cambiar su
estado.
Control del relé:
El relé (bit 0 del puerto A) se activa o desactiva según el valor de la variable start. Si start es
verdadero, se establece el bit (bit_set(Rele)); de lo contrario, se borra (bit_clear(Rele)).
El programa ejecutará este bucle infinito y cambiará el estado del relé cada vez que se presione el
botón pulsador. Esto permite controlar un dispositivo externo conectado al relé a través de la
entrada/salida del puerto A del microcontrolador.
Una vez insertado y configurado el código procedemos a abrir proteus pata hacer el circuito para ello
haremos el dibujo del ejercicio 2 y quedara de la siguiente manera.
13
Explicación circuito en proteus
Para crear un programa que permita encender una lámpara alimentada con corriente alterna (CA) en
Proteus al pulsar un botón, necesitarás un microcontrolador como Arduino para controlar la lámpara.
A continuación, te proporciono un ejemplo de programa y una descripción general de cómo realizar
esto:
Materiales necesarios:
Placa Arduino (por ejemplo, Arduino Uno).
Lámpara incandescente o LED con su respectiva resistencia de limitación de corriente si es
necesario.
Botón pulsador.
Fuente de alimentación CA.
14
digitalWrite(lampPin, HIGH); // Enciende la lámpara
} else {
digitalWrite(lampPin, LOW); // Apaga la lámpara
}
}
Ahora, cuando pulses el botón conectado a tu placa Arduino en Proteus, la lámpara debería
encenderse. Asegúrate de que la fuente de alimentación CA esté conectada correctamente a la
lámpara para que funcione en el simulador de Proteus.
Recuerda que Proteus es un simulador de circuitos, por lo que podrás verificar el funcionamiento de
tu circuito y programa antes de implementarlo en hardware real.
Ahora bien, una vez terminado de crear el circuito en proteus, procederemos a correr el programa,
para ello antes cargamos el archivo. hex del c compiler, damos doble clic en el pic y en program file
buscamos el archivo .hex de nuestro código y listo le damos play para simular y observamos como
enciende y apaga la lampara.
15
Una vez que hayas completado con éxito la simulación en Proteus y estés seguro de que tu circuito y
código funcionan como se esperaba, puedes proceder a implementarlos en hardware real siguiendo
el mismo diseño y conexiones. Recuerda siempre tomar precauciones de seguridad al trabajar con
corriente alterna y componentes eléctricos en la vida real.
16
(Proteus) (usershop@redusers.com, Servicio de atención al lector: usershop@redusers.com)
(proteus) (proteus e. y., electronica y proteus) (Pasos) (navegador) (C,
rogramación PIC en C) (C P. d., Programación de microcontroladores PIC con Lenguaje C)
Otro Idioma
(manual, c compiler manual) (C++, Un IDE multiplataforma para C y C++ ) (Easy)
Referencias
C, P. d. (Programación de microcontroladores PIC con Lenguaje C). Programación de microcontroladores PIC con
Lenguaje C. Obtenido de
http://repositorio.espe.edu.ec/bitstream/21000/15406/1/Programaci%C3%B3n%20de%20microcontralores%20
tomo%201.pdf
C++, U. I. (Un IDE multiplataforma para C y C++ ). Un IDE multiplataforma para C y C++ . Obtenido de
https://www.jetbrains.com/es-es/clion/
Easy, P. D. (s.f.). PCB Design & Simulation Made Easy. Obtenido de https://www.labcenter.com/
navegador, l. 1. (s.f.). los 10 mejores compiladores de C en línea para ejecutar código en el navegador. Obtenido de
https://geekflare.com/es/best-online-c-compilers/
Proteus, S. d. (s.f.). Simulación de un circuito en Proteus. Obtenido de Una vez que hayas completado con éxito la
simulación en Proteus y estés seguro de que tu circuito y código funcionan como se esperaba, puedes proceder
a implementarlos en hardware real siguiendo el mismo diseño y conexiones. Recuerda siempre tomar precauc
17