Informe de Señales Y Sistemas (Recuperado Automáticamente)
Informe de Señales Y Sistemas (Recuperado Automáticamente)
Informe de Señales Y Sistemas (Recuperado Automáticamente)
Resumen— En esta práctica de laboratorio, se programó y simuló microcontrolador, sino que también refuerza conceptos
el microcontrolador PIC16F877A utilizando MPLAB X IDE y fundamentales en electrónica digital, como la configuración de
Proteus 8 para controlar un LED mediante un botón. El objetivo fue puertos y el manejo de señales.
desarrollar un programa que permitiera al microcontrolador manejar
actuadores como LEDs y motores. Se configuró un proyecto en El microcontrolador PIC16F877A es conocido por su
MPLAB, se escribió el código en C, y se simuló el circuito en
Proteus y Tinkercad. Los resultados mostraron que el sistema
versatilidad y facilidad de uso, lo que lo convierte en una
funcionó correctamente, encendiendo y apagando el LED al presionar opción ideal para proyectos educativos. En esta práctica, se
el botón, lo que validó la efectividad del diseño y la programación del empleará un enfoque sistemático que incluye la creación de un
microcontrolador, proporcionando una base sólida para futuros circuito simulado, la programación del dispositivo y la
desarrollos en electrónica. validación del funcionamiento a través de pruebas prácticas.
Los resultados obtenidos permitirán a los estudiantes
Palabras Clave—, Proteus 8, LED, botón, programa, actuadores, familiarizarse con el entorno de desarrollo y las herramientas
motores, código en C, simulación, Tinkercad, resultados, diseño, necesarias para implementar soluciones electrónicas efectivas.
programación, electrónica. Además, se explorarán conceptos como la configuración de
resistencias pull-up y el uso de retardos en la programación,
Abstract— In this laboratory practice, the PIC16F877A elementos esenciales para el diseño de sistemas robustos.
microcontroller was programmed and simulated using MPLAB X
IDE and Proteus 8 to control an LED via a button. The objective was
to develop a program that allowed the microcontroller to manage II. MARCO TEÓRICO
actuators such as LEDs and motors. A project was configured in
MPLAB, the code was written in C, and the circuit was simulated in El microcontrolador PIC16F877A es un dispositivo de la
Proteus and Tinkercad. The results showed that the system worked
familia de microcontroladores PIC de Microchip Technology,
correctly, turning the LED on and off when the button was pressed,
validating the effectiveness of the microcontroller’s design and ampliamente reconocido por su versatilidad y facilidad de uso
programming, and providing a solid foundation for future en aplicaciones de control y automatización. Este
developments in electronics.. microcontrolador se basa en una arquitectura RISC (Reduced
Instruction Set Computing), lo que permite una ejecución
Keywords— Proteus 8, LED, button, program, actuators, motors, C eficiente de instrucciones y facilita el desarrollo de
code, simulation, Tinkercad, results, design, programming, aplicaciones en diversas áreas, desde la electrónica básica
electronics.
hasta sistemas más complejos .
L
que incluyen:
IV. RESULTADOS
Codigo:
#include <xc.h>
#define _XTAL_FREQ 4000000 //
Configuramos la frecuencia
del oscilador a 4 MHz
void main(void) {
// Configuración de los
Ilustración 1. Código en la aplicación MPLAB X IDE. puertos
TRISC = 0; //
Configuramos el puerto C como
salida (para el LED)
TRISB = 1; //
Configuramos el puerto B como
entrada (para el botón)
ADCON1 = 0x0F; //
Desactivamos los pines
analógicos
// Bucle principal
Ilustración 2. Simulación en proteus con la señal activa. while(1) {
if (PORTBbits.RB0 ==
0) { // Si el botón está
presionado (RB0 en 0)
PORTCbits.RC0 =
1; // Encendemos el LED
(RC0 en 1)
__delay_ms(1000);
// Esperamos 1 segundo
PORTCbits.RC0 =
0; // Apagamos el LED
(RC0 en 0)
Ilustración 3. Simulación en proteus con la señal pasiva. __delay_ms(1000);
// Esperamos otro segundo
}
Pull-Up: Activo (0V) cuando el interruptor está }
presionado. }
Pull-Down: Activo (5V) cuando el interruptor está
libre. Explicación del código:
o Configuramos el pin RC0 (conectado al
4. Software utilizado: MPLAB X IDE y XC8 LED) como salida y el pin RB0 (conectado
Compiler. al botón) como entrada.
o En el bucle principal (while(1)),
Configuración inicial del código: comprobamos si el botón está presionado
o Configuramos el puerto C como salida y el (cuando el pin RB0 está en bajo). Si es así,
puerto B como entrada. encendemos el LED. Si no, apagamos el
o Desactivamos los convertidores analógicos LED.Utilizamos retardos
utilizando el registro (__delay_ms(1000)) para encender el LED
ADCON1.Establecemos la frecuencia del durante 1 segundo y luego apagarlo durante
oscilador a 4 MHz utilizando #define otro segundo.
_XTAL_FREQ 4000000.
Explicación del código:
5. Simulación en Tinkercad Definición de Pines:
Se realizó una simulación adicional en o ledPin: Pin 6 donde se conecta el LED.
Tinkercad para validar el funcionamiento del o buttonPin: Pin 2 donde se conecta el botón.
circuito, proporcionando un entorno más o buttonState: Variable que almacena el estado
accesible para el diseño y prueba del circuito. del botón.
Función setup():
o Configura ledPin como salida (para el LED) y
buttonPin como entrada (para el botón).
Función loop():
o Lee el estado del botón.
o Si el botón está presionado (LOW), enciende
el LED (HIGH).
Ilustración 4. Circuito en Tinkercard con la señal pasiva o Si el botón no está presionado, apaga el LED
(LOW).
7. Resolución de Problemas
Problemas identificados:
o LED no enciende: Verifica que la resistencia
Ilustración 5. Circuito en Tinkercard con la señal activa. del LED esté conectada correctamente y que el
pin RC0 esté configurado como salida en el
6. Código en tinkercard con la explicación:
código.
o Botón no responde: Asegúrate de que el botón
Código:
// Definimos los pines
esté correctamente conectado y que el pin RB0
int ledPin = 6; // Pin donde conectamos el LED esté en la configuración de entrada.
int buttonPin = 2; // Pin donde conectamos el botón o Voltaje incorrecto: Verifica que la fuente de
int buttonState = 0; // Variable para leer el estado del botón alimentación esté proporcionando los 5V
correctos.
void setup() {
// Configuración de los pines Soluciones:
pinMode(ledPin, OUTPUT); // Configura el pin del LED o Revisar el código, las conexiones y la
como salida
configuración del microcontrolador.
pinMode(buttonPin, INPUT); // Configura el pin del botón
como entrada
o Verificar los componentes en el esquemático
} para asegurarse de que se han colocado
correctamente en el simulador.
void loop() {
// Lee el estado del botón
buttonState = digitalRead(buttonPin);
VI. CONCLUSIÓN
La práctica de laboratorio con el microcontrolador
PIC16F877A permitió validar la programación y simulación
del control de un LED mediante un botón, utilizando MPLAB
X IDE y Proteus 8. Los resultados demostraron que el sistema
funcionó correctamente, encendiendo y apagando el LED en
respuesta al pulsador, lo que confirmó la efectividad del
diseño y la programación. La implementación de resistencias