Conectando o PIC Explorando Recursos Avançados
David José de Souza Nicolás César Lavinia Mosaico Engenharia Eletrônica
Sumário CAPÍTULO 1 - INTRODUÇÃO ..............................................................................................................................1 A MOSAICO ..........................................................................................................................................................1 NOSSOS OBJETIVOS ..............................................................................................................................................1 OS PRÉ-REQUISISTOS ............................................................................................................................................2 A SISTEMÁTICA DO TREINAMENTO ...........................................................................................................................2 Conhecendo o microcontrolador base ..............................................................................................................2 Conhecendo o hardware utilizado ....................................................................................................................2 Aulas práticas..................................................................................................................................................2 Projeto final .....................................................................................................................................................3 Apêndices .......................................................................................................................................................3 CD-Rom ..........................................................................................................................................................3 Padrões textuais..............................................................................................................................................3 CAPÍTULO 2 - O PIC 16F877 ...............................................................................................................................5 INTRODUÇÃO ........................................................................................................................................................5 PINAGEM ..............................................................................................................................................................6 NOMENCLATURA DOS PINOS ...................................................................................................................................6 A ESTRUTURAÇÃO INTERNA ....................................................................................................................................9 OS CICLOS DE MÁQUINA ....................................................................................................................................... 10 A MEMÓRIA DE PROGRAMA .................................................................................................................................. 11 Vetor de reset................................................................................................................................................ 11 Vetor de interrupção ...................................................................................................................................... 11 Tamanho da memória e páginas ................................................................................................................... 11 Pilha (Stack) .................................................................................................................................................. 12 Mapa da memória de programa ..................................................................................................................... 13 A MEMÓRIA DE DADOS VOL ÁTIL (RAM) .................................................................................................................. 13 Registradores especiais ................................................................................................................................ 13 Registradores de uso geral ............................................................................................................................ 14 Tamanho da memória e bancos .................................................................................................................... 14 Mapa da memória de dados .......................................................................................................................... 16 MEMÓRIAS NÃO VOLÁTEIS (E2PROM E FLASH) .................................................................................................... 16 AS INTERRUPÇÕES .............................................................................................................................................. 17 Interrupção de Timer 0 .................................................................................................................................. 17 Interrupção externa ....................................................................................................................................... 17 Interrupção por mudança de estado .............................................................................................................. 17 Interrupção da porta paralela (PSP)............................................................................................................... 18 Interrupção dos conversores A/D................................................................................................................... 18 Interrupção de recepção da USART .............................................................................................................. 18 Interrupção de transmissão da USART .......................................................................................................... 18 Interrupção da comunicação serial (SSP e I²C).............................................................................................. 18 Interrupção do CCP1 (Capture/Compare/PWM)............................................................................................. 18 Interrupção do Timer 2 .................................................................................................................................. 18 Interrupção do Timer 1 .................................................................................................................................. 18 2 Interrupção de fim de escrita na E PROM/FLASH.......................................................................................... 18 Interrupção de colisão de dados (Bus Collision) ............................................................................................. 19 Interrupção do CCP2 (Capture/Compare/PWM)............................................................................................. 19 Operando com as interrupções ...................................................................................................................... 19 DEMAIS RECURSOS E PER IFÉRICOS ....................................................................................................................... 21 CARACTERÍSTICAS ELÉTR ICAS .............................................................................................................................. 23 CAPÍTULO 3 - RESUMO DO SET DE INSTRUÇÕES ......................................................................................... 25 OS TERMOS UTILIZADOS ....................................................................................................................................... 25 A CONSTRUÇÃO DOS NOMES DAS INSTRUÇÕES ....................................................................................................... 26
TECLAS E LEDS ...................................................................................................................................................30 BUZZER .............................................................................................................................................................30 2 MEMÓRIA E PROM EXTERNA ..............................................................................................................................30 COMUNICAÇÃO SERIAL RS-232 ............................................................................................................................30 CONVERSÃO ANALÓGICO / DIGITAL (A/D) ..............................................................................................................30 SISTEMA DE TEMPERATUR A ..................................................................................................................................31 CONECTOR DE EXPANSÃO ....................................................................................................................................31 GRAVAÇÃO IN-CIRCUIT ........................................................................................................................................31 CAPÍTULO 5 - AULA 1: AS PRIMEIRAS EXPLORAÇÕES (I/OS E TIMERS).....................................................33 INTRODUÇÃO ......................................................................................................................................................33 TEORIA E RECURSOS DO PIC ...............................................................................................................................33 Estudo das Portas .........................................................................................................................................33 Estudo dos Timers.........................................................................................................................................39 LÓGICA DO EXEMPLO ...........................................................................................................................................46 ESQUEMA ELÉTRICO............................................................................................................................................47 FLUXOGRAMA .....................................................................................................................................................48 CÓDIGO .............................................................................................................................................................52 DICAS E COMENTÁRIOS .......................................................................................................................................58 EXERCÍCIOS PROPOSTOS .....................................................................................................................................58 ANOTAÇÕES .......................................................................................................................................................59 CAPÍTULO 6 - AULA 2: VARREDURA DE DISPLAY DE 4 DÍGITOS .................................................................61 INTRODUÇÃO ......................................................................................................................................................61 TEORIA E RECURSOS DO PIC ...............................................................................................................................61 LÓGICA DO EXEMPLO ...........................................................................................................................................63 ESQUEMA ELÉTRICO............................................................................................................................................65 FLUXOGRAMA .....................................................................................................................................................66 CÓDIGO .............................................................................................................................................................71 DICAS E COMENTÁRIOS .......................................................................................................................................80 EXERCÍCIOS PROPOSTOS .....................................................................................................................................80 ANOTAÇÕES .......................................................................................................................................................81 CAPÍTULO 7 - AULA 3: OPERAÇÃO COM DISPLAY DE CRISTAL LÍQUIDO (LCD) ........................................83 INTRODUÇÃO ......................................................................................................................................................83 TEORIA E RECURSOS DO PIC ...............................................................................................................................83 Inicialização do LCD ......................................................................................................................................85 Comandos do LCD ........................................................................................................................................87 LÓGICA DO EXEMPLO ...........................................................................................................................................91 ESQUEMA ELÉTRICO............................................................................................................................................92 FLUXOGRAMA .....................................................................................................................................................93 CÓDIGO .............................................................................................................................................................98 DICAS E COMENTÁRIOS .....................................................................................................................................106 EXERCÍCIOS PROPOSTOS ...................................................................................................................................106 ANOTAÇÕES .....................................................................................................................................................107 CAPÍTULO 8 - AULA 4: CONVERSOR ANALÓGICO-DIGITAL INTERNO.......................................................109 INTRODUÇÃO ....................................................................................................................................................109 TEORIA ............................................................................................................................................................109 RECURSOS DO PIC ...........................................................................................................................................111 LÓGICA DO EXEMPLO .........................................................................................................................................117 ESQUEMA ELÉTRICO..........................................................................................................................................118 FLUXOGRAMA ...................................................................................................................................................119 CÓDIGO ...........................................................................................................................................................122 DICAS E COMENTÁRIOS .....................................................................................................................................130 EXERCÍCIOS PROPOSTOS ...................................................................................................................................130
FLUXOGRAMA ...................................................................................................................................................138 CÓDIGO ...........................................................................................................................................................140 DICAS E COMENTÁRIOS .....................................................................................................................................146 EXERCÍCIOS PROPOSTOS ...................................................................................................................................146 ANOTAÇÕES .....................................................................................................................................................147 CAPÍTULO 10 - AULA 6: OS MÓDULOS CCP (CAPTURE / COMPARE / PWM) .............................................149 INTRODUÇÃO ....................................................................................................................................................149 TEORIA E RECURSOS DO PIC .............................................................................................................................149 Modo Capture..............................................................................................................................................150 Modo Compare............................................................................................................................................151 Modo PWM .................................................................................................................................................152 LÓGICA DO EXEMPLO .........................................................................................................................................157 ESQUEMA ELÉTRICO..........................................................................................................................................158 FLUXOGRAMA ...................................................................................................................................................159 CÓDIGO ...........................................................................................................................................................162 DICAS E COMENTÁRIOS .....................................................................................................................................170 EXERCÍCIOS PROPOSTOS ...................................................................................................................................170 ANOTAÇÕES .....................................................................................................................................................171 CAPÍTULO 11 - AULA 7: TRABALHANDO COM AS MEMÓRIAS NÃO VOLÁTEIS ........................................173 INTRODUÇÃO ....................................................................................................................................................173 TEORIA E RECURSOS DO PIC .............................................................................................................................173 2 Escrevendo na E PROM (Dados) ................................................................................................................174 2 Lendo a E PROM (Dados) ...........................................................................................................................175 Escrevendo na FLASH (Programa) ..............................................................................................................176 Lendo a FLASH (Programa) ........................................................................................................................176 Tratando a interrupção de final de escrita na E2PROM e FLASH..................................................................177 LÓGICA DO EXEMPLO .........................................................................................................................................177 ESQUEMA ELÉTRICO..........................................................................................................................................178 FLUXOGRAMA ...................................................................................................................................................179 CÓDIGO ...........................................................................................................................................................184 DICAS E COMENTÁRIOS .....................................................................................................................................197 EXERCÍCIOS PROPOSTOS ...................................................................................................................................197 ANOTAÇÕES .....................................................................................................................................................198 CAPÍTULO 12 - AULA 8: COMUNICAÇÃO SERIAL 1 – SPI E I²C....................................................................201 INTRODUÇÃO ....................................................................................................................................................201 TEORIA E RECURSOS DO PIC PARA SPI ..............................................................................................................201 2 TEORIA PARA I C ..............................................................................................................................................207 2 RECURSOS DO PIC PARA I C .............................................................................................................................213 Modo Slave .................................................................................................................................................213 Modo Master ...............................................................................................................................................220 LÓGICA DO EXEMPLO .........................................................................................................................................226 ESQUEMA ELÉTRICO..........................................................................................................................................227 FLUXOGRAMA ...................................................................................................................................................228 CÓDIGO ...........................................................................................................................................................233 DICAS E COMENTÁRIOS .....................................................................................................................................244 EXERCÍCIOS PROPOSTOS ...................................................................................................................................244 ANOTAÇÕES .....................................................................................................................................................245 CAPÍTULO 13 - AULA 9: COMUNICAÇÃO SERIAL 2 – USART ......................................................................247 INTRODUÇÃO ....................................................................................................................................................247 TEORIA ............................................................................................................................................................247 Modo Assíncrono.........................................................................................................................................247 Modo Síncrono ............................................................................................................................................249
DICAS E COMENTÁRIOS .....................................................................................................................................268 EXERCÍCIOS PROPOSTOS ...................................................................................................................................268 ANOTAÇÕES .....................................................................................................................................................269 CAPÍTULO 14 - AULA 10: OUTRAS CARACT ERÍSTICAS...............................................................................271 INTRODUÇÃO ....................................................................................................................................................271 COMUNICAÇÃO PARALELA (PSP) ........................................................................................................................271 W ATCHDOG TIMER (WDT) .................................................................................................................................273 POWER -ON RESET (POR)..................................................................................................................................273 POWER -UP TIMER (PWRT) ................................................................................................................................273 OSCILATOR START-UP TIMER (OST) ...................................................................................................................274 BROWN-OUT RESET (BOR)................................................................................................................................274 SLEEP (POWER -DOWN MODE)..........................................................................................................................274 CONTROLE DE RESETS ......................................................................................................................................275 OSCILADOR ......................................................................................................................................................276 SISTEMA DE PROTEÇÃO D O CÓDIGO (CODE PROTECTION) .....................................................................................277 REGISTRADORES DE IDENTIFICAÇÃO (IDS) ...........................................................................................................277 SISTEMA DE EMULAÇÃO IN-CIRCUIT (DEBUGGER MODE)........................................................................................278 PROTEÇÃO DE ESCRITA INTERNA DA FLASH ........................................................................................................278 GRAVAÇÃO IN-CIRCUIT (ICSP)...........................................................................................................................278 GRAVAÇÃO EM BAIXA TENSÃO (LOW VOLTAGE PROGRAMMING)..............................................................................279 ANOTAÇÕES .....................................................................................................................................................280 CAPÍTULO 15 - IMPLEMENTANDO UM SISTEMA DE MEDIÇÃO DE TEMPERATURA ..................................283 INRODUÇÃO ......................................................................................................................................................283 O SISTEMA .......................................................................................................................................................283 O sensor de temperatura .............................................................................................................................283 O aquecimento ............................................................................................................................................283 O resfriamento.............................................................................................................................................284 Comunicação serial .....................................................................................................................................284 Considerações gerais ..................................................................................................................................284 ESQUEMA ELÉTRICO..........................................................................................................................................285 FLUXOGRAMA ...................................................................................................................................................286 CÓDIGO ...........................................................................................................................................................290 ANOTAÇÕES .....................................................................................................................................................306 APÊNDICE A - DETALHAMENTO DOS REGISTRADORES ESPECIAIS (SFRS) ............................................309 INTRODUÇÃO ....................................................................................................................................................309 AGRUPAMENTO E LOCALIZ AÇÃO ..........................................................................................................................309 RESUMO E CONDIÇÕES APÓS RESET ....................................................................................................................336 APÊNDICE B - SET DE INSTRUÇÕES COMPLETO (PARA 14 BITS) .............................................................339 APÊNDICE C - DIRET RIZES DA LINGUAGEM MPASM ..................................................................................349 APÊNDICE D - INSTRUÇÕES ESPECIAIS.......................................................................................................369 APÊNDICE E - OPERADORES DO COMPILADOR..........................................................................................371 APÊNDICE F - CONTATOS IMPORTANTES ....................................................................................................373 APÊNDICE G - PRODUT OS PARA TRABALHAR COM O PIC ........................................................................375 APÊNDICE H - ESQUEMA ELÉTRICO DA PLACA MCLAB2...........................................................................377
A Mosaico A Mosaico é uma empresa fortemente atuante no segmento da engenharia eletrônica no Brasil, desde o desenvolvimento de projetos e tecnologias, passando por consultorias e assessorias diversas até chegarmos a um avançado sistema de materiais para aprendizado tecnológico. Com uma história marcada por um crescimento sólido e constante desde 1995, a Mosaico possui uma equipe técnica altamente capacitada, com grande especialização em microcontroladores, principalmente na linha PIC da Microchip. São centenas de projetos desenvolvidos nas mais diversas áreas, os quais possibilitaram a atualização de muitos produtos e a transformação de grandes idéias em oportunidades de negócios para nossos clientes. Consciente da sua responsabilidade social, a Mosaico se empenha em colaborar com o desenvolvimento técnico de nosso país, despertando o espírito empreendedor e promovendo a capacitação das empresas, escolas e universidades brasileiras. Com este pensamento, e graças a toda experiência adquirida nos últimos anos, a Mosaico é vista atualmente no mercado como um ícone junto aos usuários do PIC. Isso alavancou, dentro da empresa, a criação de uma divisão dedicada totalmente ao desenvolvimento de treinamentos e ferramentas didáticas para o ensino e popularização do PIC. Estas ferramentas e métodos podem ser encontrados em diversos colégios, faculdades e até universidades espalhadas por todo o território nacional, dentre elas algumas das mais conceituadas do país. Mais uma vez a Mosaico demonstra a sua grande capacidade empreendedora e seu marcante espírito nacionalista, ajudando a divulgar o conhecimento e as tecnologias dentro deste imenso território chamado Brasil.
Nossos objetivos Quando criamos o nosso primeiro treinamento, baseado no livro “Desbravando o PIC”, dedicamos muitas horas de trabalho para que tudo saísse dentro do grau de excelência requerido pela Mosaico. Acreditamos que o reconhecimento de nossos alunos e o crescente número de formandos é a confirmação da qualidade do nosso trabalho. Entretanto, era nossa intenção desde o começo, a qual foi confirmada pelas solicitações de nossos alunos, que os sistema de ensino da Mosaico para o PIC fosse muito mais abrangente. O objetivo deste segundo curso é exatamente este: complementar o conhecimento dos usuários do PIC. Enquanto o primeiro módulo destinava-se ao aprendizado da linguagem assembly, utilizando-se para isso dos recursos disponíveis no PIC16F84, é nossa intenção agora aprimorar seus conhecimentos nos demais recursos da família PIC, além da integração com periféricos práticos e totalmente necessários nos dias de hoje, como varredura de displays, LCD e comunicação RS-232.
Os pré-requisistos Entretanto, tudo isso exige um conhecimento prévio. Por isso, para um bom desempenho neste treinamento, é necessário que o aluno já conheça e domine a linguagem assembly do PIC, assim como as ferramentas de trabalho: o MpLab e um sistema de gravação. Como já dissemos, nossa intenção não é o ensino da programação básica, mas sim a exploração de recursos avançados e sistemas complementares. Caso você ainda não domine a linguagem, recomendamos primeiro o “Treinamento Assembly – Módulo I”, aquele dedicado na obra “Desbravando o PIC”.
A sistemática do treinamento Mais uma vez houve, por parte da Mosaico, grande empenho em relação a didática e ordem cronológica aplicada ao treinamento. Consideramos esta sistemática muito importante para o desempenho do aluno. Desta vez resolvemos dividir este material em 5 grandes partes: Conhecendo o microcontrolador base Esta parte será destinada ao esclarecimento das características do PIC utilizado como base para o aprendizado. Antes de começarmos as aulas sobre os recursos, devemos conhecer bem todas as facetas do PIC em questão, tais como seus registradores especiais, características elétricas, pinagem, etc. Conhecendo o hardware utilizado Nada melhor que uma placa laboratório para a execução de todos os exemplos e exercícios. Por isso, o treinamento da Mosaico utiliza-se da placa McLab2 para termos um melhor aproveitamento do tempo. Esta é uma placa muito poderosa, onde seremos capazes de executar experiências com todos os recursos estudados para o PIC. Outra característica interessante, é que esta placa interage com o McFlash, um gravador de baixo custo, e também o McPlus, um gravador completo, ambos operando de dentro do MpLab. O esquema elétrico completo desta placa encontra-se no Apêndice H. Aulas práticas Todos os recursos e funções estudados estão divididos em 10 aulas práticas. Cada uma destas aulas possui uma estruturação padronizada, baseada nos seguintes tópicos: ·
Introdução: Explicações gerais sobre os assuntos estudados;
·
Teoria: Quando necessário, detalha o embasamento teórico obrigatório para o entendimento do assunto em questão;
·
Recursos do PIC: Detalhamento dos recursos do PIC que serão utilizados nos exemplos expostos, com a explicação do funcionamento, registradores envolvidos, etc. Muitas vezes este tópico pode estar agrupado com o anterior;
·
Fluxograma: Este tópico apresentará o fluxograma de operação para complementar a lógica apresentada anteriormente e facilitar o entendimento do exemplo;
·
Código: O código propriamente dito, em assembly, para o exemplo da aula;
·
Dicas e comentários: Dicas, manhas, comentários importantes e demais desdobramentos resultantes da utilização do exemplo apresentado;
·
Exercícios propostos: Outros problemas e questões que podem ser discutidos e resolvidos com os recursos já aprendidos.
Um fato importante é que com esta sistemática todos os tópicos relacionados a um determinado assunto encontram-se agrupados na mesma aula, desde o embasamento teórico até o exemplo estudado e os exercícios propostos. Desta forma, cada aula torna-se independente das demais, podendo ser estudada separadamente. Projeto final Ao término das aulas será apresentado um projeto prático envolvendo a medição de temperatura, com atuadores manuais para aquecimento e resfriamento. Trata-se de um exemplo capaz de utilizar os recursos adicionais da placa McLab2 (sistema de temperatura) utilizando as práticas aprendidas durante o treinamento. Apêndices Como já conhecemos as características marcantes de nossos treinamentos e alunos, os apêndices tornaram-se obrigatórios em nossos materiais didáticos. Eles são de grande valia aos alunos que se transformam em programadores dedicados, pois tornam-se fontes de consulta permanentes. Desta forma, tentamos colocar nos apêndices informações úteis ao dia a dia do programador, seguindo, sempre que possível, a formatação e termos utilizados nas literaturas técnicas da própria Microchip. CD-Rom Ao adquirir este treinamento, você estará recebendo também um CR-Rom para facilitar seu acesso as informações adicionais. Nele será encontrado: ·
Os códigos-fonte dos exemplos apresentados;
·
O MpLab completo para instalação;
·
O data sheet e especificação de gravação in-circuit (ICSP) do PIC 16F877;
·
Os data sheets dos componentes adicionais: LCD e memória;
·
O software M2Com para comunicação serial RS232;
·
O esquema elétrico completo da placa McLab2;
Padrões textuais Para facilitar o entendimento deste material, alguns padrões textuais foram utilizados:
Capítulo 7 - Aula 3: Operação com Display de Cristal Líquido (LCD)
Introdução Dando continuidade às melhorias no sistema de interface com o usuário, veremos agora a operação com display de cristal líquido. Estes displays são muito mais poderosos que os displays de segmentos, pois possuem muito mais caracteres e são alfanuméricos. Entretanto, são também mais caros e com uma visualização inferior, pois os caracteres não possuem iluminação própria e são de tamanho bem reduzido.
Teoria e Recursos do PIC Existem muitos displays de cristal líquido (LCD) no mercado, mas trabalharemos com o modelo mais padrão de todos. Trata-se de um display de 2 linhas com 16 caracteres cada uma. Este display é bem conhecido por ser o modelo utilizado nos telefones públicos (orelhões). Outra característica importante do display que estaremos estudando é que ele já possui um drive de controle interno. Desta forma, nos comunicaremos com ele através de uma comunicação paralela, passando comandos e os caracteres que desejamos escrever, diretamente em código ASCII. Vejamos agora o formato do LCD que estaremos estudando:
1 1 1 1 1 9 8 7 6 5 4 3 2 1 1 1 4 3 2 1 0 6 5
Neste LCD possuímos 16 pinos para ligação do mesmo ao nosso projeto. A tabela seguinte identifica cada um destes pinos: Pino 1 2 3 4 5 6
Função Vss Vdd Vo RS R/W E
Pino 9 10 11 12 13 14
Função DB2 DB3 DB4 DB5 DB6 DB7
Lógica do exemplo Nosso exemplo para demonstração do LCD é bem reduzido. Simplesmente utilizaremos este display para informar ao usuário qual botão foi pressionado. Para isso elaboramos uma rotina chamada ESCREVE que envia a informação passada pelo W para o display. Para evitarmos problemas de temporização, esta rotina já garante um tempo de espera de 1ms. Para os comandos que exigem um tempo maior, um delay adicional será dado após a chamada desta rotina. A rotina ESCREVE pode ser usada tanto para enviar comandos quanto dados para o display. Acontece que como esta rotina não verifica ou altera o valor de RS, esta saída deve ser configurada antes da rotina ser chamada. Seguindo o roteiro descrito na parte teórica desta aula, implementamos também uma rotina de preparação do LCD, chamada INICIALIZACAO_DISPLAY. Esta rotina configura o sistema para comunicação com 8 vias, 2 linhas, sem cursor visível e com movimento automático do cursor para a direita. Além disso, ela já limpa a tela e posiciona o cursor na primeira linha, primeiro caractere da esquerda. Para cada botão pressionado, posicionamos o cursor em um local diferente da tela e escrevemos o número do botão em questão. Após a liberação, uma tela padrão é utilizada. Este exemplo não ut iliza nenhum a interrupção.
Esquema Elétrico
+5V
7 8 9 10 11 12 13 14
DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7
10K
VDD 2 VO 3 VSS 1
RS
4
RS 6 EN 5 R/W
EN
LCD +5V
RESET
10K +5V
MC1 1 2 3 4 5 6 7
+5V
RS EN
8 9 10 11 12 13 14 15
4MHz
16 17 18 23 24
MCLR RA0 RA1 RA2 RA3 RA4 RA5 RE0 RE1 RE2 VDD VSS OSC1 OSC2 RC0 RC1 RC2 RC3 RC4 RC5
VDD VSS RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 RC7 RC6
32 31 40 39 38 37 36 35 34 33 30 29 28 27 22 21 20 19 26 25
PIC16F877
+5V
+5V
10K
+5V
10K
10K
RB2
RB1
RB0 S0
+5V
S1
10K
RB3 S2
S3
Fluxograma
INÍCIO
VETOR DE RESET PULA P/ INÍCIO DO PROGRAMA
CONFIGURAÇÕES INICIAIS PORTAS, TIMERS, INTERRUPÇÕES, OPTION, ADs.
RESET WDT ?
Não
TRAVA O PROGRAMA AGUARDA ESTOURO DO WDT
Sim LIMPA A RAM ATRAVÉS DO END. INDIRETO
INICIALIZA VARIÁVEIS INICIALIZAÇÃO DISPLAY ENVIA COMANDO 0x30 P/ DISPLAY
DELAY DE 4ms
ENVIA COMANDO 0x30 P/ DISPLAY
ENVIA COMANDO 0x30 P/ DISPLAY
ENVIA COMANDO 0x38 P/ DISPLAY
INICIALIZA DISPLAY P/ 8 VIAS DE DADOS
ENVIA COMANDO 0x01 P/ DISPLAY LIMPA DISPLAY DELAY DE 1ms
ENVIA COMANDO 0x0C P/ DISPLAY
DISPLAY S/ CURSOR
ENVIA COMANDO 0x06 P/ DISPLAY
DESLOCAR CURSOR À DIREITA
1
Código ; ; ; ; ; ; ; ; ; ; ; ;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CONECTANDO O PIC – EXPLORANDO RECURSOS AVANÇADOS * EXEMPLO 3 * * CENTRO DE TREINAMENTO – MOSAICO ENGENHARIA * * TEL: (0XX11) 4992-8775 SITE: www.mosaico-eng.com.br * (0XX11) 4992-8003 E-MAIL:
[email protected] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VERSÃO : 1.0 * DATA : 10/05/2002 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * *
; ; ; ; ; ; ; ; ; ; ; ;
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DESCRIÇÃO GERAL * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ESTE EXEMPLO FOI ELABORADO PARA EXPLICAR O FUNCIONAMENTO DO MÓDULO DE LCD. FOI CRIADA UMA ROTINA PARA ESCREVER COMANDOS OU CACACTRES NO LCD. EXISTE TAMBÉM UMA ROTINA DE INICIALIZAÇÃO NECESSÁRIA PARA A CORRETA CONFIGURAÇÃO DO LCD. OS BOTÕES CONTINUAM SENDO MONITORADOS. UMA MENSAGEM É ESCRITA NO LCD PARA CADA UM DOS BOTÕES, QUANDO O MESMO É PRESSIONADO. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CONFIGURAÇÕES PARA GRAVAÇÃO * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
__CONFIG _CP_OFF & _CPD_OFF & _DEBUG_OFF & _LVP_OFF & _WRT_ENABLE_OFF & _BODEN_OFF & _PWRTE_ON & _WDT_ON & _XT_OSC ; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ; * DEFINIÇÃO DAS VARIÁVEIS * ; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ; ESTE BLOCO DE VARIÁVEIS ESTÁ LOCALIZADO LOGO NO INÍCIO DO BANCO 0 CBLOCK
0X20
; POSIÇÃO INICIAL DA RAM
TEMPO1 TEMPO0
; CONTADORES P/ DELAY
FILTRO_BOTOES
; FILTRO PARA RUIDOS
FLAG
; FLAG DE USO GERAL
ENDC ; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ; * DEFINIÇÃO DAS VARIÁVEIS INTERNAS DO PIC ; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ; O ARQUIVO DE DEFINIÇÕES DO PIC UTILIZADO DEVE SER REFERENCIADO ; OS NOMES DEFINIDOS PELA MICROCHIP POSSAM SER UTILIZADOS, SEM A ; DE REDIGITAÇÃO. #INCLUDE
* * * * * * * * * * * * * PARA QUE NECESSIDADE
; MICROCONTROLADOR UTILIZADO
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ; * DEFINIÇÃO DOS BANCOS DE RAM * ; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ; OS PSEUDOS-COMANDOS "BANK0" E "BANK1", AQUI DEFINIDOS, AJUDAM A COMUTAR ; ENTRE OS BANCOS DE MEMÓRIA. #DEFINE #DEFINE
BANK1 BANK0
BSF BCF
STATUS,RP0 STATUS,RP0
; SELECIONA BANK1 DA MEMORIA RAM ; SELECIONA BANK0 DA MEMORIA RAM
MOVLW CALL BSF
0XC8 ESCREVE RS
; COMANDO PARA POSICIONAR O CURSOR ; LINHA 1 / COLUNA 8 ; SELECIONA O DISPLAY P/ DADOS ; COMANDOS PARA ESCREVER AS ; LETRAS DE "TECLA 3"
MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL MOVLW CALL
'T' ESCREVE 'E' ESCREVE 'C' ESCREVE 'L' ESCREVE 'A' ESCREVE ' ' ESCREVE '3' ESCREVE
BSF
TELA_PRINCIPAL
; SETA FLAG P/ MOSTRAR TELA PRINCIPAL
GOTO
VARRE
; VOLTA P/ VARREDURA DOS BOTÕES
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ; * FIM DO PROGRAMA * ; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * END
; FIM DO PROGRAMA
Dicas e Comentários Apesar da estrutura do sistema ficar muito simples com a implementação da rotina ESCREVE, nunca se esqueça de confirmar o estado da saída RS antes de utilizá-la. Conforme empregado neste exemplo, recomendamos deixar RS=1 como valor padrão, alterando-o para 0 sempre que desejar escrever algum comando. Em seguida, retornar RS=1 (padrão) para enviar dados. Para enviar um caractere ao LCD, não se esqueça que deve ser especificado o seu código ASCII. Para facilitar a sua vida, o MpLab efetua esta conversão quando você digita um caractere entre aspas simples (Ex: ‘A’). Neste caso, existe diferença entre maiúsculas e minúsculas. Para caracteres não printáveis, seu código pode ser diretamente definido (Ex: 0x35). O MpLab, assim como a maioria dos programas para Windows, também aceita a especificação de um caractere que não aparece no teclado através da combinação da tecla ALT seguido do código ASCII, imprimindo o resultado na tela. O problema é que nem sempre o código ASCII é equivalente ao mesmo símbolo para o LCD e para a fonte do MpLab. Apesar da placa McLab2 possuir ligação com o módulo de LCD através de 8 vias de dados é possível utilizá-la para testar e implementar a comunicação com 4 vias. Basta modificar a rotina de inicialização e a de escrita de um byte.
Exercícios Propostos Agora que o exemplo já foi estudado e esclarecido, aproveite para gerar novos problemas e soluções, seguindo os exercícios propostos: 1. Altere a comunicação para 4 vias; 2. Mantenha a tela principal disponível somente quando o sistema é ligado. Após alguns segundos, mostre uma tela com o nome das quatro teclas e indique a tecla pressionada através de um caractere de seta (? ) ou outro qualquer.