Buscar

Questões sobre Microprocessadores

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

P1 – Microprocessadores – Prof. Marco Aurélio Seluque Fregonezi – 11/10/2012 
Gabarito 
Cada questão vale um ponto. Algumas questões receberam explicação bastante detalhada. Não será 
cobrada, na correção, explicação tão detalhada. 
 
1 ‐ A sigla PIC, da Microchip, significa: 
A. (   ) Program In‐Chip 
B. (   ) Peripheral Interchange Component 
C. (   ) Programming Into Computer 
D. (X) Programmable Interface Controller 
E. (   ) Programmer Internal Cappable 
F. (   ) Program Input Control 
 
2 ‐ Qual a arquitetura da PIC16F877? 
A. (   ) Baseline 
B. (X) Mid‐Range 
C. (   ) Enhanced Mid‐Range 
D. (   ) PIC18 
E. (   ) PIC24H/E 
F. (   ) DsPIC 
 
3 – PIC16F877 – Nas instruções “GOTO k” e “CALL k”, a palavra “k” tem tamanho, em bits: 
A. (   ) 07 
B. (   ) 08 
C. (   ) 09 
D. (X) 11 
E. (   ) 13 
F. (   ) 14 
 
As palavras tem tamanho de 14 bits. 
Os endereços tem tamanho de 13 bits. 
São quatro páginas. 
Quatro páginas são endereçadas por dois bits    2n = 4. 
13 ‐2 = 11 
Como era previsto que alguns alunos confundissem o tamanho do endereço (13) com o da palavra 
(14), e sabendo que 14 ‐ 2 = 12, esta opção foi eliminada, para ajudar. 
 
4 – PIC16F877 – Na segunda coluna, coloque as letras associadas da primeira coluna (biunívoco). 
(A) EEPROM  (A) Data memory 
(B) FLASH  (D) File register 
(C) ROM  (E) LIFO 
(D) SRAM  (B) Program Memory 
(E) STACK  (C) ULA 
 
Os registradores são usados frequentemente e precisam ser colocado na memória de leitura e escrita 
mais rápida, a SRAM. Os dados de uso menos frequente podem ser armazenados em uma memória 
de  leitura e escrita mais barata e mais  lenta, mas que mantenha a  informação após o desligamento 
do chip, isto é, a EEPROM. A memória de programa, também precisa ser mantida após o desligamen‐
to, porém ela precisa ser muito maior do que a memória de dados, e, por isso, precisa ser colocada 
em um tipo de memória com maior densidade,  isto é, a FLASH. A ULA nunca deve ser alterada, sob 
risco das  instruções pararem de funcionar, por  isso ela pode ser gravada em uma ROM, a memória 
mais barata e densa que existe. A pilha (stack) não é uma memória de acesso aleatório, é de acesso 
sequencial, caracterizando uma LIFO; embora se trate de uma memória estática, não é uma SRAM, 
pois o acesso não é aleatório. 
 
5 ‐ PIC16F877 – Quais os valores do work register  dos bits C (carry), DC (digit carry) e Z (zero) após a 
operação 3Eh + 7Bh? 
W=B9h C=0 DC=1 Z=0 
O valor de W pode ser obtido diretamente pela calculadora. Será aceita a  forma hexadecimal ou a 
binária ou ambas. 
Como o resultado é menor do que o valor máximo FFh, então C=0. 
Como o resultado não é nulo, então não é zero, o bit indicativo de zero deve ser desabilitado, Z=0. 
Como Eh + Bh é maior do que Fh, então ocorre carry entre os nibbles; DC=1. 
 
6 ‐ Um controlador utiliza Instruções de 18 bits e tem capacidade de armazenamento de 16k instru‐
ções. Determine o tamanho da memória de programa em bytes. Utilize o prefixo correto (k, M, G ou 
T). 
(16×1024)instruções × 18bits/instrução   = 294912  bits 
294912bits / 8  = 36864  bytes 
36864bytes/1024  = 36  kbytes 
 
7 ‐ Um processador de 64 bits possui barramento de dados de 16 bits, multiplexados temporalmente. 
Os bits de seleção do MUX são controlados por um contador síncrono crescente. Quantos são os bits 
de seleção? 
64bits / 16bits  = 4 partes 
2n = 4 
n = 2 bits 
 
8  ‐ Um  controlador utiliza  Instruções de 20 bits. Nas  instruções que  fazem acesso aos  registros, a 
instrução emprega 5 bits na codificação da instrução, 3 em opções gerais e o restante no endereça‐
mento de memória. Sabendo que o tamanho da memória é de 8k palavras, em quantos bancos esta 
memória precisa ser dividida? 
20‐(5+3)  =12 bits de endereço por banco 
212  = 4096 posições por banco 
4096 / 1024  = 4k posições por banco 
Tamanho total  = 8k posições 
(8k)posições / (4k)posições/banco  = 2 bancos 
 
9  ‐ Um processador de 8 bits possui 12 bits no barramento de endereço, para memórias externas. 
Uma memória de 360 bytes é  instalada a partir do endereço  inicial. Uma segunda memória de 256 
bytes deve ser  instalada. Para  isso, um dos bits do barramento de endereço é usado na seleção do 
chip (entrada CS), sendo “zero” para o chip de 360 bytes e “um” para o chip de 256 bytes. Para este 
controle, foi escolhido, dentre os bits não usados do barramento, o menos significativo. Qual o ende‐
reço (Bin e Hex) da primeira posição do chip de 256 bytes no barramento? 
360 bytes: 9 bits de endereço (memória maior), nem todas combinações são usadas. 
256 bytes: 8 bits de endereço (memória menor). 
A quantidade de bits usados é dado pela maior memória. 
9 bits usados nas entradas de endereço dos chips: Bits <A8:A0> 
Bit A9 usado na seleção do chip. 
Posição inicial do barramento: 
0000 0000 0000b (12 bits)  000h (3 nibbles) 
Posição inicial do chip de 256 bytes: 
0010 0000 0000b (12 bits)  200h (3 nibbles) 
 
10 ‐ Condicionador de ar inteligente. Um sensor de temperatura, operando na faixa de 10 a 39 graus, 
com resolução de 1 grau, envia sinal elétrico a um conversor A/D, que gera um sinal digital com bits 
paralelos, sendo o valor 0d correspondente a 09 graus. Estes bits são decodificados, e cada saída do 
decodificador aciona uma configuração de potência do climatizador, mantendo a temperatura inter‐
na sempre a 22 graus. O chip do decodificador possui encapsulamento DIP, arquitetura full‐custom e 
possui, também, entradas para 5V, 0V, CS e OE. Quantos pinos, no mínimo, este chip possui? 
Valor mínimo:  10 graus 
Valor máximo:  39 graus 
Diferença:  39‐10 = 29 graus 
Posições de temperatura:  29 + 1 = 30 
30 posições  5 bits de endereçamento (nem todas combinações são usadas). 
Decoder: 
5 bits de entrada codificada 
30 bits de saída decodificada 
4 bits axuliares 
Total: 5 + 30 + 4 = 39 
Quem obteve resposta 39 recebe nota 0,9 nesta questão. 
Pegadinha troll : 
DIP: Dual in‐line package – Quantidade par de pinos. 
Pinos: 39 + 1 
Resposta: 40 pinos (1,0 ponto). 
P2 – Microprocessadores – Prof. Marco Aurélio Seluque Fregonezi – 06/11/2012 
Gabarito 
 
1– Na segunda coluna, coloque as letras associadas da primeira coluna (biunívoco). 
(A) P (C) Chip com especialidade matemática 
(B) MCU (E) Gravador de PIC 
(C) DSP (B) Incorporação de periféricos 
(D) ULA (D) Módulo executor de operações 
(E) ICD (A) Processamento genérico 
 
2 – Qual instrução afeta o bit carry do Statu Register 
A. ( ) COMF 
B. ( ) INCF 
C. (X) ADDWF 
D. ( ) ANDWF 
E. ( ) INCFSZ 
F. ( ) NOP 
As únicas instruções que afetam o bit Carry são a adição aritmética e subtração aritmética, sendo, nesta última, emprega-
do como Borrow em lógica negativa. Nenhuma outra operação emprega o conceito de Carry ou Borrow. 
 
3 – Qual instrução afeta o TOS? 
A. ( ) SWAPF 
B. (X) CALL 
C. ( ) CLRW 
D. ( ) NOP 
E. ( ) BTFSC 
F. ( ) CLRWDT 
TOS: Top Of the Stack. 
Somente as intstuções de desvio lidam com a pilha: RETURN, RETFIE, RETLW, CALL. 
 
4 – Quanto às portas paralelas: 
A. ( ) São somente de entrada 
B. ( ) São somente de saída 
C. ( ) Cada palavra (A, B, C, D, E) pode ser configurada como entrada ou saída. 
D. (X) Cada bit pode ser configurado como entrada ou saída. 
E. ( ) Cada palavra (A, B, C, D, E) pode ser configurada como entrada, saída ou bidirecional. 
F. ( ) Cada bit pode ser configurado como entrada, saída ou bidirecional. 
Os bits dos registradores TRIS permitem o controle do sentido de comunicação das portas A, B, C, D e E, bit a bit. 
5 – O comando Make do MPLab serve para: 
A. (X) Gerar o código de máquina 
B. ( ) Gravar o programa no chip 
C. ( ) Executar o progama no computador 
D. ( ) Executar o programa no chip 
E. ( ) Ler o programa do chip 
F. ( ) Reiniciar a execução do programa 
 
6 – Qual parâmetro não pertence ao princípio deoperação de uma entrada analógica? 
A. ( ) Bit rate 
B. ( ) Sampling rate 
C. (X) Duty cycle 
D. ( ) +Vref 
E. ( ) –Vref 
F. ( ) Resolução 
O bit rate determina quantos bits o conversor A/D usa. 
O sampling rate determina quantas conversões A/D são feitas por segundo. 
O duty cycle diz respeito ao controle por viaração do valor médio, usado em saídas PWM. 
O +Vref determina o valor de tensão que será convertido para o número binário máximo. 
O –Vref determina o valor de tensão que será convertido para o número binário zero. 
A resolução é a diferença mínima entre dois valores analógicos que são convertidos para números binários consecutivos. 
P2 – Microprocessadores – Prof. Marco Aurélio Seluque Fregonezi – 06/11/2012 
Gabarito 
 
7 – Quantas linhas de opcode ou de disassembly possui o programa abaixo? 
 
; Operações aritméticas 
__CONFIG _WDT_ON & _XT_OSC & _LVP_OFF & _BODEN_OFF 
 #INCLUDE <p16f877.inc> 
 ORG 0x05 ;Vetor de Reset 
 #DEFINE marqualrélio 0x45 ;dado 1 
 #DEFINE operador 0xA0 ;dado 2 
 BCF STATUS, RP1 
 BSF STATUS, RP0 
 MOVLW marqualrélio 
 MOVWF operador 
 #UNDEFINE marqualrélio 
 #UNDEFINE operador 
 END 
 
4 linhas 
Somente os mnemônicos do dispositivo geram linhas na linguagem de máquina. 
As outras linhas são recursos adicionais do Assembler usados para facilitar a programação, mas que são auto-
maticamente convertidos em configurações válidas para o dispositivo, sem, contudo, criar novas linhas. 
Os mnemônicos foram fornecidos na segunda folha de prova. 
 
 
 
 
 
8 – Deseja-se construir um controlador para quatro display’s de 8 segmentos, figura acima, por meio de uma 
porta paralela de quatro bits de um microcontrolador. A multiplexação temporal é feita por meio da seleção 
dos segmentos, acionando-se apenas um por vez, para todos os quatro display’s, segundo a palavra de quatro 
bits fornecida pela porta paralela. A multiplexação temporal é feita por meio de um contador síncrono cres-
cente com FF JK de borda negativa com controles de preset e clear em lógica negativa. Quantos são os FF’s 
necessários para a realização desta multiplexação? 
 
8 segmentos por display 
1 estágio para cada segmento 
Contador de 8 estágios 
Três bits 
Três FF’s 
 
P2 – Microprocessadores – Prof. Marco Aurélio Seluque Fregonezi – 06/11/2012 
Gabarito 
 
9 – PWM por PIC: O ajuste do duty-cycle é feito por 10 bits e a temporização por Timer 2, de 8 bits. Se este 
contador conta até FFh, e o duty-cycle máximo é 1023, qual o valor da palavra de 10 bits (binária) para um 
duty-cycle de 40%? 
Regra de três simples: 
6,4091
1%40
1024%100
1%40
11023%100













x
x
x
 
Valor inteiro mais próximo: 410 
Último valor da faixa: 409 
Forma binária: 110011001b 
Quem obteve o valor acima recebe nota 0,9 nesta questão. 
Pegadinha troll : A palavra é de 10 bits. 
Forma binária: 0110011001b 
 
10 – No controle PWM por PIC, o ajuste do período PWM é dado por PR2 (Timer 2 Period Register), de 8 bits. O 
valor máximo de PR2 (FFh) indica que o ajuste do duty-cycle pode variar de 0 a 1023, sinalizando que a máxi-
ma resolução PWM é de 10 bits. Para valores menores de PR2 (8 bits), o ajuste do duty-cycle (10 bits) terá va-
lor máximo inferior a 1023, proporcionalmente a PR2. Esta diminuição do máximo valor do duty-cycle poderá 
acarretar em uma diminuição do número de bits usados, reduzindo a máxima resolução PWM. Determine a 
máxima resolução PWM, em bits, para um PR2 de 3Fh. 
Tal como foi falado em sala de aula e explicado no enunciado do problema, PR2 e o valor do duty-cycle são 
proporcionais, isto permite o uso de regra de três simples. 
bits 8
255
2561
164
1024256
1163
110231255
113
131
PIC-05 apostila 298, Página




















x
x
x
x
xFh
FFFFh
 
bits 8
252
63
1023255
3
3
0,9 Vale
errada Forma













x
x
xFh
FFFFh
 
Como foi visto em outros exemplos em sala de aula e, também, no capítulo sobre memórias e endereçameto, 
quando se compara tamanhos de memória proporcionais, a comparação deve ser feita sobre o tamanho das 
mesmas, e isso é feito somando-se “1” ao valor máximo, pois o valor inicial é zero. 
Outra forma de resolver este exercício é observando que a faixa 0h-3Fh é um quarto da faixa 0h-FF, isto 
significa que a faixa 0h-3FF deve ser dividida por 4, gerando a faixa 0h-FF, formada por 8 bits. 
Uma terceira forma de resolver este exercício é observando que, na trasnformação PR2=FFh para PR2 = 
3Fh, tem-se PR2 = 11111111b para PR2 = 111111b, dois bits foram retirados. O mesmo deve ser feito 
com o duty-cycle. Duty-Cycle = 1111111111b para Duty-Cycle = 11111111b, resultando em 
oito bits. Vide página 299 da apostila 05-PIC. 
 
P3 – Microprocessadores – Prof. Marco Aurélio Seluque Fregonezi – 07/11/2012 
Gabarito 
 
1 – Usando um demultiplexador 12 de 4 bits e um multiplexador 21 de 4 bits, construa um cir‐
cuito que realiza a operação LR ‐ Left Bit Rotation de 4 bits. Se a entrada A for zero, não há rotação. 
Se a entrada A for um, ocorre a rotação. 
                    
2 – Um  contador, em uma MCU,  conta de 00h até 45h com um prescaler de 1:16, em 32ms. Em 
quanto tempo este contador conta até D3h com um prescaler de 1:4? 
 
Com prescaler de 1:16, seus passos são 16 vezes mais lentos do que o dos ciclos de instrução. 
Com prescaler de 1:4, seus passos são 4 vezes mais lentos do que o dos ciclos de instrução. 
Na alteração de 1:16 para 1:4, o contador torna‐se 4 vezes mais rápido. 
Com 1:16, ele atinge 45h em 32m. 
Com 1:4, ele atinge 45h em 432m = 128ms. 
Para determinar o tempo que ele leva para atingir D3h, basta fazer regra de três. 
 
mst
t
ms
t
ms
391
211
12869
D3h
12845h













21
44
3 – Um teclado 4x4 é multiplexado temporalmente em duas etapas. Na primeira, é feita a leitura das 
linhas y1 e y2 sendo “0” a tecla do bit menos significativo, na segunda, são lidas y3 e y4 sendo “8” a 
tecla do bit menos significativo. Somente uma  tecla é  lida por vez. A  lógica é negativa. Os bits são 
lidos em uma porta de  comunicação paralela  configurada  como entrada. Os  valores digitados  são 
gravados nos registradores da SRAM a partir da posição 20h. A gravação ocorre somente se houver 
uma tecla apertada. O usuário digita os números da data de hoje  (somente números, vide topo da 
folha), da esquerda para a direita. Preencha a figura abaixo com os valores corretos. 
 
Data: 07/11/2012 
Sequência: 0 – 7 – 1 – 1 – 2 – 0 – 1 – 2 
 
0  11111110b 254d FEh 
7  01111111b 127d 7Fh 
1  11111101b 253d FDh 
1  11111101b 253d FDh 
2  11111011b 251d FBh 
0  11111110b 254d FEh 
1  11111101b 253d FDh 
2  11111011b 251d FBh 
 
 
 
 
 
Como a data da prova estava errada, pois ela foi aplicada em 08/11/2012, será considerada correta, 
também, esta data, alterando a resolução do problema. 
 
Data: 08/11/2012 
Sequência: 0 – 8 – 1 – 1 – 2 – 0 – 1 – 2 
 
0  11111110b 254d FEh 
8  11111110b 254d FEh 
1  11111101b 253d FDh 
1  11111101b 253d FDh 
2  11111011b 251d FBh 
0  11111110b 254d FEh 
1  11111101b 253d FDh 
2  11111011b 251d FBh 
 
 
 
 
 
0xFE 254 
0x7F 127 
0xFD 253 
0xFD 253 
0xFB 251 
0xFE 254 
0xFD 253 
0xFB 251 
0xFE 254 
0xFE 254 
0xFD 253 
0xFD 253 
0xFB 251 
0xFE 254 
0xFD 253 
0xFB 251 
P3 – Microprocessadores – Prof. Marco Aurélio Seluque Fregonezi – 07/11/2012 
Gabarito 
 
4 – Uma DSP recebe informações vindas de um sensor de viscosidade. O conversor fornece palavras 
de 12 bits obtidas a cada segundo e as grava em uma memória de 1kbyte. Quando a memória está 
cheia, ela é apagada automaticamente e o processo é retomado. Qualé o período de preenchimento 
desta memória, em minutos? 
 
8 bits:  1 byte 
12 bits:  1 palavra 
12 bits:  1 byte e meio 
3 bytes:  2 palavras 
1 kbyte:  1024 bytes 
1 kbyte/3 = 1024/3 = 341,3... bytes 
É preciso arredondar para baixo, pois, para cima, superará a capacidade de memória. 
1 kbyte/3 = 341 bytes 
São 341 conjuntos de 3 bytes na memória de 1k byte. 
Cada conjunto de 3 bytes armazena 2 palavras. 
São, então, 2341 = 682 palavras. 
Uma palavra é gravada por segundo. 
São necessários 682 segundos para gravar as 682 palavras. 
Período = 682s/60 = 11,37 minutos. 
 
5 – A figura do trollface possui 342 colunas por 301 linhas e usa quatro tons de cin‐
za, endereçados por dois bits. Ao  término de cada  linha,  inclusive a última, existe 
uma palavra de 8 bits que sinaliza quebra de linha. No início do arquivo, são acres‐
centados 16 bits para o cabeçalho do arquivo. Qual o tamanho do arquivo, em by‐
tes? Use o prefixo necessário. 
 
342  301 = 102942 pontos 
2 bits por ponto 
Tamanho = 2  102942 = 205884 bits 
Tamanho = 205884 bits / 8 = 25735,5 bytes 
Quebra de linha: 301  1 byte = 301 bytes 
Cabeçalho: 16 bits /8 = 2 bytes 
Total: 25735,5 bytes + 301 bytes + 2 bytes = 26038,5 bytes 
É preciso arredondar para cima, pois, para baixo, faltará bits no arquivo. 
Total = 26039 bytes 
Total = 26039 bytes/1024 = 25,429 kbytes 
 
Se não arredondar, também será considerado certo. 
Total = 26038,5 bytes 
Total = 26038,5 bytes/1024 = 25,428 kbytes 
 
 
P1 – Microprocessadores – Prof. Marco Aurélio Seluque Fregonezi – 27/02/2013 
Gabarito 
 
1)Ligue os pontos da coluna da direita com os pontos da coluna da esquerda. Biunívoco. PIC16F877‐20/P. 
1  Quantidade de bits usados na seleção do destiny em instruções lógicas e aritméticas do tipo WF. 
2  Quantidade de bits usados na seleção de páginas da program memory. 
3  Quantidade de bits usados na seleção de um bit em operações sobre bits individualmente. 
4  Quantidade de páginas da file registers. 
5  Tamanho da palavra PCH. 
7  Quantidade de bits usados no endereçamento do file em instruções lógicas e aritméticas. 
8  Tamanho das palavras do file registers. 
9  Quantidade de bits de endereço de um registrador da SRAM. 
10  Bits do conversor A/D da PIC mid‐range architecture. 
11  Quantidade de bits usados no endereçamento do destino em instruções de desvio. 
13  Quantidade de bits usados no endereçamento de uma instrução na program memory. 
14  Tamanho das palavras da program memory. 
 
2)Ligue os pontos da coluna da direita com os pontos da coluna da esquerda. Biunívoco. 
DEC  Um bit de saída selecionado por vez por meio da palavra de entrada. 
ENC  A palavra de saída é definida por meio do bit de entrada escolhido. 
MUX  Uma das palavras de entrada é selecionada e colocada na palavra de saída. 
DEMUX  Uma das palavras de saída é selecionada para receber a palavra de entrada. 
REG  A palavra de entrada é copiada para a palavra de saída, onde é mantida. 
COUNT  A palavra de saída é o seu valor anterior sofrido de alguma operação. 
ROM  Uma palavra de dados de saída, uma palavra de entrada de endereço. 
RAM  Uma palavra de dados de entrada, uma palavra de dados de saída, uma palavra de entrada de endereço. 
STACK  A palavra lida é a última a ter sido escrita. 
BUS  Conexão de uma palavra de saída de um bloco para uma palavra de entrada de outro bloco. 
 
3)Explique o que é um PUSH e um POP. Cite uma instrução que realize cada uma dessas ações. PIC16F877‐20/P. 
PUSH:  Colocação do endereço da próxima instrução (PC+1) no TOS (topo da pilha) antes de efetuar o desvio. Usado em CALL. 
POP:  Obtenção do endereço da próxima instrução a partir do TOS (topo da pilha). Usado em RETURN, por exemplo. 
 
4) Uma instrução BCF é feita sobre um file cujo valor é 64h. O parâmetro “b” é 101b. Qual o valor final para o 
file, na forma hexadecimal? PIC16F877‐20/P. 
64h = 0110 0100 b 
101b = 5d 
O  bit 5 sofrerá um clear. 
7654 3210 
0100 0100 
0100 0100 b = 44h. 
 
5)Um banco de memórias é formado por 4 chips idênticos e com faixas de endereços contíguas, sem intervalos. O último ende‐
reço global (no barramento de endereços) é 5FFFFh. O primeiro chip possui a primeira palavra com endereço global 00000h 
e o último chip possui a última palavra com endereço global 5FFFFh. Qual é o endereço global (no barramento de endereços) 
da última palavrado segundo chip? 
 
5FFFFh = 393215d 
Tamanho = 393215d + 1 = 393216 
Tamanho do chip: 393216 / 4 = 98304 
2 chips: 98304 * 2 = 196608 
Última posição: 196608-1 =196607d 
196607d = 2FFFFh 
P1 – Micrprocessadores – Prof. Marco Aurélio Seluque Fregonezi – 27/02/2013 
Gabarito 
Todas as questões referem‐se ao PIC16F877‐20/P e têm o mesmo peso. 
Algumas questões estão com um nível de explicação aprofundado para fins didáticos, não tendo sido exigido 
tal aprofundamento na avaliação. 
 
1) O Program Counter possui 13 bits (bit0 a bit12) e é referenciado pelos registradores PCL (low) e PCH (high). 
O PCL é acessível, porém o PCH não. O registrador PCLATH possui 5 bits (bit0 a bit4) e é acessível; ele é copia‐
do para o PCH nas instruções de desvio ou quando se acessa o PCL. No caso de desvio (CALL e GOTO), a instru‐
ção recebe, como argumento, uma constante de 11 bits (bit0 a bit10). Quais são os bits de PCLATH enviados 
ao PCH nas instruções CALL e GOTO? 
Bits 3 e 4. 
Vide apostila 06‐IDE slides 85 a 89 versão 25/04/2013. 
 
2) Explique o erro no programa abaixo: 
#include <p16f877.inc> 
org 0x5 
#define ondecadê1 0x20 
bcf STATUS, RP1 
bcf STATUS, RP0 
movf 0xBE, W 
movwf ondecadê 
#undefine ondecadê 
end 
 
A instrução MOVF usa, como endereço, BE16 = 0101111112, o que significa que RP1=0 e RP0=1 e isto requer o 
comando bsf STATUS, RP0. Trata‐se de um erro de endereçamento. 
 
Houve um erro de digitação, onde era para constar “#define ondecadê 0x20”, ficou 
“#define ondecadê1 0x20”. Por esse motivo, quem considerou que o erro está na 
definição da variável, também acertou. 
 
3) Algumas instruções enquadram‐se na categoria 2TCY. O que é 2TCY? 
É a categoria de instruções que requerem, na execução, dois ciclos de instrução (two instruction‐cycle period). 
Cada ciclo de instrução usa 4 ciclos de clock. O termo genérico “ciclo” se refere, por padrão, ao relógio, pois é 
o período que serve de referência para os demais temporizadores (exceto WDT). Como existem dois tipos de 
ciclo (de instrução e de clock), a resposta sem essa especificação vale metade, pois subentende‐se tratar‐se do 
relógio. 
 
4) A  instrução RETURN requer que uma outra  instrução  tenha sido executada em algum momento anterior. 
Que instrução é essa? Explique qual problema acontece se essa condição não for respeitada. 
Todo RETURN está associado a um CALL. O CALL faz o push no stack, o RETURN faz o pop. Para cada push, deve 
haver um pop. Se houver um RETURN sem CALL, haverá um pop sem push, o que provoca um stack underflow. 
Vide apostila 06‐IDE slides 80, 92 e 93 versão 25/04/2013. 
 
5) Explique por que motivo o decaimento da  frequência de  relógio  (clock) não  faz com que o WDT demore 
mais para gerar um reset ou um wake‐up? 
Para segurança, o WDT possui relógio próprio, configurável. O oscilador do WDT é do tipo RC. O WDT prosse‐
gue a contagem mesmo durante o modo sleep. 
Vide apostila 07‐Recursos slide 74 versão 25/04/2013. 
Marco Aurelio
Callout
file só pode ter 7 bits na instrução
 
6) Explique a função dos pinos VREF+ e VREF‐. 
São as  tensões de  referência para o conversor AD. Todo conversor AD  requer uma  referência para  tensões 
mínima (ADRES=00016) e máxima (ADRES=3FF16). Por default, esses valores são VSS e VDD, que assumem níveis 
TTL  (0V e 5V,  respectivamente, comentados na última aula). Caso sejam necessários valores diferentes,  tais 
níveis de tensão devem ser aplicados às entradas VREF‐ e VREF+, respectivamente. É preciso respeitar a faixa 
de tensões toleradapelo chip (ver datasheet). Se essas entradas forem usadas, duas entradas analógicas são 
perdidas. Todas entradas analógicas  (8 no máximo) usam as mesmas tensões de referência. 
Vide apostila 07‐Recursos slides 45 a49 versão 25/04/2013. 
 
7) O TRM2 pode ser usado como um gerador de onda dente‐de‐serra com frequência configurável por meio do 
registrador PR2. Supondo que a frequência mínima é de 19,5kHz , qual deve ser o valor de PR2 para que esta 
frequência seja de 35kHz? Usar arredondamento segundo norma ABNT. 
Vide apostila 07‐Recursos slides 113 a 116 versão 25/04/2013. 
 
 
Como não se falou em prescaler nem postscaler, esses valores não são alterados, são os mesmos para 19,5kHz 
e para 35kHz. Altera‐se, apenas, o PR2. 
É mais conveniente lidar‐se com períodos ao invés de frequências. 
fMIN = 19,5kHz    TMÁX = 51,28s. 
f2    = 35kHz    T2     = 28,57s. 
TMR2 conta de 00h até o valor de PR2 (slide 121) 
A quantidade de passos de contagem de TMR2 é PR2 + 1. 
Para PR2+1 = 1,  TMR2 tem 1 passo    TMÍN. 
Para PR2+1 = 256,  TMR2 tem 256 passos    TMÁX = 51,28s. 
Para PR2+1 = X,  TMR2 tem X passos    TMÁX = 28,57s. 
Regra de três: 
256    51,28 
X    28,57 
X = 142,6 
PR2+1 = 142,6 
PR2 = 141,6 
Arredondando para o inteiro mais próximo: 
PR2 = 142d  ou  PR2 = 8Eh 
P1 – Micrprocessadores – Engenharia de Telecomunicações – Prof. Marco Aurélio S. Fregonezi – 08/07/2013 
Gabarito 
 
Uma ULA de um processador hipotético trabalha com palavras de 16 bits, e usa operações  lógicas bit‐a‐bit, sobre pala‐
vras, sobre bit em palavras e aritméticas, de uma e duas entradas. A ULA fornece quatro bits de sinalização, obtidos com 
o  resultado da última operação  realizada. Uma entrada de dados vem do acumulador, a outra entrada é multiplexada 
com a outra entrada de dados, vinda do data bus e a palavra de decodificação da instrução, selecionados por meio de um 
bit. Quantos são, ao todo, os bits usados pela ULA em um determinado instante? 
(3  16) + 4 = 52 
 
Explique porque, para um determinado programa construído em linguagem de montagem (assembler) para um controla‐
dor/processador RISC, o tamanho do programa montado (em bits) não difere muito do tamanho do programa montado 
por meio de um assembler para um controlador/processador CISC com similar capacidade de processamento. 
RISC: Muitas linhas de programa com pequeno opcode por linha. 
CISC: Poucas linhas de programa com grande opcode por linha. 
O produto das linhas pela quantidade de bits por opcode é parecido nos dois casos. 
 
PIC16F877-20/P – No endereço 18C3h da program memory, é executado um comando CALL. As próximas 5 instru‐
ções são todas do tipo 1TCY, após as quais é realizado um RETURN. Qual é o valor do PCL, na forma hexadecimal? 
PC+1 = 18C3h + 1 = 18C4h. 
PCL = C4h. 
 
Utilize um MUX para transformar várias ROM 2k8bits em uma ROM 8k8bits. Empregue a letra “A” para nomear todos 
os bits usados para o endereçamento, começando pelo índice 0 no bit menos significativo. 
  
Um banco de memórias é formado por uma memória de 1,5k palavras e outra memória de 2,75k palavras, selecionadas 
por meio de um bit. Determine as faixas de endereços proibidos, por meio do primeiro e último valor da faixa, na forma 
hexadecimal, usando todos os bits do barramento de endereço e todos os nibbles. 
1,5k:  0600h a 0FFFh 
2,75k:  1B00h a 1FFFh 
P1 – Micrprocessadores – Engenharia de Mecatrônica – Prof. Marco Aurélio Seluque Fregonezi – 10/07/2013 
Gabarito 
 
Um microcontrolador hipotético possui a memória de  registradores  (file  registers) de 2048 posições, dividida em oito 
bancos. O opcode é formado por dois bits (mais significativos) que indicam a família de instruções (conjunto de instruções 
agrupadas por similaridade). Em uma dessas famílias, o opcode é formado pelos bits identificadores da família, pelos bits 
identificadores do registrador escolhido usando endereçamento direto, e pelos bits  identificadores da operação dentro 
desta  família, que  são 32. Não há nenhuma  irrelevância  (X) em nenhum opcode desta  família de  instruções. Todas as 
famílias possuem opcode de igual tamanho. Quantos são os bits de opcode para este microcontrolador? 
2048 posições: 11 bits 
8 bancos: 3 bits 
Bits por banco: 11 – 3 = 8 
Outra forma: 2048 / 8 = 256 posições  8 bits 
Família: 2 bits 
32 operações em uma família: 5 bits 
Opcode: 2 + 5 + 8 = 15 bits 
 
Explique o motivo que justifica o uso de uma memória flash e o motivo que justifica o uso de uma EEPROM como parte 
integrante da PIC16F877-20/P. 
A flash possui uma densidade maior do que a EEPROM, sendo indicada para o armazenamento do programa, cujos requi‐
sitos de capacidade de armazenamento podem ser grandes. A memória densa ocupa pouco espaço no chip, reduzindo 
seu custo de fabricação. Como não é comum a gravação da memória de programa durante a execução do programa, sua 
morosidade só é um problema durante a programação do chip. 
A EEPROM possui uma rapidez de acesso bem maior do que a flash, principalmente na gravação, indicada quando o pro‐
grama precisa realizar constantes gravações em uma memória não volátil. Como a capacidade de armazenamento para 
esta finalidade não precisa ser grande, a baixa densidade da EEPROM não é um problema. 
  
Um pendrive possui uma  capacidade de armazenamento de 1,5MB  comerciais. Seu barramento de endereço possui a 
quantidade mínima de bits suficiente para endereçar todas as palavras. Determine a  faixa de endereços proibidos, por 
meio do primeiro e último valor, na forma hexadecimal. 
Primeiro endereço proibido = 1,51000^2 = 16E360h 
Último endereço proibido = 1FFFFFh 
 
Uma ULA de 4 bits de 32 funções de uma ou duas entradas é implementada em uma PROM GA AND‐OR, na qual a matriz 
de entrada consiste do decodificador completo de todos os bits de entrada. Neste circuito, não é feita a transformação 
tudo NAND ou tudo NOR. Não há bits de saída de sinalização nem de entrada de controle. Diga quantas são as portas 
NOT, AND e OR, e quantas entradas as portas AND e OR possuem. 
Bits de entrada: 4 + 4 + 5 = 13 
NOT: 13 portas 
2^13 = 8192 
AND: 8192 portas de 13 entradas. 
Bits de saída: 4 
OR: 4 portas de 8192 entradas. 
 
Uma memória de programa de um processador hipotético é dividida em oito páginas e usa opcode de 20 bits. Se cada 
página utiliza 8 bits de endereçamento, determine o tamanho da memória em bytes (se necessário, utilize o prefixo ade‐
quado). 
8 + 3 = 11 bits de endereço. 
 (2^11)20 bits = 40960 bits 
40960 bits / 8 = 5120 bytes 
5120 bytes / 1024 = 5k bytes 
 
P2 – Micrprocessadores – Engenharia de Telecomunicações – Prof. Marco Aurélio Seluque Fregonezi – 02/09/2013 
Gabarito 
SUBWF 00 0010 dfff ffff 
DECF 00 0011 dfff ffff 
IORWF 00 0100 dfff ffff 
ANDWF 00 0101 dfff ffff 
XORWF 00 0110 dfff ffff 
ADDWF 00 0111 dfff ffff 
MOVF 00 1000 dfff ffff 
COMF 00 1001 dfff ffff 
INCF 00 1010 dfff ffff 
DECFSZ 00 1011 dfff ffff 
RRF 00 1100 dfff ffff 
RLF 00 1101 dfff ffff 
SWAPF 00 1110 dfff ffff 
INCFSZ 00 1111 dfff ffff 
NOP 00 0000 0xx0 0000 
MOVWF 00 0000 1fff ffff 
CLRW 00 0001 0xxx xxxx 
CLRF 00 0001 1fff ffff 
BCF 01 00bb bfff ffff 
BSF 01 01bb bfff ffff 
BTFSC 01 10bb bfff ffff 
BTFSS 01 11bb bfff ffff 
MOVLW 11 00xx kkkk kkkk 
RETLW 11 01xx kkkk kkkk 
IORLW 11 1000 kkkk kkkk 
ANDLW 11 1001 kkkk kkkk 
XORLW 11 1010 kkkk kkkk 
SUBLW 11 110x kkkk kkkk 
ADDLW 11 111x kkkk kkkk 
RETURN 00 0000 0000 1000 
RETFIE 00 0000 0000 1001 
SLEEP 00 0000 0110 0011 
CLRWDT 00 0000 0110 0100 
CALL 10 0kkk kkkk kkkk 
GOTO 10 1kkk kkkk Kkkk 
 
INDF 000 INDF 080 INDF 100 INDF 180 
TMR0 001 OPTION_REG 081 TMR0 101 OPTION_REG 181 
PCL 002 PCL 082 PCL 102 PCL 182 
STATUS 003 STATUS 083 STATUS 103 STATUS 183 
FSR 004 FSR 084 FSR 104 FSR 184 
PORTA 005 TRISA 085 105 185 
PORTB 006 TRISB 086 PORTB 106 TRISB 186 
PORTC 007 TRISC 087 107 187 
PORTD 008 TRISD 088 108 188 
PORTE 009TRISE 089 109 189 
PCLATH 00A PCLATH 08A PCLATH 10A PCLATH 18A 
INTCON 00B INTCON 08B INTCON 10B INTCON 18B 
PIR1 00C PIE1 08C EEDATA 10C EECON1 18C 
PIR2 00D PIE2 08D EEADR 10D EECON2 18D 
TMR1L 00E PCON 08E EEDATH 10E 18E 
TMR1H 00F 08F EEADRH 10F 18F 
T1CON 010 090 
TMR2 011 SSPCON2 091 
T2CON 012 PR2 092 
SSPBUF 013 SSPADD 093 
SSPCON 014 SSPSTAT 094 
CCPR1L 015 095 
CCPR1H 016 096 
CCP1CON 017 097 
RCSTA 018 TXSTA 098 
TXREG 019 SPBRG 099 
RCREG 01A 09A 
CCPR2L 01B 09B 
CCPR2H 01C 09C 
CCP2CON 01D 09D 
ADRESH 01E ADRESL 09E 
ADCON0 01F ADCON1 09F 
 
1 – PIC16F877 – Preencha, entre parênteses, “C” caso o módulo pertença ao 
núcleo (core) ou “P” se for um periférico. 
(C) WDT watchdog timer 
(P) TMR0 timer 0 
(P) TMR1 timer 1 
(P) TMR2 timer 2 
(P) A/D converter 
(P) CCPx   capture‐compare‐PWM 
(C) ALU arithmetic logic unit 
(P) EEPROM memory 
(C) FLASH memory 
(P) USART serial 
(C) STACK 
(C) SFR special function registers 
(P) GPR general purpose registers 
(C) WREG work register 
(P) ICD in‐circuit debugger 
(P) LVP low‐voltage programming 
2 – PIC16F877 – Diga quais são as  instruções do tipo 
2TCY. 
BTFSC, BTFSS, DECFSZ, INCFSZ, CALL, 
GOTO, RETURN, RETLW, RETFIE 
 
3 – PIC16F877 – Diga qual  instrução  (incluindo argu‐
mento), na sintaxe do MPASM, vale por dois NOP’s se‐
guidos. 
GOTO $+1 
 
4 – Escreva o código disassembly para o programa abaixo, sabendo que RP1=STATUS<6>, RP0=STATUS<5>, WR=EECON1<1>. Es‐
pecifique a linha da program memory. 
; Programa da P2 
 #include <p16f877.inc> 
 org 0x5 
 #define ondecadê 0x05 ;endereço da EEPROM 
 #define marqualrélio 0xca ;dado para a EEPROM 
;Verifica se está em processo de escrita 
 BSF STATUS, RP1 
 BSF STATUS, RP0 
 BTFSC EECON1, WR 
 GOTO $-1 
 MOVLW ondecadê ;W = ondecadê1 
 MOVWF EEADR ;SRAM(EEADR) = W 
 MOVLW marqualrélio ;W = marqualrélio 
 MOVWF EEDATA ;SRAM(EEDATA) = W 
 #undefine ondecadê 
 #undefine marqualrélio 
 end 
 
 
0005 BSF 0x3, 0x6 
0006 BSF 0x3, 0x5 
0007 BTFSC 0xc, 0x1 
0008 GOTO 0x7 
0009 MOVLW 0x5 
000A MOVWF 0xd 
000B MOVLW 0xca 
000C MOVWF 0xc 
5 – PIC16F877 – Um conversor A/D de 10 bits foi configurado para que o valor mínimo da palavra binária de 10 bits 
esteja atribuído à tensão de 3V e o valor máximo a 23V. O bit ADFM (A/D Result Format Select Bit) (ADCON1<7>) foi con‐
figurado para  right  justified  (ADFM=1). A  fim de aumentar a  rapidez do processamento, descarta‐se ADRESH usando, 
apenas, ADRESL. Qual o máximo valor de tensão que este conversor A/D pode receber? 
Forma 1: 
Faixa configurada: 23V – 3V = 20V 
Nível quântico: 20V/1023 = 19,55mV 
ADRESL: 8 bits 
Palavra máxima de 8 bits: 11111111b = FFh = 255d 
Fazendo VREF‐ = 0V: 
V = 25519,55mV = 4,9853V 
Fazendo VREF‐ = 3V: 
V = 4,9853V+3V = 7,9853V 
Forma 2: 
Faixa configurada: 23V – 3V = 20V 
Fazendo VREF‐ = 0V: 
VREF+ = 20V 
102320V 
255V 
V = 4,9853V 
Fazendo VREF‐ = 3V: 
V = 4,9853V+3V = 7,9853V 
Marco Aurelio
Text Box
Estude o gabarito antes de procurar o professor.
P2 – Micrprocessadores – Engenharia Mecatrônica – Prof. Marco Aurélio Seluque Fregonezi – 04/09/2013 
Gabarito
SUBWF 00 0010 dfff ffff 
DECF 00 0011 dfff ffff 
IORWF 00 0100 dfff ffff 
ANDWF 00 0101 dfff ffff 
XORWF 00 0110 dfff ffff 
ADDWF 00 0111 dfff ffff 
MOVF 00 1000 dfff ffff 
COMF 00 1001 dfff ffff 
INCF 00 1010 dfff ffff 
DECFSZ 00 1011 dfff ffff 
RRF 00 1100 dfff ffff 
RLF 00 1101 dfff ffff 
SWAPF 00 1110 dfff ffff 
INCFSZ 00 1111 dfff ffff 
NOP 00 0000 0xx0 0000 
MOVWF 00 0000 1fff ffff 
CLRW 00 0001 0xxx xxxx 
CLRF 00 0001 1fff ffff 
BCF 01 00bb bfff ffff 
BSF 01 01bb bfff ffff 
BTFSC 01 10bb bfff ffff 
BTFSS 01 11bb bfff ffff 
MOVLW 11 00xx kkkk kkkk 
RETLW 11 01xx kkkk kkkk 
IORLW 11 1000 kkkk kkkk 
ANDLW 11 1001 kkkk kkkk 
XORLW 11 1010 kkkk kkkk 
SUBLW 11 110x kkkk kkkk 
ADDLW 11 111x kkkk kkkk 
RETURN 00 0000 0000 1000 
RETFIE 00 0000 0000 1001 
SLEEP 00 0000 0110 0011 
CLRWDT 00 0000 0110 0100 
CALL 10 0kkk kkkk kkkk 
GOTO 10 1kkk kkkk Kkkk 
 
INDF 000 INDF 080 INDF 100 INDF 180 
TMR0 001 OPTION_REG 081 TMR0 101 OPTION_REG 181 
PCL 002 PCL 082 PCL 102 PCL 182 
STATUS 003 STATUS 083 STATUS 103 STATUS 183 
FSR 004 FSR 084 FSR 104 FSR 184 
PORTA 005 TRISA 085 105 185 
PORTB 006 TRISB 086 PORTB 106 TRISB 186 
PORTC 007 TRISC 087 107 187 
PORTD 008 TRISD 088 108 188 
PORTE 009 TRISE 089 109 189 
PCLATH 00A PCLATH 08A PCLATH 10A PCLATH 18A 
INTCON 00B INTCON 08B INTCON 10B INTCON 18B 
PIR1 00C PIE1 08C EEDATA 10C EECON1 18C 
PIR2 00D PIE2 08D EEADR 10D EECON2 18D 
TMR1L 00E PCON 08E EEDATH 10E 18E 
TMR1H 00F 08F EEADRH 10F 18F 
T1CON 010 090 
TMR2 011 SSPCON2 091 
T2CON 012 PR2 092 
SSPBUF 013 SSPADD 093 
SSPCON 014 SSPSTAT 094 
CCPR1L 015 095 
CCPR1H 016 096 
CCP1CON 017 097 
RCSTA 018 TXSTA 098 
TXREG 019 SPBRG 099 
RCREG 01A 09A 
CCPR2L 01B 09B 
CCPR2H 01C 09C 
CCP2CON 01D 09D 
ADRESH 01E ADRESL 09E 
ADCON0 01F ADCON1 09F 
 
1 – PIC16F877 – Qual a instrução (e argumentos) do opcode 3800h? Qual o opcode da instrução BTFSC 0xc, 0x1? 
IORLW 0x0 
188C 
 
2 – PIC16F877 – Um sistema de controle de uma máquina recebe uma informação analógica de um sensor, aplica uma 
função de controle por meio da MCU e gera um sinal controlado para a máquina. 10 bits são usados como palavra na 
função de controle. Qual é o bloco da PIC que recebe a informação vinda do sensor e qual o bloco que envia a informação 
para o atuador? 
Recebimento da informação do sensor: Conversor A/D. 
Envio da informação para o atuador: PWM. 
 
3 – O que é um WDT time‐out? Para que ele serve? O que ocorre com a MCU após o WDT time‐out? 
É o overflow do WDT. Serve para evitar travamentos. Após o WDT time‐out, ocorre um WDT reset. 
 
4 – O que é um contador prescaler? Para que serve? Como ele pode ser construído? 
É o acréscimo de bits menos significativos a outro contador, tornando‐o mais lento. 
Um contador que tem por função tornar mais lento o passo de contagem de outro contador. 
Pode ser construído com FF’s, ligando o bit de saída mais significativo à entrada de relógio do outro contador. 
 
5 – PIC16F877 – Módulo CCP1, função PWM. PR2 = 30h. DC = 34h. Qual a máxima resolução do PWM, em bits? Qual o 
valor do dutty‐cycle, em porcentagem? 
 
TMR2 conta de 00h a PR2. 
TMR2 conta de 00h a 30h (48d) (110000b). 
TMR2 usa apenas 6 bits (de 8). 
DC usa 6 + 2 = 8 bits (de 10). 
 
bits. 10 de DC do valor último o é Este
19510
110148
1024256
11018
1024256
108
108
passos
usados
passos
usados
passos
totais
passos
totais
dbitx
bitx
bitxbitx
dd
bitsbits
bitsbits



















 
%53,26
52
%1001195
DC
%100DC
passos
1 em
passos
totais













cycledutty
cycledutty
cycledutty  
 
Marco Aurelio
Text Box
Estude o gabarito antes de procurar o professor.
P3 – Micrprocessadores – Engenharia de Telecomunicações – Prof. Marco Aurélio Seluque Fregonezi – 09/09/2013 
Gabarito 
SUBWF 00 0010 dfff ffff 
DECF 00 0011 dfff ffff 
IORWF 00 0100 dfff ffff 
ANDWF 00 0101 dfff ffff 
XORWF 00 0110 dfff ffff 
ADDWF 00 0111 dfff ffff 
MOVF 00 1000 dfff ffff 
COMF 00 1001 dfff ffff 
INCF 00 1010 dfff ffff 
DECFSZ 00 1011 dfff ffff 
RRF 00 1100 dfff ffff 
RLF 00 1101 dfff ffff 
SWAPF 00 1110 dfff ffff 
INCFSZ 00 1111 dfff ffff 
NOP 00 0000 0xx0 0000 
MOVWF 00 0000 1fff ffff 
CLRW 00 0001 0xxx xxxx 
CLRF 00 0001 1fff ffff 
BCF 01 00bb bfff ffff 
BSF 01 01bb bfff ffff 
BTFSC 01 10bb bfff ffff 
BTFSS 01 11bb bfff ffff 
MOVLW 11 00xx kkkk kkkk 
RETLW 11 01xx kkkk kkkk 
IORLW 11 1000kkkk kkkk 
ANDLW 11 1001 kkkk kkkk 
XORLW 11 1010 kkkk kkkk 
SUBLW 11 110x kkkk kkkk 
ADDLW 11 111x kkkk kkkk 
RETURN 00 0000 0000 1000 
RETFIE 00 0000 0000 1001 
SLEEP 00 0000 0110 0011 
CLRWDT 00 0000 0110 0100 
CALL 10 0kkk kkkk kkkk 
GOTO 10 1kkk kkkk Kkkk 
 
INDF 000 INDF 080 INDF 100 INDF 180 
TMR0 001 OPTION_REG 081 TMR0 101 OPTION_REG 181 
PCL 002 PCL 082 PCL 102 PCL 182 
STATUS 003 STATUS 083 STATUS 103 STATUS 183 
FSR 004 FSR 084 FSR 104 FSR 184 
PORTA 005 TRISA 085 105 185 
PORTB 006 TRISB 086 PORTB 106 TRISB 186 
PORTC 007 TRISC 087 107 187 
PORTD 008 TRISD 088 108 188 
PORTE 009 TRISE 089 109 189 
PCLATH 00A PCLATH 08A PCLATH 10A PCLATH 18A 
INTCON 00B INTCON 08B INTCON 10B INTCON 18B 
PIR1 00C PIE1 08C EEDATA 10C EECON1 18C 
PIR2 00D PIE2 08D EEADR 10D EECON2 18D 
TMR1L 00E PCON 08E EEDATH 10E 18E 
TMR1H 00F 08F EEADRH 10F 18F 
T1CON 010 090 
TMR2 011 SSPCON2 091 
T2CON 012 PR2 092 
SSPBUF 013 SSPADD 093 
SSPCON 014 SSPSTAT 094 
CCPR1L 015 095 
CCPR1H 016 096 
CCP1CON 017 097 
RCSTA 018 TXSTA 098 
TXREG 019 SPBRG 099 
RCREG 01A 09A 
CCPR2L 01B 09B 
CCPR2H 01C 09C 
CCP2CON 01D 09D 
ADRESH 01E ADRESL 09E 
ADCON0 01F ADCON1 09F 
 
1 – PIC16F877 – A frequência de operação da MCU é de 16MHz. O TMR1 prescaler está configurado para 1:8.  TMR1 
está  configurado  para  ser  um  temporizador,  T1CON<1>, TMR1CS=0.  No  presente  momento,  TMR1L=3Bh, 
TMR1H=19h.  As  interrupções  estão  habilitadas.  Em  quanto  tempo,  após  o  presente  momento,  será  acionada  a 
interrupção de overflow de TMR1 TMR1IF? 
TMR1 = 193Bh 
TMR1máximo = FFFFh 
TMR1overflow = FFFFh + 1 = (1)0000h 
Passos até TMR1overflow = 10000h – 193Bh = E6C5h 
Tosc por TCY: 4 
TCY por passo: 8 
Tosc por passo: 8*4 = 32 
Tosc = 1/16MHz = 62,5ns 
Tempo por passo: 62,5ns*32 = 2µs 
Tempo: 2µs*59077 = 118,154ms. 
 
2 –Explique qual a função de um buffer em uma entrada digital. Explique qual função especial tem um buffer Schimitt 
Trigger em uma entrada digital. 
O  buffer  serve  para  ajustar  os  níveis  de  tensão  e  corrente  aplicados  à  entrada  para  os  níveis  aceitos  pelo 
circuito digital, bem como fazer o casamento de impedâncias. 
O  buffer  Schimitt  Trigger  apresenta  uma  histerese  que  filtra  oscilações  de  alta  frequência  na  entrada, 
protegendo o circuito contra superaquecimento, disparos indesejados e outros problemas. 
 
3 – PIC16F877 – Sabendo que PR2=FFh, dutty‐cycle = 1/5 aproximadamente, determine os valores de CCPR1L e de 
CCP1CON<5:4> na forma hexadecimal. 
PR2 de 10 bits vai de 0d a 1023d. 
Passos totais: 1024 
1024/5 = 204,8  205 passos. 
A saída PWM vale “1” quando PR2 de 10 bits está entre 0d e 204d (205 passos). 
Quando PR2 de 10 bits atinge 205d, a saída PWM vai a zero. 
205d = 0011001101b (10 bits). 
CCPR1L = 00110011b = 33h (os 8 bits mais significativos). 
 
4 – Desenhe o formato de onda típico de um oscilador RC. 
 
 
 
5 – PIC16F877 – Faça um círculo sobre o(s) erro(s) no programa abaixo. Faça um traço sobre a(s) linha(s) que pode(m) 
ser removidas sem alterar o resultado do programa a não ser pelos TCY’s da(s) linha(s) removida(s). 
; Programa da P3 
 #_include <p16f887.inc> 
 org 0x0 
 #define marqualrélio 0x45 
 #define operador 0xae 
 #define ondecadê 0xA0 
 CLRF ondecadê 
 MOVLW marqualrélio 
 MOVWF ondecadê 
 CLRF ondecadê+1 
 SUBLW operador 
 MOVWF ondecadê+1 
 #undefine marqualrélio 
 #undefine operador 
 #undefine ondecade 
 end. 
 
Erros
P3 – Micrprocessadores – Engenharia Mecatrônica – Prof. Marco Aurélio Seluque Fregonezi – 11/09/2013 
Gabarito 
SUBWF 00 0010 dfff ffff 
DECF 00 0011 dfff ffff 
IORWF 00 0100 dfff ffff 
ANDWF 00 0101 dfff ffff 
XORWF 00 0110 dfff ffff 
ADDWF 00 0111 dfff ffff 
MOVF 00 1000 dfff ffff 
COMF 00 1001 dfff ffff 
INCF 00 1010 dfff ffff 
DECFSZ 00 1011 dfff ffff 
RRF 00 1100 dfff ffff 
RLF 00 1101 dfff ffff 
SWAPF 00 1110 dfff ffff 
INCFSZ 00 1111 dfff ffff 
NOP 00 0000 0xx0 0000 
MOVWF 00 0000 1fff ffff 
CLRW 00 0001 0xxx xxxx 
CLRF 00 0001 1fff ffff 
BCF 01 00bb bfff ffff 
BSF 01 01bb bfff ffff 
BTFSC 01 10bb bfff ffff 
BTFSS 01 11bb bfff ffff 
MOVLW 11 00xx kkkk kkkk 
RETLW 11 01xx kkkk kkkk 
IORLW 11 1000 kkkk kkkk 
ANDLW 11 1001 kkkk kkkk 
XORLW 11 1010 kkkk kkkk 
SUBLW 11 110x kkkk kkkk 
ADDLW 11 111x kkkk kkkk 
RETURN 00 0000 0000 1000 
RETFIE 00 0000 0000 1001 
SLEEP 00 0000 0110 0011 
CLRWDT 00 0000 0110 0100 
CALL 10 0kkk kkkk kkkk 
GOTO 10 1kkk kkkk Kkkk 
 
INDF 000 INDF 080 INDF 100 INDF 180 
TMR0 001 OPTION_REG 081 TMR0 101 OPTION_REG 181 
PCL 002 PCL 082 PCL 102 PCL 182 
STATUS 003 STATUS 083 STATUS 103 STATUS 183 
FSR 004 FSR 084 FSR 104 FSR 184 
PORTA 005 TRISA 085 105 185 
PORTB 006 TRISB 086 PORTB 106 TRISB 186 
PORTC 007 TRISC 087 107 187 
PORTD 008 TRISD 088 108 188 
PORTE 009 TRISE 089 109 189 
PCLATH 00A PCLATH 08A PCLATH 10A PCLATH 18A 
INTCON 00B INTCON 08B INTCON 10B INTCON 18B 
PIR1 00C PIE1 08C EEDATA 10C EECON1 18C 
PIR2 00D PIE2 08D EEADR 10D EECON2 18D 
TMR1L 00E PCON 08E EEDATH 10E 18E 
TMR1H 00F 08F EEADRH 10F 18F 
T1CON 010 090 
TMR2 011 SSPCON2 091 
T2CON 012 PR2 092 
SSPBUF 013 SSPADD 093 
SSPCON 014 SSPSTAT 094 
CCPR1L 015 095 
CCPR1H 016 096 
CCP1CON 017 097 
RCSTA 018 TXSTA 098 
TXREG 019 SPBRG 099 
RCREG 01A 09A 
CCPR2L 01B 09B 
CCPR2H 01C 09C 
CCP2CON 01D 09D 
ADRESH 01E ADRESL 09E 
ADCON0 01F ADCON1 09F 
 
1 – PIC16F877 – A frequência de operação da MCU é de 16MHz. O TMR0 prescaler está configurado para 1:8.  TMR0 
está configurado para ser um temporizador, Option_Reg<5>, T0CS=0. No presente momento, TMR0 acabou de ser 
reiniciado. As interrupções estão habilitadas. Em quanto tempo, após o presente momento, será acionada a interrupção 
de overflow de TMR0 TMR0IF? 
TMR0 = 00h 
TMR0máximo = FFh 
TMR0overflow = FFh + 1 = (1)00h 
Passos até TMR0overflow = 100h (de 000h até 100h) 
TCY por passo: 8 
Tosc por passo: 8*4 = 32 
Tosc = 1/16MHz = 62,5ns 
Tempo por passo: 62,5ns*32 = 2µs 
Tempo: 2µs*100h = 512µs. 
 
2 –Explique qual a  função de um  resistor de pull‐up. Como um  transistor pode agir como uma resistência ativa? 
Como um transistor pode operar como um resistor de pull‐up habilitável? 
O  resistor de pull‐up  impede o  surgimento de uma  alta  impedância  em um nó do  circuito,  levando o  estado de  alta 
impedância para o nível alto. Um transistor pode agir como uma resistência ativa quando RDS ou RCE é usado como um 
resistor. A resistência ativa pode agir como um pull‐up habilitável por meio de VGS ou VBE, que alteram o valor de RDS ou 
RCE. 
 
3 – PIC16F877 – Sabendo que VREF+=5V, VREF‐=0V, VAN=3V, left justified, determine os valores de ADRESH e de ADRESL 
na forma hexadecimal. 
3FFh  VREF+ 
x   V 
1023   5V 
x   3V 
x=613,8 
Outra forma: 
VMÍN = 5V/1023 = 4,8876 
x = 3V/4,8876V = 613,8 
 
x614d=266h 
x=10011001_10b 
ADRESH=10011001b = 99h 
ADRESH=10000000b = 80h 
 
4 – PIC16F877 – Explique o significado do valor zero e do valor um no bit EEIF e como esses valores são alterados. 
Zero: Não houve uma escrita bem sucedida na EEPROM ou na FLASH. 
Um: Houve uma escrita bem sucedida na EEPROM ou na FLASH. 
De zero para um: Feito automaticamente pela PIC, não pode ser feito pelo usuário. 
De um para zero: Feito pelo usuário, para que se possa identificar uma nova escrita bem sucedida. 
5 – PIC16F877 –  Identifique os endereços dos  registradores de uso geral envolvidos no programa abaixo, na  forma 
hexadecimal, bem como seus respectivos valores após a execução do programa, na forma hexadecimal. 
; Programa da P3 
 #include <p16f877.inc> 
 org 0x5 
 #define dado1 0x1 
 #define dado2 0x2 
 #define dado3 0x4 
 #define ondecadê1 0x31 
 #define ondecadê2 0x32 
 #define ondecadê3 0x33BSF STATUS,RP1 
 BCF STATUS,RP0 
 MOVLW dado1 
 MOVWF ondecadê1 
 ADDLW dado2 
 MOVWF ondecadê2 
 IORLW dado3 
 MOVWF ondecadê3 
 #undefine dado1 
 #undefine dado2 
 #undefine dado3 
 #undefine ondecadê1 
 #undefine ondecadê2 
 #undefine ondecadê3 
 end 
 
Endereços Valores 
131h 1h 
132h 3h (1h + 2h) 
133h 7h (3h OR 4h = 11b OR 100b = 111b = 7h) 
	Gabarito_P1_2012_S1
	Gabarito_P2_2012_S1
	Gabarito_P3_2012_S1
	Gabarito_P1_2012_S2
	Gabarito_P2_2012_S2
	Gabarito_P1_2013_S1
	Gabarito_P2_2013_S1
	Gabarito_P3_2013_S1

Outros materiais