Académique Documents
Professionnel Documents
Culture Documents
Relatrio 3 19/03/2010
Autor: Mateus Ricardo de Campos Soares RA: 083900 Turma : T
1.
Em anexo no final do relatrio
2.
Em anexo no final do relatrio
3.
No primeiro ciclo :
INICIO:
- Registrador de dados D1 = 8
- Registrador de dados D7 = 0
CICLO:
- O contedo do contedo do registrador de endereos A1 recebe o contedo de
D7 , no caso 0
- D0 recebe 0x000fffff
WAIT:
- D0 recebe 0x000fffff 1
- O processo continua at o contedo do registrador de dados D0 ser igual a 0.
- O contedo do registrador D1 , no caso 8 , comparado com o nmero 4 ,
como o contedo de D1 maior que quatro o programa pula para a flag ACENDE : .
ACENDE:
- O contedo de D7 deslocado um digito para a esquerda , como ele zero
nada mudado
- realizada uma operao or entre o contedo de D7 e o nmero 0x01 , e D7
recebe o resultado , no caso 0x01
CONT:
- realizada uma operao de subtrao entre o contedo de D1 , no caso 8 ,
e 1 , e ento D1 recebe o resultado , no caso 7.
- Como o contedo de D1 diferente de 0 o programa pula para a flag CICLO.
No segundo ciclo :
CICLO:
- O contedo do contedo do registrador de endereos A1 recebe o contedo de
D7 , no caso 0x01
- D0 recebe 0x000fffff
WAIT:
- D0 recebe 0x000fffff 1
- O processo continua at o contedo do registrador de dados D0 ser igual a 0.
- O contedo do registrador D1 , no caso 7 , comparado com o nmero 4 ,
como o contedo de D1 maior que quatro o programa pula para a flag ACENDE : .
ACENDE:
- O contedo de D7 deslocado um digito para a esquerda , de 0x01 muda
para 0x02.
- realizada uma operao or entre o contedo de D7 e o nmero 0x01 , e D7
recebe o resultado , no caso 0x03
CONT:
- realizada uma operao de subtrao entre o contedo de D1 , no caso 7 ,
e 1 , e ento D1 recebe o resultado , no caso 6.
- Como o contedo de D1 diferente de 0 o programa pula para a flag CICLO.
No terceiro ciclo :
CICLO:
- O contedo do contedo do registrador de endereos A1 recebe o contedo de
D7 , no caso 0x03
- D0 recebe 0x000fffff
WAIT:
- D0 recebe 0x000fffff 1
- O processo continua at o contedo do registrador de dados D0 ser igual a 0.
- O contedo do registrador D1 , no caso 6 , comparado com o nmero 4 ,
como o contedo de D1 maior que quatro o programa pula para a flag ACENDE : .
ACENDE:
- O contedo de D7 deslocado um digito para a esquerda , de 0x03 muda
para 0x06
- realizada uma operao or entre o contedo de D7 e o nmero 0x01 , e D7
recebe o resultado , no caso 0x07
CONT:
- realizada uma operao de subtrao entre o contedo de D1 , no caso 6 ,
e 1 , e ento D1 recebe o resultado , no caso 5.
- Como o contedo de D1 diferente de 0 o programa pula para a flag CICLO.
No quarto ciclo :
CICLO:
- O contedo do contedo do registrador de endereos A1 recebe o contedo de
D7 , no caso 0x07
- D0 recebe 0x000fffff
WAIT:
- D0 recebe 0x000fffff 1
- O processo continua at o contedo do registrador de dados D0 ser igual a 0.
- O contedo do registrador D1 , no caso 5 , comparado com o nmero 4 ,
como o contedo de D1 maior que quatro o programa pula para a flag ACENDE : .
ACENDE:
- O contedo de D7 deslocado um digito para a esquerda , de 0x07 muda
para 0x0E
- realizada uma operao or entre o contedo de D7 e o nmero 0x01 , e D7
recebe o resultado , no caso 0x0F
CONT:
- realizada uma operao de subtrao entre o contedo de D1 , no caso 5 ,
e 1 , e ento D1 recebe o resultado , no caso 4.
- Como o contedo de D1 diferente de 0 o programa pula para a flag CICLO.
No quinto ciclo :
CICLO:
- O contedo do contedo do registrador de endereos A1 recebe o contedo de
D7 , no caso 0x0F
- D0 recebe 0x000fffff
WAIT:
- D0 recebe 0x000fffff 1
- O processo continua at o contedo do registrador de dados D0 ser igual a 0.
- O contedo do registrador D1 , no caso 4 , comparado com o nmero 4 ,
como o contedo de D1 igual a 4 o programa pula direto para a flag CONT
CONT:
- Com o contedo de D1 menor ou igual a quatro o programa continua
realizando ciclos at que D1 seja igual a zero e o programa pule para a flag INICIO ,
reiniciando os ciclos.
4.
Cdigo em C e Assembly.
--------------------------
#include "support_common.h" /* include peripheral declarations and more */
#include <stdio.h>
#define DDRTC 0x40100027
#define PORTTC 0x4010000F
int main(){
asm
{
move.b #0x0f,D3
move.b D3, DDRTC
movea #PORTTC,A1
move #0,D7
move D7,(A1)
UM: jsr WAIT
move #0x00,D2
move #0x02,D3
move #0x01,D7
move.b D7,(A1)
jsr WAIT
move.b D2,(A1)
lsl #1,D7
DOIS: jsr WAIT
move.b D7,(A1)
jsr WAIT
move.b D2,(A1)
sub #0x01,D3
bne DOIS
move #0x03,D3
lsl #1,D7
TRES: jsr WAIT
move.b D7,(A1)
jsr WAIT
move.b D2,(A1)
sub #0x01,D3
bne TRES
move #0x04,D3
lsl #1,D7
QUATRO: jsr WAIT
move.b D7,(A1)
jsr WAIT
move.b D2,(A1)
sub #0x01,D3
bne QUATRO
bra UM
WAIT: move #0x00ffffff,D0
DELAY: sub #1,D0
bne DELAY
RTS
}
}
-----------------------------
5.
Para fazer com que haja a leitura de dados da memria no programa , de modo
que o perodo seja um dado definido na posio de memria 0x20000100 adicionamos
no programa o seguinte comando :
------------------
move 0x20000100,A0
move 0x00ffffff,D4
------------------
e modificamos a funo de atraso WAIT para :
----------------------------
WAIT: move D4,(A0)
DELAY: sub #1,(A0)
bne DELAY
RTS
----------------------------
6.
Observamos a possibilidade de utilizar o command windows para modificar os
valores dos registradores em tempo real e assim mudar o perodo de acender e
apagar os LED's durante a execuo do programa.
7.
Em anexo no final do relatrio.
FLUXOGRAMAS
Diagramas de bloco pedidos: