SlideShare a Scribd company logo
1 of 29
6. MPLAB – Tela inicial




02/04/12           Ricardo Pannain   1
6. MPLAB – Modo de desenvolvimento
•      OPTIONS -> DEVELOPMENT MODE




02/04/12           Ricardo Pannain         2
6. MPLAB – Criando um Projeto
•      PROJECT -> NEW PROJECT




02/04/12              Ricardo Pannain      3
6. MPLAB – Ajustando elementos de projeto




02/04/12         Ricardo Pannain            4
6. MPLAB – Parâmetros do montador




02/04/12                Ricardo Pannain        5
6. MPLAB – Abrindo um novo projeto




02/04/12            Ricardo Pannain         6
6. MPLAB – Adicionado arquivo p/ montador




02/04/12         Ricardo Pannain        7
6. MPLAB – Escrevendo um novo programa
•      FILE -> NEW




02/04/12             Ricardo Pannain      8
6. MPLAB – Salvando o novo arquivo




02/04/12             Ricardo Pannain        9
6. MPLAB – Escrevendo um Programa




02/04/12            Ricardo Pannain        10
6. MPLAB – Mensagens na montagem




02/04/12            Ricardo Pannain       11
6. MPLAB – Simulador MPSIM
•      Simulando e resetando um microcontrolador




02/04/12               Ricardo Pannain             12
6. MPLAB – MPSIM e sua janela




02/04/12              Ricardo Pannain      13
6. MPLAB – Barra de Ferramentas




02/04/12           Ricardo Pannain       14
7. Exercícios – 1
•      Programa que faz com que um LED, ligado à saída RB0, seja aceso,
       caso uma chave C, ligada à entrada RA2, esteja em “1”. Caso
       contrário, o diodo se apaga.




                                         PIC
                                     RA0        RB0
                                                RB1
                                     RA1        RB2
                                     RA2        RB3
                                                RB4
                                     RA3        RB5
                                                RB6
                                     RA4        RB7




02/04/12                      Ricardo Pannain                        15
7. Exercícios – 2
•      Programa que funciona como um “segredo eletrônico”. O
       microcontrolador espera uma combinação de 5 chaves, ligadas na
       porta A (RA0 – RA5), e, se esta combinação ocorrer, todos os LEDs
       ligados à porta B (RB0 – RB7) se acendem. Caso contrario, eles
       permanecem apagados. A combinação deve ser 1-0-1-0-1.

                                                 L1 L2 L3 L4 L5 L6 L7 L8



                                    PIC
                                  RA0   RB0
                                        RB1
                                  RA1   RB2
                                  RA2   RB3
                                        RB4
                                  RA3   RB5
                                        RB6
                                  RA4   RB7




02/04/12                       Ricardo Pannain                             16
7. Exercícios – 3
•      Programa que utiliza um display de 7 segmentos, ligado à porta B
       (RB0 – RB7) para mostrar o valor de uma chave C ligada à entrada
       RA2 da porta A. Se a chave estiver ligada, o display exibe o número
       1. Caso contrário, é exibido o número 0.
                                                           Gnd



                                                         abcdefg.
                                      PIC
                                  RA0     RB0
                                          RB1
                                  RA1     RB2
                                  RA2     RB3
                                          RB4
                                  RA3     RB5
                                          RB6
                                  RA4     RB7




02/04/12                       Ricardo Pannain                          17
7. Exercícios – 4
•      Programa que faz com que o LED, ligado ao pino RB0 da porta B acenda e apague a
       cada segundo. Como o ciclo de clock do microcontrolador é muito pequeno, é
       necessário introduzir atrasos para que as transições do LED possam ser visualizadas.
       Estes atrasos funcionam da seguinte maneira: uma rotina, chamada Atraso1S, que
       utiliza a sub-rotina Del10, que gera atrasos de 10 ms a cada chamada. Dentro desta
       rotina existe uma variável auxiliar (TEMPO1), que começa com o valor 100 e vai sendo
       decrementada. Cada vez que ela é decrementada, a rotina Del10 é chamada
       novamente. Ou seja, serão 100 chamadas à rotina Del10, gerando um atraso total de 1
       segundo.
                                                                  L1



                            PIC
                       RA0        RB0
                                  RB1
                       RA1        RB2
                       RA2        RB3
                                  RB4
                       RA3        RB5
                                  RB6
                       RA4        RB7

