I have a small project with AT89S52 and LCD 16x2. I build circuit and simulation in Proteus. It works normally. But when I build PCB, LCD can't display the value. I just adjusted rheostat to change LCD's contrast and it worked. Can you told me the mistake that I have?

enter image description here


closed as unclear what you're asking by pipe, Voltage Spike, Elliot Alderson, Edgar Brown, Dwayne Reid Jan 11 at 19:17

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    \$\begingroup\$ Read the manual about LCD bias contrast voltage \$\endgroup\$ – Sunnyskyguy EE75 Jan 8 at 4:56
  • \$\begingroup\$ It worked fine, or you're getting those blocks in the photo? \$\endgroup\$ – Spehro Pefhany Jan 8 at 4:58
  • \$\begingroup\$ Can you told me the mistake what i have? .... you provided no schematic and no program listing .... the answer is no, we cannot tell you what mistake you made .... we can only guess about a mistake that you might have made \$\endgroup\$ – jsotola Jan 8 at 16:38

I don't see much in the way of decoupling on that board, which simulators generally don't care about, but real implementations do....

Is the micro even running? You could write a simple program to toggle a pin and stick a scope probe on it to see if the processor is working? It is generally worth hanging a few LEDs on some spare pins because it makes early bring up very much easier.

Those LCD modules are often quite picky about timing, especially during the setup phase, read the datasheet carefully and make sure your software meets the described timing.

Simulators are somewhat useful for telling you that something will NOT work, but they have very limited value in telling you something will unless you know exactly what you are doing to start with.

  • \$\begingroup\$ you think mistake about hardware or code??? \$\endgroup\$ – Nguyen Anh Duc Jan 8 at 14:29
  • \$\begingroup\$ No way to know without having it in front of me. Start by tacking an LED onto an IO port and write some code to flash the LED, this will tell you if the processor is basically alive, then change the code to drive each pin of the LCD and apply 'scope, this will verify the layout, if you make it this far it is probably software, but also add some decoupling caps if they are as missing as they seem to be. 100nF, ceramic on short leads should do for both the processor and LCD power nets. \$\endgroup\$ – Dan Mills Jan 8 at 14:34
  • \$\begingroup\$ thanks you for your assistance. I think mistake from tranfer code unit. I think my microcontrollers don't have code \$\endgroup\$ – Nguyen Anh Duc Jan 9 at 1:55

Not the answer you're looking for? Browse other questions tagged or ask your own question.