Você está na página 1de 14

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 Função Pino Função


1 Vss 9 DB2
2 Vdd 10 DB3
3 Vo 11 DB4
4 RS 12 DB5
5 R/W 13 DB6
6 E 14 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 VDD 2 10K
DB0
8
DB1 VO 3
9 VSS 1
DB2
10
DB3
11 RS
DB4
12 4
DB5 RS
13 6
DB6 EN EN
14 5
DB7 R/W

LCD

+5V

RESET 10K
+5V
MC1
1 32
MCLR VDD
2 31
RA0 VSS
3 40
RA1 RB7
4 39
RA2 RB6
5 38
RA3 RB5
6 RA4 RB4 37
7 36
RA5 RB3
RS 8 RE0 RB2
35
+5V EN 9 34
RE1 RB1
10 33
RE2 RB0
11 30
VDD RD7
12 29
VSS RD6
13 28
OSC1 RD5
14 27
OSC2 RD4
15 22
RC0 RD3
16 21
4MHz RC1 RD2
17 20
RC2 RD1
18 19
RC3 RD0
23 26
RC4 RC7
24 25
RC5 RC6

PIC16F877

+5V +5V +5V +5V

10K 10K 10K 10K

RB0 RB1 RB2 RB3

S0 S1 S2 S3
Fluxograma

INÍCIO

VETOR DE RESET
PULA P/ INÍCIO DO
PROGRAMA

CONFIGURAÇÕES INICIAIS
PORTAS, TIMERS,
INTERRUPÇÕES, OPTION, ADs.

Não TRAVA O PROGRAMA


RESET
AGUARDA ESTOURO
WDT ?
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

INICIALIZA DISPLAY
ENVIA COMANDO 0x38 P/ DISPLAY P/ 8 VIAS DE DADOS

ENVIA COMANDO 0x01 P/ DISPLAY


LIMPA DISPLAY

DELAY DE 1ms

ENVIA COMANDO 0x0C P/ DISPLAY DISPLAY S/ CURSOR

DESLOCAR CURSOR À
ENVIA COMANDO 0x06 P/ DISPLAY 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: mosaico@mosaico-eng.com.br *
; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
; * 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 PARA QUE
; OS NOMES DEFINIDOS PELA MICROCHIP POSSAM SER UTILIZADOS, SEM A NECESSIDADE
; DE REDIGITAÇÃO.

#INCLUDE <P16F877.INC> ; 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 BANK1 BSF STATUS,RP0 ; SELECIONA BANK1 DA MEMORIA RAM


#DEFINE BANK0 BCF STATUS,RP0 ; SELECIONA BANK0 DA MEMORIA RAM
MOVLW 0XC8 ; COMANDO PARA POSICIONAR O CURSOR
CALL ESCREVE ; LINHA 1 / COLUNA 8
BSF RS ; SELECIONA O DISPLAY P/ DADOS

; COMANDOS PARA ESCREVER AS


; LETRAS DE "TECLA 3"
MOVLW 'T'
CALL ESCREVE
MOVLW 'E'
CALL ESCREVE
MOVLW 'C'
CALL ESCREVE
MOVLW 'L'
CALL ESCREVE
MOVLW 'A'
CALL ESCREVE
MOVLW ' '
CALL ESCREVE
MOVLW '3'
CALL 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.