How to Relay interfacing with PIC16F877A microcontroller and mikroC
In this tutorial we will learn how to Relay interfacing with Microcontroller. Here I am use PIC16F877A Microcontroller and LM16x2 Lcd display.
You can watch the video or read the written tutorial below.
Circuit Diagram for Relay Interface:
Project Code
# define SW PORTD.RD7 // switch is connect to RD7
// Lcd module connections
sbit LCD_RS at RB0_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D4 at RB2_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D7 at RB5_bit;
sbit LCD_RS_Direction at TRISB0_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D7_Direction at TRISB5_bit;
// End lcd module connnections
void main() {
TRISC = 0X00; // PORTC in output
TRISD = 0X80; // RD7 is input
PORTC = 0X00; // clear PORTC
PORTD = 0X00; // Clear PORTD
Lcd_Init(); // Initialize Lcd module
Lcd_Cmd(_LCD_CURSOR_OFF); // Lcd cursor off
Lcd_Cmd(_LCD_CLEAR); // Led clear
Lcd_Out(1,3,"DEVELOPED BY"); // Lcd show "DEVELOPED BY"
Lcd_Out(2,1,"MINA TECHNOLOGY"); // Lcd show "MINA TECHNOLOGY"
delay_ms(2000); // 2s delay
Lcd_Cmd(_LCD_CLEAR); // Lcd clear
Lcd_Out(1,1,"Relay Interface"); // Lcd show "LATCH"
Lcd_Out(2,1,"Relay:"); // Lcd show "LED:"
Lcd_Out(2,8,"Deactive");
while(1){ // Endless loop
if(SW==1){
while(SW==1); // wait for SW release
PORTC.F0 = ~PORTC.F0; // Toggle the PORTC.RC0
if(PORTC){
Lcd_Out(2,8,"Active ");
}
else{
Lcd_Out(2,8,"Deactive");
}
// Increase value
}
}
}
Download free source code
Post Comments