P. 1
Conversão 16F84 para 16F628

Conversão 16F84 para 16F628

|Views: 1.342|Likes:
Publicado porhyundaicoupe
pic,programacao,lcd,microcontrolador
pic,programacao,lcd,microcontrolador

More info:

Published by: hyundaicoupe on Nov 19, 2009
Direitos Autorais:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

10/31/2012

pdf

text

original

Exsto Tecnologia

Conversão PIC16F84 para PIC16F628

Tutorial para conversão de programas feitos para 16F84 em programas para 16F628

Versão 1.0

04/2003

Conversão 16F84 para 16F628

2 de 2

Versão

Principais Autores

Descrição da Versão

Data de Término

1.0

- José Domingos Adriano

Versão inicial

14/03/2003

Exsto Tecnologia

V 1.0

Conversão 16F84 para 16F628

3 de 3

Índice
Página

Introdução ................................................................................................................... 5 1 Características .......................................................................................................... 6 1.1 Temporizadores e comparadores ..................................................................... 6 1.2 Comparadores analógicos................................................................................ 6 1.3 CCP, USART e tensão de referência. .............................................................. 6 1.4 Terminais. ....................................................................................................... 6 1.5 Memória.......................................................................................................... 7 1.6 Oscilador......................................................................................................... 9 2 Guia de conversão 16F84 para 16F628 .................................................................. 10

Exsto Tecnologia

V 1.0

Conversão 16F84 para 16F628

4 de 4

Lista de Figuras e Tabelas
Página Tabela 1.1 – Comparação entre o 16F84 e o 16F628 ..................................................... 6 Figura 1.1 – Mapa de memória do PIC 16F84 ............................................................... 7 Figura 1.2 – Mapa de memória do PIC 16F628 ............................................................. 8

Exsto Tecnologia

V 1.0

Conversão 16F84 para 16F628

5 de 5

Introdução
No universo dos microcontroladores PIC é muito difundido o uso do PIC16F84. Existe grande quantidade de programas, livros e cursos baseados nesse dispositivo. Porém, se comparado como ele, os PIC16F628 e PIC16F627 apresentam várias vantagens que tornam preferível trabalhar com esses últimos. O 16F84 é compatível “pino a pino” com, o 16F628, de forma que pode ser realizada sua substituição sem alterações de hardware, bastando apenas alterar o firmware. O presente documento visa ser um tutorial para a alteração de softwares inicialmente desenvolvidos para 16F84 para serem gravados em 16F628. São apresentadas de forma resumidas as características de cada microcontrolador, ressaltando as principais diferenças entre eles. Em seguida tem-se um guia para a alteração do firmware.

Exsto Tecnologia

V 1.0

Conversão 16F84 para 16F628

6 de 6

1 Características
A tabela abaixo apresenta uma comparação entre as principais características desse dos microcontroladores:
Característica PIC 16F84 Memória Memória de Programa FLASH (palavras de 14 bits) 1024 Memória de Dados RAM (bytes) 68 Memória de Dados EEPROM (bytes) 64 Periféricos Temporizadores/Contadores 1 Comparadores analógicos Módulo CCP (Capture/Compare/PWM) Comunicação serial Tensão de referência interna Características Gerais Número de Terminais 18 Número de Terminais de I/O 13 Detecção de Brown-out Não Interrupções 4 Modos de oscilador LP, XT, HS Sim RC externo Sim RC interno Não Tabela 1.1 – Comparação entre o 16F84 e o 16F628 PIC16F628 2048 224 128 3 2 1 USART 1 18 16 Sim 10 Sim Sim Sim

1.1 Temporizadores e contadores
O 16F84 possui apenas um temporizador, o Timer 0. Já o 16F628 possui 3, Timer 0, Timer 1, Timer 2. A operação do Timer 0, porém é a mesma nos dois componentes.

1.2 Comparadores analógicos
O PIC 16F628 possui dois comparadores analógicos que não existem no 16F84. As entradas desses comparadores estão multiplexadas com RA0, RA1, RA2 e RA3, que são os terminais 17, 18, 1 e 2, respectivamente. Como as entradas analógicas têm prioridade sobre entradas e saída digitais, a configuração default desses terminais pe côo entrada analógica. Faz-se necessário então desabilitar esse periférico. Isso é feito atribuindo-se o valor 7 ao registro CMCON (banco 0), que é o registro de controle do módulo comparador analógico.

1.3 CCP, USART e tensão de referência
Periféricos de CCP, USART e tensão de referência que existem no 16F628 estão, por padrão, no reset, desabilitados. Sua existência pode ser desconsiderada em rotinas desenvolvidas inicialmente para 16F84.

1.4 Terminais.
O 16F628 pode trabalhar com até 3 terminais de I/O a mais que o 16F84. Esses terminais. Esses terminais são pertencentes ao portal A. São eles os terminais 5, 15, 16,

Exsto Tecnologia

V 1.0

Conversão 16F84 para 16F628

7 de 7

respectivamente RA5, RA6 e RA7. RA7 e RA6 são terminais multiplexados com o oscilador do PIC. Se estiver sendo utilizado o modo de oscilador XT, LP, HS, RC externos, esses terminais fazem parte do circuito oscilador e não há ligação do registro PORTA com o pino do microcontrolador. Se estiver sendo utilizado o modo RC interno (opção que não existe para o 16F84), não existe circuito externo para o oscilador, e esses terminais podem ser utilizados como I/O. RA5 pode ser utilizado somente como entrada, pois não existe driver de saída. Para sua utilização como entrada deve-se configurar o MCLR ligado internamente para Vdd, o que é feito através dos fusíveis (fuses). Para utilização de rotinas desenvolvidas para 16F84 não há necessidade de nenhuma alteração no código com relação aos terminais.

1.5 Memória
No que se refere à memória, o 16F628 apresenta grandes diferenças em relação ao 16F84. As figuras abaixo apresentam a organização da memória do 16F84 e do 16F628.
Endereço 00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch Banco 0 Banco 1 INDF INDF TMR0 OPTION_REG PCL PCL STATUS STATUS FSR FSR PORTA TRISA PORTB TRISB Não implementado EEDATA EECON1 EEADR EECON2 PCLATH PCLATH INTCON INTCON Endereço 80h 81h 82h 83h 84h 85h 86h 87h 88h 89h 8Ah 8Bh 8Ch

GPRS 68 bytes 4Fh 50h -

(acessa banco 0) CFh D0h

Não implementado 7Fh FFh Figura 1.1 – Mapa de memória do PIC 16F84

Exsto Tecnologia

V 1.0

Conversão 16F84 para 16F628

8 de 8

Banco 0 INDF TMR0 PCL STATUS FSR PORTA PORTB

PCLATH INTCON PIR1 TMR1L TMR1H T1CON TMR2 T2CON

CCP1L CCP1H CCP1CON RCSTA TXREG RCREG

CMCON

00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 10h 11h 12h 13h 14h 15h 16h 17h 18h 19h 1Ah 1Bh 1Ch 1Dh 1Eh 1Fh 20h

Banco 1 INDF OPTION_REG PCL STATUS FSR TRISA TRISB

PCLATH INTCON PIE1 PCON

PR2

TXSTA SPBRG EEDATA EEADR EECON1 EECON2 VRCON

80h 81h 82h 83h 84h 85h 86h 87h 88h 89h 8Ah 8Bh 8Ch 8Dh 8Eh 8Fh 90h 91h 92h 93h 94h 95h 96h 97h 98h 99h 9Ah 9Bh 9Ch 9Dh 9Eh 9Fh A0h

Banco 2 INDF TMR0 PCL STATUS FSR PORTB

PCLATH INTCON

100h 101h 102h 103h 104h 105h 106h 107h 108h 109h 10Ah 10Bh 10Ch 10Dh 10Eh 10Fh 110h 111h 112h 113h 114h 115h 116h 117h 118h 119h 11Ah 11Bh 11Ch 11Dh 11Eh 11Fh 120h

Banco 3 INDF OPTION_REG PCL STATUS FSR TRISB

PCLATCH INTCON

180h 181h 182h 183h 184h 185h 186h 187h 188h 189h 18Ah 18Bh 18Ch 18Dh 18Eh 18Fh 190h 191h 192h 193h 194h 195h 196h 197h 198h 199h 19Ah 19Bh 19Ch 19Dh 19Eh 19Fh 1A0h

GPR 80 bytes GPR 96 bytes
EFh F0h

GPR 48 bytes
14Fh 150h 16Fh 170h 1EFh 1F0h

Acessa de 70h à 7Fh
7Fh FFh

Acessa de 70h à 7Fh
17Fh

Acessa de 70h à 7Fh
1FFh

Figura 1.2 – Mapa de memória do PIC 16F628

Como pode ser observado, existe uma grande diferença entre os dois mapas de memórias. O 16F628 possui um total de 224 bytes e o 16F84 apenas 68. Em primeiro lugar, o 16F628 possui quatro bancos de memória, enquanto o 16F84 possui dois. Contudo não existem registros nos bancos 2 e 3 três que não possam ser acessados nos bancos 0 e 1. A única região de interesse nesses bancos é a região de RAM de uso geral entre os endereços 120h e 14Fh, no banco dois. Quanto aos registros de funções especiais (SFR – Special Function Registers), o 16F628 os possui nos mesmos endereços que o 16F84, excetuando-se os registros relacionados com a memória EEPROM. No 16F628 todos esse registros se encontram no banco 1, e seus endereços podem ser observados na figura 1.2. Para programas que utilizam a EEPROM do 16F84 serem adaptados para o 16F628 as rotinas de aceso a EEPROM devem ser alteradas.

Exsto Tecnologia

V 1.0

Conversão 16F84 para 16F628

9 de 9

O 16F628 possui mais registros de uso geral (GPR – General Purpose Registers) que o 16F84. Então programas desenvolvidos para 16F84 não terão problemas com falta de memória. A mudança importante que deve ser observada é que no 16F84 os GPR começam no endereço 0Ch, enquanto no 16F628 começam no 20h. Os endereços dos registros devem ser alterados para ser adequar a faixa de endereços do 16F6268. Outra observação importante é que acessando do endereço 8Ch ao CFh no banco 1 do 16F84 são acessados os registros de 0Ch a 4Fh do banco 0. No 16F628 os registros do banco 1 que acessam endereços correspondentes no banco 0 são apenas os de endereço entre F0h e FFh.

1.6 Oscilador
Para a substituição do 16F84 pelo 16F628 não se faz necessária nenhuma alteração do hardware do circuito. Porém, para reduzir componentes e conseqüentemente o custo do sistema, pode-se optar por substituir um circuito oscilador externo pelo oscilador interno do 16F628. O 16F628 apresenta a possibilidade escolher entre duas freqüências para o oscilador interno, 4MHz e 37KHz. Nesse caso deve-se considerar que o oscilador interno de 4MHz tem uma precisão inferior à de um oscilador a cristal. Esse oscilador pode variar entre 3,65MHz e 4,28MHz. Para utilizar o oscilador interno deve-se habilitar essa opção nos “fusíveis”. A seleção da freqüência é feita por software pelo bit OSCF do registro PCON. Se OSCF for “1” a freqüência é de 4MHz; se for “0”, a freqüência e 37KHz. A freqüência do oscilador pode ser alterada a qualquer momento no programa.

Exsto Tecnologia

V 1.0

Conversão 16F84 para 16F628

10 de 10

2 Guia de conversão 16F84 para 16F628
Segue abaixo um tutorial de consulta rápida para a alteração de programas.

Alterar o arquivo de definições subsituir #include<P16F84.INC> por #include<P16F628.INC>

Desabilitar os comparadores analógicos na inicialização adicionar MOVLW 07h MOVWF CMCON em um trecho que estiver acessando o banco 0.

SIM

Está sendo utilizada a diretiva CBLOCK para declaração de variáveis?

NÃO

subsituir CBLOCK por CBLOCK

0Ch 20h

Realocar as variáveis declaradas nos endereços entre 0Ch e 20h para endereços entre 20h e 0Fh

Estão sendo utilizados endereços de 8Ch a CFh no banco 1 para acesso ao banco 0? NÃO

SIM

Realocar as variáveis para endereços entre F0h e FFh. Realocar os respectivos endereços do banco 0 para a faixa entre 70h e 7Fh.

SIM Estão sendo utilizadas rotinas de aceso a EEPROM?

NÃO Alterar as rotinas considerando que os registros EEDATA e EEARD estão no banco 1.

Exsto Tecnologia

V 1.0

You're Reading a Free Preview

Descarregar
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->