Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] LCD showing random texts

Status
Not open for further replies.

Mrunal Ahirrao

Full Member level 2
Full Member level 2
Joined
Nov 26, 2012
Messages
133
Helped
2
Reputation
4
Reaction score
2
Trophy points
1,298
Location
India
Visit site
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:
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);
}
}
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.
 

hi,
Where is this pin wire connected too.?
sbit ipfrelay at RA2_bit; //input from relay (to indicate relay has started)


E
 

what is your relay specification its coil energized voltage ?Use transistor or other driving device to drive your relay instead of direct connection to relay.

your connection should be controller pin--->base of transistor--->collector output--->relay coil.

relay.gifunstable +5v supply may be reason for your garbage text on display.
 

Thank you. all for helping its solved!

- - - Updated - - -

hi,
Where is this pin wire connected too.?
sbit ipfrelay at RA2_bit; //input from relay (to indicate relay has started)


E

actually I have connected 5V to o/p of relay which again fed to PIC to sense relay has started

- - - Updated - - -

what is your relay specification its coil energized voltage ?Use transistor or other driving device to drive your relay instead of direct connection to relay.

your connection should be controller pin--->base of transistor--->collector output--->relay coil.

View attachment 113114unstable +5v supply may be reason for your garbage text on display.

its 12V coil and I have used TIP122
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top