Cursos / Eletrônica / Projeto de Sistemas Microcontrolados / Aula

arrow_back Aula 03 - Estudo de microcontroladores PIC – Parte I

Organização da memória de programa - pt.2

Após terem sido guardados oito valores na pilha, na nona vez que for guardado um valor, o primeiro armazenado será perdido. A décima vez que for escrito um valor, o segundo será perdido e, assim por diante.

Os PIC16FXX têm um contador de programa (PC) de 13 bits, o que lhes permitem endereçar 8 KBytes x 14 espaços de memória de programa. No entanto, para o PIC16F84A apenas o primeiro 1 KByte x 14 (0000h - 07FFh) endereços são fisicamente implementados e para o 16F628 apenas os primeiros 2 KBytes x 14 (0000h - 07FFh) endereços são fisicamente implementados.

O PC pode ser entendido como um registrador que sempre aponta para o endereço de memória da próxima instrução que será executada pelo PIC.

Para o 16F877, a memória de programa, como pode ser visto na Figura 4, está dividida em quatro páginas de 2 KBytes x 14 endereços cada uma, nomeadas de Página 0 (endereços 0000 a 07FFh), Página 1 (endereços 0800h a 0FFFh), Página 2 (endereços 1000h a 17FFh) e Página 3 (endereços 1800h a 1FFFh). A Página 0 corresponde a toda memória de programa do 16F628.

Quando se desenvolvem programas para o 16F877, deve-se ter um cuidado especial com as instruções GOTO e CALL (desvio de programa e chamada de sub-rotina, respectivamente).

O programa poderá não ser adequadamente executado se a posição chamada não estiver dentro da mesma página. Quando formos programar, teremos a oportunidade de esclarecer como resolver esse problema.

A Figura 4 chama atenção para os endereços 0000h e 0004h. O endereço 0000h da memória de programa está reservado para o vetor de reset e o endereço 0004h está reservado para o vetor de interrupção de programa. O que significa que:

  • numa situação de reset, o PC assume o valor 0000h e que a partir deste endereço (0000h) deve estar posicionada a primeira instrução do programa de partida do seu aplicativo;
  • na ocorrência de um pedido de interrupção e do seu atendimento, o PC assume o valor 0004h e que a partir deste endereço (0004h) deve estar posicionada uma rotina para tratamento de interrupções.

Como esses endereços estão muito próximos, normalmente, no endereço 0000h é colocada uma instrução de desvio para o início efetivo do programa de partida do aplicado em execução (normalmente, instruções que permitem fazer a inicialização do PIC e da aplicação desejada). Esta técnica será mostrada durante as práticas de programação dos PIC.

Versão 5.3 - Todos os Direitos reservados