Anda di halaman 1dari 19

INTITUTO DE ESTUDOS SUPERIORES DA AMAZÔNIA

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES

PIC 16F877

Profa. Rejane de Barros


Organização e Arquitetura de Computadores 1
Laboratório – Informações sobre o microcontrolador PIC 16F877

ÍNDICE
I - INTRODUÇÃO: ___________________________________________________________________ 2
II - MICROCONTROLADORES: _______________________________________________________ 2
III – INTRODUÇÃO ÀS ME MÓRIAS: ___________________________________________________ 2
A MEMÓRIA DE PROGRAMA:_____________________________________________________ 3
A MEMÓRIA DE PROGRAMA:_____________________________________________________ 3
EEPROM: ________________________________________________________________________ 3
IV – INTRODUÇÃO ÀS INTERRUPÇÕES _______________________________________________ 4
AS INTERRUPÇÕES EXISTENTES NO PIC: _________________________________________ 4
V – O PIC 16F877____________________________________________________________________ 5
PINAGEM: _______________________________________________________________________ 6
NOMENCLATURA DOS PINOS: ____________________________________________________ 7
A ESTRUTURAÇÃO INTERNA: ____________________________________________________ 8
MAPA DA MEMÓRIA DE DADOS: __________________________________________________ 9
VI – OS REGISTRADORES ESPECIAIS QUE CONTROLAM TUDO _________________________ 9
GERAIS: ________________________________________________________________________ 10
PORTAS:________________________________________________________________________ 12
TIMERS: ________________________________________________________________________ 13
INTERRUPÇÕES:________________________________________________________________ 15
VII - CONCLUSÃO__________________________________________________________________ 18
VIII - BIBLIOGRAFIA_______________________________________________________________ 18

Rejane de Barros Araújo


Departamento de Engenharia da Computação
Organização e Arquitetura de Computadores 2
Laboratório – Informações sobre o microcontrolador PIC 16F877

I - INTRODUÇÃO:
Com a evolução constante da eletrônica faz-se cada vez mais necessário o conhecimento de componentes que
componham instrumentos e equipamentos de uso pessoal, doméstico, empresarial e industrial. Os
microcontroladores são peças indispensáveis nesse cenário.
O nome PIC pertence à empresa Microchip. Muitas figuras, termos e formatações foram retirados dos manuais da
Microchip.

II - MICROCONTROLADORES:
Um componente eletrônico dotado de uma “inteligência” programável, utilizado no controle de processos lógicos.
Vamos analisar melhor:
O controle de processos deve ser entendido como o controle de periféricos, tais como: led’s, botões, display’s de
cristal líquido (LCD), resistências, relês, sensores (pressão, temperatura, velocidade, distância, etc...) e muitos
outros. São chamados de controle lógicos, pois a operação do sistema baseia -se nas ações lógicas que devem ser
executadas, dependendo do estado dos periféricos de entrada e/ou saída.
O microcontrolador é programável, pois toda a lógica de operação deve ser programada e inserida dentro do
componente. Assim, uma vez que o microcontrolador seja alimentado o programa será executado. A Unidade
Lógica e Aritmética (ULA) é a grande responsável pela inteligência dos microcontroladores, pois, como já
sabemos, é nela que se realizam todas as operações de lógica e aritmética. Logo, quanto mais poderosa a ULA
proporcionalmente mais poderoso é o microcontrolador, pois possui maior capacidade de processar informações.
A característica fundamental dos microcontroladores é que em uma única pastilha de silício encapsulada, temos
todos os componentes necessários ao controle de um processo: memória de programa, memória de dados, portas de
entrada e/ou saída paralela, timer’s, contadores, comunicação serial, PWM’s, conversores analógicos-digitais, etc.
Temos microcontroladores em diversos aparelhos de nosso dia -a-dia, tipo: celulares, centrais telefônicas,
brinquedos, videocassete, etc.
Os microcontroladores PIC apresentam uma estrutura de máquina interna do tipo Havard, enquanto grande parte
dos microcontroladores tradicionais apresenta uma arquitetura tipo Von-Neumann. A diferença está na forma como
os dados e o programa são processados pelo microcontrolador. Na arquitetura tradicional, tipo Von-Neumann,
existe apenas um barramento interno (geralmente de 8 bits), por onde passam as instruções e os dados. Já na
arquitetura tipo Harvard existe dois barramentos internos, sendo um de dados e outro de instruções. No caso dos
microcontroladores PIC, o barramento de dados é sempre de 8 bits e o de instruções pode ser de 12, 14 ou 16 bits,
dependendo do microcontrolador. Esse tipo de arquitetura permite que enquanto uma instrução é executada outra
seja “buscada” da memória, o que torna o processamento mais rápido. Além disso, como o barramento de instrução
é maior do que 8 bits, o OPCODE (Cop – Código da Operação) da instrução já inclui o dado e o local onde ela vai
operar (quando necessário), o que significa que apenas uma posição de memória é utilizada por instrução,
economizando assim muita memória de programa.
Desta forma, podemos observar que dentro da palavra do OPCODE, que pode ser de 12, 14 ou 16 bits, não sobra
muito espaço para o código da instrução propriamente dito. Por isso, os PICs utilizam uma tecnologia chamada
RISC, que significa Reduced Instruction Set Computer ( computador com set de instruções reduzido). Desta forma,
os PICs possuem cerca de 35 instruções (o número correto varia de acordo com o microcontrolador), muito menos
que os microcontroladores convencionais (CISC) que chegam a possuir mais de 100 instruções. Isto torna o
aprendizado muito mais fácil e dinâmico, mas, por outro lado, implica no fato de que muitas funções devem ser
“construídas”, pois não possui uma instrução direta, exigindo maior habilidade do programador.

III – INTRODUÇÃO ÀS MEMÓRIAS:


Vamos mostrar como são organizadas as memórias do PIC, alguns detalhes serão vistos a medida que formos
aprofundando o estudo.

Rejane de Barros Araújo


Departamento de Engenharia da Computação
Organização e Arquitetura de Computadores 3
Laboratório – Informações sobre o microcontrolador PIC 16F877
Vimos que o PIC possui dois tipos de barramentos, um para instruções e outro para dados, então podemos concluir
que essas memórias são totalmente separadas, haja vista que os tamanhos de seus conteúdos são diferentes.

A MEMÓRIA DE PROGRAMA:
Pode ser de 12, a4 ou 16 bits, como já havíamos citado, e foi esclarecido também que o tamanho depende do
modelo do PIC. Na maioria dos modelos, essa memória é do tipo EPROM, que só pode ser gravada uma vez para
PICs normais, ou gravadas várias vezes para PICs janelados (que podem ser apagados por meio de luz ultravioleta).
Existem ainda modelos que possuem a memória de programa do tipo EEPROM, que pode ser gravada várias vezes
sem necessidade de apagar a gravação anterior. Estes PICs são muito mais fáceis de trabalhar para o
desenvolvimento de sistemas, mas, por outro lado, eles são muito mais caros para uma fabricação em série.
? VETOR DE RESET:
É o primeiro endereço de memória de programa que será executado quando o PIC começar seu trabalho,
isto é, após ser alimentado ou sofre um reset. Este endereço é 0x00.
? VETOR DE INTERRUPÇÃO:
As rotinas de interrupção são armazenadas na área de programação, juntamente com todo o resto do
programa. No entanto, existe um endereço que é reservado para o início do tratamento de todas as
interrupções, nos modelos de PIC que possuem este recurso. Este endereço é denominado vetor de
interrupção e seu endereço é 0x04.
? PILHA:
É um local, totalmente separado da memória de programação, em que serão armazenados os endereços de
retorno quando utilizarmos instruções de chamadas de rotinas. Quando o programa é desviado para o
começo de uma rotina por meio de uma instrução correta, o endereço seguinte ao ponto que estava sendo
rodado é armazenado na pilha para que, ao fim da rotina, o programa possa retornar. O tamanho da pilha
também varia de acordo com o modelo de PIC, e esse tamanho determina a quantidade de rotinas que
podem ser chamadas ao mesmo tempo. Caso se tente chamar um número de rotinas maior que o tamanho
da pilha, o endereço de retorno mais antigo será perdido.

A MEMÓRIA DE PROGRAMA:
Conhecida como RAM, que é utilizada para guardar todas as variáveis e registradores utilizados pelo programa.
Essa memória armazena dados de 8 bits e é volátil. Podemos dividi-la em dois grupos que são: Registradores
Especiais e Registradores de uso geral.
? REGISTRADORES GERAIS:
Também denominados SFRs, utilizados pelo microcontrolador para a execução do programa e
processamento da ULA. Esses Registradores serão detalhadamente estudados. O importante agora é
sabermos que eles ocupam espaço na RAM e podem ser acessados da mesma forma que as variáveis do
sistema. Eles sempre estam localizados nos primeiros endereços da memória RAM.
? REGISTRADORES DE USO GERAL:
São as variáveis definidas pelos usuários para serem escritas e lidas.

EEPROM:
Alguns modelos de PIC possuem ainda uma terceira memória que também pode ser utilizada pelo usuário para
guardar dados. Entretanto, ao contrário da memória de dados vista anteriormente, esta é uma EEPROM, isto é, uma
memória não volátil, que consegue manter as informações mesmo sem alimentação.

Rejane de Barros Araújo


Departamento de Engenharia da Computação
Organização e Arquitetura de Computadores 4
Laboratório – Informações sobre o microcontrolador PIC 16F877

IV – INTRODUÇÃO ÀS INTERRUPÇÕES
Uma interrupção serve para interromper imediatamente um programa, com objetivo de tomar outras atitudes. As
interrupções são tratadas diretamente pelo hardware, o que as torna muito rápidas e disponíveis em qualquer ponto
do sistema. Assim sendo, quando uma interrupção acontece, o programa é paralisado e uma função específica é
executada e depois o programa continua a ser executado no mesmo ponto em que estava.
O primeiro conceito que devemos entender para o uso das interrupções é que para elas realmente acontecerem, isto
é, paralisarem o programa e desviarem para o vetor de interrupção, algumas questões devem ser verificadas:
1. Uma ação (ou evento) relacionado à interrupção deve acontecer;
2. Quando a ação acontece, o flag da interrupção é marcado;
3. Caso as chaves de habilitação da interrupção (geral e individual) estejam ligadas, o sistema será
paralisado e desviado para o vetor de interrupção.
A ação propriamente dita é exatamente o que queremos monitorar. Mas e as chaves de acesso? Tratam-se de bits
especificados que servem como chave ON/OFF para ligar e desligar as interrupções, individualmente ou em grupo.

AS INTERRUPÇÕES EXISTENTES NO PIC:

? INTERRUPÇÃO DE TIMER 0:
Essa interrupção acontece sempre que um contador de tempo interno, denominado TMR0 (Timer 0),
estoura, ou seja, como ele é um contador de 8 bits, sempre que ele passar de 0xFF para 0x00. ela é utilizada
normalmente para a contagem de tempo. Como pode acontecer a qualquer momento, a contagem de tempo
fica precisa, não dependendo de análise constantes durante o programa para garantir que o tempo seja
contado. Como veremos adiante, o TMR0 pode tanto ser incrementado internamente pelo clock da
máquina, como também por um sinal externo. Neste caso, ele passa a ser um contador de pulsos, podendo
ser utilizado para outras finalidades.
? INTERRUPÇÃO EXTERNA:
Essa interrupção é gerada por um sinal externo ligado a uma porta específica do PIC, que no caso é a porta
RB0, caso ele esteja configurado como entrada. Ela é muito utilizada, por exemplo, para comunicação
entre micros, garantindo o sincronismo, para o reconhecimento de botão ou outro sinal do sistema que
necessite de ação imediata.
Esta interrupção pode ser configurada para a borda de subida ou para a borda de descida.
? INTERRUPÇÃO POR MUDANÇA DE ESTADO:
Ao contrário da interrupção externa, a interrupção por mudança de estado acontece em ambas as bodas
(subida e descida). Na verdade, esta interrupção é sensível a diferença de nível existente entre o pino e o
latch interno. Esta interrupção está relacionada às portas RB4, RB5, RB6 e RB7 simultaneamente. Por isso,
se estas portas forem configuradas como entradas, a mudança de estado em qualquer uma delas irá gerar a
interrupção. Como o lacth só é atualizado quando a porta é lida, a leitura é obrigatória para que o evento da
interrupção pare de ocorrer. Este tipo de interrupção pode ser utilizado, por exemplo, para criar um
sincronismo com a rede de 60Hz, para o controle de um triac ou outro sistema semelhante.
? INTERRUPÇÃO DA PORTA PARALELA (PSP):
Esta interrupção está diretamente ligada à porta paralela do tipo escravo e acontece sempre que uma
operação de escrita ou leitura desta porta é completada.
? INTERRUPÇÃO DOS CONVERSORES A/D:
Esta interrupção acontece quando uma conversão A/D é completada.

Rejane de Barros Araújo


Departamento de Engenharia da Computação
Organização e Arquitetura de Computadores 5
Laboratório – Informações sobre o microcontrolador PIC 16F877
? INTERRUPÇÃO DE RECEPÇÃO DE USART:
Esta interrupção indica o término da recepção de um dado pela USART (Universal Synchronous
Asynchronous Receiver Transmitter).
? INTERRUPÇÃO DE TRANSMISSÃO DE USART:
Esta interrupção indica o esvaziamento do buffer relacionado à transmissão de um dado pela USART.
? INTERRUPÇÃO DA COMUNICAÇÃO SERIAL (SPI e I2 C):
O segundo sistema de comunicação serial deste PIC, além da USART, é denominado MSSP (Master
Synchronous Seriel Port), e possui dois modos de comunicação: SPI e I2 C. Sempre que um dado é
transmit ido ou recebido por esta porta serial, esta interrupção acontecerá.
? INTERRUPÇÃO DO CCP1 (CAPTURE/COMPARE/PWM):
Esta interrupção está vinculada ao primeiro sistema CCP, que engloba os seguintes recursos: Capture1,
Compare1 e PWM1.
? INTERRUPÇÃO DO TIMER 2:
Esta interrupção acontecerá sempre que o Timer 2 (TMR2) acrescido do seu Postscaler estourar. Este é um
contador de 8 bits que possui um Prescaler para incrementar o registrador e um Postscaler para gerar a
interrupção.
? INTERRUPÇÃO DO TIMER 1:
Esta interrupção acontecerá sempre que o Timer 1 (TMR1) estourar. Este é um contador de 16 bits.
? INTERRUPÇÃO DE FIM DE ESCRITA NA EEPROM/FLASH:
Como já visto anteriormente, alguns PICs possuem uma memória EEPROM interna. Esta interrupção serve
para detectarmos o final de uma rotina de escrita nesta memória. A utilização da interrupção não é
obrigatória para que a escrita funcione, mas como a EEPROM é lenta na hora de escrever, em alguns
sistemas a sua utilização pode ser necessária para evitar que o programa pare durante a escrita na
EEPROM. A interrupção também é válida para a memória FLASH.
? INTERRUPÇÃO DE COLISAO DE DADOS (BUS COLLISION):
Esta interrupção serve para informar o sistema sobre colisões de dados na comunicação de I 2 C.
? INTERRUPÇÃO DO CCP2 (CAPTURE/COMPARE/PWM):
Esta interrupção está vinculada ao segundo sistema CCP, que engloba os seguintes recursos: Capture2,
Compare2 e PWM2.

V – O PIC 16F877
Sua características são:
? Microcontrolador de 40 pinos, o que possiblita a montagem de um hardware complexo e capaz de
interagir com diversos recursos e funções ao mesmo tempo;
? Via de programação com 14 bits e 35 instruções;
? 33 portas configuráveis como entrada ou saída;
? 14 interrupções;
? Memória de programação EEPROM FLASH, que permite a gravação rápida do programa diversas
vezes no mesmo chip, sem a necessidade de apaga- lo através de luz ultravioleta, como acontece
nos microcontroladores de janela;

Rejane de Barros Araújo


Departamento de Engenharia da Computação
Organização e Arquitetura de Computadores 6
Laboratório – Informações sobre o microcontrolador PIC 16F877
? Memória de programa com 8kwords, com capacidade de escrita e leitura pelo próprio código
interno;
? Memória EEPROM interna com 256 bytes;
? Memória RAM com 368 bytes;
? Três timers (2x8bits e 1x16bits);
? Comunicação seriais: SPI, I2 C e USART;
? Conversores analógicos de 100 bits (8x);
? Dois módulos CCP: Capture, Compare e PWM;
? Programação in-circuit (alta e baixa tensão);
? Power-on Reset (POR) interno;
? Brown-out Reset (BOR) interno.

PINAGEM:

Legenda: Entrada e Saída; Somente Entrada Somente Saída

Rejane de Barros Araújo


Departamento de Engenharia da Computação
Organização e Arquitetura de Computadores 7
Laboratório – Informações sobre o microcontrolador PIC 16F877
NOMENCLATURA DOS PINOS:

Nome do Pino Nº Pino I/O/P Tipo Descrição


OSC1/CLKIN 13 I ST/CMOS(4) Entrada para crystal. Entrada para osciladores externos.
OCS2/CLKOUT 14 O - Saída para crystal. Saída com onda quadrada em ¼ da freqüência
imposta em OCS1 quando em modo RC. Esta freqüência equivale aos
ciclos de máquina internos.
MCLR/Vpp/THV 1 I/P ST Master Clear (reset) externo. O microcontrolador só funciona quando
este pino encontra-se em nível alto.
Vss 12/31 P - GND.
Vdd 11/32 P - Alimentação positiva.
PORTA
RA0/AN0 2 I/O TTL I/O digital ou entrada analógica.
RA1/AN1 3 I/O TTL I/O digital ou entrada analógica.
RA2/AN2/Vref- 4 I/O TTL I/O digital ou entrada analógica ou tensão negativa de referência
analógica.
RA3/AN3/Vref+ 5 I/O TTL I/O digital ou entrada analógica ou tensão negativa de referência
analógica.
RA4/T0CKI 6 I/O ST I/O digital (quando saída não consegue impor nível alto) ou entrada
externa do contador TMR0.
RA5/SS/AN4 7 I/O TTL I/0 digital ou entrada analógica AN4 ou habilitação externa para
comunicação SPI.
PORTB: Os pinos podem ser ligados ou desligados por software.
RB0/INT 33 I/O TTL/ST(1) I/O digital com interrupção externa.
RB1 34 I/O TTL I/O digital.
RB2 35 I/O TTL I/O digital.
RB3/PGM 36 I/O TTL I/O digital ou entrada para programação em baixa tensão (5V).
RB4 37 I/O TTL I/O digital com interrupção por mudança de estado.
RB5 38 I/O TTL I/O digital com interrupção por mudança de estado.
RB6/PGC 39 I/O TTL/ST(2 I/O digital com interrupção por mudança de estado ou clock da
programação serial.
RB7/PGD 40 I/O TTL/ST(2) I/O digital com interrupção por mudança de estado ou dados da
programação serial.
PORTC:
RC0/T1OSO/T1CKI 15 I/O ST I/O digital ou saída do oscilador externo para TMR1 ou entrada de
incremento para TMR1.
RC1/T1OSI/CCP2 16 I/O ST I/O digital ou entrada do oscilador externo para TMR1 ou entrada do
Capture2 ou saída para Compare1/PWM2.
RC2/CCP1 17 I/O ST I/O digital ou entrada do Capture1 ou saída para Compare2/PWM1.
RC3/SCK/SCL 18 I/O ST I/O digital ou entrada/saída de clock para comunicação serial SPI/I2 C.
RC4/SDI/SDA 23 I/O ST I/O digital ou entrada de dados para SPI ou via de dados para I2 C.
RC5/SDO 24 I/O ST I/O digital ou saída de dados para SPI.
RC6/TX/CK 25 I/O ST I/O digital ou TX para comunicação USART assíncrona ou clock para
comunicação síncrona
RC7/RX/DT 26 I/O ST I/O digital ou RX para comunicação USART assíncrona ou dados para
a comunicação síncrona
PORTD: Comunicação paralela
RD0/PSP0 19 I/O TTL/ST(3) I/O digital ou dado 0
RD1/PSP1 20 I/O TTL/ST(3) I/O dig ital ou dado 1
RD2/PSP2 21 I/O TTL/ST(3) I/O digital ou dado 2
RD3/PSP3 22 I/O TTL/ST(3) I/O digital ou dado 3
RD4/PSP4 27 I/O TTL/ST(3) I/O digital ou dado 4
RD5/PSP5 28 I/O TTL/ST(3) I/O digital ou dado 5
RD6/PSP6 29 I/O TTL/ST(3) I/O digital ou dado 6
RD7/PSP7 30 I/O TTL/ST(3) I/O digital ou dado 7
PORTE:
RE0/RD/AN5 8 I/O TTL/ST(3) I/O digital ou controle de leitura da porta paralela ou entrada analógica
RE1/WR/AN6 9 I/O TTL/ST(3) I/O digital ou controle de leitura da porta paralela ou entrada analógica
RE2/CS/AN7 10 I/O TTL/ST(3) I/O digital ou controle de leitura da porta paralela ou entrada analógica

Rejane de Barros Araújo


Departamento de Engenharia da Computação
Organização e Arquitetura de Computadores 8
Laboratório – Informações sobre o microcontrolador PIC 16F877

Legenda: Notas:
I = Input (entrada) (1) Esta entrada é do tipo ST somente quando configurado
O = output (saída) como interrupção externa

I/O = Input/Output (entrada ou saída) (2) Esta entrada é do tipo ST somente durante o modo de
programação serial
P = Power (alimentação)
(3) Esta entrada é do tipo ST quando configurado como I/O
- = Não utilizado de uso geral e TTL quando usado em modo de porta
TTL = Entrada tipo TTL paralela

ST = Entrada tipo Schmitt Trigger (4) Esta entrada é do tipo ST quando em modo RC e CMOS
nos demais casos.

A ESTRUTURAÇÃO INTERNA:

Rejane de Barros Araújo


Departamento de Engenharia da Computação
Organização e Arquitetura de Computadores 9
Laboratório – Informações sobre o microcontrolador PIC 16F877
MAPA DA MEMÓRIA DE DADOS:

Banco 0 Banco 1 Banco 2 Banco 3


000 INDF 080 INDF 100 INDF 180 INDF
001 TMR0 081 OPTION_REG 101 TMR0 181 OPTION_REG
002 PCL 082 PCL 102 PCL 182 PCL
003 STATUS 083 STATUS 103 STATUS 183 STATUS
004 FSR 084 FSR 104 FSR 184 FSR
005 PORTA 085 TRISA 105 185
006 PORTB 086 TRISB 106 PORTB 186 TRISB
007 PORTC 087 TRISC 107 187
008 PORTD 088 TRISD 108 188
009 PORTE 089 TRISE 109 189
00A PCLATH 08A PCLATH 10A PCLATH 18A PCLATH
00B INTCON 08B INTCON 10B INTCON 18B INTCON
00C PIR1 08C PIE1 10C EEDATA 18C EECON1
00D PIR2 08D PIE2 10D EEADR 18D EECON2
00E TMR1L 08E PCON 10E EEADTH 18E Reservado
00F TMR1H 08F 10F EEADRH 18F Reservado
010 T1CON 090 110 190
011 TMR2 091 SSPCON2
012 T2CON 092 PR2
013 SSPBUF 093 SSPADD
014 SSPCON 094 SSPSTAT
015 CCPR1L 095
016 CCPR1H 096
017 CCP1CON 097 Uso Geral Uso Geral
018 RCSTA 098 TXSTA 16ytes 16ytes
019 TXREG 099 SPBRG
01A RCREG 09A
01B CCPR2L 09B
01C CCPR2H 09C
01D CCP2CON 09D
01E ADRESH 09E ADRESL
01F ADCON0 09F ADCON1 11F 19F
020 0A0 120 1A0
Uso Geral Uso Geral Uso Geral
80 Bytes 80 Bytes 80 Bytes
Uso Geral 0EF 16F 1EF
96 Bytes 0F0 170 1F0
Espelho do Espelho do Espelho do
Banco 0 Banco 0 Banco 0
07F 0FF 17F 1FF
Não Implementado

VI – OS REGISTRADORES ESPECIAIS QUE CONTROLAM TUDO


Até aqui você já foi apresentado ao mundo dos microcontroladores e ao PIC 16F877 especificamente, e em muitas
vezes falamos sobre configurações que podem ser feitas para definir as portas como entrada ou saída, ativar as
interrupções, ativar a contagem do TMR0 por sinal externo, e muitas outras. Como já foi dito que o PIC possui uma
série de registradores especiais que são denominados SFR (Special Function Registers) que servem exatamente
para guardar a configuração e o estado de funcionamento atual da máquina. Veremos para que servem e como é
composto cada um desses registradores.
Para efeito de padronização, cada bit dentro desses registradores receberá um nome, sendo também especificado se
esse bit pode ser lido (R-Read) e/ou escrito (W-Write). Na descrição das funções de cada bit, poderão surgir termos
ainda não conhecidos, mas no decorrer do aprendizado tudo será esclarecido.

Rejane de Barros Araújo


Departamento de Engenharia da Computação
Organização e Arquitetura de Computadores 10
Laboratório – Informações sobre o microcontrolador PIC 16F877
GERAIS:
? STATUS:
Esse registrador serve para mostrar o estado da ULA, a forma do último reset e também para configurar a
página de programação atual, quando necessário.
Registrador: STATUS Endereços: 03, 83, 103 e 183
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R/W R/W R/W R R R/W R/W R/W
IRP RP1 PR0 /TO /PD Z DC C
IRP: Seletor de banco de memória de dados usado para endereçamento indireto:
0 = Banco 0 e 1
1 = Banco 2 e 3
RP1 e RP0: Seletor de banco de memória de dados usado para endereçamento direto:
00 = Banco 0
01 = Banco 1
10 = Banco 2
11 = Banco 3
/TO: Indicação de Time-out:
0 = Indica que ocorreu um estouro de WatchDog Timer (WDT)
1 = Indica que ocorreu um power-up ou foram executadas as instruções CLRWDT ou SLEEP
/PD: Indicação de Power-down:
0 = Indica que a instrução SLEEP foi executada
1 = Indica que ocorreu um power-up ou foi executada a instrução CLRWDT
Z: Indicação de Zero
0 = Indica que o resultado da última operação (lógica ou aritmética) NÃO resultou em zero
1 = Indica que o resultado da última operação (lógica ou aritmética) resultou em zero
DC: Digit Carry/borrow:
0 = A última operação da ULA NÃO ocasionou um estouro de dígito
1 = A última operação da ULA ocasionou um estouro (carry) entre o bit 3 e 4, isto é, o resultado
ultrapassou os 4 bits menos significativos. Utilizado quando se trabalha com números de 4 bits.
C: Carry/borrow:
0 = A última operação da ULA NÃO ocasionou um estouro (carry)
1 = A última operação da ULA ocasionou um estouro (carry) no bit mais significativo, isto é, o
resultado ultrapassou os 8 bits disponíveis.

? OPTION_REG:
Esse registrador serve para configurar uma série de opções para a operação do microcontrolador.
Registrador: OPTION-REG Endereços: 81 e 181
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R/W R/W R/W R/W R/W R/W R/W R/W
/RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0
/RBPU: Habilita pull-ups internos para o PORTB:
0 = Pull-ups habilitados para todos os pinos PORTB configurados como saída
1 = Pull-ups desabilitados
INTEDG: Configuração da borda que gerará a interrupção externa no RB0:
0 = A interrupção ocorrerá na borda de descida
1 = A interrupção ocorrerá na borda de subida

Rejane de Barros Araújo


Departamento de Engenharia da Computação
Organização e Arquitetura de Computadores 11
Laboratório – Informações sobre o microcontrolador PIC 16F877
T0CS: Configuração do incremento para TMR0:
0 = TMR0 será incrementado internamente pelo clock da máquina
1 = TMR0 será incrementado externamente pela mudança no pino RA4/T0CKI
T0SE: Configuração da borda que incrementará o TMR0 no pino RA4/T0CKI, quando T0CKI:
0 = O incremento ocorrerá na borda de subida de RA4/T0CKI
1 = O incremento ocorrerá na borda de descida de RA4/T0CKI
PSA: Configuração de aplicação do prescaler.
0 = O prescaler será aplicado ao TMR0
1 = O prescaler será aplicado ao WDT
PS2,PS1 e PS0: Configuração de valor de prescaler.
PS 2/1/0 TMR0 WDT
000 1:2 1:1
001 1:4 1:2
010 1:8 1:4
011 1:16 1:8
100 1:32 1:16
101 1:64 1:32
110 1:128 1:64
111 1:256 1:128

? PCON:
Registrador: PCON Endereços: 8E
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
- - - - - - R/W R/W
- - - - - - /POR /BOR
/POR: Indicação de Power-On Reset (energização):
0 = Ocorreu um Power-On Reset.
1 = Não ocorreu um Power-On Reset.
/BOR: Indicação de Brown-Out Reset (queda de energia):
0 = Não ocorreu um Brown-Out Reset.
1 = Ocorreu um Brown-Out Reset.

? PCL e PCLATH:
O PCL é um registrador que armazena os 8 bits menos significante do PC (Program Counter), também
conhecido como CI (Contador de Instruções), o qual indica a linha do programa que está sendo executada no
momento. A cada ciclo de máquina o PC é automaticamente alterado, para que o programa possa ser executado
normalmente. Esse registrador também pode ser alterado pelo programa, mas isto deve ser feito com estremo
cuidado, para que o sistema não se perca e/ou trave.
Registrador: PC Endereços: 02, 82, 102 e 182
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R/W R/W R/W R/W R/W R/W R/W R/W
GIE PEIE T0IE INTE RBIE T0IF INTF RBIF
Como a área de memória de programa do PIC é maior que 256 Bytes, não é possível acessa-lo completamente
com somente os 8 bits do PCL. Por isso, o PCLATH possui os 5 bits mais altos do PC.
Registrador: PCLATH Endereços: 0A, 8A, 10A e 18A
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R/W R/W R/W R/W R/W R/W R/W R/W
GIE PEIE T0IE INTE RBIE T0IF INTF RBIF
Rejane de Barros Araújo
Departamento de Engenharia da Computação
Organização e Arquitetura de Computadores 12
Laboratório – Informações sobre o microcontrolador PIC 16F877
? FSR e INDF:
O FSR é um registrador em que pode ser escrito um outro endereço de memória que será acessado
indiretamente, como se ele fosse apenas um ponteiro. Já o INDF não é um registrador de verdade; trata-se
somente de um espelho do endereço apontado pelo FSR.
Registrador: FSR Endereços: 04 e 84
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R/W R/W R/W R/W R/W R/W R/W R/W
PONTEIRO PARA ENDEREÇAMENTO INDIRETO

Registrador: INDF Endereços: 00, 80, 100 e 180


VALOR APONTADO PELO FSR (endereçamento indireto – não é um registrador implementado)

PORTAS:
? PORT e TRIS:
Esses registradores servem para configurar os pinos das portas como entrada ou saída. Quando é colocado “1”
em um bit do TRIS, o pino relacionado a ele é configurado como Entrada. Para configurar o pino como Saída
você deve escrever “0” no bit relacionado. Uma maneira prática de memorizar esta regra é associar o “1” ao “I”
de input (entrada), e o “0” ao “O” de output (saída).
Registrador: PORTA Endereços: 05
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
- - R/W R/W R/W R/W R/W R/W
- - RA5 RA4 RA3 RA2 RA1 RA0
Registrador: TRISA Endereços: 85
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
- - R/W R/W R/W R/W R/W R/W
- - Ref. RA5 Ref. RA4 Ref. RA3 Ref. RA2 Ref. RA1 Ref. RA0

Registrador: PORTB Endereços: 06 e 106


Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R/W R/W R/W R/W R/W R/W R/W R/W
RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0
Registrador: TRISB Endereços: 86 e 186
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R/W R/W R/W R/W R/W R/W R/W R/W
Ref. RB7 Ref. RB6 Ref. RB5 Ref. RB4 Ref. RB3 Ref. RB2 Ref. RB1 Ref. RB0

Registrador: PORTC Endereços: 07


Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R/W R/W R/W R/W R/W R/W R/W R/W
RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0
Registrador: TRISC Endereços: 87
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R/W R/W R/W R/W R/W R/W R/W R/W
Ref. RC7 Ref. RC6 Ref. RC5 Ref. RC4 Ref. RC3 Ref. RC2 Ref. RC1 Ref. RC0

Rejane de Barros Araújo


Departamento de Engenharia da Computação
Organização e Arquitetura de Computadores 13
Laboratório – Informações sobre o microcontrolador PIC 16F877
Registrador: PORTD Endereços: 08
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R/W R/W R/W R/W R/W R/W R/W R/W
RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0
Registrador: TRISD Endereços: 88
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R/W R/W R/W R/W R/W R/W R/W R/W
Ref. RD7 Ref. RD6 Ref. RD5 Ref. RD4 Ref. RD3 Ref. RD2 Ref. RD1 Ref. RD0

Registrador: PORTE Endereços: 09


Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
- - - - - R/W R/W R/W
- - - - - RE2 RE1 RE0
Registrador: TRISE Endereços: 89
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R R R/W R/W - R/W R/W R/W
IBF OBF IBOV PSPMODE - Ref. RE2 Ref. RE1 Ref. RE0

IBF: Indicação de buffer de entrada da porta paralela (PSP):


0 = O buffer de entrada está vazio.
1 = Uma palavra foi recebida e está aguardando para ser lida
OBF: Indicação de buffer de saída da porta paralela (PSP):
0 = O buffer de saída foi lido.
1 = Existe uma palavra não lida no buffer de saída
IBOV: Indicação de Overflow no buffer de entrada:
0 = Não houve Overflow.
1 = Uma nova palavra chegou sem que a anterior tivesse sido lida do buffer (este bit deve ser limpo
por software)
PSPMODE: Modo de operação dos pinos da porta paralela (PSP):
0 = PSP desabilitada. Pinos como I/Os convencionais.
1 = PSP habilitada. Pinos controlados internamente pelo sistema.

TIMERS:
? TMR0
O TMR0 é um contador de 8 bits que pode ser acessado diretamente na memória, tanto para leitura quanto para
a escrita. A diferença entre ele e os demais registradores é que seu incremento é automático e pode ser feito
pelo clock da máquina ou por um sinal externo.Vale lembrar que o estouro desse contador pode gerar uma
interrupção. Ele conta de 0 até 255, em decimal.
Registrador: TMR0 Endereços: 01 e 101
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R/W R/W R/W R/W R/W R/W R/W R/W
CONTADOR TMR0 DE 8 BITS

? T1CON, TMR1L e TMR1H


Como havíamos citado o TMR1 é um contador de 16 bits, por isso armazenada parte da contagem em TMR1L
(bits menos significante) e a outra parte em TMR1H (bits mais significante). T1CON faz configurações para o
Timer 1.

Rejane de Barros Araújo


Departamento de Engenharia da Computação
Organização e Arquitetura de Computadores 14
Laboratório – Informações sobre o microcontrolador PIC 16F877
Registrador: T1CON Endereços: 10
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
- - R/W R/W R/W R/W R/W R/W
- - T1CKPS1 T1CKPS0 T1OSCEN /T1SYNC TMR1CS TMR1ON
T1CKPS1 Ajuste do prescale do Timer 1:
e 00 = prescale de 1:1.
T1CKPSO: 01 = prescale de 1:2.
10 = prescale de 1:4.
11 = prescale de 1:8.
T1OSCEN: Habilitação do sistema de oscilação externa para os pinos T1OSO e T1OSI:
0 = Oscilador desabilitado. Caso exista um cristal externo, o sistema é desligado.
1 = Habilita o oscilador externo.
/T1SYNC: Controle de sincronismo interno. Quando TMR1CS = 0 este bit é ignorado:
0 = Sistema de sincronismo ligado.
1 = Sistema de sincronismo desligado (modo assíncrono).
TMR1CS: Seleção da origem do clock para o Timer 1:
0 = clock interno (Fosc/4).
1 = clock externo no pino T1OSO/T1CKI.
TMR1ON: Habilitação do Timer 1:
0 = Timer 1 desabilitado. Paralisa o contador do Timer 1.
1 = Timer 1 habilitado.

Registrador: TMR1L Endereços: 0E


Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R/W R/W R/W R/W R/W R/W R/W R/W
CONTADOR TMR1 DE 16 BITS – PARTE BAIXA
Registrador: TMR1H Endereços: 0F
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R/W R/W R/W R/W R/W R/W R/W R/W
CONTADOR TMR1 DE 16 BITS – PARTE ALTA

? T2CON, TMR2 e PR2


O TMR2 é um contador de 8 bits, T2CON faz configurações para o Timer 2 e PR2 é o limitador do valor do
TMR2.

Registrador: T2CON Endereços: 12


Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
- R/W R/W R/W R/W R/W R/W R/W
- TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TRM2ON T2CKPS1 T2CKPS0

TOUTPS3, Ajuste do postscale do Timer 2:


TOUTPS2, 0000 = postscale de 1:1. 1000 = postscale de 1:9.
TOUTPS1 0001 = postscale de 1:2. 1001 = postscale de 1:10.
E 0010 = postscale de 1:3. 1010 = postscale de 1:11.
TOUTPS0 0011 = postscale de 1:4. 1011 = postscale de 1:12.
0100 = postscale de 1:5. 1100 = postscale de 1:13.
0101 = postscale de 1:6. 1101 = postscale de 1:14.
0110 = postscale de 1:7. 1110 = postscale de 1:15.
0111 = postscale de 1:8. 1111 = postscale de 1:16.
Rejane de Barros Araújo
Departamento de Engenharia da Computação
Organização e Arquitetura de Computadores 15
Laboratório – Informações sobre o microcontrolador PIC 16F877
TMR2ON: Habilitação do Timer 2:
0 = Timer 2 desabilitado. Paralisa o contador do Timer 2.
1 = Timer 2 habilitado.
T2CKPS1 Ajuste do prescale do Timer 2:
e 00 = prescale de 1:1.
T2CKPSO: 01 = prescale de 1:4.
10 = prescale de 1:16.
11 = prescale de 1:16. (a repetição não é um erro)

Registrador: TMR2 Endereços: 11


Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R/W R/W R/W R/W R/W R/W R/W R/W
CONTADOR TMR2 DE 8 BITS
Registrador: PR2 Endereços: 92
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R/W R/W R/W R/W R/W R/W R/W R/W
LIMITE SUPERIOR PARA CONTAGEM DO TMR2

INTERRUPÇÕES:
? INTCON:
Esse registrador serve para configurar e identificar as interrupções.
Registrador: INTCON Endereços: 0B, 8B, 10B e 18B
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R/W R/W R/W R/W R/W R/W R/W R/W
GIE PEIE T0IE INTE RBIE T0IF INTF RBIF
GIE: Habilitação geral das interrupções (Chave geral):
0 = Nenhuma interrupção será tratada.
1 = As interrupções habilitadas individualmente serão tratadas.
PEIE: Habilitação das interrupções de periféricos (chave geral para periféricos):
0 = As interrupções de periféricos não serão tratadas.
1 = As interrupções de periféricos habilitadas individualmente serão tratadas.
T0IE: Habilitação da interrupção de estouro de TMR0 (Chave individual):
0 = Interrupção de TMR0 desabilitada.
1 = Interrupção de TMR0 habilitada.
INTE: Habilitação da interrupção externa no pino RB0:
0 = Interrupção de externa desabilitada.
1 = Interrupção de externa habilitada.
RBIE: Habilitação da interrupção por mudança de estado no pino RB4 a RB7 (chave individual):
0 = Interrupção por mudança de estado desabilitada.
1 = Interrupção por mudança de estado habilitada.
T0IF: Identificação de estouro do TMR0:
0 = Não ocorreu estou do TMR0.
1 = Ocorreu estouro do TMR0 (este bit deve ser limpo por software).
INT: Identificação da interrupção externa no pino RB0:
0 = Não ocorreu evento de interrupção.
1 = Ocorreu evento de interrupção (este bit deve ser limpo por software).
RBIF: Identificação da interrupção por mudança de estado nos pinos RB4 a RB7:
Rejane de Barros Araújo
Departamento de Engenharia da Computação
Organização e Arquitetura de Computadores 16
Laboratório – Informações sobre o microcontrolador PIC 16F877
0 = Não ocorreu evento de interrupção.
1 = Ocorreu evento de interrupção (este bit deve ser limpo por software).
? PIE1:
Registrador: PIE1 Endereços: 8C
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R/W R/W R/W R/W R/W R/W R/W R/W
PSPIE ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE
PSPIE: Habilitação da interrupção da porta paralela (Chave individual):
0 = Interrupção da porta paralela desabilitada.
1 = Interrupção da porta paralela habilitada.
ADIE: Habilitação da interrupção do conversor (chave individual):
0 = Interrupção do conversor A/D desabilitada.
1 = Interrupção do conversor A/D habilitada.
RCIE: Habilitação da interrupção de recepção da USART (Chave individual):
0 = Interrupção de recepção da USART desabilitada.
1 = Interrupção de recepção da USART habilitada.
TXIE: Habilitação da interrupção de transmissão da USART (Chave individual):
0 = Interrupção de transmissão da USART desabilitada.
1 = Interrupção de transmissão da USART habilitada.
SSPIE: Habilitação da interrupção da porta serial SSP (chave individual):
0 = Interrupção da porta serial SSP desabilitada.
1 = Interrupção da porta serial SSP habilitada.
CCP1IE: Habilitação da interrupção do módulo CCP1 (chave individual):
0 = Interrupção de CCP1 desabilitada.
1 = Interrupção de CCP1 habilitada.
TMR2IE: Habilitação da interrupção do Timer 2 (chave individual):
0 = Interrupção de Timer 2 desabilitada.
1 = Interrupção de Timer 2 habilitada.
TMR1IE: Habilitação da interrupção de estouro do Timer 1 (chave individual):
0 = Interrupção de Timer 1 desabilitada.
1 = Interrupção de Timer 1 habilitada.
? PIR1:
Registrador: PIR1 Endereços: 0C
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
R/W R/W R/W R/W R/W R/W R/W R/W
PSPIF ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF
PSPIF: Identificação da interrupção da porta paralela (Chave individual):
0 = Não ocorreu evento de leitura/escrita na porta paralela.
1 = Ocorreu evento de leitura/escrita na porta paralela (este bit deve ser limpo por software).
ADIF: Identificação da interrupção do conversor A/D (chave individual):
0 = Conversão A/D NÃO foi completada.
1 = Conversão A/D foi completada.
RCIF: Identificação da interrupção de recepção da USART (Chave individual):
0 = Buffer de recepção da USART está vazio.
1 = Buffer de recepção da USART está cheio.
TXIF: Identificação da interrupção de transmissão da USART (Chave individual):

Rejane de Barros Araújo


Departamento de Engenharia da Computação
Organização e Arquitetura de Computadores 17
Laboratório – Informações sobre o microcontrolador PIC 16F877
0 = Buffer de transmissão da USART está cheio.
1 = Buffer de transmissão da USART está vazio.
SSPIF: Identificação da interrupção da porta serial SSP (chave individual):
0 = Não ocorreu condição de interrupção no módulo SSP.
1 = Ocorreu condição de interrupção no módulo SSP (este bit deve ser limpo por software).
CCP1IF: Identificação da interrupção do módulo CCP1 (chave individual):
0 = Não ocorreu condição de interrupção no módulo CCP1.
1 = Ocorreu condição de interrupção no módulo CCP1 (este bit deve ser limpo por software).
TMR2IF: Identificação da interrupção do Timer 2 (chave individual):
0 = Não ocorreu evento da interrupção de Timer 2.
1 = Ocorreu evento da interrupção de Timer2 (este bit deve ser limpo por software).
TMR1IF: Identificação da interrupção de estouro do Timer 1 (chave individual):
0 = Não ocorreu estouro do Timer 1.
1 = Ocorreu estouro do Timer1 (este bit deve ser limpo por software)
? PIE2:
Registrador: PIE2 Endereços: 8D
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
- R/W - R/W R/W - - R/W
- - - EEIE BCLIE - - CCP2IE
EEIE: Habilitação da interrupção de fim de escrita na EEPROM (Chave individual):
0 = Interrupção de fim de escrita na EEPROM desabilitada.
1 = Interrupção de fim de escrita na EEPROM habilitada.
BCLIE: Habilitação da interrupção de colisão na linha IIC (chave individual):
0 = Interrupção de colisão na linha IIC desabilitada.
1 = Interrupção de colisão na linha IIC habilitada.
CCP2IE: Habilitação da interrupção do módulo CCP2 (Chave individual):
0 = Interrupção de CCP2 desabilitada.
1 = Interrupção de CCP2 habilitada.
OBS: O BIT 6 É RESERVADO E DEVE SER MANTIDO SEMPRE EM 0
? PIR2:
Registrador: PIR2 Endereços: 0D
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
- R/W - R/W R/W - - R/W
- - - EEIF BCLIF - - CCP2IF
EEIF: Identificação da interrupção de fim de escrita na EEPROM (Chave individual):
0 = Operação de escrita na EEPROM não foi completada e nova escrita não pode ser iniciada.
1 = Operação de escrita na EEPROM foi completada (este bit deve ser limpo por software).
BCLIF: Identificação da interrupção de colisão na linha IIC (chave individual):
0 = Não ocorreu colisão na linha IIC.
1 = Ocorreu colisão na linha IIC.
CCP2IF: Identificação da interrupção do módulo CCP2 (Chave individual):
0 = Não ocorreu condição de interrupção no módulo CCP2.
1 = Ocorreu condição de interrupção no módulo CCP2 (este bit deve ser limpo por software).
OBS: O BIT 6 É RESERVADO E DEVE SER MANTIDO SEMPRE EM 0

Rejane de Barros Araújo


Departamento de Engenharia da Computação
Organização e Arquitetura de Computadores 18
Laboratório – Informações sobre o microcontrolador PIC 16F877

VII - CONCLUSÃO
Este material serve como leitura introdutório no estudo de microcontroladores PIC 16F877, mas para trabalhos
mais elaborados, leituras complementares são necessárias, e as mesmas são citas na Bibliografia.

VIII - BIBLIOGRAFIA
[1] MICROCHIP – PIC16F87X DATA SHEET, www.microchip.com;
[2] SOUZA, David José – DESBRAVANDO O PIC – Ed. Érica Ltda, 2002;
[3] MÓDULO ENGENHARIA – CONECTANDO O PIC, EXPLORANDO RECURSOS AVANÇADOS –
Ed. J.J.Carol, 2003;
[4] MANUAL POWERBOARD LITE, www.solbet.com.br

Rejane de Barros Araújo


Departamento de Engenharia da Computação

Anda mungkin juga menyukai