Source Code For Password Based Circuit Breaker
Source Code For Password Based Circuit Breaker
h>
#include <stdio.h>
#include <string.h>
// Function prototypes
void initialize();
void lcd_command(unsigned char);
void lcd_data(unsigned char);
void lcd_initialize();
void lcd_print(const char *);
void check_password();
char get_keypad_key();
void activate_relay();
void deactivate_relay();
void main(void) {
initialize();
lcd_initialize();
lcd_print("Enter Password:");
__delay_ms(1000);
while(1) {
check_password();
}
}
void initialize() {
// Set LCD and Keypad ports as output/input
TRISB = 0x00; // LCD as output
TRISD = 0x00; // Control pins as output
TRISC = 0xF0; // Keypad (upper 4 bits input, lower 4 bits output)
// Set relay pins as output (Assuming relay connected to RD2 and RD3)
TRISD2 = 0;
TRISD3 = 0;
deactivate_relay();
}
void lcd_initialize() {
lcd_command(0x38); // 8-bit mode, 2-line display, 5x8 font
lcd_command(0x0C); // Display on, cursor off
lcd_command(0x06); // Increment cursor
lcd_command(0x01); // Clear display
}
void check_password() {
char key = get_keypad_key();
char get_keypad_key() {
// Keypad scanning logic
KEYPAD_PORT = 0x0E; // Column 1
if (KEYPAD_PORT & 0x10) return '1';
if (KEYPAD_PORT & 0x20) return '4';
if (KEYPAD_PORT & 0x40) return '7';
if (KEYPAD_PORT & 0x80) return '*';
void activate_relay() {
RD2 = 1; // Activate relay 1
RD3 = 1; // Activate relay 2
}
void deactivate_relay() {
RD2 = 0; // Deactivate relay 1
RD3 = 0; // Deactivate relay 2
}