Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // LCD 595
- #include <IToOutputModule595.h>
- const uint8_t qtd_modules = 1; // 2 modules or 2 74HC595
- IToOutputModule595 outs(3, qtd_modules); // (pino de data, quantidade de m�dulos)
- byte Display0 ;
- /*
- * HC595 pin
- RS RW ENA DB7 DB6 DB5 DB4
- 6 4 5 3 2 1 15
- */
- //------------------------------
- void setup()
- {
- Serial.begin(9600); // Inicialisa Seria monitor
- initLCD(); // inicialisa LCD
- }
- //------------------------
- void loop()
- {
- writedata(0x52); // Manda caracter (em Hex)
- writedata(0x55);
- writedata(0x49);
- delay(5);
- }
- //----------------------------
- void writedata(byte value) // Escreve um caracter
- {
- int data = ((value >> 4 & 0x0F) | 0x40); // Separa a parte alta do byte e or com RS
- write595(data); // Escreve no LCD
- data = ((value & 0x0F) | 0x40); // Separa a parte baixa do byte e or com RS
- write595(data); // Escreve no LCD
- }
- //---------------------------
- void initLCD()
- {
- delay(15); // Tempo de power on
- outs.SetModule(0, 0);
- write595(3); // Envia Hex 3 Interface 8 bits long ??
- delayMicroseconds(4500); // wait min 4.1ms
- write595(3); // Envia Hex 3 Interface 8 bits long ??
- delayMicroseconds(40); // wait min 40 us
- write595(3); // Envia Hex 3 Interface 8 bits long ??
- delayMicroseconds(40); // wait min 40 us
- write595(2); // Envia Hex 2 Interface 4 bits long
- delayMicroseconds(40); // wait min 40 us
- // 28
- write595(2); // Envia Hex 2 Interface 4 bits long
- write595(8); // Envia Hex 8 display de 2 linhas
- delayMicroseconds(60); // wait min 60 us
- // 08
- write595(0); // Envia Hex 0
- write595(8); // Envia Hex 8 ativa display
- delayMicroseconds(60); // wait min 60 us
- // 01
- write595(0); // Envia Hex 0
- write595(1); // Envia Hex 1 clear LCD
- delay(3); // wait min 3ms
- // 06
- write595(0); // Envia Hex 0
- write595(6); // Envia Hex 6 cursor incrementa por 1
- // clear 0C
- write595(0); // Envia Hex 0
- write595(0x0C); // Envia Hex C liga display
- // 01
- write595(0); // Envia Hex 0
- write595(1); // Envia Hex 1 clear LCD
- delay(3); // wait min 3ms
- }
- //-----------------------------------
- void write595(byte value)
- {
- cli();
- outs.SetModule(value, 0); // Envia dados
- pulse595(value); // Pulsa ENA
- sei();
- }
- //-----------------------------------
- void pulse595(byte value) // Pulsa ENA para entra dados
- {
- outs.SetModule((value | 0x20), 0);
- outs.SetModule((value | 0x00), 0);
- }
- //-----------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement