Vous êtes sur la page 1sur 6

Pontifcia

Universidade Catlica do Rio Grande do Sul Curso de Engenharia de Computao Organizao de Computadores

Arquitetura, Organizao e Linguagem de Montagem

PIC16F84

Felipe Ranghetti Stefanelli Lucas Corra Feij Rhayar Godinho Mascarello


Porto Alegre RS Abril - 2012

PIC16F84
1. Caracterizao da Arquitetura
Possui arquitetura RISC baseada em arquitetura Harvard, tal define o uso de duas memrias separadas: uma memria de dados e outra memria de programa (instrues). Os registradores possuem palavra de 8 bits e as instrues 14 bits. Isso s possvel pois as duas memrias so conectadas por barramentos separados com largura de acordo com a respectiva palavra (figura 1). Outra caracterstica notada na figura 2: a ULA recebe, obrigatoriamente, um operando do registrador W (Work, ver Cap. 3.1.) e outro do banco de registradores de uso comum. Aps o processamento, o destino do resultado deve ser definido na instruo de resgate dele. Por pertencerem arquitetura RISC, os micro-controladores PIC apresentam instrues simples e de baixo nvel de abstrao. O PIC16FXX dispe de 35 instrues bsicas.

2. Organizao da Memria de Dados


Ao todo possui 256 bytes, mas internamente podemos divid-la em duas reas. A primeira a rea de registradores de funo especial (SFR), enquanto a segunda a rea de registradores de propsito geral (GPR). SFR: controla a operao do dispositivo, escrita no permitida. GPR: registro de dados e endereos de propsito geral.

As reas alocadas do SFR so para os registradores que controlam as funes perifricas. Alocaes requerem o uso do bit de controle de banco no registrador STATUS (ver Cap. 3). A memria de dados pode ser acessada diretamente usando o endereo absoluto de cada registrador em ambos os bancos ou indiretamente atravs do endereamento por registrador de seleo de arquivo (FSR).

Fig. 1: Modelo Harvard com larguras de barramento diferentes Fig. 2: Interior do CPU (Diagrama de blocos completo: ver Cap. 6)

3. Registradores
Os registradores de uso geral esto entre a posio 0x0C e 0x4F, totalizando 67 GPRs de 8 bits. Para acessar endereos acima de 128, como o endereo na instruo de 7 bits e apenas enderea 128 posies (27 = 128), se usa o bit 5 do registrador STATUS. O referido em 0 usa o banco 0 e em 1 o banco 1 (Ilustrado na Fig.3). As reas de 0x50 a 0x7F e de 0xD0 a 0xFF no so usveis por no terem sido implementadas ainda. 3.1. Registrador Work (W): No se encontra na memria de dados, sempre utilizado como um dos operandos da ULA. 3.2. Registrador PCL: Contm o endereo da instruo a executar. incrementado automaticamente. 3.2. Registradores de STACK: So oito ao total, contm os endereos de retorno para as sub-rotinas que utilizam a instruo CALL ou de retorno aps a execuo de uma interrupo. Se encontra fora da memria de dados. 3.3. Registrador STATUS: Possui o estado atual da ULA, do Reset e do banco de registradores selecionado.

Fig. 3: Mapa de registradores

4. Instrues
As instrues so formadas por palavras de 14 bits divididas em um OPCODE, que identifica a instruo, e os operandos. O formato das instrues pode variar de acordo com o tipo: 4.1. Orientadas a Byte 6 bits OPCODE 1 bit d 7 bits registrador

OPCODE: cdigo da instruo; registrador: endereo de registrador; d: seleo de destino:

0: resultado da operao armazenado de volta no W ao sair da ULA; 1: resultado da operao vai pra um registrador de uso comum (especific-lo). Exemplo:
CRLF 05h

OPCODE d REGISTRADOR 0 0 0 0 0 1 1 0 0 0 0 1 0 1

CRLW

OPCODE d REGISTRADOR 0 0 0 0 0 1 0 X X X X X X X

X: dont care (indiferente), o montador sempre gerar cdigo com X sendo 0. Instrues:
Nome ADDWF f,d ANDWF f,d CLRF f CLRWDT COMF f,d CRLW DECF f,d DECFSZ f,d INCF f,d INCFSZ f,d IORWF f,d MOVF f,d MOVWF f NOP RLF f,d RRF f,d SUBWF f,d SWAPF f,d XORWF f,d

Descrio Adiciona W com F (d <= f + W) E entre W e F (d <= f AND W) Zera o conteudo de f Zera o timer watch dog Complemento de f (d <= NOT f) Zera o conteudo do resgistrador W decrementa f e armazena em d(d <= f 1) Decrementa f (d <= f 1) e salta se zero incrementa f e armazena em d(d <= f 1) incrementa f (d <= f 1) e salta se zero OU normal (Inclusivo) de W com F (d <= f OR W) Move F (d <= f) Copia o conteudo de w em f Gasta um ciclo Rotaciona F para esquerda com carry out Rotaciona F para direita com carry out subtrai W de f e armazena em d(d <= f W) Troca os nibbles mais e menos significativos de f OU exclusivo entre W e F (d <= f XOR W)

4.2. Orientadas a Bit 4 bits OPCODE 3 bits b 7 bits registrador

OPCODE: cdigo da instruo; b: bit dentro do registrador em questo; registrador: endereo do registrador. Exemplo: OPCODE BIT REGISTRADOR BCF 85h,7 0 1 0 0 1 1 1 1 0 1 0 1 0 1

Instrues:
Nome BCF f,b BSF f,b BTFSC f,b BTFSS f,b

Descrio Limpa (zera) o bit b do registrador f Seta (iguala a 1) o bit b do registrador f Testa o Bit b de f, pula se zero(clear) Testa o Bit b de f, pula se um(set)

4.3. Instrues de Controle 6 bits OPCODE k: bit de valor imediato (constante) Excees: CALL e GOTO 3 bits OPCODE k: bit de valor imediato (constante) Exemplo:

8 bits k

11 bits k

CALL label

OPCODE Endereo do rtulo label 1 1 0 0 0 0 0 0 0 0 0 0 0 0

Instrues:
Nome ADDLW k ANDLW k CALL k GOTO k IORLW k MOVLW k RETFIE RETLW k RETURN SLEEP SUBLW k XORLW k

Descrio Adiciona W ao k, armazena em W Funo lgica AND de W com k, armazena em W Salva PC+1 na pilha e faz PC=k (salta a execuo para o endereo k) Pula para o endereo k (11 bits) usa 2 ciclos Funo lgica OR de W com k, armazena em W Armazena k em W Retorna de uma interrupo Retorna da sub-rotina e armazena k em W Retorna de uma sub-rotina chamada por CALL Pe o controlador em stand-by Subtrai W de k, armazena em W Funo lgica XOR de W com k, armazena em W

5. Bibliografia
Datasheet oficial do microprocessador - http://www.inf.pucrs.br/~calazans/undergrad/orgcomp_EC /mat_microproc/PIC16F628A_datasheet.pdf The PIC Tutorial PIC Basics - http://www.pictutorials.com/PICmicro16f84_basics.htm Introduction: World of microcontrollers - Book: PIC Microcontrollers - http://www.mikroe.com/eng /chapters/view/1/introduction-world-of-microcontrollers/ The PIC Chip Uncovered - http://www.seattlerobotics.org/encoder/may97/picchip.html Seminrio Assembly: Arquitetura PIC - http://www.lisha.ufsc.br/teaching/sys/ine5309-2006-2/work /g2/monografia.pdf PIC Microcontroller - http://en.wikipedia.org/wiki/PIC_microcontroller/ Design of the PIC16x8x - http://www.pictutorials.com/Design_of_the_PIC16x8x.htm BATES, Martin. Elsevier, 2004. PIC Microcontrollers: An Introduction to Microelectronics

6. Anexo

Fig. 4: Diagrama de blocos completo do PIC Destaque aos dois modelos de acesso memria, direto e indireto, especificados no diagrama e no Cap. 2.

Vous aimerez peut-être aussi