Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // LCD 595
- #include <IToOutputModule595.h>
- const uint8_t qtd_modules = 2; // 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
- 1 2 3 4 5 6 7
- */
- //------------------------------
- void setup()
- {
- Serial.begin(9600); // Inicialisa Seria monitor
- initLCD(); // inicialisa LCD
- initLCD2(); // inicialisa LCD2
- }
- //------------------------
- void loop()
- {
- writedata(0x52); // Manda caracter (em Hex)
- writedata(0x55);
- writedata(0x49);
- writedata(0x20);
- writedata(0x4C); // Manda caracter (em Hex)
- writedata(0x4F);
- writedata(0x50);
- writedata(0x45);
- writedata(0x53);
- writedata(0x20);
- writedata(0x56); // Manda caracter (em Hex)
- writedata(0x49);
- writedata(0x41);
- writedata(0x4E);
- writedata(0x41);
- writedata(0x20);
- writedata(0x20);
- //delay(5);
- writedata2(0x43); // Manda caracter (em Hex)
- writedata2(0x45);
- writedata2(0x4C);
- writedata2(0x53);
- writedata2(0x4F);
- writedata2(0x20);
- writedata2(0x45); // Manda caracter (em Hex)
- writedata2(0x49);
- writedata2(0x4A);
- writedata2(0x55);
- writedata2(0x20);
- writedata2(0x49); // Manda caracter (em Hex)
- writedata2(0x54);
- writedata2(0x4F);
- writedata2(0x20);
- // delay(5);
- }
- //----------------------------
- void writedata2(byte value2) // Escreve um caracter
- {
- int data = (value2 & 0xF0); // Separa a parte alta do byte e or com RS
- data = data | 0x02;
- cli();
- outs.SetModule(data, 0); // Envia dados
- pulse595(data); // Pulsa ENA
- sei();
- data = (value2 & 0x0F) ; // Separa a parte baixa do byte e or com RS
- data = data << 4 | 0x02;
- cli();
- outs.SetModule(data, 0); // Envia dados
- pulse595(data); // Pulsa ENA
- sei(); // 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 << 4, 0); // Envia dados
- pulse595(value << 4); // Pulsa ENA
- sei();
- }
- //-----------------------------------
- void pulse595(byte value) // Pulsa ENA para entra dados
- {
- outs.SetModule((value | 0x08), 0);
- outs.SetModule((value | 0x00), 0);
- }
- //------------------------------
- //----------------------------
- void writedata(byte value2) // Escreve um caracter
- {
- int data = (value2 & 0xF0); // Separa a parte alta do byte e or com RS
- data = data | 0x02;
- cli();
- outs.SetModule(data, 1); // Envia dados
- pulse5952(data); // Pulsa ENA
- sei();
- data = (value2 & 0x0F) ; // Separa a parte baixa do byte e or com RS
- data = data << 4 | 0x02;
- cli();
- outs.SetModule(data, 0); // Envia dados
- pulse5952(data); // Pulsa ENA
- sei(); // Escreve no LCD
- }
- //---------------------------
- void initLCD2()
- {
- delay(15); // Tempo de power on
- outs.SetModule(0, 1);
- write5952(3); // Envia Hex 3 Interface 8 bits long ??
- delayMicroseconds(4500); // wait min 4.1ms
- write5952(3); // Envia Hex 3 Interface 8 bits long ??
- delayMicroseconds(40); // wait min 40 us
- write5952(3); // Envia Hex 3 Interface 8 bits long ??
- delayMicroseconds(40); // wait min 40 us
- write5952(2); // Envia Hex 2 Interface 4 bits long
- delayMicroseconds(40); // wait min 40 us
- // 28
- write5952(2); // Envia Hex 2 Interface 4 bits long
- write5952(8); // Envia Hex 8 display de 2 linhas
- delayMicroseconds(60); // wait min 60 us
- // 08
- write5952(0); // Envia Hex 0
- write5952(8); // Envia Hex 8 ativa display
- delayMicroseconds(60); // wait min 60 us
- // 01
- write5952(0); // Envia Hex 0
- write5952(1); // Envia Hex 1 clear LCD
- delay(3); // wait min 3ms
- // 06
- write5952(0); // Envia Hex 0
- write5952(6); // Envia Hex 6 cursor incrementa por 1
- // clear 0C
- write5952(0); // Envia Hex 0
- write5952(0x0C); // Envia Hex C liga display
- // 01
- write5952(0); // Envia Hex 0
- write5952(1); // Envia Hex 1 clear LCD
- delay(3); // wait min 3ms
- }
- //-----------------------------------
- void write5952(byte value2)
- {
- cli();
- outs.SetModule(value2 << 4, 1); // Envia dados
- pulse5952(value2 << 4); // Pulsa ENA
- sei();
- }
- //-----------------------------------
- void pulse5952(byte value2) // Pulsa ENA para entra dados
- {
- outs.SetModule((value2 | 0x08), 1);
- outs.SetModule((value2 | 0x00), 1);
- }
- //-----------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement