(Parte 1 de 2)

Cefet/PR – Cornélio Procópio1

Análise de Circuitos Digitais – PIC16F628a Prof. Luiz Marcelo Chiesse da Silva

O PIC16F628a é um microcontrolador fabricado pela Microchip Technology (w.microchip.com), com as seguintes características: - composto de 18 pinos;

- possui somente 35 instruções no seu microcódigo;

- sinal de clock de freqüência até 20 MHz;

- memória de programa do tipo Flash de 2048 words (1 word = 32 bits);

- 224 bytes de memória RAM para dados;

- 128 bytes de memória EEPROM para dados;

- instruções de 14 bits com 200ns de tempo de execução;

- dados de 8 bits por endereço de memória;

- 15 registradores especiais;

- 16 pinos os quais podem ser configurados como entrada e/ou saída;

watchdog timer (temporizador cão de guarda), módulo CCP, comparador interno, USART,

- outras características especiais como programação in-circuit serial, proteção por código, Pinagem do PIC16F628a:

Os pinos de RA0 à RA7 e de RB0 à RB7 podem ser configurados como entradas ou saídas digitais. A alimentação se dá no pino Vdd, ligado normalmente em 5V com faixa de tolerância de 2 à 6V e o pino Vss é a referência de terra. O pino OSC1/CLKIN é utilizado para sinal de clock poduzido por cristal ou um circuito externo e o pino OSC2/CLKOUT para sinal de clock por cristal

(utilizado em conjunto com OSC1/CLKIN). O pino MCLR é uma entrada de sinal de reset em nível

Cefet/PR – Cornélio Procópio2

Análise de Circuitos Digitais – PIC16F628a Prof. Luiz Marcelo Chiesse da Silva baixo (zero). O PIC16F628a é composto pelos subsistemas digitais conforme diagrama de blocos abaixo:

Arquitetura Harvard

O PIC16F628a possui uma arquitetura denominada Harvard para acesso aos dados e às instruções do programa, a qual é caracterizada por utilizar um bus (via de acesso) para comunicação dos dados e outro bus distinto para comunicação com o programa. A maioria dos microcomputadores e microcontroladores no mercado utilizam um único bus, tanto para dados quanto para instruções do programa. Nota-se a diferença no uso desta arquitetura na visualização da memória do microcontrolador PIC: existe uma memória para o programa e outra para os dados

Cefet/PR – Cornélio Procópio3

Análise de Circuitos Digitais – PIC16F628a Prof. Luiz Marcelo Chiesse da Silva a serem utilizados. A figura a seguir mostra a memória RAM de um microcomputador PC, em que dados e instruções do programa estão na mesma memória, denominada memória principal (geralmente a RAM do computador). As letras abaixo, nas últimas linhas, mostram valores dos registradores especiais, como o DS (Data Segment) o qual indica o endereço inicial dos dados na memória e o CS (Code Segment) o qual indica o endereço inicial da memória no qual as instruções do programa corrente se iniciam.

A figura abaixo mostra o software MPLab IDE com as janelas de visualização da memória

Flash que contém o programa (janela à esquerda) e da memória RAM a qual contém os dados e registradores especiais (janela à direita) do PIC16F628a. Este tipo de arquitetura permite uma velocidade maior no cesso ao programa e aos dados, porém são necessários dois bus.

Cefet/PR – Cornélio Procópio4

Análise de Circuitos Digitais – PIC16F628a Prof. Luiz Marcelo Chiesse da Silva

Instruções RISC

Na tabela abaixo observa-se o conjunto de instruções do PIC16F628a, com os mnemônicos, os operandos de cada instrução, um resumo descritivo, o número de ciclos do clock exigido, o código em linguagem de máquina, os bits do registrador de status que são afetados e anotações sobre cada instrução. O número de instruções é limitado, sendo denominado arquitetura RISC - Reduced Instruction Set (Grupo Reduzido de Instruções). O número de instruções é pequeno, porém cada instrução é formada por 14 bits que codificam uma operação e os operandos ou os dados sujeitos à respectiva operação. A tabela abaixo mostra o microcódigo para os microcontroladores da linha PIC, com a instrução assembly na primeira coluna, os operandos possíveis para a respectiva instrução, a descrição, o número de ciclos do clock que a instrução exige para ser executada e o código em linguagem de máquina.

OPCODE DE 14 BITS

ADDWF f, d Soma o conteúdo do registrador “W” e de “f” 1 0 0111 dfff f

ANDWF f, d Operação lógica “E” entre o conteúdo de “W” e “f” 1 0 0101 dfff f

CLRF f Limpa o conteúdo de “f” 1 0 001 lfff f

CLRW -f, Limpa o conteúdo do registrador “W” 1 0 001 0xxx x

COMF d Complemento do conteúdo de “f” 1 0 101 dfff f

DECF f, d Decrementa o valor armazenado em “f” 1 0 011 dfff f

DECFSZ f, d Decrementa o valor armazenado em “f”, pula a próxima instrução se for igual a “0”

INCF f, d Incrementa o valor armazenado em “f” 1 0 1010 dfff f

INCFSZ f, d Incrementa o valor armazenado em “f”, pula a próxima instrução se for igual a “0”

IORWF f, d Operação lógica “OU

INCLUSIVO” do conteúdo do registrador “W” com o conteúdo de “f”

MOVF f, d Move o conteúdo de “f” para o registrador “W” 1 0 100 dfff f

MOVWF f Move o conteúdo do registrador “W” para “f” 1 0 00 lfff f

Cefet/PR – Cornélio Procópio5

Análise de Circuitos Digitais – PIC16F628a Prof. Luiz Marcelo Chiesse da Silva

RLF d Rotaciona os bits armazenados em “f” para a esquerda com Carry

RRF f, d Rotaciona os bits armazenados em “f” para a direita com Carry

SUBWF f, d Subtração do conteúdo em

SWAPF f, d Troca o primeiro nibble (4 bits) com o último nibble armazenados em “f”

XORWF f, d Operação lógica “OU

EXCLUSIVO” do conteúdo de “W” com o conteúdo de “f”

BCF f, b Muda para “0” o valor do bit “b” de “f” 1 01 0b bfff f

BSF f, b Muda para “1” o valor do bit “b” de “f” 1 01 01bb bfff f

BTFSC f, b Verifica o valor do bit “b” do registrador “f” e pula a próxima instrução se for igual a “0”

BTFSS f, b Verifica o valor do bit “b” do registrador “f” e pula a próxima instrução se for igual a “1”

ADDLW k Adiciona um número “k” ao conteúdo do registrador “W” 1 1 11x k k

ANDLW k Operação lógica “E” de um número “k” com “W” 1 1 1001 k k

(Parte 1 de 2)

Comentários