02/04/12                              Ricardo Pannain                                    18
7. Exercícios – 5
•      Programa que conta as transições (mudanças) de uma chave C,
       ligada ao pino RA0 da porta A. A quantidade de transições é
       mostrada por 8 LEDs ligados aos pinos da porta B, em formato
       binário
                                               L1 L2 L3 L4 L5 L6 L7 L8



                                PIC
                             RA0   RB0
                                   RB1
                             RA1   RB2
                                   RB3
                             RA2   RB4
                             RA3   RB5
                                   RB6
                             RA4   RB7




02/04/12                     Ricardo Pannain                             19
7. Exercícios – 6
•      Programa que faz com que um speaker, ligado ao pino RB7 da porta B, dê beeps
       periódicos a cada segundo. Cada beep dura cerca de 0,5s. Como o ciclo de clock do
       microcontrolador é muito pequeno, é necessário introduzir atrasos para que os beeps
       do speaker possam ser ouvidos claramente. Estes atrasos funcionam da seguinte
       maneira: duas rotinas, uma chamada Atraso1S (atraso de 1 segundo) e outra,
       AtrasoMS (atraso de 0,5 segundos), utilizam a subrotina Del10, que gera atrasos de 10
       ms a cada chamada. Dentro desta rotina existe uma variável auxiliar (TEMPO1), que,
       para a rotina Atraso1S, tem o valor inicial 100 e, para a rotina AtrasoMS tem o valor
       inicial de 50, e que vai sendo decrementada. Cada vez que ela é decrementada, a
       rotina Del10 é chamada novamente.
                              PIC
                         RA0        RB0                 +          -
                                    RB1
                         RA1        RB2
                                    RB3
                         RA2        RB4
                         RA3        RB5
                                    RB6
                         RA4        RB7

02/04/12                              Ricardo Pannain                                     20
7. Exercícios – 7
•      Programa que escreve dados na memória EEPROM do microcontrolador. A posição 0
       desta memória irá armazenar o valor das chaves ligadas aos pinos RA0 à RA4 da porta
       A (em binário). A verificação do valor armazenado na memória pode ser visualizada
       pelo programa de gravação do PIC, já que esta memória não é apagada até ser
       subscrita. A gravação da memória EEPROM leva um certo tempo. Devemos esperar
       este tempo antes de continuar a execução do programa. Temos duas opções: ou
       esperamos que o bit WR do registrador EECON1 seja limpo pelo hardware, indicando o
       fim da escrita, ou introduzirmos um atraso, que espera uma determinada quantidade de
       tempo antes de continuar a execução. Esta implementação utiliza um atraso de,
       aproximadamente, 2,6 segundos, para a espera da gravação da memória EEPROM.

                                                                   PIC
                                                               RA0       RB0
                                                                         RB1
                                                               RA1       RB2
                                                               RA2       RB3
                                                                         RB4
                                                               RA3       RB5
                                                                         RB6
                                                               RA4       RB7

02/04/12                              Ricardo Pannain                                   21
7. Exercícios – 8
•      Programa que lê os dados anteriormente gravados na memória
       EEPROM, na posição 0. O valor lido é representado, em binário,
       através de LEDs ligados aos pinos da porta B.

                                   L1 L2 L3 L4 L5 L6 L7 L8



              PIC
           RA0   RB0
                 RB1
           RA1   RB2
           RA2   RB3
                 RB4
           RA3   RB5
                 RB6
           RA4   RB7




02/04/12                       Ricardo Pannain                          22
7. Exercícios – 9
•      Programa similar ao programa 5, mas explora os recursos de WatchDog e modo Sleep
       do microcontrolador. A partir este programa, passaremos a utilizar o arquivo de
       definições padrão da Microchip para microcontroladores modelo 16F84, onde se
       encontra as definições dos nomes e endereços de todos os SFRs (registradores
       especiais) e uma série de outras definições necessárias para a utilização do
       microcontrolador 16F84. Como curiosidade, você pode consultar este arquivo para
       visualizar todos os nomes dos SFRs e constantes que podem ser utilizadas na
       programação do 16F84.
                                                         L1 L2 L3 L4 L5 L6 L7 L8



                                      PIC
                                    RA0   RB0
                                          RB1
                                    RA1   RB2
                                    RA2   RB3
                                          RB4
                                    RA3   RB5
                                          RB6
                                    RA4   RB7




02/04/12                            Ricardo Pannain                                 23
7. Exercícios – 10
•      Programa que simula os movimentos de um robô. Este robô
       imaginário possui dois dispositivos infravermelhos, que fazem com
       que ele siga uma trajetória desenhada no chão, e dois motores, um
       para cada roda de tração. Quando os sensores detectam a
       necessidade de acertar a rota, os motores devem ser manipulados a
       fim de realizar o acerto. Por exemplo, se o robô estiver desviando a
       rota para a esquerda, o robô deve se mover para a direita até que a
       rota seja acertada. Para isto, o motor da direita deve ser revertido
       (rodar para trás), e o da esquerda deve continuar ligado (rodando
       para frente). Quando a rota estiver certa, ambos os motores devem
       ser ligados para frente, para que o robô continue andando em frente.
       Os movimentos possíveis são para a esquerda (reverter o motor da
       esquerda e manter o motor da direita a frente), para a direita
       (reverter o motor da direita e manter o motor da esquerda a frente),
       para frente (manter os dois motores a frente), e para trás (reverter
       os dois motores).


02/04/12                        Ricardo Pannain                          24
7. Exercícios – 10
•      Os sensores serão simulados pelas chaves ligadas aos pinos RA0 e
       RA1 da porta. Vamos convencionar que o valor 0 significa que o
       sensor não detectou desvio na trajetória, e o valor 1 significa que o
       sensor detectou um desvio na trajetória. Os LEDs ligados aos pinos
       RB0 e RB1 da porta B irão simular as saídas de controle dos dois
       motores de tração (direito e esquerdo, respectivamente). Vamos
       convencionar que o valor 1 significa ligar os motores à frente, e 0
       significa reverter os motores.                      L1 L2



                                         PIC
                                      RA0    RB0
                                             RB1
                                      RA1    RB2
                                      RA2    RB3
                                             RB4
                                      RA3    RB5
                                             RB6
                                      RA4    RB7



02/04/12                        Ricardo Pannain                           25
7. Exercícios – 11
•      Programa que gera números aleatórios. Irá funcionar da seguinte maneira:
     –      Devemos gerar números aleatórios de 0 a 6; quando a chave C, ligada ao pino RA0 da
            porta A, estiver em "1", o display (ligado aos pinos RB0 à RB7 da porta B) irá mostrar,
            seqüencialmente, números de 0 a 6, em intervalos de 0,05 segundos; ao passar a
            chave C para "0", o display mostrará, durante 3 segundos, o número aleatório obtido;
            passados os 3 segundos, o display se apaga e a seqüência se repete
•      O número representado nos 4 bits menos significativos do registrador Work (W) é
       transformado em um número equivalente no display de 7 segmentos, como se
       estivéssemos implementando um conversor. O código referente ao número no display de 7
       segmentos também retorna no registrador W.
                                                                        Gnd



                                                                     abcdefg.
                                           PIC
                                       RA0     RB0
                                               RB1
                                       RA1     RB2
                                               RB3
                                       RA2     RB4
                                       RA3     RB5
                                               RB6
                                       RA4     RB7



02/04/12                               Ricardo Pannain                                      26
7. Exercícios – 12

•      Programa que irá simular um contador de 2 dígitos (00 a 99). Para sua
       realização, serão utilizados dois displays de 7 segmentos, e dois
       conversores binário-7segmentos, que recebe um número binário de 4
       bits e transforma este número para a representação do display. Para
       exibir os números nos displays, utilizaremos a porta B, sendo que os 4
       bits menos significativos representarão o número a ser exibido no
       primeiro display (unidade), e os 4 bits mais significativos representarão
       o número a ser exibido no segundo display (dezena). Este contador
       terá duas chaves e um botão (push buttom). A chave ligada à entrada
       RA0 da porta A irá controlar o sentido da contagem (0 = Decrescente e
       1 = Crescente). A chave ligada à entrada RA1 da porta A irá controlar
       a parada do contador (0 = Parar e 1 = Contar). E, por último, o botão
       ligado à RA2 servirá de reset, ou seja, quando pressionado, irá zerar
       os displays e recomeçar a contagem.



02/04/12                         Ricardo Pannain                           27
7. Exercícios – 12
                                           Gnd               Gnd



                                         abcdefg.          abcdefg.




                                      a
                                      b
                                      c
                                      d
                                      e
                                      f
                                      g

                                                       a
                                                       b
                                                       c
                                                       d
                                                       e
                                                       f
                                                       g
                                  4543




                                                    4543
                                      D2
                                      D1




                                                       D0
                                      D3

                                      D0
                                      LD
                                      BI
                                      PH

                                                       D3
                                                       D2
                                                       D1
                                                       LD
                                                       BI
                                                       PH
                       PIC
                     RA0   RB0
                           RB1
                     RA1   RB2
                           RB3
                     RA2   RB4
           +V
                     RA3   RB5
                           RB6
                     RA4   RB7



02/04/12            Ricardo Pannain                                   28
8. Bibliografia


•   David A. Patterson & John L. Hennessy; Computer Organization & Design
    – The Hardware and Software Interface – Ed. Morgan Kaufmann. – 2ª
    Edição.
•   G. Jack Lipovski; Introduction to Microcontrollers – Ed. Academic Press –
    1ª Edição.
•   www.microchip.com; Microchip – PIC16F8X Data Sheet .
•   www.microchip.com; Microchip – PIC16F87X Data Sheet.
•   www.microchip.com; Microchip – PIC16F84 Data Sheet.
•   www.vidal.com.br ; Mini curso MPLAB passo a passo.
•   Ricardo Pannain; Notas de aula.




02/04/12                        Ricardo Pannain                            29

