Você está na página 1de 8

Captulo 4 Fluxograma e programao em Assembly aplicados a famlia de microntroladores MCS-51 da Intel

Prentice Hall

Microcontroladores 8051

Captulo 4
Estratgias de elaborao de programas Fluxogramas Programas Simples:
Nome do programa Definio das condies iniciais Processamento Definio da sada do resultado Fim do programa

Figura 5: Representao tpica de um fluxograma de uma rotina de um programa simples.

Prentice Hall

Microcontroladores 8051

Captulo 4
Nome do programa Definio das condies iniciais Processamento

Figura 6: Representao tpica de um fluxograma de uma rotina de um programa com loop.

sim: a condio foi satisfeira Bloco de tomada de deciso (?). Teste de uma varivel. no: a condio no foi satisfeita

Se o teste for falso: processamento de certas informaes (toma-se deciso)

Controle do loop

Definio da sada do resultado

Fim do programa
Prentice Hall Microcontroladores 8051 3

Captulo 4
Exemplo de um programa simples:
Endereo 45h 5Ah 6Dh RAM Interna Contedo XXh + YYh

SOMA

Programa Fonte MOV A,45h MOV R0,5Ah ADD A,R0 MOV 6Dh,A Figura 8: Programa de adio usando a instruo ADD A,Rn.
Microcontroladores 8051 4

(A) (45h) (R0) (5Ah) (A) (A) + (R0) (6Dh) (A)

FIM

Prentice Hall

Captulo 4
SOMA

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

(A) (45h) (A) (A) + (5Ah) (6Dh) (A)


FIM

Figura 9: Programa de adio usando a instruo ADD A,direct.


SOMA (A) (45h) (R0) #5Ah (A) (A) + ((R0)) (6Dh) (A) FIM
Prentice Hall

Programa Fonte

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

Figura 10: Programa de adio usando a instruo ADD A,@Ri.


Microcontroladores 8051 5

Captulo 4
Exemplo de programa com loop:
RAM Interna Contedo XXh : : YYh qte de ns < 38h 1Bh elementos a serem analisados

Endereo endereo inicial 60h : : 7Ah 7Bh

endereo final

Figura 11: Desenho em forma de rascunho para ajudar no entendimento do que est sendo solicitado.

Prentice Hall

Microcontroladores 8051

Captulo 4
Num < 38h
(R0)#60h (R1)#1Bh (7BH)#00h

Figura 12: Fluxograma que calcula a quantidade de nmeros menores que 38h de um buffer de memria.

(C)#0b (A)((R0)) (A)(A)-(C)-#38h

S
(C)=0 ? [(A)#38h ?]

N
(7Bh)(7Bh)+1 (R0)(R0)+1

(R1)(R1)-1 (R1)0 ?

N
Prentice Hall Microcontroladores 8051

FIM

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.

Prentice Hall

Microcontroladores 8051

Você também pode gostar