A basic basic basic driver for 2x16 HD44780 based displays using the four wire interface.
Dependents: lcdLibraryTest generado_final
lcd.h
- Committer:
- mattegan
- Date:
- 2013-11-08
- Revision:
- 0:0db835052212
File content as of revision 0:0db835052212:
#ifndef LCD #define LCD #include "mbed.h" #define klcdWriteMode 0 #define klcdReadMode 1 #define klcdInstructionRegister 0 #define klcdDataRegister 1 #define klcdEnableHigh 1 #define klcdEnableLow 0 class lcd : public Stream{ public: //uses the four bit interface with a read/write pin in order to read the busy flag lcd(PinName _rs, PinName _rw, PinName _e, PinName _db4, PinName _db5, PinName _db6, PinName _db7); //clear the screen void clear(); //move to a location on the screen, the next printf or putc call // will locate the character at the location void locate(int _row, int _column); //place a character at a location void locateCharacter(int _row, int _column, int _char); //define a character with a 8 element array of 5 bit wide pixel // definitions, from top to bottom void defineCharacter(int _char, int _charData[8]); protected: void setMode(int _mode); void waitUntilNotBusy(); int readByte(int _reg); void writeByte(int _reg, int _byte, bool _wait = true); int readNibble(int _reg); void writeNibble(int _reg, int _nibble); //stream implementation virtual int _putc(int _value); virtual int _getc(); BusInOut dataBus; DigitalOut registerSelect; DigitalOut readWrite; DigitalOut enable; int currentMode; int column; int row; }; #endif