More Related Content

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Microcontroladores6 8[1]

  • 1. 6. MPLAB – Tela inicial 02/04/12 Ricardo Pannain 1
  • 2. 6. MPLAB – Modo de desenvolvimento • OPTIONS -> DEVELOPMENT MODE 02/04/12 Ricardo Pannain 2
  • 3. 6. MPLAB – Criando um Projeto • PROJECT -> NEW PROJECT 02/04/12 Ricardo Pannain 3
  • 4. 6. MPLAB – Ajustando elementos de projeto 02/04/12 Ricardo Pannain 4
  • 5. 6. MPLAB – Parâmetros do montador 02/04/12 Ricardo Pannain 5
  • 6. 6. MPLAB – Abrindo um novo projeto 02/04/12 Ricardo Pannain 6
  • 7. 6. MPLAB – Adicionado arquivo p/ montador 02/04/12 Ricardo Pannain 7
  • 8. 6. MPLAB – Escrevendo um novo programa • FILE -> NEW 02/04/12 Ricardo Pannain 8
  • 9. 6. MPLAB – Salvando o novo arquivo 02/04/12 Ricardo Pannain 9
  • 10. 6. MPLAB – Escrevendo um Programa 02/04/12 Ricardo Pannain 10
  • 11. 6. MPLAB – Mensagens na montagem 02/04/12 Ricardo Pannain 11
  • 12. 6. MPLAB – Simulador MPSIM • Simulando e resetando um microcontrolador 02/04/12 Ricardo Pannain 12
  • 13. 6. MPLAB – MPSIM e sua janela 02/04/12 Ricardo Pannain 13
  • 14. 6. MPLAB – Barra de Ferramentas 02/04/12 Ricardo Pannain 14
  • 15. 7. Exercícios – 1 • Programa que faz com que um LED, ligado à saída RB0, seja aceso, caso uma chave C, ligada à entrada RA2, esteja em “1”. Caso contrário, o diodo se apaga. PIC RA0 RB0 RB1 RA1 RB2 RA2 RB3 RB4 RA3 RB5 RB6 RA4 RB7 02/04/12 Ricardo Pannain 15
  • 16. 7. Exercícios – 2 • Programa que funciona como um “segredo eletrônico”. O microcontrolador espera uma combinação de 5 chaves, ligadas na porta A (RA0 – RA5), e, se esta combinação ocorrer, todos os LEDs ligados à porta B (RB0 – RB7) se acendem. Caso contrario, eles permanecem apagados. A combinação deve ser 1-0-1-0-1. L1 L2 L3 L4 L5 L6 L7 L8 PIC RA0 RB0 RB1 RA1 RB2 RA2 RB3 RB4 RA3 RB5 RB6 RA4 RB7 02/04/12 Ricardo Pannain 16
  • 17. 7. Exercícios – 3 • Programa que utiliza um display de 7 segmentos, ligado à porta B (RB0 – RB7) para mostrar o valor de uma chave C ligada à entrada RA2 da porta A. Se a chave estiver ligada, o display exibe o número 1. Caso contrário, é exibido o número 0. Gnd abcdefg. PIC RA0 RB0 RB1 RA1 RB2 RA2 RB3 RB4 RA3 RB5 RB6 RA4 RB7 02/04/12 Ricardo Pannain 17
  • 18. 7. Exercícios – 4 • Programa que faz com que o LED, ligado ao pino RB0 da porta B acenda e apague a cada segundo. Como o ciclo de clock do microcontrolador é muito pequeno, é necessário introduzir atrasos para que as transições do LED possam ser visualizadas. Estes atrasos funcionam da seguinte maneira: uma rotina, chamada Atraso1S, que utiliza a sub-rotina Del10, que gera atrasos de 10 ms a cada chamada. Dentro desta rotina existe uma variável auxiliar (TEMPO1), que começa com o valor 100 e vai sendo decrementada. Cada vez que ela é decrementada, a rotina Del10 é chamada novamente. Ou seja, serão 100 chamadas à rotina Del10, gerando um atraso total de 1 segundo. L1 PIC RA0 RB0 RB1 RA1 RB2 RA2 RB3 RB4 RA3 RB5 RB6 RA4 RB7 02/04/12 Ricardo Pannain 18
  • 19. 7. Exercícios – 5 • Programa que conta as transições (mudanças) de uma chave C, ligada ao pino RA0 da porta A. A quantidade de transições é mostrada por 8 LEDs ligados aos pinos da porta B, em formato binário L1 L2 L3 L4 L5 L6 L7 L8 PIC RA0 RB0 RB1 RA1 RB2 RB3 RA2 RB4 RA3 RB5 RB6 RA4 RB7 02/04/12 Ricardo Pannain 19
  • 20. 7. Exercícios – 6 • Programa que faz com que um speaker, ligado ao pino RB7 da porta B, dê beeps periódicos a cada segundo. Cada beep dura cerca de 0,5s. Como o ciclo de clock do microcontrolador é muito pequeno, é necessário introduzir atrasos para que os beeps do speaker possam ser ouvidos claramente. Estes atrasos funcionam da seguinte maneira: duas rotinas, uma chamada Atraso1S (atraso de 1 segundo) e outra, AtrasoMS (atraso de 0,5 segundos), utilizam a subrotina Del10, que gera atrasos de 10 ms a cada chamada. Dentro desta rotina existe uma variável auxiliar (TEMPO1), que, para a rotina Atraso1S, tem o valor inicial 100 e, para a rotina AtrasoMS tem o valor inicial de 50, e que vai sendo decrementada. Cada vez que ela é decrementada, a rotina Del10 é chamada novamente. PIC RA0 RB0 + - RB1 RA1 RB2 RB3 RA2 RB4 RA3 RB5 RB6 RA4 RB7 02/04/12 Ricardo Pannain 20
  • 21. 7. Exercícios – 7 • Programa que escreve dados na memória EEPROM do microcontrolador. A posição 0 desta memória irá armazenar o valor das chaves ligadas aos pinos RA0 à RA4 da porta A (em binário). A verificação do valor armazenado na memória pode ser visualizada pelo programa de gravação do PIC, já que esta memória não é apagada até ser subscrita. A gravação da memória EEPROM leva um certo tempo. Devemos esperar este tempo antes de continuar a execução do programa. Temos duas opções: ou esperamos que o bit WR do registrador EECON1 seja limpo pelo hardware, indicando o fim da escrita, ou introduzirmos um atraso, que espera uma determinada quantidade de tempo antes de continuar a execução. Esta implementação utiliza um atraso de, aproximadamente, 2,6 segundos, para a espera da gravação da memória EEPROM. PIC RA0 RB0 RB1 RA1 RB2 RA2 RB3 RB4 RA3 RB5 RB6 RA4 RB7 02/04/12 Ricardo Pannain 21
  • 22. 7. Exercícios – 8 • Programa que lê os dados anteriormente gravados na memória EEPROM, na posição 0. O valor lido é representado, em binário, através de LEDs ligados aos pinos da porta B. L1 L2 L3 L4 L5 L6 L7 L8 PIC RA0 RB0 RB1 RA1 RB2 RA2 RB3 RB4 RA3 RB5 RB6 RA4 RB7 02/04/12 Ricardo Pannain 22
  • 23. 7. Exercícios – 9 • Programa similar ao programa 5, mas explora os recursos de WatchDog e modo Sleep do microcontrolador. A partir este programa, passaremos a utilizar o arquivo de definições padrão da Microchip para microcontroladores modelo 16F84, onde se encontra as definições dos nomes e endereços de todos os SFRs (registradores especiais) e uma série de outras definições necessárias para a utilização do microcontrolador 16F84. Como curiosidade, você pode consultar este arquivo para visualizar todos os nomes dos SFRs e constantes que podem ser utilizadas na programação do 16F84. L1 L2 L3 L4 L5 L6 L7 L8 PIC RA0 RB0 RB1 RA1 RB2 RA2 RB3 RB4 RA3 RB5 RB6 RA4 RB7 02/04/12 Ricardo Pannain 23
  • 24. 7. Exercícios – 10 • Programa que simula os movimentos de um robô. Este robô imaginário possui dois dispositivos infravermelhos, que fazem com que ele siga uma trajetória desenhada no chão, e dois motores, um para cada roda de tração. Quando os sensores detectam a necessidade de acertar a rota, os motores devem ser manipulados a fim de realizar o acerto. Por exemplo, se o robô estiver desviando a rota para a esquerda, o robô deve se mover para a direita até que a rota seja acertada. Para isto, o motor da direita deve ser revertido (rodar para trás), e o da esquerda deve continuar ligado (rodando para frente). Quando a rota estiver certa, ambos os motores devem ser ligados para frente, para que o robô continue andando em frente. Os movimentos possíveis são para a esquerda (reverter o motor da esquerda e manter o motor da direita a frente), para a direita (reverter o motor da direita e manter o motor da esquerda a frente), para frente (manter os dois motores a frente), e para trás (reverter os dois motores). 02/04/12 Ricardo Pannain 24
  • 25. 7. Exercícios – 10 • Os sensores serão simulados pelas chaves ligadas aos pinos RA0 e RA1 da porta. Vamos convencionar que o valor 0 significa que o sensor não detectou desvio na trajetória, e o valor 1 significa que o sensor detectou um desvio na trajetória. Os LEDs ligados aos pinos RB0 e RB1 da porta B irão simular as saídas de controle dos dois motores de tração (direito e esquerdo, respectivamente). Vamos convencionar que o valor 1 significa ligar os motores à frente, e 0 significa reverter os motores. L1 L2 PIC RA0 RB0 RB1 RA1 RB2 RA2 RB3 RB4 RA3 RB5 RB6 RA4 RB7 02/04/12 Ricardo Pannain 25
  • 26. 7. Exercícios – 11 • Programa que gera números aleatórios. Irá funcionar da seguinte maneira: – Devemos gerar números aleatórios de 0 a 6; quando a chave C, ligada ao pino RA0 da porta A, estiver em "1", o display (ligado aos pinos RB0 à RB7 da porta B) irá mostrar, seqüencialmente, números de 0 a 6, em intervalos de 0,05 segundos; ao passar a chave C para "0", o display mostrará, durante 3 segundos, o número aleatório obtido; passados os 3 segundos, o display se apaga e a seqüência se repete • O número representado nos 4 bits menos significativos do registrador Work (W) é transformado em um número equivalente no display de 7 segmentos, como se estivéssemos implementando um conversor. O código referente ao número no display de 7 segmentos também retorna no registrador W. Gnd abcdefg. PIC RA0 RB0 RB1 RA1 RB2 RB3 RA2 RB4 RA3 RB5 RB6 RA4 RB7 02/04/12 Ricardo Pannain 26
  • 27. 7. Exercícios – 12 • Programa que irá simular um contador de 2 dígitos (00 a 99). Para sua realização, serão utilizados dois displays de 7 segmentos, e dois conversores binário-7segmentos, que recebe um número binário de 4 bits e transforma este número para a representação do display. Para exibir os números nos displays, utilizaremos a porta B, sendo que os 4 bits menos significativos representarão o número a ser exibido no primeiro display (unidade), e os 4 bits mais significativos representarão o número a ser exibido no segundo display (dezena). Este contador terá duas chaves e um botão (push buttom). A chave ligada à entrada RA0 da porta A irá controlar o sentido da contagem (0 = Decrescente e 1 = Crescente). A chave ligada à entrada RA1 da porta A irá controlar a parada do contador (0 = Parar e 1 = Contar). E, por último, o botão ligado à RA2 servirá de reset, ou seja, quando pressionado, irá zerar os displays e recomeçar a contagem. 02/04/12 Ricardo Pannain 27
  • 28. 7. Exercícios – 12 Gnd Gnd abcdefg. abcdefg. a b c d e f g a b c d e f g 4543 4543 D2 D1 D0 D3 D0 LD BI PH D3 D2 D1 LD BI PH PIC RA0 RB0 RB1 RA1 RB2 RB3 RA2 RB4 +V RA3 RB5 RB6 RA4 RB7 02/04/12 Ricardo Pannain 28
  • 29. 8. Bibliografia • David A. Patterson & John L. Hennessy; Computer Organization & Design – The Hardware and Software Interface – Ed. Morgan Kaufmann. – 2ª Edição. • G. Jack Lipovski; Introduction to Microcontrollers – Ed. Academic Press – 1ª Edição. • www.microchip.com; Microchip – PIC16F8X Data Sheet . • www.microchip.com; Microchip – PIC16F87X Data Sheet. • www.microchip.com; Microchip – PIC16F84 Data Sheet. • www.vidal.com.br ; Mini curso MPLAB passo a passo. • Ricardo Pannain; Notas de aula. 02/04/12 Ricardo Pannain 29