They are all in the datasheet for the controller (HD44780?)
Opps... how can I miss something that obvious? Thanks :).
Do you know where can I find the documentation of the register commands?
They are all in the datasheet for the controller (HD44780?)
The structure of that command set is a bit easier to understand if you keep the following in mind.
In analyzing the instructions:
-- You should ignore the two left columns since they deal with the control signals RS and R/W and not the instructions themselves.
-- The last instruction 'Read busy flag & address' should also be ignored (for the time being) since it deals with reading stuff from the display.
-- You now have eight instructions left and they are identified by the location of the highest bit that is logic '1'.
For example:
-- The 'Cursor or display shift' instruction has logic '0' for DB7, DB6, and DB5
-- The highest bit that is logic '1' is DB4. This bit identifies the instruction but has no other significance.
-- The entry in the DB3 column is S/C and the description of what this controls is at the bottom of the table (usually on the next page).
-- The entry in the DB2 column is R/L and the description of what this controls is also at the bottom of the table.
-- The entries in the DB1 and DB0 columns are dashes and those bits are ignored by the LCD controller.
The resulting binary number is 'bit mapped' which means that it's hexadecimal (or decimal) value has no meaning. If you use the hex value in your program, which you must do for some compilers, you really should put the binary value in a comment.
Don
I have successfully resembled the LCD output locally in my Arduino, and mirrored the LCD output via serial. Everything works fine, great ^^.
Now, I want to program my Arduino to control the buttons on the LCD panel. Here is the circuit board of the LCD panel,
Originally, I thought it should be an easy task. However, when I looked into the circuit of the LCD panel buttons, I saw something funny. The signal corresponds to the off state of the buttons is HIGH. Anyway, I tried to replace the switches with my Arduino output pins, and here is what I have done
.
Though it works, I have a very bad feeling about my rough design. First, I'm shorting an input pin of the first Arduino to an output pin on my Arduino. Am I going to damage anything like this? Second, the off state of the buttons is HIGH. Before my Arduino can set its output pin HIGH during setup(), my Arduino is probably pressing buttons randomly.
Are these two issues going to be a problem? If so, how can they be solved?
Gary
Use a transistor to replace the switches. Much more reliable.
