Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // LCD PinToPIN
- #define RS 6 // Port RS para o LCD
- #define RW 7 // Port RW para o LCD
- #define ENA 8 // Port ENA para o LCD
- #define DB7 9 // Port DB7 para o LCD
- #define DB6 10 // Port DB6 para o LCD
- #define DB5 11 // Port DB5 para o LCD
- #define DB4 12 // Port DB4 para o LCD
- //------------------------------
- void setup()
- {
- Serial.begin(9600); // Inicialisa Seria monitor
- pinMode( RS , OUTPUT); // Port como output
- pinMode( RW , OUTPUT);
- pinMode(ENA, OUTPUT);
- pinMode( DB7 , OUTPUT);
- pinMode( DB6 , OUTPUT);
- pinMode( DB5 , OUTPUT);
- pinMode( DB4 , OUTPUT);
- initLCD(); // inicialisa LCD
- }
- //------------------------
- void loop()
- {
- writedata(0x61); // Manda um caracter (em Hex)
- }
- //----------------------------
- void writedata(byte value) // Escreve um caracter
- {
- digitalWrite(RS , HIGH); // Habilita dados
- int data = value >> 4 & 0x0F; // Separa a parte alta do byte
- write4bits(data); // Escreve no LCD
- data = value & 0x0F; // Separa a parte baixa do byte
- write4bits(data); // Escreve no LCD
- digitalWrite(RS , LOW); // Desabilita dados
- }
- //---------------------------
- void initLCD()
- {
- delay(15); // Tempo de power on
- digitalWrite( ENA, LOW); // Desabilita enable
- digitalWrite( RS , LOW); // Desabilita dados
- digitalWrite( RW , LOW); // Desabilita RW
- write4bits(3); // Envia Hex 3 Interface 8 bits long ??
- delayMicroseconds(4500); // wait min 4.1ms
- write4bits(3); // Envia Hex 3 Interface 8 bits long ??
- delayMicroseconds(40); // wait min 40 us
- write4bits(3); // Envia Hex 3 Interface 8 bits long ??
- delayMicroseconds(40); // wait min 40 us
- write4bits(2); // Envia Hex 2 Interface 4 bits long
- delayMicroseconds(40); // wait min 40 us
- // 28
- write4bits(2); // Envia Hex 2 Interface 4 bits long
- write4bits(8); // Envia Hex 8 display de 2 linhas
- delayMicroseconds(60); // wait min 60 us
- // 08
- write4bits(0); // Envia Hex 0
- write4bits(8); // Envia Hex 8 ativa display
- delayMicroseconds(60); // wait min 60 us
- // 2E
- write4bits(0); // Envia Hex 0
- write4bits(1); // Envia Hex 1 Home
- delay(3); // wait min 3ms
- // 06
- write4bits(0); // Envia Hex 0
- write4bits(6); // Envia Hex 6 cursor incrementa por 1
- // clear 0C
- write4bits(0); // Envia Hex 0
- write4bits(0x0C); // Envia Hex C liga display
- }
- //-----------------------------------
- void write4bits(byte value)
- {
- digitalWrite( DB7 , (value ) & 0x01); // Separa bit 7
- digitalWrite( DB6 , (value >> 1) & 0x01); // Separa bit 7
- digitalWrite( DB5 , (value >> 2) & 0x01); // Separa bit 7
- digitalWrite( DB4 , (value >> 3) & 0x01); // Separa bit 7
- pulseEnable(); // Chama rotina de entrada dos dados
- }
- //-----------------------------------
- void pulseEnable() // Pulsa ENA para entra dados
- {
- digitalWrite(ENA, HIGH); // ENA HIGH
- delayMicroseconds(1); // delay
- digitalWrite(ENA, LOW); // ENA LOW
- delayMicroseconds(100); // delay
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement