130 likes | 254 Views
Capítulo 5 Sub-rotinas e Estruturação da Linguagem de Programação “Assembly” aplicadas a família de microcontroladores MCS-51 da Intel. Capítulo 5. Definição de sub-rotina Programa Principal : instrução 1 : instrução N
E N D
Capítulo 5Sub-rotinas e Estruturação da Linguagem de Programação “Assembly” aplicadas a família de microcontroladores MCS-51 da Intel Microcontroladores 8051
Capítulo 5 • Definição de sub-rotina Programa Principal: • instrução 1 • : • instrução N • rotina que calcula uma expressão matemática(tamanho de 60 bytes, por exemplo) • instrução N+1 • : • instrução M • rotina que calcula uma expressão matemática(tamanho de 60 bytes, por exemplo) • instrução M+1 • : • instrução O • rotina que calcula uma expressão matemática(tamanho de 60 bytes, por exemplo) • etc… • END Microcontroladores 8051
Capítulo 5 Sub-rotina: End1: sub-rotina que calcula uma expressão matemática (tamanho de 60 bytes, por exemplo) RET Programa Principal: ProgP: instrução 1 : instrução N Chamada a sub-rotina que calcula uma expressão matemática (ACALL end1/LCALL end1 – 2 ou 3 bytes) instrução N+1 : instrução M Chamada a sub-rotina que calcula uma expressão matemática (ACALL end1/LCALL end1 – 2 ou 3 bytes) instrução M+1 : instrução O Chamada a sub-rotina que calcula uma expressão matemática (ACALL end1/LCALL end1 – 2 ou 3 bytes) etc… END Microcontroladores 8051
Capítulo 5 Área de memória de programa 1; Área de Memória de Programa das "Sub-rotinas" ; Sub-rotina 1: endereço inicial da sub-rotina 1: instrução 1 : instrução N RET ; Sub-rotina M: endereço inicial da sub-rotina M: instrução 1 : instrução N RET Área de memória de programa 2; Área de Memória de Programa do “Programa Principal” endereço inicial do programa principal: instrução 1 : ;chamada a "sub-rotina 1" ACALL/LCALL endereço inicial da sub-rotina 1 ;chamada a "sub-rotina 2" ACALL/LCALL endereço inicial da sub-rotina 2 : ;chamada a "sub-rotina M" ACALL/LCALL endereço inicial da sub-rotina M ; instrução K END Microcontroladores 8051
Capítulo 5 • Vantagens da utilização de sub-rotinas: • Princípio de funcionamento de uma sub-rotina: • Mas, como uma sub-rotina fisicamente é executada pelo microprocessador ? • Pilha (LIFO – Last-In, First-Out) RAM Endereço Conteúdo 07h ((SP)) (SP) = 07h 08h : Cresce Decresce : 7Fh Figura 4: Representação esquemática da pilha (LIFO) após um sinal de reset. Microcontroladores 8051
Capítulo 5 Microcontroladores 8051
Capítulo 5 Microcontroladores 8051
Capítulo 5 Microcontroladores 8051
Estruturação da Linguagem Assembly Descrição e Definição das Sub-rotinas Início do programa: Inicialização das variáveis e programação do hardware Loop do programa principal: - processamento/instruções de chamadas a sub-rotinas; - instrução de "jumper" incondicional para o início do Loop do programa principal (gerenciamento e controle de 24 horas por dia). Capítulo 5 Microcontroladores 8051
Capítulo 5 Microcontroladores 8051
Capítulo 5 • Metodologia sistemática de implementação de projeto de programa; • Para um projeto completo constituído de muitas funções ou tarefas, a solução é facilmente implementada através da divisão do projeto completo em pequenos módulos (simples sub-rotinas) que são responsáveis por tarefas específicas e bem definidas; • Tempo de implementação é extremamente reduzido, pois somente é necessário definir as diferentes tarefas (sub-rotinas) que o projeto deve executar e essas tarefas devem ser chamadas no loop do programa principal de forma organizada e seqüencial; • Alta confiabilidade na implementação das sub-rotinas; • Tempo de desenvolvimento reduzido; • Tempo de simulação reduzido; • Tempo de emulação reduzido; • Tempo de manutenção reduzido; • Projeto modular; • Flexibilidade na implementação de novas características ao produto final através da inserção e retiradas dos módulos que compõem o projeto do programa; • Inserção dos módulos já implementados em bibliotecas de sub-rotinas. Na implementação de novos projetos as mesmas podem ser utilizadas imediatamente; • Fácil manutenção pois quando ocorrer um problema, o mesmo pode ser diretamente analisado na sua respectiva sub-rotina. Microcontroladores 8051
SUB1: Qte de Nums = FFh (R0)#60h (R1)#05h (65h)#00h Programa Principal (C)#0b (A)((R0)) (A)(A)-(C)-#0FFh (PSW) #00h (SP) #70h Chama sub-rotina SUB1 S (A)0 ? [(A) #0FFh ?] N Fim (65h)(65h)+1 (R0)(R0)+1 S (R1)(R1)-1 (R1)0 ? N RET Capítulo 5 Microcontroladores 8051
Capítulo 5 Microcontroladores 8051