SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
Leitura de teclas e teclado matricial

Prof.MSc.Rodrigo Maximiano Antunes de Almeida

           Universidade Federal de Itajubá


         rodrigomax@unifei.edu.br




                  ELT024    Leitura de teclas e teclado matricial
Teclado




Revisão




ELT024   Leitura de teclas e teclado matricial
Leitura de Teclas
                           Debounce




• Problema de bouncing
    • Causado pela oscilação mecânica da chave
    • Pode gerar acionamentos indevidos no sistema
• Soluções
    • Via hardware através de circuito dedicado
    • Via software através de confirmação temporal




                        ELT024   Leitura de teclas e teclado matricial
Leitura de Teclas
                              Debounce

                      Circuito com bouncing




http://www.labbookpages.co.uk/electronics/debounce.html - Dr. Greensted

                           ELT024    Leitura de teclas e teclado matricial
Leitura de Teclas
                                  Debounce
1    void main(void) interrupt 0 {
2        unsigned char valTemp, valAtual, tempo;
3        //inserir as configurações necessárias aqui
4        for(;;){
5            while(valAtual==PORTB);     //aguarda uma mudança na porta B
6            valTemp = PORTB;            //na mudança, aguarda um tempo
7            tempo = 22;
8            while (tempo > 0) {
9                if (valTemp == PORTB) { // se não mudar continua a contar
10                   tempo--;
11               } else {
12                   valTemp = PORTB;    // se mudar, atualiza e reinicia
13                   tempo = 22;
14               }
15           }
16           valAtual = valTemp;         //valor atualizado;
17           //Aqui a variável está pronta para ser usada
18       }
19   }
                               ELT024   Leitura de teclas e teclado matricial
Leitura Matricial
   Circuito básico




   ELT024   Leitura de teclas e teclado matricial
Leitura Matricial
                               Processo de Varredura

1    //processo de varredura
2
3    for(i = 0; i < 2; i++){
4        PORTB = 0xff;                     //liga todas as colunas
5        for(j = 0; j < 100; j++);
6        BitClr(PORTB,i);                  //desliga coluna a ser testada
7        for(j = 0; j < 100; j++);         //gasta tempo (garantir estabilidade)
8        for(j = 0; j < 4; j++){
9            if (!BitTst(PORTB,j+4)){      //realiza o teste para cada bit
10               chave[i][j] = 1;          //atualiza a matriz
11               BitSet(PORTD,j+4*i);      //mostra na porta D
12           }else{
13               chave[i][j] = 0;
14               BitClr(PORTD,j+4*i);
15           }
16       }
17   }

                                  ELT024    Leitura de teclas e teclado matricial
Display de LCD




Display de LCD




   ELT024   Leitura de teclas e teclado matricial
Display de LCD




  ELT024   Leitura de teclas e teclado matricial
Display de LCD



• Display de LCD
    • Utiliza-se do conceito de polarização da luz para formar a
       imagem
    • Os pixels são formados por retenção de luz 1
    • Geralmente possue um microcontrolador integrado
    • São encontrados em formato de 7 segmentos ou matricial 2
    • No formato matricial é possivel representar as letras, números
       e diversos simbolos




1
    No caso dos displays com leds, os pixels são formados por emissão de luz.
2
    Os formatos matriciais mais comuns são 5x7 e 5x8
                               ELT024    Leitura de teclas e teclado matricial
Display de LCD




• Este tipo de display pode ser visto como uma solução de
  exibição completa:
    •   O microcontrolador faz o papel da placa de vídeo
    •   O display faz o papel do monitor
    •   A comunicação é feita através de um barramento paralelo
    •   O barramento é comandado por 3 sinais de controle




                          ELT024   Leitura de teclas e teclado matricial
Display de LCD




  ELT024   Leitura de teclas e teclado matricial
Display de LCD



1   Terra                             9   Bit 2
2   VCC (+5V)                        10   Bit 3
3   Ajuste do contraste              11   Bit 4
4   Seleção de registro(RS)          12   Bit 5
5   Read/Write (RW)                  13   Bit 6
6   Clock, Enable (EN)               14   Bit 7
7   Bit 0                            15   Backlight +
8   Bit 1                            16   Backlight Gnd




                          ELT024   Leitura de teclas e teclado matricial
Display de LCD




Atenção
Cuidado com a pinagem do display. O que está em uso na aula é
15, 16, 1, 2, ... 14. Os pinos não estão em ordem. A
troca/substituição do display tem que ser realizada com atenção
pois a placa está pronta para receber apenas esse tipo de display.




                           ELT024   Leitura de teclas e teclado matricial
Display de LCD




  ELT024   Leitura de teclas e teclado matricial
Display de LCD



  • Rotina para envio de dados/comando para o LCD
      • Para comando RS = 0; Para dados RS = 1;
      • Habilitar a escrita (RW=1) ou leitura (RW=0)
      • Acionar terminal EN (enable)
      • Delay para o LCD entender o comando
      • Desabilita o terminal EN
      • Retorna os terminais (RW e RS) para nível baixo                 3




   3
     Para melhor uso é interessante retornar os terminais para o valor que
tinham antes de chamar a rotina, já que eles estão multiplexados com outros
dispositivos
                              ELT024    Leitura de teclas e teclado matricial
Display de LCD




http://www.sparkfun.com/datasheets/LCD/HD44780.pdf - Datasheet Hitachi
                           ELT024    Leitura de teclas e teclado matricial
Display de LCD




http://www.sparkfun.com/datasheets/LCD/HD44780.pdf - Datasheet Hitachi
                           ELT024    Leitura de teclas e teclado matricial
Display de LCD

         Formação dos comandos para controle do                  LCD:
                       Dados (bit)                                            Tempo
Instrução RS RW
                       7 6 5 4 3 2                                1      0    (máx.)
Limpa       0    0     0 0 0 0 0 0                                0      1    37 us
Reset       0    0     0 0 0 0 0 0                                1      -    1.5ms
Config.      0    0     0 0 0 0 0 1                                ID     S    37 us
Config.      0    0     0 0 0 0 1 D                                C      B    37 us
Movim.      0    0     0 0 0 1 SC RL                              -      -    37 us
Config.      0    0     0 0 1 DL N F                               -      -    37 us
Move(l,c) 0      0     1 X 0 0 Coluna                                         37 us
Ocup.       0    1     BF -    -   -   -    -                     -      -    10 us
 http://www.sparkfun.com/datasheets/LCD/HD44780.pdf - Datasheet Hitachi
                              (Modificado)



                            ELT024    Leitura de teclas e teclado matricial
Display de LCD


• Definições:
    • ID: 1 – Incrementa, 0 – Decrementa
    • S: 1 – O display acompanha o deslocamento
    • SC: 1 – Desloca o display, 0 – Desloca o cursor
    • RL: 1 – Move para direita, 0 – Move para esquerda
    • DL: 1 – 8 bits, 0 – 4 bits
    • N: 1 – 2 linhas, 0 – 1 linha
    • F: 1 – 5x10 pontos, 0 – 5x8 pontos
    • BF: 1 – Ocupado, 0 – Disponível
    • X: 1 – 2a linha, 0 – 1a linha
    • Coluna: nibble indicativo da coluna




                        ELT024   Leitura de teclas e teclado matricial
Display de LCD




• Desenvolvimento da biblioteca
    • Criação de rotinas de delay (2ms e 40us)
    • Função para enviar comandos
    • Função para enviar dados
    • Função de inicialização




                         ELT024   Leitura de teclas e teclado matricial
Display de LCD
1    #include "lcd.h"
2    #include "basico.h"
3    #define RS 0
4    #define EN 1
5    #define RW 2
6
7    void Delay40us(void){
8    //para um cristal de 8MHz cada instrução
9    //gasta 0,5 us: 40/0,5 = 80 instruções
10       unsigned char i;
11   //3 + 3 * 25 = 78
12       for(i=0; i < 25; i++);
13   }
14
15   void Delay2ms(void){
16       unsigned char i;
17       for(i=0; i < 200; i++)
18       {
19           Delay40us();
20       }
21   }

                                  ELT024   Leitura de teclas e teclado matricial
Display de LCD
1    void EnviaComando(unsigned char cmd){
2        BitClr(PORTE,RS); //comando
3        BitClr(PORTE,RW); // habilita escrita
4        PORTD = cmd;
5        BitSet(PORTE,EN); //habilita leitura
6        Delay2ms();
7        BitClr(PORTE,EN); //termina leitura
8        BitClr(PORTE,RS); //deixa em nível baixo
9        BitClr(PORTE,RW); //deixa em nível baixo
10       Delay2ms();
11   }
12
13   void EnviaDados(unsigned char valor){
14       BitSet(PORTE,RS); //dados
15       BitClr(PORTE,RW); // habilita escrita
16       PORTD = valor;
17       BitSet(PORTE,EN); //habilita leitura
18       Delay40us();
19       BitClr(PORTE,EN); //termina leitura
20       BitClr(PORTE,RS); //deixa em nível baixo
21       BitClr(PORTE,RW); //deixa em nível baixo
22       Delay40us();
23   }
                                 ELT024    Leitura de teclas e teclado matricial
Display de LCD
1    void InicializaLCD(void){
2        Delay2ms(); // garante inicialização do LCD
3        Delay2ms();
4        Delay2ms();
5        Delay2ms();
6        Delay2ms();
7    // configurações de direção dos terminais
8        BitClr(TRISE,RS);    //RS
9        BitClr(TRISE,EN);    //EN
10       BitClr(TRISE,RW);    //RW
11       TRISD = 0x00;        //dados
12       ADCON1 = 0b00001110;
13   //configura o display
14       EnviaComando(0x38); //8bits, 2 linhas, 5x8
15       EnviaComando(0x06); //modo incremental
16       EnviaComando(0x0F); //display, cursor e blinking ON
17       EnviaComando(0x03); //zera contadores internos
18       EnviaComando(0x01); //limpar display
19       EnviaComando(0x80); //posição inicial
20   }


                                 ELT024    Leitura de teclas e teclado matricial
Display de LCD




1   #ifndef LCD_H
2       #define LCD_H
3       void EnviaComando(unsigned char cmd);
4       void EnviaDados(unsigned char valor);
5       void InicializaLCD(void);
6   #endif //LCD_H




                                ELT024    Leitura de teclas e teclado matricial
Display de LCD

1    #include "basico.h"
2    #include "config.h"
3    #include "lcd.h"
4
5    //inicio do programa
6    void main(void) interrupt 0
7    {
8        unsigned int i,j;
9        char msg[] = "Hello World!";
10       InicializaLCD();
11       for(i=0;i<11;i++)
12       {
13           EnviaDados(msg[i]);
14           for(j = 0; j < 65000; j++);
15       }
16       for(;;);
17   }




                                 ELT024    Leitura de teclas e teclado matricial
Teclado




Desenhando imagens no LCD




         ELT024   Leitura de teclas e teclado matricial
Display de LCD




• A maioria dos LCD’s permite a criação de caracteres
  customizados
• Para os display’s compatíveis com a controladora HD44780:
    •   8 caracteres disponíveis
    •   Formato binário e matricial de 8*5
    •   Armazenados a partir do endereço 0x40
    •   Os valores são salvos por linha de caracter




                           ELT024   Leitura de teclas e teclado matricial
Display de LCD


0x40
       Caracter 0
0x47
                       0x50    1a linha      0x04
0x48
       Caracter 1      0x51    2a linha     0x0E
0x4F
                       0x52    3a linha     0x0E
0x50
       Caracter 2      0x53    4a linha     0x0E
0x57
                       0x54    5a linha     0x0E

           ...         0x55    6a linha      0x1F
                       0x56    7a linha      0x00
0x70
       Caracter 6      0x57    8a linha      0x04
0x77
0x78
       Caracter 7
0x7F                                                      Apenas 5 bits por linha!



                      ELT024     Leitura de teclas e teclado matricial
Display de LCD


1    //Cada linha é representada por um caracter
2    char sino[8] =
3            {0x04, 0x0E, 0x0E, 0x0E, 0x0E, 0x1F, 0x00, 0x04};
4
5    //Configura para a primeira posição de memória
6    EnviaComando(0x40);
7

8    //Envia cada uma das linhas em ordem
9    for(i=0; i<8; i++){
10       EnviaDados(sino[i]);
11   }




                            ELT024   Leitura de teclas e teclado matricial
Display de LCD




• É possível criar um desenho/imagem de até 40*16 pixels (4*2
  caracteres)
• A imagem será binária, apenas pixels brancos ou pretos
• Existe uma separação entre os caracteres, que pode prejudicar
  de certa maneira a imagem em questão




                        ELT024   Leitura de teclas e teclado matricial
Display de LCD




• Passos para geração de uma imagem:
    • 1 - Criar uma imagem binária com o desenho desejado;
    • 2 - Segmentar a imagem em retângulos de 8x5;
    • 3 - Transcrever cada linha em binário/hexadecimal;
    • 4 - Gerar o código fonte.




                        ELT024   Leitura de teclas e teclado matricial
Display de LCD
1 - Criar uma imagem binária com o desenho desejado;




                         ELT024   Leitura de teclas e teclado matricial
Display de LCD
2 - Segmentar a imagem em retângulos de 8x5;




                         ELT024   Leitura de teclas e teclado matricial
Display de LCD
3 - Transcrever cada linha em binário/hexadecimal;

            0x01 0   0   0   0   1   0x11   1   0   0     0   1   0x10 1   0   0   0   0
            0x03 0   0   0   1   1   0x1F 1     1   1     1   1   0x18 1   1   0   0   0
            0x03 0   0   0   1   1   0x00 0     0   0     0   0   0x18 1   1   0   0   0
            0x0E 0   1   1   1   0   0x01 0     0   0     0   1   0x0E 0   1   1   1   0
            0x1C 1   1   1   0   0   0x1F 1     1   1     1   1   0x07 0   0   1   1   1
            0x18 1   1   0   0   0   0x12 1     0   0     1   0   0x03 0   0   0   1   1
            0x08 0   1   0   0   0   0x14 1     0   1     0   0   0x02 0   0   0   1   0
            0x08 0   1   0   0   0   0x1F 1     1   1     1   1   0x02 0   0   0   1   0


            0x08 0   1   0   0   0   0x12 1     0   0     1   0   0x02 0   0   0   1   0
            0x18 1   1   0   0   0   0x14 1     0   1     0   0   0x03 0   0   0   1   1
            0x1C 1   1   1   0   0   0x1F 1     1   1     1   1   0x07 0   0   1   1   1
            0x0E 0   1   1   1   0   0x08 0     1   0     0   0   0x0E 0   1   1   1   0
            0x03 0   0   0   1   1   0x00 0     0   0     0   0   0x18 1   1   0   0   0
            0x03 0   0   0   1   1   0x1F 1     1   1     1   1   0x18 1   1   0   0   0
            0x01 0   0   0   0   1   0x11   1   0   0     0   1   0x10 1   0   0   0   0
            0x00 0   0   0   0   0   0x00 0     0   0     0   0   0x00 0   0   0   0   0




                                     ELT024             Leitura de teclas e teclado matricial
Display de LCD
     4 - Gerar o código fonte.
1    //Cada linha é representada          por um caracter
2    char unifei[48] = {
3        0x01, 0x03, 0x03, 0x0E,          0x1C,   0x18,      0x08,      0x08,       //0,0
4        0x11, 0x1F, 0x00, 0x01,          0x1F,   0x12,      0x14,      0x1F,       //0,1
5        0x10, 0x18, 0x18, 0x0E,          0x07,   0x03,      0x02,      0x02,       //0,2
6        0x08, 0x18, 0x1C, 0x0E,          0x03,   0x03,      0x01,      0x00,       //1,0
7        0x11, 0x1F, 0x00, 0x01,          0x1F,   0x12,      0x14,      0x1F,       //1,1
8        0x02, 0x03, 0x07, 0x0E,          0x18,   0x18,      0x10,      0x00        //1,2
9    };
10
11   EnviaComando(0x40); //Configura para a primeira posição de memór
12   //Envia cada uma das linhas em ordem
13   for(i=0; i<48; i++){
14       EnviaDados(unifei[i]);
15   }

                                 ELT024     Leitura de teclas e teclado matricial
Display de LCD
Resultado:




               ELT024   Leitura de teclas e teclado matricial

Contenu connexe

Tendances

princpios-da-leitura-e-interpretao-de-desenho-tcnico-mecnico-apostila02.pdf
princpios-da-leitura-e-interpretao-de-desenho-tcnico-mecnico-apostila02.pdfprincpios-da-leitura-e-interpretao-de-desenho-tcnico-mecnico-apostila02.pdf
princpios-da-leitura-e-interpretao-de-desenho-tcnico-mecnico-apostila02.pdfLetcia906612
 
5ª aula pratica com inversor de frequencia
5ª aula pratica com inversor de frequencia5ª aula pratica com inversor de frequencia
5ª aula pratica com inversor de frequenciaAnaMacedoeletrical
 
Relatório governadores de turbinas a vapor
Relatório governadores de turbinas a vaporRelatório governadores de turbinas a vapor
Relatório governadores de turbinas a vaporVictor Said
 
Eletrica.ppt 2
Eletrica.ppt 2Eletrica.ppt 2
Eletrica.ppt 2ragrellos
 
Introdução a Manutenção de Máquinas e Equipamentos
Introdução a Manutenção de Máquinas e EquipamentosIntrodução a Manutenção de Máquinas e Equipamentos
Introdução a Manutenção de Máquinas e EquipamentosAnderson Pontes
 
Porque raiz 3 nos circuitos trifasicos
Porque raiz 3 nos circuitos trifasicosPorque raiz 3 nos circuitos trifasicos
Porque raiz 3 nos circuitos trifasicosAlex Davoglio
 
Aula 1 - Introdução ao Desenho Técnico
Aula 1 - Introdução ao Desenho TécnicoAula 1 - Introdução ao Desenho Técnico
Aula 1 - Introdução ao Desenho TécnicoEllen Assad
 
Liga e desliga com um unico botao
Liga e desliga com um unico botaoLiga e desliga com um unico botao
Liga e desliga com um unico botaoAdemir Santos
 
Acionamentos Elétricos
Acionamentos ElétricosAcionamentos Elétricos
Acionamentos Elétricoselliando dias
 
Apostila com 20 comandos elétricos fáceis de fazer
Apostila com 20 comandos elétricos fáceis de fazerApostila com 20 comandos elétricos fáceis de fazer
Apostila com 20 comandos elétricos fáceis de fazerClaudio Arkan
 
Nbr 08196 desenho tecnico - emprego de escalas
Nbr 08196   desenho tecnico - emprego de escalasNbr 08196   desenho tecnico - emprego de escalas
Nbr 08196 desenho tecnico - emprego de escalasLuciano Otavio
 
Aula - CLP & Linguagem Ladder
Aula - CLP & Linguagem LadderAula - CLP & Linguagem Ladder
Aula - CLP & Linguagem LadderAnderson Pontes
 
Cálculo de demanda para medição de cliente em baixa tensão
Cálculo de demanda para medição de cliente em baixa tensãoCálculo de demanda para medição de cliente em baixa tensão
Cálculo de demanda para medição de cliente em baixa tensãoGustavo Brito Beltrame
 

Tendances (20)

princpios-da-leitura-e-interpretao-de-desenho-tcnico-mecnico-apostila02.pdf
princpios-da-leitura-e-interpretao-de-desenho-tcnico-mecnico-apostila02.pdfprincpios-da-leitura-e-interpretao-de-desenho-tcnico-mecnico-apostila02.pdf
princpios-da-leitura-e-interpretao-de-desenho-tcnico-mecnico-apostila02.pdf
 
Motores universais
Motores universaisMotores universais
Motores universais
 
5ª aula pratica com inversor de frequencia
5ª aula pratica com inversor de frequencia5ª aula pratica com inversor de frequencia
5ª aula pratica com inversor de frequencia
 
Relatório governadores de turbinas a vapor
Relatório governadores de turbinas a vaporRelatório governadores de turbinas a vapor
Relatório governadores de turbinas a vapor
 
Eletrica.ppt 2
Eletrica.ppt 2Eletrica.ppt 2
Eletrica.ppt 2
 
Introdução a Manutenção de Máquinas e Equipamentos
Introdução a Manutenção de Máquinas e EquipamentosIntrodução a Manutenção de Máquinas e Equipamentos
Introdução a Manutenção de Máquinas e Equipamentos
 
Introdução à pneumática
Introdução à pneumáticaIntrodução à pneumática
Introdução à pneumática
 
Motores de inducao
Motores de inducaoMotores de inducao
Motores de inducao
 
Porque raiz 3 nos circuitos trifasicos
Porque raiz 3 nos circuitos trifasicosPorque raiz 3 nos circuitos trifasicos
Porque raiz 3 nos circuitos trifasicos
 
Simbologia ELETRICA.doc
Simbologia ELETRICA.docSimbologia ELETRICA.doc
Simbologia ELETRICA.doc
 
2 representação sep
2 representação sep2 representação sep
2 representação sep
 
Aula 1 - Introdução ao Desenho Técnico
Aula 1 - Introdução ao Desenho TécnicoAula 1 - Introdução ao Desenho Técnico
Aula 1 - Introdução ao Desenho Técnico
 
Liga e desliga com um unico botao
Liga e desliga com um unico botaoLiga e desliga com um unico botao
Liga e desliga com um unico botao
 
Acionamentos Elétricos
Acionamentos ElétricosAcionamentos Elétricos
Acionamentos Elétricos
 
Apostila com 20 comandos elétricos fáceis de fazer
Apostila com 20 comandos elétricos fáceis de fazerApostila com 20 comandos elétricos fáceis de fazer
Apostila com 20 comandos elétricos fáceis de fazer
 
Clp aprendizagem clic2 weg
Clp aprendizagem clic2 wegClp aprendizagem clic2 weg
Clp aprendizagem clic2 weg
 
Nbr 08196 desenho tecnico - emprego de escalas
Nbr 08196   desenho tecnico - emprego de escalasNbr 08196   desenho tecnico - emprego de escalas
Nbr 08196 desenho tecnico - emprego de escalas
 
Componentes simetricos
Componentes simetricosComponentes simetricos
Componentes simetricos
 
Aula - CLP & Linguagem Ladder
Aula - CLP & Linguagem LadderAula - CLP & Linguagem Ladder
Aula - CLP & Linguagem Ladder
 
Cálculo de demanda para medição de cliente em baixa tensão
Cálculo de demanda para medição de cliente em baixa tensãoCálculo de demanda para medição de cliente em baixa tensão
Cálculo de demanda para medição de cliente em baixa tensão
 

Similaire à Utilizando um Display de LCD

Leitura de teclas com arranjo matricial
Leitura de teclas com arranjo matricialLeitura de teclas com arranjo matricial
Leitura de teclas com arranjo matricialRodrigo Almeida
 
gk_2021_01_Aula07-twi.pdf
gk_2021_01_Aula07-twi.pdfgk_2021_01_Aula07-twi.pdf
gk_2021_01_Aula07-twi.pdfMicaelMarques13
 
Microcontroladores: El microcontrolador 8051
Microcontroladores: El microcontrolador 8051 Microcontroladores: El microcontrolador 8051
Microcontroladores: El microcontrolador 8051 SANTIAGO PABLO ALBERTO
 
Desenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosDesenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosRodrigo Almeida
 
Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladoresDanilo Morais Pagano
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Cláudio Alves
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicampFrancisco Fambrini
 
Arduino - Parte 3.pdf
Arduino - Parte 3.pdfArduino - Parte 3.pdf
Arduino - Parte 3.pdfprofwtelles
 
Comunicação PC - PC via porta paralela
Comunicação PC - PC via porta paralelaComunicação PC - PC via porta paralela
Comunicação PC - PC via porta paralelaluizgraf
 
Display de 7 segmentos multiplexados
Display de 7 segmentos multiplexadosDisplay de 7 segmentos multiplexados
Display de 7 segmentos multiplexadosRodrigo Almeida
 
Arduino - iniciação à linguagem C: LCD 1602
Arduino - iniciação à linguagem C: LCD 1602Arduino - iniciação à linguagem C: LCD 1602
Arduino - iniciação à linguagem C: LCD 1602Ana Carneirinho
 

Similaire à Utilizando um Display de LCD (20)

Leitura de teclas com arranjo matricial
Leitura de teclas com arranjo matricialLeitura de teclas com arranjo matricial
Leitura de teclas com arranjo matricial
 
Comunicação serial
Comunicação serialComunicação serial
Comunicação serial
 
gk_2021_01_Aula07-twi.pdf
gk_2021_01_Aula07-twi.pdfgk_2021_01_Aula07-twi.pdf
gk_2021_01_Aula07-twi.pdf
 
Pic aula1
Pic   aula1Pic   aula1
Pic aula1
 
Roteiro exp9
Roteiro exp9Roteiro exp9
Roteiro exp9
 
Clp ab avancado
Clp ab avancadoClp ab avancado
Clp ab avancado
 
Microcontroladores: El microcontrolador 8051
Microcontroladores: El microcontrolador 8051 Microcontroladores: El microcontrolador 8051
Microcontroladores: El microcontrolador 8051
 
Desenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcadosDesenvolvimento de drivers para sistemas embarcados
Desenvolvimento de drivers para sistemas embarcados
 
Pic18xx
Pic18xxPic18xx
Pic18xx
 
Programação básica de microcontroladores
Programação básica de microcontroladoresProgramação básica de microcontroladores
Programação básica de microcontroladores
 
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
Microcontroladores pic lingc unicamp-150206140414-conversion-gate02
 
Microcontroladores pic ling c unicamp
Microcontroladores pic ling c unicampMicrocontroladores pic ling c unicamp
Microcontroladores pic ling c unicamp
 
Arduino - Parte 3.pdf
Arduino - Parte 3.pdfArduino - Parte 3.pdf
Arduino - Parte 3.pdf
 
Circuitos combinatorios
Circuitos combinatoriosCircuitos combinatorios
Circuitos combinatorios
 
Comunicação PC - PC via porta paralela
Comunicação PC - PC via porta paralelaComunicação PC - PC via porta paralela
Comunicação PC - PC via porta paralela
 
ARM
ARMARM
ARM
 
Display de 7 segmentos multiplexados
Display de 7 segmentos multiplexadosDisplay de 7 segmentos multiplexados
Display de 7 segmentos multiplexados
 
Arduino - iniciação à linguagem C: LCD 1602
Arduino - iniciação à linguagem C: LCD 1602Arduino - iniciação à linguagem C: LCD 1602
Arduino - iniciação à linguagem C: LCD 1602
 
Aula1 30-07-120922184742-phpapp02
Aula1 30-07-120922184742-phpapp02Aula1 30-07-120922184742-phpapp02
Aula1 30-07-120922184742-phpapp02
 
MIPS Pipeline
MIPS Pipeline MIPS Pipeline
MIPS Pipeline
 

Plus de Rodrigo Almeida

Embedded systems design @ defcon 2015
Embedded systems design @ defcon 2015Embedded systems design @ defcon 2015
Embedded systems design @ defcon 2015Rodrigo Almeida
 
Embedded systems development Defcon 19
Embedded systems development Defcon 19Embedded systems development Defcon 19
Embedded systems development Defcon 19Rodrigo Almeida
 
As diferentes engenharias
As diferentes engenhariasAs diferentes engenharias
As diferentes engenhariasRodrigo Almeida
 
Testing de software en instrumentos de pesar de funcionamiento no automatico ...
Testing de software en instrumentos de pesar de funcionamiento no automatico ...Testing de software en instrumentos de pesar de funcionamiento no automatico ...
Testing de software en instrumentos de pesar de funcionamiento no automatico ...Rodrigo Almeida
 
Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...
Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...
Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...Rodrigo Almeida
 
Cryptology - Antônio Lacerda
Cryptology - Antônio LacerdaCryptology - Antônio Lacerda
Cryptology - Antônio LacerdaRodrigo Almeida
 
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...Troca de contexto segura em sistemas operacionais embarcados utilizando de té...
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...Rodrigo Almeida
 
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Rodrigo Almeida
 
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Rodrigo Almeida
 
Projeto de uma controladora de drivers
Projeto de uma controladora de driversProjeto de uma controladora de drivers
Projeto de uma controladora de driversRodrigo Almeida
 
Kernel com requisitos temporais
Kernel com requisitos temporaisKernel com requisitos temporais
Kernel com requisitos temporaisRodrigo Almeida
 
Definição de processos
Definição de processosDefinição de processos
Definição de processosRodrigo Almeida
 
Conceitos de ponteiros struct e buffers
Conceitos de ponteiros struct e buffersConceitos de ponteiros struct e buffers
Conceitos de ponteiros struct e buffersRodrigo Almeida
 
Introdução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosIntrodução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosRodrigo Almeida
 
Segurança de sistemas: invasões, engenharia reversa e análise de virus
Segurança de sistemas: invasões, engenharia reversa e análise de virusSegurança de sistemas: invasões, engenharia reversa e análise de virus
Segurança de sistemas: invasões, engenharia reversa e análise de virusRodrigo Almeida
 
Acessando os periféricos de um microcontrolador
Acessando os periféricos de um microcontroladorAcessando os periféricos de um microcontrolador
Acessando os periféricos de um microcontroladorRodrigo Almeida
 
Acesso à memória e registros
Acesso à memória e registrosAcesso à memória e registros
Acesso à memória e registrosRodrigo Almeida
 

Plus de Rodrigo Almeida (20)

Embedded systems design @ defcon 2015
Embedded systems design @ defcon 2015Embedded systems design @ defcon 2015
Embedded systems design @ defcon 2015
 
Embedded systems development Defcon 19
Embedded systems development Defcon 19Embedded systems development Defcon 19
Embedded systems development Defcon 19
 
As diferentes engenharias
As diferentes engenhariasAs diferentes engenharias
As diferentes engenharias
 
Testing de software en instrumentos de pesar de funcionamiento no automatico ...
Testing de software en instrumentos de pesar de funcionamiento no automatico ...Testing de software en instrumentos de pesar de funcionamiento no automatico ...
Testing de software en instrumentos de pesar de funcionamiento no automatico ...
 
Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...
Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...
Seguridad de sistemas embebidos para el ámbito regulado - Alejandro Bertello ...
 
Cryptology - Antônio Lacerda
Cryptology - Antônio LacerdaCryptology - Antônio Lacerda
Cryptology - Antônio Lacerda
 
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...Troca de contexto segura em sistemas operacionais embarcados utilizando de té...
Troca de contexto segura em sistemas operacionais embarcados utilizando de té...
 
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
 
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
 
Projeto de uma controladora de drivers
Projeto de uma controladora de driversProjeto de uma controladora de drivers
Projeto de uma controladora de drivers
 
Kernel com requisitos temporais
Kernel com requisitos temporaisKernel com requisitos temporais
Kernel com requisitos temporais
 
Kernel cooperativo
Kernel cooperativoKernel cooperativo
Kernel cooperativo
 
Definição de processos
Definição de processosDefinição de processos
Definição de processos
 
Ponteiros de Função
Ponteiros de FunçãoPonteiros de Função
Ponteiros de Função
 
Conceitos de ponteiros struct e buffers
Conceitos de ponteiros struct e buffersConceitos de ponteiros struct e buffers
Conceitos de ponteiros struct e buffers
 
Introdução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosIntrodução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcados
 
Segurança de sistemas: invasões, engenharia reversa e análise de virus
Segurança de sistemas: invasões, engenharia reversa e análise de virusSegurança de sistemas: invasões, engenharia reversa e análise de virus
Segurança de sistemas: invasões, engenharia reversa e análise de virus
 
Acessando os periféricos de um microcontrolador
Acessando os periféricos de um microcontroladorAcessando os periféricos de um microcontrolador
Acessando os periféricos de um microcontrolador
 
Acesso à memória e registros
Acesso à memória e registrosAcesso à memória e registros
Acesso à memória e registros
 
Operações com Bits
Operações com BitsOperações com Bits
Operações com Bits
 

Dernier

COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESEduardaReis50
 
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOAulasgravadas3
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2Maria Teresa Thomaz
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdfBlendaLima1
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfWagnerCamposCEA
 
AULA DE CARIOLOGIA TSB introdução tudo sobre
AULA DE CARIOLOGIA TSB introdução tudo sobreAULA DE CARIOLOGIA TSB introdução tudo sobre
AULA DE CARIOLOGIA TSB introdução tudo sobremaryalouhannedelimao
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......suporte24hcamin
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorEdvanirCosta
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 

Dernier (20)

COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
 
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
3-Livro-Festa-no-céu-Angela-Lago.pdf-·-versão-1.pdf
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
AULA DE CARIOLOGIA TSB introdução tudo sobre
AULA DE CARIOLOGIA TSB introdução tudo sobreAULA DE CARIOLOGIA TSB introdução tudo sobre
AULA DE CARIOLOGIA TSB introdução tudo sobre
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......Introdução a Caminhada do Interior......
Introdução a Caminhada do Interior......
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de Professor
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 

Utilizando um Display de LCD

  • 1. Leitura de teclas e teclado matricial Prof.MSc.Rodrigo Maximiano Antunes de Almeida Universidade Federal de Itajubá rodrigomax@unifei.edu.br ELT024 Leitura de teclas e teclado matricial
  • 2. Teclado Revisão ELT024 Leitura de teclas e teclado matricial
  • 3. Leitura de Teclas Debounce • Problema de bouncing • Causado pela oscilação mecânica da chave • Pode gerar acionamentos indevidos no sistema • Soluções • Via hardware através de circuito dedicado • Via software através de confirmação temporal ELT024 Leitura de teclas e teclado matricial
  • 4. Leitura de Teclas Debounce Circuito com bouncing http://www.labbookpages.co.uk/electronics/debounce.html - Dr. Greensted ELT024 Leitura de teclas e teclado matricial
  • 5. Leitura de Teclas Debounce 1 void main(void) interrupt 0 { 2 unsigned char valTemp, valAtual, tempo; 3 //inserir as configurações necessárias aqui 4 for(;;){ 5 while(valAtual==PORTB); //aguarda uma mudança na porta B 6 valTemp = PORTB; //na mudança, aguarda um tempo 7 tempo = 22; 8 while (tempo > 0) { 9 if (valTemp == PORTB) { // se não mudar continua a contar 10 tempo--; 11 } else { 12 valTemp = PORTB; // se mudar, atualiza e reinicia 13 tempo = 22; 14 } 15 } 16 valAtual = valTemp; //valor atualizado; 17 //Aqui a variável está pronta para ser usada 18 } 19 } ELT024 Leitura de teclas e teclado matricial
  • 6. Leitura Matricial Circuito básico ELT024 Leitura de teclas e teclado matricial
  • 7. Leitura Matricial Processo de Varredura 1 //processo de varredura 2 3 for(i = 0; i < 2; i++){ 4 PORTB = 0xff; //liga todas as colunas 5 for(j = 0; j < 100; j++); 6 BitClr(PORTB,i); //desliga coluna a ser testada 7 for(j = 0; j < 100; j++); //gasta tempo (garantir estabilidade) 8 for(j = 0; j < 4; j++){ 9 if (!BitTst(PORTB,j+4)){ //realiza o teste para cada bit 10 chave[i][j] = 1; //atualiza a matriz 11 BitSet(PORTD,j+4*i); //mostra na porta D 12 }else{ 13 chave[i][j] = 0; 14 BitClr(PORTD,j+4*i); 15 } 16 } 17 } ELT024 Leitura de teclas e teclado matricial
  • 8. Display de LCD Display de LCD ELT024 Leitura de teclas e teclado matricial
  • 9. Display de LCD ELT024 Leitura de teclas e teclado matricial
  • 10. Display de LCD • Display de LCD • Utiliza-se do conceito de polarização da luz para formar a imagem • Os pixels são formados por retenção de luz 1 • Geralmente possue um microcontrolador integrado • São encontrados em formato de 7 segmentos ou matricial 2 • No formato matricial é possivel representar as letras, números e diversos simbolos 1 No caso dos displays com leds, os pixels são formados por emissão de luz. 2 Os formatos matriciais mais comuns são 5x7 e 5x8 ELT024 Leitura de teclas e teclado matricial
  • 11. Display de LCD • Este tipo de display pode ser visto como uma solução de exibição completa: • O microcontrolador faz o papel da placa de vídeo • O display faz o papel do monitor • A comunicação é feita através de um barramento paralelo • O barramento é comandado por 3 sinais de controle ELT024 Leitura de teclas e teclado matricial
  • 12. Display de LCD ELT024 Leitura de teclas e teclado matricial
  • 13. Display de LCD 1 Terra 9 Bit 2 2 VCC (+5V) 10 Bit 3 3 Ajuste do contraste 11 Bit 4 4 Seleção de registro(RS) 12 Bit 5 5 Read/Write (RW) 13 Bit 6 6 Clock, Enable (EN) 14 Bit 7 7 Bit 0 15 Backlight + 8 Bit 1 16 Backlight Gnd ELT024 Leitura de teclas e teclado matricial
  • 14. Display de LCD Atenção Cuidado com a pinagem do display. O que está em uso na aula é 15, 16, 1, 2, ... 14. Os pinos não estão em ordem. A troca/substituição do display tem que ser realizada com atenção pois a placa está pronta para receber apenas esse tipo de display. ELT024 Leitura de teclas e teclado matricial
  • 15. Display de LCD ELT024 Leitura de teclas e teclado matricial
  • 16. Display de LCD • Rotina para envio de dados/comando para o LCD • Para comando RS = 0; Para dados RS = 1; • Habilitar a escrita (RW=1) ou leitura (RW=0) • Acionar terminal EN (enable) • Delay para o LCD entender o comando • Desabilita o terminal EN • Retorna os terminais (RW e RS) para nível baixo 3 3 Para melhor uso é interessante retornar os terminais para o valor que tinham antes de chamar a rotina, já que eles estão multiplexados com outros dispositivos ELT024 Leitura de teclas e teclado matricial
  • 17. Display de LCD http://www.sparkfun.com/datasheets/LCD/HD44780.pdf - Datasheet Hitachi ELT024 Leitura de teclas e teclado matricial
  • 18. Display de LCD http://www.sparkfun.com/datasheets/LCD/HD44780.pdf - Datasheet Hitachi ELT024 Leitura de teclas e teclado matricial
  • 19. Display de LCD Formação dos comandos para controle do LCD: Dados (bit) Tempo Instrução RS RW 7 6 5 4 3 2 1 0 (máx.) Limpa 0 0 0 0 0 0 0 0 0 1 37 us Reset 0 0 0 0 0 0 0 0 1 - 1.5ms Config. 0 0 0 0 0 0 0 1 ID S 37 us Config. 0 0 0 0 0 0 1 D C B 37 us Movim. 0 0 0 0 0 1 SC RL - - 37 us Config. 0 0 0 0 1 DL N F - - 37 us Move(l,c) 0 0 1 X 0 0 Coluna 37 us Ocup. 0 1 BF - - - - - - - 10 us http://www.sparkfun.com/datasheets/LCD/HD44780.pdf - Datasheet Hitachi (Modificado) ELT024 Leitura de teclas e teclado matricial
  • 20. Display de LCD • Definições: • ID: 1 – Incrementa, 0 – Decrementa • S: 1 – O display acompanha o deslocamento • SC: 1 – Desloca o display, 0 – Desloca o cursor • RL: 1 – Move para direita, 0 – Move para esquerda • DL: 1 – 8 bits, 0 – 4 bits • N: 1 – 2 linhas, 0 – 1 linha • F: 1 – 5x10 pontos, 0 – 5x8 pontos • BF: 1 – Ocupado, 0 – Disponível • X: 1 – 2a linha, 0 – 1a linha • Coluna: nibble indicativo da coluna ELT024 Leitura de teclas e teclado matricial
  • 21. Display de LCD • Desenvolvimento da biblioteca • Criação de rotinas de delay (2ms e 40us) • Função para enviar comandos • Função para enviar dados • Função de inicialização ELT024 Leitura de teclas e teclado matricial
  • 22. Display de LCD 1 #include "lcd.h" 2 #include "basico.h" 3 #define RS 0 4 #define EN 1 5 #define RW 2 6 7 void Delay40us(void){ 8 //para um cristal de 8MHz cada instrução 9 //gasta 0,5 us: 40/0,5 = 80 instruções 10 unsigned char i; 11 //3 + 3 * 25 = 78 12 for(i=0; i < 25; i++); 13 } 14 15 void Delay2ms(void){ 16 unsigned char i; 17 for(i=0; i < 200; i++) 18 { 19 Delay40us(); 20 } 21 } ELT024 Leitura de teclas e teclado matricial
  • 23. Display de LCD 1 void EnviaComando(unsigned char cmd){ 2 BitClr(PORTE,RS); //comando 3 BitClr(PORTE,RW); // habilita escrita 4 PORTD = cmd; 5 BitSet(PORTE,EN); //habilita leitura 6 Delay2ms(); 7 BitClr(PORTE,EN); //termina leitura 8 BitClr(PORTE,RS); //deixa em nível baixo 9 BitClr(PORTE,RW); //deixa em nível baixo 10 Delay2ms(); 11 } 12 13 void EnviaDados(unsigned char valor){ 14 BitSet(PORTE,RS); //dados 15 BitClr(PORTE,RW); // habilita escrita 16 PORTD = valor; 17 BitSet(PORTE,EN); //habilita leitura 18 Delay40us(); 19 BitClr(PORTE,EN); //termina leitura 20 BitClr(PORTE,RS); //deixa em nível baixo 21 BitClr(PORTE,RW); //deixa em nível baixo 22 Delay40us(); 23 } ELT024 Leitura de teclas e teclado matricial
  • 24. Display de LCD 1 void InicializaLCD(void){ 2 Delay2ms(); // garante inicialização do LCD 3 Delay2ms(); 4 Delay2ms(); 5 Delay2ms(); 6 Delay2ms(); 7 // configurações de direção dos terminais 8 BitClr(TRISE,RS); //RS 9 BitClr(TRISE,EN); //EN 10 BitClr(TRISE,RW); //RW 11 TRISD = 0x00; //dados 12 ADCON1 = 0b00001110; 13 //configura o display 14 EnviaComando(0x38); //8bits, 2 linhas, 5x8 15 EnviaComando(0x06); //modo incremental 16 EnviaComando(0x0F); //display, cursor e blinking ON 17 EnviaComando(0x03); //zera contadores internos 18 EnviaComando(0x01); //limpar display 19 EnviaComando(0x80); //posição inicial 20 } ELT024 Leitura de teclas e teclado matricial
  • 25. Display de LCD 1 #ifndef LCD_H 2 #define LCD_H 3 void EnviaComando(unsigned char cmd); 4 void EnviaDados(unsigned char valor); 5 void InicializaLCD(void); 6 #endif //LCD_H ELT024 Leitura de teclas e teclado matricial
  • 26. Display de LCD 1 #include "basico.h" 2 #include "config.h" 3 #include "lcd.h" 4 5 //inicio do programa 6 void main(void) interrupt 0 7 { 8 unsigned int i,j; 9 char msg[] = "Hello World!"; 10 InicializaLCD(); 11 for(i=0;i<11;i++) 12 { 13 EnviaDados(msg[i]); 14 for(j = 0; j < 65000; j++); 15 } 16 for(;;); 17 } ELT024 Leitura de teclas e teclado matricial
  • 27. Teclado Desenhando imagens no LCD ELT024 Leitura de teclas e teclado matricial
  • 28. Display de LCD • A maioria dos LCD’s permite a criação de caracteres customizados • Para os display’s compatíveis com a controladora HD44780: • 8 caracteres disponíveis • Formato binário e matricial de 8*5 • Armazenados a partir do endereço 0x40 • Os valores são salvos por linha de caracter ELT024 Leitura de teclas e teclado matricial
  • 29. Display de LCD 0x40 Caracter 0 0x47 0x50 1a linha 0x04 0x48 Caracter 1 0x51 2a linha 0x0E 0x4F 0x52 3a linha 0x0E 0x50 Caracter 2 0x53 4a linha 0x0E 0x57 0x54 5a linha 0x0E ... 0x55 6a linha 0x1F 0x56 7a linha 0x00 0x70 Caracter 6 0x57 8a linha 0x04 0x77 0x78 Caracter 7 0x7F Apenas 5 bits por linha! ELT024 Leitura de teclas e teclado matricial
  • 30. Display de LCD 1 //Cada linha é representada por um caracter 2 char sino[8] = 3 {0x04, 0x0E, 0x0E, 0x0E, 0x0E, 0x1F, 0x00, 0x04}; 4 5 //Configura para a primeira posição de memória 6 EnviaComando(0x40); 7 8 //Envia cada uma das linhas em ordem 9 for(i=0; i<8; i++){ 10 EnviaDados(sino[i]); 11 } ELT024 Leitura de teclas e teclado matricial
  • 31. Display de LCD • É possível criar um desenho/imagem de até 40*16 pixels (4*2 caracteres) • A imagem será binária, apenas pixels brancos ou pretos • Existe uma separação entre os caracteres, que pode prejudicar de certa maneira a imagem em questão ELT024 Leitura de teclas e teclado matricial
  • 32. Display de LCD • Passos para geração de uma imagem: • 1 - Criar uma imagem binária com o desenho desejado; • 2 - Segmentar a imagem em retângulos de 8x5; • 3 - Transcrever cada linha em binário/hexadecimal; • 4 - Gerar o código fonte. ELT024 Leitura de teclas e teclado matricial
  • 33. Display de LCD 1 - Criar uma imagem binária com o desenho desejado; ELT024 Leitura de teclas e teclado matricial
  • 34. Display de LCD 2 - Segmentar a imagem em retângulos de 8x5; ELT024 Leitura de teclas e teclado matricial
  • 35. Display de LCD 3 - Transcrever cada linha em binário/hexadecimal; 0x01 0 0 0 0 1 0x11 1 0 0 0 1 0x10 1 0 0 0 0 0x03 0 0 0 1 1 0x1F 1 1 1 1 1 0x18 1 1 0 0 0 0x03 0 0 0 1 1 0x00 0 0 0 0 0 0x18 1 1 0 0 0 0x0E 0 1 1 1 0 0x01 0 0 0 0 1 0x0E 0 1 1 1 0 0x1C 1 1 1 0 0 0x1F 1 1 1 1 1 0x07 0 0 1 1 1 0x18 1 1 0 0 0 0x12 1 0 0 1 0 0x03 0 0 0 1 1 0x08 0 1 0 0 0 0x14 1 0 1 0 0 0x02 0 0 0 1 0 0x08 0 1 0 0 0 0x1F 1 1 1 1 1 0x02 0 0 0 1 0 0x08 0 1 0 0 0 0x12 1 0 0 1 0 0x02 0 0 0 1 0 0x18 1 1 0 0 0 0x14 1 0 1 0 0 0x03 0 0 0 1 1 0x1C 1 1 1 0 0 0x1F 1 1 1 1 1 0x07 0 0 1 1 1 0x0E 0 1 1 1 0 0x08 0 1 0 0 0 0x0E 0 1 1 1 0 0x03 0 0 0 1 1 0x00 0 0 0 0 0 0x18 1 1 0 0 0 0x03 0 0 0 1 1 0x1F 1 1 1 1 1 0x18 1 1 0 0 0 0x01 0 0 0 0 1 0x11 1 0 0 0 1 0x10 1 0 0 0 0 0x00 0 0 0 0 0 0x00 0 0 0 0 0 0x00 0 0 0 0 0 ELT024 Leitura de teclas e teclado matricial
  • 36. Display de LCD 4 - Gerar o código fonte. 1 //Cada linha é representada por um caracter 2 char unifei[48] = { 3 0x01, 0x03, 0x03, 0x0E, 0x1C, 0x18, 0x08, 0x08, //0,0 4 0x11, 0x1F, 0x00, 0x01, 0x1F, 0x12, 0x14, 0x1F, //0,1 5 0x10, 0x18, 0x18, 0x0E, 0x07, 0x03, 0x02, 0x02, //0,2 6 0x08, 0x18, 0x1C, 0x0E, 0x03, 0x03, 0x01, 0x00, //1,0 7 0x11, 0x1F, 0x00, 0x01, 0x1F, 0x12, 0x14, 0x1F, //1,1 8 0x02, 0x03, 0x07, 0x0E, 0x18, 0x18, 0x10, 0x00 //1,2 9 }; 10 11 EnviaComando(0x40); //Configura para a primeira posição de memór 12 //Envia cada uma das linhas em ordem 13 for(i=0; i<48; i++){ 14 EnviaDados(unifei[i]); 15 } ELT024 Leitura de teclas e teclado matricial
  • 37. Display de LCD Resultado: ELT024 Leitura de teclas e teclado matricial