Mrunal Ahirrao
Full Member level 2
- Joined
- Nov 26, 2012
- Messages
- 133
- Helped
- 2
- Reputation
- 4
- Reaction score
- 2
- Trophy points
- 1,298
- Location
- India
- Activity points
- 2,213
Hi all,
I am using PIC16f628A and compiler is MikroC pro for PIC. I am actually making a project to test switching speed of electromechanical relay. Here is my code:
Its displaying msg1 and msg 2 correctly but as soon as I apply logic 1 to RA3 the LCD shows random texts(some are chineses, etc). I coded it to show the time taken by relay to switch ON but relay is not switching and instead the LCD is showing random texts and PIC and 7805 are getting hot as soon as I apply logic one to RA3. I have connected both inputs RA2&RA3 via 10K resistors to GND. Please correct whether I done some mistake.
I am using PIC16f628A and compiler is MikroC pro for PIC. I am actually making a project to test switching speed of electromechanical relay. Here is my code:
Code:
//Relay switching speed test
// LCD module connections
sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;
sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
// End LCD module connections
sbit relay at RA0_bit;
sbit ipfrelay at RA2_bit; //input from relay (to indicate relay has started)
sbit input at RA3_bit; //trigger for relay
char millisecs;
char msg1[] ="SW Time=";
char msg2[] ="ms";
void main()
{
CMCON=0x07;
TRISA=0b00001100;
TRISB=0b00000000;
OPTION_REG=0b10110000;
LCD_Init();
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF);
Lcd_Out(1,1,msg1);
Lcd_Out(1,11,msg2);
millisecs=0;
relay=0;
while(1)
{
if(input==1)
{
relay=1;
}
if(relay==1)
{
delay_ms(1);
millisecs++; // incrementing millisecs per 1 ms to calculate switching time in millisecs.
}
if(ipfrelay==1&&relay==1)relay=0;
Lcd_Out(1,9,millisecs);
}
}