HI all, I am making a small project in which i am using a 3.7v li-ion 2600mah Battery, 20x4 LCD, step up converter, mosfet, 89S52 and a keypad. my concept is to just print a command on LCD. so for that i wrote a command like... Code: printscreen("HELLO WORLD, HOW ARE YOU"); i prints absolutely fine. but the problem is it prints giving spaces in between like.... HELLO WOR LD, HOW ARE Y OU. why is it happing. i have connected my 89s52 directly to the battery so it keeps it always on. on keypress from keypad the stepup converter gets activated using a mosfet and supplies 5v only to LCD. data pins of LCD are connected to port1 of 89S52.
it prints perfectly in proteus without giving any spaces..... but it creates problem while i try to run the same in my circuit.
Transmission line effect, skewing of data signals. Try delaying the CS, WR signal by a few uS.
You definitely need to verify the timing of your signals, to fulfill the setup and hold times as specified in the datasheet. With "luck" it's sometimes possible to erroneously get it to work, even when the timing is broken.
So "but it works" doesn't prove something is correct. All individual requirements must be one-by-one explicitly verified.
look at the data sheet. have you check you comply with the timing. the voltage must be right oand not to low or far. if it is too wrong it will not be 100% correct. did you check the initialiszation sequence. it must be right or it can be wrong. have you 100% check the code with the simulator. make sure timing is for the long delay. increased the input dial threshold of the timing routine. check the int overflow. when you have check every detail it will work or it will not if you forget to masticate the connector.