// 74HC595 wired in "non latching mode" for SR 3 wire operation // // 74HC595 (VCC) // +----u----+ | // (LCD RS)------------1-|Q1 VCC|-16-+ // (LCD D4)------------2-|Q2 Q0|-15-------------(BL circuit) // (LCD D5)------------3-|Q3 SER|-14-------------(data pin) // (LCD D6)------------4-|Q4 /OE|-13--(gnd) // (LCD D7)------------5-|Q5 RCLK|-12-------+ // | | | // 6-|Q6 SCLK|-11-------+-----(clock pin) // 7-|Q7 /MR|-10--(VCC) // +-8-|GND Q6'|--9 // | +---------+ // | 0.1uf // (gnd)-----||----(VCC) // // (enable pin)-----------------------------------(LCD Enable) // // (LCD RW)--(gnd) // // --------------------------------------------------------------------------- // // 74HC595 wired in "latching mode" for SR 3 wire operation // // NOTE: pin 11 is not connected to pin 12 // // 74HC595 (VCC) // +----u----+ | // (BL circuit)--------1-|Q1 VCC|-16-+ // (LCD RS)------------2-|Q2 Q0|-15 // (LCD D4)------------3-|Q3 SER|-14-------------(data pin) // (LCD D5)------------4-|Q4 /OE|-13--(gnd) // (LCD D6)------------5-|Q5 RCLK|-12--------+ // | | \ // (LCD D7)------------6-|Q6 SCLK|-11----------)--(clock pin) // 7-|Q7 /MR|-10--(VCC) / // +-8-|GND Q6'|--9 | // | +---------+ | // | 0.1uf | // (gnd)-----||----(VCC) | // | // (enable pin)---------------------------------+-(LCD Enable) // // (LCD RW)--(gnd) * 74HC595 (VCC) * +----U----+ | * (LCD D1)------------1-|Q1 VCC|-16-+ * (LCD D2)------------2-|Q2 Q0|-15-----------(LCD D0) * (LCD D3)------------3-|Q3 /OE|-13-----------(GND) * (LCD D4)------------4-|Q4 SER|-14-----------(SDA) * (LCD D5)------------5-|Q5 RCLK|-12-----------(EN) * (LCD D6)------------6-|Q6 SCLK|-11-----------(SCL) * (LCD D7)------------7-|Q7 /MR|-10-----------(VCC) * +-8-|GND Q6'|-9 * | +---------+ * | 0.1uF * (GND)-----||----(VCC) * (LCD RS)---------------------------------------(SDA) * (LCD EN)---------------------------------------(EN) * (LCD BT)---------------------------------------(BT) * (LCD RW)---------------------------------------(GND) void HD44780::SR4W::write8b(uint8_t data) { m_sda.write(data, m_scl); m_sda.write(m_rs); m_en.toggle(); m_en.toggle(); DELAY(SHORT_EXEC_TIME); }