0% acharam este documento útil (0 voto)
5 visualizações5 páginas

Multiplicação em PIC16F887: Algoritmos e Armazenamento

Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
5 visualizações5 páginas

Multiplicação em PIC16F887: Algoritmos e Armazenamento

Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Eletrônica Embarcada

Test Point 2

Prof. Guillermo Alvarez Bestard, Dr.


guillermo@[Link]
Test Point 2

1. Num microcontrolador PIC16F887, desenvolva um sistema que


multiplique dois números inteiros positivos de 8 bits (a e b), definidos nas
portas B e D. A multiplicação deve ser feita por somas sucessivas.
O resultado, de 16 bits (c), será exibido nas portas A e C, sendo PORTA o
byte menos significativo (LSB) e PORTC o byte mais significativo (MSB),
conforme a imagem.
Considere que os operandos (a e b) podem ser zero. Evite o uso de
resistores externos sempre que seja possível.
a
PORTB c 𝑏−1

b X PORTC PORTA 𝑐 = ෍𝑎
cH cL 𝑖=0
PORTD

Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]


Test Point 2

2. No projeto anterior, implemente


um algoritmo de multiplicação por
deslocamento e soma, mantendo o
algoritmo de somas sucessivas. A
seleção do algoritmo que será
usado deve ser feita através do
pino RE0, mediante um interruptor
com pull-up, sendo “0” para o
método de somas sucessivas e “1”
para o método de deslocamento.
Durante a simulação, meça o
tempo que demora a multiplicação
em ambos métodos para as duplas
de valores 1x1 e 255x200. Compare
os resultados. [Link]

[Link]
e,linha%20em%20uma%20adi%C3%A7%C3%A3o%20bin%C3%A1ria.

Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]


Test Point 2

3. No sistema anterior, deseja-se guardar os operandos (a e b) e o


resultado (c) das últimas 80 operações, na memória do microcontrolador
utilizando um banco de memória para cada variável, conforme a tabela.
Considere cada volta no loop principal como uma operação.
Os dados da primeira operação se guardarão no endereço 20h de cada
banco. O segundo conjunto no 21h e assim por diante. Quando atingir o
endereço 6Fh, se reiniciará no endereço 20h, de forma que se apague
apenas a operação mais antiga, preservando o resto dos dados e
implementando uma lista circular ou FIFO (First In-First Out)
Banco
00 01 10 11
Endereço
20h a(0) b(0) cH(0) cL(0)
... ... ... ... ...
6Fh a(79) b(79) cH(79) cL(79)

Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]


Para usar o oscilador interno do micro e os pinos RA6 e RA7, deve ser colocada a
seguinte linha no início do arquivo ASM:
CONFIG FOSC = INTRC_NOCLKOUT ;

a) Desenhe o esquemático com todas as conexões necessárias para ambas


atividades (pode ser manuscrito). Utilize interruptores para as entradas digitais e
LEDs para as saídas digitais. Entregue um arquivo PDF com o esquemático.
b) Simule e grave apenas um vídeo curto (5 minutos no máximo) explicando e
mostrando o código e a simulação das três atividades (1, 2 e 3 juntas). Para a
simulação, desenhe um conjunto de testes para mudar o valor das entradas no
inicio do “loop” utilizando o estímulo “Register Injection” cujo resultado atinga
valores de 8 e 16 bits.

Deve ser entregue um arquivo PDF com o esquemático, a pasta do projeto


compactada (um único projeto com as três atividades) e o link do vídeo da
simulação (pode ser postado em YouTube ou numa pasta no OneDriver).
Se o código estiver com erros e não compilar, se o vídeo não for entregue, ou for
detectado plágio, a nota será zerada automaticamente.
Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]

Você também pode gostar