A set/reset relay commonly found in many simple industrial control system such PLC. But such type of relay are more expensive than the common electro-mechanical relays.
commonly found electromechanical relays |
Anyway, we can implement the set/reset relay using digital IC, or using a simple microcontroller.
PIC16F887 is general purpose microcontroller. We can program it for simple tasks or even more complex tasks.
In this example, I use two push button to set and relay an output relay. All I/Os locate at the same port.
The relay output turns a AC lamp on and off.
Schematic diagram. RD7 connects to SW3 to set the output. RD6 connects to SW2 to reset the output. In the simulation, I assume that the AC source is 110V 50Hz, identical to the AC light bulb. |
Source code is written using XC8.
#include<xc.h>
// PIC16F887 Configuration Bit Settings
// CONFIG1
#pragma config FOSC = XT
#pragma config WDTE = OFF
#pragma config PWRTE = OFF
#pragma config MCLRE = ON
#pragma config CP = OFF
#pragma config CPD = OFF
#pragma config BOREN = ON
#pragma config IESO = ON
#pragma config FCMEN = ON
#pragma config LVP = ON
// CONFIG2
#pragma config BOR4V = BOR40V
#pragma config WRT = OFF
#define setButton RD7
#define resetButton RD6
#define outputRelay RD0
void main(){
//Clear PortD
PORTD=0x00;
//RD7 and RD6 are output
TRISD=0b11000000;
while(1){
if(setButton==0) outputRelay=1;
if(resetButton==0) outputRelay=0;
}
}
I took a screen shot of the simulation.
Simulation screen shot. Lamp and relay turned on due to set button pressed. |
No comments:
Post a Comment