Capítulo 4
-
Upload
lequoia-taylor -
Category
Documents
-
view
15 -
download
0
description
Transcript of Capítulo 4
Prentice Hall Microcontroladores 8051 1
Capítulo 4Capítulo 4
Fluxograma e programação em Fluxograma e programação em “Assembly” aplicados a família “Assembly” aplicados a família de microntroladores MCS-51 da de microntroladores MCS-51 da
IntelIntel
Prentice Hall Microcontroladores 8051 2
Capítulo 4Capítulo 4 Estratégias de elaboração de programas Fluxogramas Programas Simples:
Nome do programa
Processamento
Fim do programa
Definição das condições iniciais
Definição da saída do resultado
Figura 5: Representação típica de um fluxograma de uma rotina de um programa simples.
Prentice Hall Microcontroladores 8051 3
Capítulo 4 Capítulo 4
Figura 6: Representação típica de um fluxograma de uma rotina de um programa com loop.
Nome do programa
Processamento
Fim do programa
Definição das condições iniciais
Definição da saída do resultado
Bloco de tomada de decisão (?). Teste de uma
variável.
Se o teste for falso: processamento de certas informações (toma-se decisão)
não: a condição não foi satisfeita
sim: a condição foi satisfeira
Controle do loop
Prentice Hall Microcontroladores 8051 4
Capítulo 4Capítulo 4Exemplo de um programa simples:
RAM InternaEndereço Conteúdo
45h XXh +
5Ah YYh
6Dh
SOMA
(A) (45h)(R0) (5Ah)
(A) (A) + (R0)(6Dh) (A)
FIM Figura 8: Programa de adição usando a instrução ADD A,Rn.
Programa Fonte
MOV A,45h MOV R0,5Ah ADD A,R0 MOV 6Dh,A
Prentice Hall Microcontroladores 8051 5
Capítulo 4Capítulo 4
SOMA
(A) (45h)(R0) #5Ah
(A) (A) + ((R0))(6Dh) (A)
FIM Figura 10: Programa de adição usando a instrução ADD A,@Ri.
Programa Fonte
MOV A,45h MOV R0,#5Ah ADD A,@R0 MOV 6Dh,A
Figura 9: Programa de adição usando a instrução 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
Capítulo 4Capítulo 4Exemplo de programa com Exemplo de programa com looploop::
RAM InternaEndereço Conteúdo
endereço inicial 60h XXh 1Bh elementos: : a serem: : analisados
endereço final 7Ah YYh7Bh 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
Capítulo 4 Capítulo 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 números menores que 38h de um buffer de memória.
Prentice Hall Microcontroladores 8051 8
Capítulo 4 Capítulo 4
; Inicio do programa que calcula a qte de elementos < #38hMOV R0,#60h ;Endereço inicial do buffer de memóriaMOV R1,#1Bh ;Quantidades de elementos do buffer de memóriaMOV 7Bh,#00 ;Zera o contador que armazena a qte de num < #38h
ADR2: CLR C ;Limpa o conteúdo do carry-bitMOV A,@R0 ;Armazena no (A) um elemento do bufferSUBB A,#38h ;Subtrai o (A) da constante #38h e define o flag (C)JNC ADR1 ;Se (C)=0 (A>=#38h) => (PC)=ADR1 [não soma um no (7Ah)]INC 7Bh ;Se (C)=1 (A<#38h), soma um no (7Bh)
ADR1: INC R0 ;Aponta para a próxima posição de memória a ser analisadaDJNZ R1,ADR2 ;Se a qte de elementos a serem analisadas é 0, então salta para ADR2END ;Termina o programa se (R1)=0.