Você está na página 1de 8

Prentice Hall Microcontroladores 8051 1

Captulo 4

Fluxograma e programao em
Assembly aplicados a famlia
de microntroladores MCS-51 da
Intel
Prentice Hall Microcontroladores 8051 2
Captulo 4
Estratgias de elaborao de programas
Fluxogramas
Programas Simples:
Nome do programa
Processamento
Fim do programa
Definio das condies iniciais
Definio da sada do resultado
Figura 5: Representao tpica de um
fluxograma de uma rotina de um programa
simples.
Prentice Hall Microcontroladores 8051 3
Captulo 4
Figura 6: Representao tpica de
um fluxograma de uma rotina de
um programa com loop.
Nome do programa
Processamento
Fim do programa
Definio das condies iniciais
Definio da sada do resultado
Bloco de tomada
de deciso (?).
Teste de uma
varivel.
Se o teste for falso: processamento de
certas informaes (toma-se deciso)
no: a condio no foi satisfeita
sim: a condio foi satisfeira
Controle do
loop
Prentice Hall Microcontroladores 8051 4
Captulo 4
Exemplo de um programa simples:
RAM Interna
Endereo Contedo
45h XXh
+
5Ah YYh
6Dh
SOMA
(A) (45h)
(R0) (5Ah)
(A) (A) + (R0)
(6Dh) (A)
FIM Figura 8: Programa de adio usando a instruo
ADD A,Rn.
Programa Fonte

MOV A,45h
MOV R0,5Ah
ADD A,R0
MOV 6Dh,A

Prentice Hall Microcontroladores 8051 5
Captulo 4
SOMA
(A) (45h)
(R0) #5Ah
(A) (A) + ((R0))
(6Dh) (A)
FIM
Figura 10: Programa de adio usando a instruo ADD
A,@Ri.
Programa Fonte

MOV A,45h
MOV R0,#5Ah
ADD A,@R0
MOV 6Dh,A

Figura 9: Programa de adio usando a instruo
ADD A,direct.
SOMA
(A) (45h)
(A) (A) + (5Ah)
(6Dh) (A)
FIM
Programa Fonte

MOV A,45h
ADD A,5Ah
MOV 6Dh,A

Prentice Hall Microcontroladores 8051 6
Captulo 4
Exemplo de programa com loop:
RAM Interna
Endereo Contedo
endereo inicial 60h XXh 1Bh elementos
: : a serem
: : analisados
endereo final 7Ah YYh
7Bh
qte de n
s
< 38h
Figura 11: Desenho em forma de rascunho para ajudar no entendimento do que est sendo solicitado.
Prentice Hall Microcontroladores 8051 7
Captulo 4
Num < 38h
(R0)#60h
(R1)#1Bh
(7BH)#00h
(C)#0b
(A)((R0))
(A)(A)-(C)-#38h
(C)=0 ?
[(A)#38h ?]
(7Bh)(7Bh)+1
(R1)(R1)-1
(R1)0 ?
N
S
S
FIM
N
(R0)(R0)+1
Figura 12: Fluxograma que
calcula a quantidade de
nmeros menores que 38h
de um buffer de memria.
Prentice Hall Microcontroladores 8051 8
Captulo 4
; Inicio do programa que calcula a qte de elementos < #38h
MOV R0,#60h ;Endereo inicial do buffer de memria
MOV R1,#1Bh ;Quantidades de elementos do buffer de memria
MOV 7Bh,#00 ;Zera o contador que armazena a qte de num < #38h
ADR2: CLR C ;Limpa o contedo do carry-bit
MOV A,@R0 ;Armazena no (A) um elemento do buffer
SUBB A,#38h ;Subtrai o (A) da constante #38h e define o flag (C)
JNC ADR1 ;Se (C)=0 (A>=#38h) => (PC)=ADR1 [no soma um no (7Ah)]
INC 7Bh ;Se (C)=1 (A<#38h), soma um no (7Bh)
ADR1: INC R0 ;Aponta para a prxima posio de memria a ser analisada
DJNZ R1,ADR2 ;Se a qte de elementos a serem analisadas 0, ento salta para ADR2
END ;Termina o programa se (R1)=0.

Você também pode gostar