Relatorio PIC 16F690 Rev01

19
Universidade de Itaúna – Faculdade de Engenharia Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica 1 Componentes do grupo: Anderson Lopes, Lucas César e Paulo Vieira. Engenharia Eletrônica, 5º Período, UIT RELATÓRIO SOBRE O MICROCONTROLADOR PIC 16F690 1.0 INTRODUÇÃO Com o avanço da tecnologia foram criados os microcontroladores que são circuitos integrados que substituem os circuitos sequênciais, ou seja, circuitos que eram montados utilizando varios CI’s para montagem de um circuito que executava um programa desejado. O microcontrolador, se constitue em um sistema computacional completo, com memória e periféricos internos. Como o microcontrolador tem aplicação mais dedicado, em geral, os periféricos de I/O que ele já tem são: Temporizadores, conversores A/D, unidade de CCP (captura, comparação e PWM), comparadores, oscilador interno, e etc. O microcontrolador é muito versátil pois é programavel, desta forma podendo ser utilizado em vários sistemas diferentes mudando-se apenas a sua programação. Existem vários tipos de microcontroladores que se diferem pelo tipo de memóra (programa e dados), e capacidade, velocidade de processamento, periféricos e números de pinos de entrada/saída (I/O). A estrutura interna dos microcontroladores são equivalentes podendo ser definida conforme a figura abaixo: Fig. 1 – Estrutura Interna dos Microcontroladores

Transcript of Relatorio PIC 16F690 Rev01

Page 1: Relatorio PIC 16F690 Rev01

Universidade de Itaúna – Faculdade de Engenharia

Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica

1

Componentes do grupo: Anderson Lopes, Lucas César e Paulo Vieira.

Engenharia Eletrônica, 5º Período, UIT

RELATÓRIO SOBRE O MICROCONTROLADOR

PIC 16F690

1.0 INTRODUÇÃO

Com o avanço da tecnologia foram criados os microcontroladores que são circuitos integrados que substituem os circuitos sequênciais, ou seja, circuitos que eram montados utilizando varios CI’s para montagem de um circuito que executava um programa desejado.

O microcontrolador, se constitue em um sistema computacional completo, com memória e periféricos internos. Como o microcontrolador tem aplicação mais dedicado, em geral, os periféricos de I/O que ele já tem são:

• Temporizadores, conversores A/D, unidade de CCP (captura, comparação e PWM), comparadores, oscilador interno, e etc.

O microcontrolador é muito versátil pois é programavel, desta forma podendo ser utilizado

em vários sistemas diferentes mudando-se apenas a sua programação. Existem vários tipos de microcontroladores que se diferem pelo tipo de memóra

(programa e dados), e capacidade, velocidade de processamento, periféricos e números de pinos de entrada/saída (I/O).

A estrutura interna dos microcontroladores são equivalentes podendo ser definida conforme a figura abaixo:

Fig. 1 – Estrutura Interna dos Microcontroladores

Page 2: Relatorio PIC 16F690 Rev01

Universidade de Itaúna – Faculdade de Engenharia

Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica

2

2.0 MICROCONTROLADOR 16F690 (CARACTERÍSTICAS)

O microcontrolador PIC16F690, tem as seguintes características:

• Tipo de encapsulamento: DIP; • Total de Pinos: 20 pinos; • Quantidade de PORTS: 3 (três); • Descrição dos PORTS: RA – 6 pinos

RB – 4 pinos RC – 8 pinos

Fig. 2 – Diagrama de Pinagem do PIC16F690

2.0.1 CARACTERÍSTICAS INTERNAS

Memória de Programa – Flash (words) – 4096 Memória de Dados - SRAM (bytes) – 256 - EEPROM (bytes) – 256 I/0 – 18 Conversor A/D – 12 Componentes – 2 Timer – 2x8bit / 1x16bit

3.0 DESCRIÇÃO INTERNA DO MICROCONTROLADOR PIC16F690

3.0.1 MEMÓRIA DE PROGRAMA É implementado usando tecnologia flash o que permite programar o microcontrolador

inúmeras vezes. Quando a energia do microcontrolador é desligada o programa é mantido. Como dito anteriormente a capacidade da memória depende do tipo do controlador. No microcontrolador da família 16F o início (endereço) da memória é 00h e toda vez que a alimentação do microcontrolador é desligada e religada o mesmo é resetado e retorna para o enderço enicial (00h). Temos um vetor de interrupção no enderço 04h.

Page 3: Relatorio PIC 16F690 Rev01

Universidade de Itaúna – Faculdade de Engenharia

Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica

3

Fig. 3 – Mapa da Memória de Programa e Pilha para o PIC16F690

3.0.2 MEMÓRIA DE DADOS

Responsável em armazenar os registradores de uso geral e registradores de funções especiais. Estes registradores são de 8 bits e organizados em blocos definidos como BANK0, BANK1, BANK2 e BANK3. O acesso ao banco é definido na programação do microcontrolador através da combinação binária dos comandos do RP1 E RP0.

Fig.4 – Memória de Dados - Registradores de Funções Especiais

Page 4: Relatorio PIC 16F690 Rev01

Universidade de Itaúna – Faculdade de Engenharia

Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica

4

4.0 REGISTRADORES DE FUNÇÃO ESPECIAL

O microcontrolador 16F690 tem os seguintes registradores de Função Especial ou

Registradores de propósito Específico.

4.0.1 REGISTRADOR W

Chamado também de acumulador, o registrador W(work) é utilizado constantemente durante as operações do programa para guardar o resultado de uma operação ou um dos operandos. Seu valor é modificado constantemente, caso necessitamos utilizar seu valor posteriormente devemos armazená-lo em um endereço de memória.

4.0.2 REGISTRADORES PORT (I/0)

São grupo de pinos utilizados para Leitura/escrita de dados (interface) dos sinais externos com o programa interno ou microcontrolador. No caso do microcontrolador em questão temos:

PORTA (05h e 105h) - - RA5 RA4 RA3 RA2 RA1 RA0 Bit 7 6 5 4 3 2 1 0 PORTB (06h e 106h) RB7 RB6 RB5 RB4 - - - - Bit 7 6 5 4 3 2 1 0 PORTC (07h e 107h)

RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 Bit 7 6 5 4 3 2 1 0

Através dos PORTS podemos enviar comandos para o meio externo (componentes externos) e ler sinais do campo (Sensores) para executar o programa armazenado ao microcontrolador.

4.0.3 REGISTRADORES TRIS

Estes registradores são utilizados para definir a função dos registradores PORTA, PORTB, PORTC terão a função de entrada ou saída, ou seja, para cada Registrador PORT temos um Registrador TRIS.

TRISA – para programar o PORTA;

TRISB – para programar o PORTB;

TRISC – para programar o PORTC.

Page 5: Relatorio PIC 16F690 Rev01

Universidade de Itaúna – Faculdade de Engenharia

Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica

5

Para definir o pino do PORT com a entrada colocamos o valor = 1 no pino correspondente e se for saída colocamos o valor = 0 no pino correspondente.

TRISA (85h e 185h)

- - TRIS5 TRIS4 TRIS3 TRIS2 TRIS1 TRIS0 Bit 7 6 5 4 3 2 1 0 TRISB (86h e 186h)

TRIS7 TRIS6 TRIS5 TRIS4 - - - - Bit 7 6 5 4 3 2 1 0 TRISC (87h e 187h) TRIS7 2 TRIS5 TRIS4 TRIS3 TRIS2 TRIS1 TRIS0

Bit 7 6 5 4 3 2 1 0

4.0.4 REGISTRADOR STATUS O Registardor STATUS é responsável pelo estado da ULA (Unidade Lógica e Aritimética),

Estado de RESET e onde se efetua a seleção de memória. Os endereços do Registrador STATUS são 03h, 83h, 103h e 183h.

R/W-O R/W-O R/W-O R-1 R-1 R/W-X R/W-X R/W-X

IRP RP1 RP0

__

TO

__

PD Z DC C

bit7 6 5 4 3 2 1 bit0

• BIT 0 – CARRY (C) - TRANSPORTE Bit utilizado na operação aritmética de adição e subtração e operação de deslocamento.

Indica se houve estouro (transporte), este bit sofre alteração qundo são utilizadas instruções ADDWF, ADDLW, SUBLW, SUBWF RLF e RRF.

• BIT 1 – DIGIT CARRY (DC) – TRANSPORTE DE DÍGITO Bit utilizado na operação aritmética de adição e subtração para indicar o transporte do bit 3

para o bit 4 do resultado. O bit DC é afetado pelas instruções ADDWF, ADDLW, SUBLW e SUBWF.

• BIT 2 – BIT ZERO (Z) - INDICAÇÃO DE RESULATA IGUAL A ZERO

Bit zero é o bit que tem origem na ULA e indica quando o resultado da operação lógica ou aritmética efetuada é igual a zero. Bit zero em 1, resultado igual a zero.

Page 6: Relatorio PIC 16F690 Rev01

Universidade de Itaúna – Faculdade de Engenharia

Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica

6

• BIT 3 – PD (BIT DE BAIXA TENSÃO) Bit que é setado em 1 quando é alimentado e completao procedimento de inicialização e

entre em trabalho. Se ocorrer o comando de SLEEP o bit vai para 1 qundo o microcontrolador entra em regime de baixo consumo.

Também pode ser setado pelo impulso no RBO/INT ou quando completar uma operação de escrita na Memória de Dados ou ainda pelo WDT.

• BIT 4 – TO (TIME-OUT) – WATCHDOG (WDT) Bit setado em 1 após alimentar o microcontrolador e passer pelas rotinas de inicialização.

Deve permanecer em 1 quando todas etapas do processamento ocorrem sem falhas, caso ocorra faltas no processamento, o WDT chega no final da contagem e tem seu valor colocado em 0 (zero).

• BITS 5 E 6 – RPI E RPO – SELEÇÃO DO BANCO DE REGISTRADORES

São os bits utilizados para seleção dos bancos dos registradores, com eles podemos endereçar todos os registradores do PIC.

00 – Bank 0 01 – Bank 1 10 – Bank 2 11 – Bank 3

• BIT 7 – IRP - BIT SELEÇÃO DO BANCO DE REGISTRADORES Utilizado para endereçamento indireto da Memória RAM interna como oitavo bit. 1 = Bancos 2 e 3 (endereços de 100h e 1ffh) 0 = Bancos 0 e 1 (endereços de 00h a ffh) 4.0.5 REGISTRADOR OPTION (81h e 181h)

R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1

_______

RABPU INTEDG TOCS TOSE PSA PS2 PS1 PSO

7 6 5 4 3 2 1 0

• BITS 0, 1 E 2 - PSO, PS1 E PS2 (BITS DE SELEÇÃO DE DIVISOR PRESCALER)

Bits que são utilizados para modificar, podemos dizer, a base do microcontrolador.

• BIT 3 – PSA Bit utilizado para modificar o temporizador do Watchdog. (WDT).

Page 7: Relatorio PIC 16F690 Rev01

Universidade de Itaúna – Faculdade de Engenharia

Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica

7

• BIT 4 - TOSE

Quando utilizado com o timer0 configurado define se a implementação do contador será na borda de subida ou na borda de descida do pulso.

1 = borda de descida 0 = borda de subida

• BIT 5 – TOCS Seleção do clock: 1 = clock externo 0 = clock interno

• BIT 6 – INTEDG Se ocorrer interrupção define qual borda atuará. 1 = borda de subida 0 = borda de descida

• BIT 7 – RABPU Bit que define introdução ou retirada de resistências pull-up internas associadas ao PortA e

PortB. 1 = resistências “Pull-up” desligadas 0 = resistências “Pull-up” ligadas 4.0.6 REGISTRADOR INTCON (0Bh, 8Bh, 10Bh e 18Bh) Registrador que trata das interrupções que ocorrem ou são programados no

microprocessador. Mesmo que as interrupções não provoquem desvio de programa, a ocorrência de uma interrupção modifica o status de alguns bits do registrador.

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

GIIE PEIE TOIE INTE RABIE TOIF INTF RABIF

7 6 5 4 3 2 1 0

• BIT 0 – RABIF Bit para indicação de mudança de nível nos pinos do PortA ou PortB; 0 para 1 ou 1 para 0: 1 = Pelo menos um destes pinos mudou de nível lógico. 0 = Não ocorreu nenhuma variação nestes pinos. Para este bit indicar quando ocorrer uma mudança de estado os pinos do PortA ,PortB

tem que estarem definidos como entrada se houver um definido como saída,não ocorrerá interrupção.

• BIT 1 - INTF Bit utilizado para detectar uma interrupção externa. 1 = Interrupção externa 0 = Sem interrupção externa

Page 8: Relatorio PIC 16F690 Rev01

Universidade de Itaúna – Faculdade de Engenharia

Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica

8

• BIT 2 – TOIF Bit para sinalização de overflow no contador TMRO 1 = ocorreu overflow 0 = não ocorreu overflow

• BIT 3 - RABIE Bit para habilitar a interrupção 0= inibe a interrupção

• BIT 4 - INTE Bit p\ habilitar interrupção externa pelo pino RA2/ INT 1 = interrupção autorizada 0 = interrupção impedida

• BIT 5 - TOIE Bit para habilitar interrupção por overflow do contador TMRO. 1= interrupção autorizada 0= interrupção inibido

• BIT 6 - PEIE Bit para habilitação de interrupção dos periféricos. 1=interrupção habilitada 0= interrupção inibida

• BIT 7 – GIE Bit para habilitação ou não de todas as interrupções. 1= permite interrupções conforme definido nos outros bits do registrador. 0= Todos interrupção distribuídas.

4.0.7 REGISTRADORES ANSEL E ANSELH

Registrador que define configuração de alguns pinos microcontrolador como I/O digitais ou entradas analógica.

Registrador que utiliza 12 bits sendo 8 bits para o Ansel e 4 bits para o Anselh.

4.0.8 REGISTRADOR TIMER0

É um registrador de 8 bits muito utilizado que pode ser incrementado até 255 independente da execução do programa. Se estiver configurado como temporizador utiliza pulsos internos do relógio do micro controlador e se configurado como contador os pulsos em externamente através do pino TOCKI.

Page 9: Relatorio PIC 16F690 Rev01

Universidade de Itaúna – Faculdade de Engenharia

Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica

9

4.0.9 RESGISTRADOR TIMER1

Registrador com funcionamento semelhante ao Timer0, onde também pode funcionar contador ou temporizador, porém tem 16 bits para contagem podendo ativar o valor de 65.535. Quando funciona com contador recebe os pulsos através do pino T1CH1 ou T1G.

4.0.10 REGISTRADOR T1CON Registrador para configuração de funcionamento do Timer1 (Definição de atuação – borda

subida, descida; prescaler; temporizador ou contador, etc.

4.0.11 REGISTRADOR TIMER2

Este registrador opera de forma difernte do TIMER0 e TIMER1 pois funciona somente com temporizador. Tem 8 bits podendo efetuar contagem até 255, funcionando independentemente da execução do restante do programa.

4.0.12 REGISTRADOR T2CON Registrador utilizado para configurar o registrador TIMER2 (on ou off, pré escaler e

Postscaler).

5.0 REGISTRADORES QUE COMPÕEM O MÓDULO CCP Como temos neste microcontrolador os periféricos que realizam as funções de captura,

comparação e PWM temos registradores associados diretamente a este módulo do periférico.

5.0.1 REGISTRADOR CCP1CON

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

P1MI P1MO DC1BI DC1BO CCP1M3 CCP1M2 CCP1M1 CCP1M0

bit 7 6 5 4 3 2 1 0

Registrador utilizado para configurar o microcontrolador para efetuar a função de PWM

(Modulação por Largura de Pulso) que é utilizado com princípio do chaveamento de transistores para disparo de ponte IGBT para controle de acionamento de motores.

5.0.2 REGISTRADOR CCPR1L

Registrador que em conjunto com configuração do CCP1CON determinam a largura do pulso da modulação.

Page 10: Relatorio PIC 16F690 Rev01

Universidade de Itaúna – Faculdade de Engenharia

Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica

10

5.0.3 REGISTRADOR PR2

Registrador composto de 8 bits para configurar o período de modulação dos pulsos PWM em conjunto com o registrador T2CON.

6.0 REGISTRADORES PARA FUNÇÃO DE CONVERSOR A-D (ANALÓGICO-DIGITAL)

Para configurar a função do conversor Analógico-Digital temos que configurar os seguintes

registradores:

6.0.1 ADCON0

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

ADFM VCFG CHS3 CHS2 CHS1 CHS0

_____

GO/DONE ADON

bit 7 6 5 4 3 2 1 0

Este registrador é utilizado para configuração da função de A/D, ou seja, ao aplicarmos um sinal

analógico na entrada RA2 o microcontrolador converterá para um sinal digital e armazenar nos

registradores ADRESH e ADRESL, já detalhados anteriormente.

7.0 MEMÓRIA DE DADOS EEPROM (256 BYTES NO PIC16F690)

Esta memória é uma área específica para armazenamento de dados que não podem ser perdidos

em condição nenhuma, mesmo quando ocorrer uma falta de energia no microcontrolador ou

funcionamento irregular do mesmo, mas para isso precisamos configurar corretamente os

registradores a seguir.

7.0.1 REGISTRADOR EEADR

Registrador destinado a definir qual a área específica da memora EEPROM onde deseja-se

armazenar ou buscar os dados.

7.0.2 REGISTRADOR EEDAT

Registrador no qual é colocado o valor a ser guardado ou lido na EEPROM.

7.0.3 REGISTRADOR EECON1

Registrador no onde configura onde será o controle no processo de acesso a leitura ou escrita na

memória EEPROM.

Page 11: Relatorio PIC 16F690 Rev01

Universidade de Itaúna – Faculdade de Engenharia

Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica

11

R/W-X U-0 U-0 U-0 R/W-X R/W-0 R/S-0 R/S-0

EEPGD - - - WRERR WREN WR RD

bit 7 6 5 4 3 2 1 0

• BIT 0 – RD Bit para controle de leitura 1 = Comanda o início da leitura 0 = Não inicia leitura de EEPROM.

• BIT 1 – WR Bit para controle de escrita na EEPROM. 1 = Comanda o início da escrita 0 = Ciclo de escrita completo.

• BIT 2 – WREN – EEPROM WRITE ENABLE BIT Bit que é responsável pela habilitação da escrita na memória EEPROM. Se este bit for

setado em zero a memória comporta-se somente como uma memória somente de leitura. 1 = Escrita na EEPROM habilitada 0 = Escrita na EEPROM desabilitada.

• BIT 3 – WRER – EEPROM ERROR FLAG BIT Bit de erro que indica que ocorreu uma falha no processo de escrita na memória. 1 = Operação interrompida 0 = Operação completa.

• BIT 7 – EEPGD Bit que define a qual memória será o acesso. 1 = Acesso à memória de programa 0 = Acesso à memória de dados EEPROM.

7.0.4 REGISTRADOR EECON2

Não é um registrador físico, destinado a escrever uma seqüência específica afim de evitar que ocorra erros na gravação da memória EEPROM.

8.0 TIPOS E FORMATOS DAS INSTRUÇOES

Tipos e formatos das instruções estão sendo demonstradas nas tabelas a seguir, na figura 8.0.1 estão todas as instruções existentes no microcontrolador e seus endereçamentos, já na figura 8.0.2 estão os formatos das instruções.

Page 12: Relatorio PIC 16F690 Rev01

Universidade de Itaúna – Faculdade de Engenharia

Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica

12

Fig. 5 - Tipos de instruções e seus endereçamentos

Page 13: Relatorio PIC 16F690 Rev01

Universidade de Itaúna – Faculdade de Engenharia

Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica

13

Fig. 6 - Formatos das instruções

9.0 DETALHAMENTO DAS INSTRUÇÕES

Alguns tipos de instruções mais utilizadas: SUBWF – operação com registradores; MOVLW – operação com literais; BTFSC – operação com bits; GOTO – controle. Abaixo segue o detalhamento das instruções citadas:

Page 14: Relatorio PIC 16F690 Rev01

Universidade de Itaúna – Faculdade de Engenharia

Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica

14

9.0.1 SUBWF Descrição: Subtrai o valor w do registrador f. Sintaxe: SUBWF f,d Limites: 0≤f≤127 d=0(w) ou d=1(f) Operação: (f)-(w)->d Status afetados: C, DC, Z Palavras: 1 Ciclos: 1

9.0.2 MOVLW Descrição: Move o valor de uma literal para o registrador w. Sintaxe: MOVLW k Limites: 0≤k≤255 Operação: (k)->(w) Status afetados: Nenhum. Palavras: 1 Ciclos: 1

9.0.3 BTFSC Descrição: Se o bit b do registrador f for 1, então a proxima linha será executada. Caso o

mesmo seja 0, a próxima linha será pulada. Sintaxe: BTFSC f,b Limites: 0≤k≤255 0≤b≤7 Operação: Pula-se (f,b)=0 Status afetados: Nenhum. Palavras: 1 Ciclos: 1, se for 0 2 ciclos

9.0.4 GOTO Descrição: Desvia para um outro ponto representado por k, sendo um endereço da

memória de programação definido por um LABEL. Sintaxe: GOTO k Limites: 0≤k≤2047 Status afetados: Nenhum. Palavras: 1 Ciclos: 2 10.0 ILUSTRAÇÃO DO CAMINHO DE DADOS DO

MICROCONTROLADOR E DEFINIÇÃO DOS BLOCOS INTERNOS

Page 15: Relatorio PIC 16F690 Rev01

Universidade de Itaúna – Faculdade de Engenharia

Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica

15

10.0.1 ILUSTRAÇÃO DO CAMINHO DE DADOS

Fig. 7 – Caminho de dados

10.0.2 DEFINIÇÃO DOS BLOCOS INTERNOS.

• Bloco 1 – Módulo para decodificação do tipo de instrução e controle do micro controlador (tipo de clock, WDT e etc).

• Bloco 2 – Módulo de I/O´s, interface para leitura e escrita de dados (sinais) externos.

Page 16: Relatorio PIC 16F690 Rev01

Universidade de Itaúna – Faculdade de Engenharia

Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica

16

• Bloco 3 – Módulo de conversor A/D, captura e PWM, responsável pela conversão de sinais de entrada analógicos em sinal digital, captura e modulação por largura de pulso.

• Bloco 4 – Módulo para sincronização da porta serial.

• Bloco 5 – Módulo dos temporizadores, onde são programados as funções de temporização ou temporizadores do programa.

• Bloco 6 – Módulo de controle/monitoração de baixa tensão que dependendo da configuração dispara uma ação do microcontrolador.

• Bloco 7 – Módulo de tx e rx, onde configura os parâmetros referentes à transmissão e recepção.

• Bloco 8 – Módulo composto pelos blocos do Contador de Programa (PC) que é utilizado para identificar as linhas do programa garantindo a correta sequência de execução do mesmo; Contador de Pilha (stack) que é utilizado quando ocorre um desvio no programa para marcar ponto para onde deve ocorrer o retorno da função que foi chamada; Interrupção (INT) controle para a entrada de interrupção; Memória de Programa Flash onde é armazenado o programa que será executado pelo microcontrolador; Registrador de Instrução onde é armazenada a instrução a ser executada.

• Bloco 9 – Módulo para execução das instruções composto pelos blocos do Banco

de Registrador utilizado para busca e armazenamento de dados (valores) nos registradores; Mux Adress, mux para seleção de endereço de acesso no banco de registrador (PC+4 ou end. Condicional/Incondicional); Registrador de Status, utilizado principalmente nas operações de lógica e aritmética; Mux de seleção de parâmetros de entrada de uma porta da ULA; ALU/ULA unidade lógica e aritmética do microcontrolador, responsável pelas operações de lógica e aritmética do microcontrolador; W Reg, resgistrador de trabalho (Work).

11.0 IMPLEMENTAÇÃO DO CÓDIGO ASSEMBLY ABAIXO. Código em C: int a, b, c, d; a = 5; b = 4; c = 0; d = c; while(c != b) { d = d + a; c++; }

Page 17: Relatorio PIC 16F690 Rev01

Universidade de Itaúna – Faculdade de Engenharia

Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica

17

Código em Assembly: -------------------------------------------------------------- ; Constantes: a EQU .5 ; variável a recebe constante 5 em decimal b EQU .4 ; variável b recebe constante 4 em decimal c EQU .0 ; variável c recebe constante 0 em decimal d EQU .0 ; variável d recebe constante 0 em decimal ; Vetor de Reset: ORG 0x00 GOTO INICIO ; Início do Programa: INICIO MOVF c,w ; move o conteúdo de c para registrador w MOVWF d ; move o conteúdo de w para registrador d ; Rotina principal MAIN LOOP MOVF c,w ; move o conteúdo de c para registrador w SUBWF b,w ; subtrai w de f (f-w) e guarda em w MOVWF d ; move o conteúdo de w p/ registrador d BTFSC STATUS,Z ; testa bit Z do reg STATUS e pula 1 linha se igual a 0 GOTO END MOVF a,w ; move a para w ADDWF d,w ; soma d com w e guarda em w MOVWF d ; move conteúdo de w para registrador d INCF c,w ; c é incrementado de 1 (c+1) e move p/ w MOVWF c ; move o conteúdo de w p/ registrador c GOTO LOOP END

--------------------------------------------------------------------------------------------------------------------

12.0 EXPLICAÇÃO DO FUNCIONAMENTO DO PROCESSADOR:

Caminho de dados do processador para as instruções abaixo baseadas na ilustração do caminho de dados do PIC 16F690.

• C = 0; Para a execução desta linha de comando através do Addr Mux (mux de endereço) é selecionado o registrador destino (C) na entrada do Ram Addr (barramento de endereçamento do banco de registradores) e através do barramento de dados o valor que esta na saída da ULA (0) é armazenado no registrador que foi endereçado (C).

Page 18: Relatorio PIC 16F690 Rev01

Universidade de Itaúna – Faculdade de Engenharia

Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica

18

• D = C; Através do barramento de endereçamento do banco de registradores é selecionado o endereço referente ao registrador C, o valor é lido através do barramento de dados e arquivado no registrador de trabalho (W), ocorre o incremento do PC para endereçar o banco de registradores para acessar o registrador D e habilita a escrita no mesmo através do controle e o valor que estava contido em W vai para ULA somando ao valor zero (0) e depois é enviado através do barramento de dados para o banco de registrador onde é armazenado no registrador que foi selecionado (D).

• While ( C != B); Através da operação de subtração na ULA, o laço fica sendo repetido enquanto o resultado da operação é diferente de zero, quando o resultado da operação é igual à zero, o bit da ULA, bit Zero é setado em um (1) setando o Flag Z do registrador de Status encerrando o laço de repetição e dando continuidade no programa.

13.0 CONCLUSÃO

Pela pesquisa que efetuamos para a elaboração deste relatório podemos observar que a utilização do microcontrolador é realizada em larga escala nos processos de automação e desenvolvimento de equipamentos devido ao fato que este dispositivo tem um custo relativamente baixo e muita flexibilidade na sua utilização. Podemos citar como aplicação um projeto que foi desenvolvido para efetuar monitoração através de sensoriamento móvel embutido em um dirigível para ambientes fechados, neste projeto foi aplicado o microcontrolador PIC16F690 para controlar três motores de corrente contínua e realizar a leitura de temperatura, outro projeto que podemos citar como aplicação de microcontrolador, que encontramos durante a pesquisa é o de um sistema de controle de temperatura de uma caldeira automatizado onde toda a automação é executado através de um microcontrolador onde a interface é realizada com o operador através de um software supervisório orientado a objetos, visando maximizar os recursos e tempo no processo produtivo. Para cada aplicação deve-se verificar qual a necessidade do projeto para que seja possível listar toda as necessidades de controle para definição do microcontrolador a ser utilizado, pois existe uma variedade de tipos de microcontroladores onde existem microcontroladores com mais entradas/saídas, capacidade de processamento de dados maior, ou seja, mais recursos que outros microcontroladores. O estudo da necessidade de recursos é interessante e necessário para que seja escolhido o microcontrolador que atenda as necessidades e não tenha recursos que não serão utilizados, pois quanto mais recursos o microcontrolador possuir maior será o seu custo.

14.0 REFERÊNCIAS BIBLIOGRÁFICAS

I. HTTP://amsfrancisco.planetaclix.pt

II. www.microchip.com (data sheet)

III. Livro desbravando o PIC – autor David José de Souza

Page 19: Relatorio PIC 16F690 Rev01

Universidade de Itaúna – Faculdade de Engenharia

Arquitetura e Organização de Computadores II – Prof. Milene Departamento de Engenharia Eletrônica

19

IV. www3.iesam-pa.edu.br/ojs/index.php/computação

V. www.engcomp.pucpr.br/projetos/.../SistemaControleTemperaturaCaldeira.pdf