Você está na página 1de 10

Exsto Tecnologia

Converso PIC16F84 para PIC16F628

Tutorial para converso de programas feitos para 16F84 em programas para 16F628

Verso 1.0

04/2003

Converso 16F84 para 16F628

2 de 2

Verso

Principais Autores

Descrio da Verso

Data de Trmino

1.0

- Jos Domingos Adriano

Verso inicial

14/03/2003

Exsto Tecnologia

V 1.0

Converso 16F84 para 16F628

3 de 3

ndice
Pgina

Introduo ................................................................................................................... 5 1 Caractersticas .......................................................................................................... 6 1.1 Temporizadores e comparadores ..................................................................... 6 1.2 Comparadores analgicos................................................................................ 6 1.3 CCP, USART e tenso de referncia. .............................................................. 6 1.4 Terminais. ....................................................................................................... 6 1.5 Memria.......................................................................................................... 7 1.6 Oscilador......................................................................................................... 9 2 Guia de converso 16F84 para 16F628 .................................................................. 10

Exsto Tecnologia

V 1.0

Converso 16F84 para 16F628

4 de 4

Lista de Figuras e Tabelas


Pgina Tabela 1.1 Comparao entre o 16F84 e o 16F628 ..................................................... 6 Figura 1.1 Mapa de memria do PIC 16F84 ............................................................... 7 Figura 1.2 Mapa de memria do PIC 16F628 ............................................................. 8

Exsto Tecnologia

V 1.0

Converso 16F84 para 16F628

5 de 5

Introduo
No universo dos microcontroladores PIC muito difundido o uso do PIC16F84. Existe grande quantidade de programas, livros e cursos baseados nesse dispositivo. Porm, se comparado como ele, os PIC16F628 e PIC16F627 apresentam vrias vantagens que tornam prefervel trabalhar com esses ltimos. O 16F84 compatvel pino a pino com, o 16F628, de forma que pode ser realizada sua substituio sem alteraes de hardware, bastando apenas alterar o firmware. O presente documento visa ser um tutorial para a alterao de softwares inicialmente desenvolvidos para 16F84 para serem gravados em 16F628. So apresentadas de forma resumidas as caractersticas de cada microcontrolador, ressaltando as principais diferenas entre eles. Em seguida tem-se um guia para a alterao do firmware.

Exsto Tecnologia

V 1.0

Converso 16F84 para 16F628

6 de 6

1 Caractersticas
A tabela abaixo apresenta uma comparao entre as principais caractersticas desse dos microcontroladores:
Caracterstica PIC 16F84 Memria Memria de Programa FLASH (palavras de 14 bits) 1024 Memria de Dados RAM (bytes) 68 Memria de Dados EEPROM (bytes) 64 Perifricos Temporizadores/Contadores 1 Comparadores analgicos Mdulo CCP (Capture/Compare/PWM) Comunicao serial Tenso de referncia interna Caractersticas Gerais Nmero de Terminais 18 Nmero de Terminais de I/O 13 Deteco de Brown-out No Interrupes 4 Modos de oscilador LP, XT, HS Sim RC externo Sim RC interno No Tabela 1.1 Comparao 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 operao do Timer 0, porm a mesma nos dois componentes.

1.2 Comparadores analgicos


O PIC 16F628 possui dois comparadores analgicos que no existem no 16F84. As entradas desses comparadores esto multiplexadas com RA0, RA1, RA2 e RA3, que so os terminais 17, 18, 1 e 2, respectivamente. Como as entradas analgicas tm prioridade sobre entradas e sada digitais, a configurao default desses terminais pe co entrada analgica. Faz-se necessrio ento desabilitar esse perifrico. Isso feito atribuindo-se o valor 7 ao registro CMCON (banco 0), que o registro de controle do mdulo comparador analgico.

1.3 CCP, USART e tenso de referncia


Perifricos de CCP, USART e tenso de referncia que existem no 16F628 esto, por padro, no reset, desabilitados. Sua existncia 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 so pertencentes ao portal A. So eles os terminais 5, 15, 16,

Exsto Tecnologia

V 1.0

Converso 16F84 para 16F628

7 de 7

respectivamente RA5, RA6 e RA7. RA7 e RA6 so 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 no h ligao do registro PORTA com o pino do microcontrolador. Se estiver sendo utilizado o modo RC interno (opo que no existe para o 16F84), no existe circuito externo para o oscilador, e esses terminais podem ser utilizados como I/O. RA5 pode ser utilizado somente como entrada, pois no existe driver de sada. Para sua utilizao como entrada deve-se configurar o MCLR ligado internamente para Vdd, o que feito atravs dos fusveis (fuses). Para utilizao de rotinas desenvolvidas para 16F84 no h necessidade de nenhuma alterao no cdigo com relao aos terminais.

1.5 Memria
No que se refere memria, o 16F628 apresenta grandes diferenas em relao ao 16F84. As figuras abaixo apresentam a organizao da memria do 16F84 e do 16F628.
Endereo 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 No implementado EEDATA EECON1 EEADR EECON2 PCLATH PCLATH INTCON INTCON Endereo 80h 81h 82h 83h 84h 85h 86h 87h 88h 89h 8Ah 8Bh 8Ch

GPRS 68 bytes 4Fh 50h -

(acessa banco 0) CFh D0h

No implementado 7Fh FFh Figura 1.1 Mapa de memria do PIC 16F84

Exsto Tecnologia

V 1.0

Converso 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 memria do PIC 16F628

Como pode ser observado, existe uma grande diferena entre os dois mapas de memrias. O 16F628 possui um total de 224 bytes e o 16F84 apenas 68. Em primeiro lugar, o 16F628 possui quatro bancos de memria, enquanto o 16F84 possui dois. Contudo no existem registros nos bancos 2 e 3 trs que no possam ser acessados nos bancos 0 e 1. A nica regio de interesse nesses bancos a regio de RAM de uso geral entre os endereos 120h e 14Fh, no banco dois. Quanto aos registros de funes especiais (SFR Special Function Registers), o 16F628 os possui nos mesmos endereos que o 16F84, excetuando-se os registros relacionados com a memria EEPROM. No 16F628 todos esse registros se encontram no banco 1, e seus endereos 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

Converso 16F84 para 16F628

9 de 9

O 16F628 possui mais registros de uso geral (GPR General Purpose Registers) que o 16F84. Ento programas desenvolvidos para 16F84 no tero problemas com falta de memria. A mudana importante que deve ser observada que no 16F84 os GPR comeam no endereo 0Ch, enquanto no 16F628 comeam no 20h. Os endereos dos registros devem ser alterados para ser adequar a faixa de endereos do 16F6268. Outra observao importante que acessando do endereo 8Ch ao CFh no banco 1 do 16F84 so acessados os registros de 0Ch a 4Fh do banco 0. No 16F628 os registros do banco 1 que acessam endereos correspondentes no banco 0 so apenas os de endereo entre F0h e FFh.

1.6 Oscilador
Para a substituio do 16F84 pelo 16F628 no se faz necessria nenhuma alterao do hardware do circuito. Porm, para reduzir componentes e conseqentemente 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 freqncias para o oscilador interno, 4MHz e 37KHz. Nesse caso deve-se considerar que o oscilador interno de 4MHz tem uma preciso 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 opo nos fusveis. A seleo da freqncia feita por software pelo bit OSCF do registro PCON. Se OSCF for 1 a freqncia de 4MHz; se for 0, a freqncia e 37KHz. A freqncia do oscilador pode ser alterada a qualquer momento no programa.

Exsto Tecnologia

V 1.0

Converso 16F84 para 16F628

10 de 10

2 Guia de converso 16F84 para 16F628


Segue abaixo um tutorial de consulta rpida para a alterao de programas.

Alterar o arquivo de definies subsituir #include<P16F84.INC> por #include<P16F628.INC>

Desabilitar os comparadores analgicos na inicializao adicionar MOVLW 07h MOVWF CMCON em um trecho que estiver acessando o banco 0.

SIM

Est sendo utilizada a diretiva CBLOCK para declarao de variveis?

NO

subsituir CBLOCK por CBLOCK

0Ch 20h

Realocar as variveis declaradas nos endereos entre 0Ch e 20h para endereos entre 20h e 0Fh

Esto sendo utilizados endereos de 8Ch a CFh no banco 1 para acesso ao banco 0? NO

SIM

Realocar as variveis para endereos entre F0h e FFh. Realocar os respectivos endereos do banco 0 para a faixa entre 70h e 7Fh.

SIM Esto sendo utilizadas rotinas de aceso a EEPROM?

NO Alterar as rotinas considerando que os registros EEDATA e EEARD esto no banco 1.

Exsto Tecnologia

V 1.0

Você também pode gostar