Making an animated relay in proteus work using pic16f877A

trinetra311

Jul 12, 2012
3
Joined
Jul 12, 2012
Messages
3
Report Post      Today, 06:58 PM #1
Hi all,
I am trying to make an animated relay work to switch on the bulb in my circuit. When a input is given to the pic16f877A, it is to make the relay on the bulb. I have fixed everything correctly( according to me...). But i can't make the relay work when i execute (F12). The lcd included works well though. Pls help. I will include the coding and the picture of the circuit. Also what do the blue and red square lights that appear in the proteus simulation.
Pls do help me.
Thanks
S.Trinetra


p.s
relay is set to 5V. It is still not working.
Do u notice the power terminal connected to one part of the relay and diode. Must have a certain value? I can't seem to insert any value.
Do u think that there is something wrong with the code in Mplab?
Must ac source and bulb be connected to the transistor and ground?
Attached Thumbnails
Making an animated relay in proteus work using pic16f877A-pic16f877a.jpg 

Code:
#include<htc.h>
#include <pic.h> 

__CONFIG ( 0x3F32 );

#define data                PORTD     //Pins to the LCD D0-D7
#define rs          RC2       //rs of LCD
#define rw          RC0       //rw of LCD
#define en          RC3       //e of LCD
#define in          RE0       //input for RFID

// The above pins can be changed according to whicheva u choose

void initialize();          
void busy();
void display(unsigned char one[], unsigned char two[]);
void command(unsigned char var);
void send_data(unsigned char var);
void string(unsigned char *var);

unsigned char text1[]={"RFID PROJECT"};
unsigned char text2[]={"PLACE YOUR CARD"};
unsigned char text3[]={"CARD ACCEPTED"};
unsigned char text4[]={"CARD REJECTED"};
unsigned char text5[]={"                "};
//Additional text can be placed above. and can be called according to how
//u the calling in the code

void main(void)
{
int i, d;
ADCON1 = 0x06;
TRISC=0x00;
TRISD=0X00;
TRISE=0x01;
initialize();
display(text1, text2);
while(1)
{
if (in==1)
{
RC1=1;
display(text3, text5);
busy();

}
else
{
RC1=0;
display(text4, text5);
busy();

}
}
}

void initialize()
{
data=0x38; rs=0; rw=0; en=1; en=0; busy();
data=0x0E; rs=0; rw=0; en=1; en=0; busy();
data=0x01; rs=0; rw=0; en=1; en=0; busy();
data=0x06; rs=0; rw=0; en=1; en=0; busy(); 
}

void busy()
{
 unsigned char i,j;
         for(i=0;i<50;i++)
            for(j=0;j<255;j++);
}


void command(unsigned char var)
{
data=var; rs=0; rw=0;  en=1; en=0;busy();
}

void send_data(unsigned char var)
{
 rs=1;rw=0;  en=1; data=var;  en=0; busy();
}

void string(unsigned char *var)
{
while(*var)
send_data(*var++);
}

void display(unsigned char one[], unsigned char two[])
{
command(0x80);
string(one);
command(0xC0);
string(two);
busy();
}
 

electronic18756

Feb 10, 2012
1
Joined
Feb 10, 2012
Messages
1
check the voltage VBE=0,7 volt and decrease the resistance of the base
after check the coil of the relay to work with 5 volts

 
Top