Eletrônica Embarcada
Atividade 08
Prof. Guillermo Alvarez Bestard, Dr.
guillermo@[Link]
Tópicos
• Programação em assembly de desvios do fluxo de programa, sub-
rotinas e tabelas look-up.
Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]
Literatura recomendada
• PICmicro Mid-Range MCU Family Reference Manual. Tópico 6.2
[Link]
• Implementing a Table Read (AN556)
[Link]
• PIC16F882/883/884/886/887 Data Sheet,
[Link]
f
• PIC16(L)F1826/27 18/20/28-Pin Flash MCU with nanoWatt XLP.
[Link]
Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]
Exemplo 1
Utilizando um
PIC16F887
implemente um
somador de 8 bits
com resto
conforme o
esquemático.
Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]
Exemplo 1
Crie sub-rotinas para somar e restar dois
valores de 8 bits com sinal, obtidos das
portas B e D.
A seleção da operação a ser realizada vai
depender do estado do pino RE1, sendo ‘0’
para soma e ‘1’ para subtração.
O resultado deve ser exibido na porta C. Os
bits 6-0 vão exibir o valor absoluto. Utilize
complemento a dois para obter o valor
absoluto se o número for negativo.
O sinal será exibido no bit 7 da porta C,
ficando ligado para números negativos.
O resto, se existir, deve ser exibido em RE0.
O programa principal deve estar localizado
no endereço 0x100 e as sub-rotinas a partir
do endereço 0x800.
Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]
Exemplo 2 Posição Letra Número Posição Letra Número
Utilizando o circuito do 0 A 0x3F 13 N 0x32
exemplo anterior e tabelas 1 B 0x56 14 O 0xA5
lookup, desenvolva um 2 C 0xA2 15 P 0x12
algoritmo para criptografar 3 D 0x78 16 Q 0xF4
um texto utilizando números 4 E 0x04 17 R 0x6A
inteiros, conforme a tabela a 5 F 0x90 18 S 0x1E
seguir. 6 G 0xB5 19 T 0x34
7 H 0x8C 20 U 0x64
A posição da letra será 8 I 0x91 21 V 0xF1
ingressada na porta B e o 9 J 0x45 22 W 0x7A
código numérico será exibido 10 K 0x02 23 X 0x2D
na porta C. 11 L 0x62 24 Y 0x1C
12 M 0x41 25 Z 0x39
Eletrônica Embarcada Prof. Guillermo Alvarez Bestard guillermo@[Link]