Você está na página 1de 7

SENAI Curso Microcontroladores 8051

INTRODUO
O corao do microcontrolador o software, a parte que permite program-lo. Assim, antes de conhecer mais detalhadamente o software especfico importante dominar alguns princpios gerais de programao pois eles vo auxiliar a realizao dos programas. Vamos, ento, exercitar estes princpios e nos prepararmos para a programao do Microcontrolador 8051

Sobre programas e marcianos...


No nosso dia a dia vivemos resolvendo problemas e para isso estabelecemos uma seqncia de atividades, tomamos decises e usamos para isso uma lgica matemtica. Vamos imaginar como exemplo um dia comum, em que uma pessoa realiza uma seqncia de atividades at chegar ao local de trabalho. Ela acorda, levanta, lava o rosto, escova os dentes, toma caf, vai at o carro, liga o radio, ouve notcias sobre o trnsito e se dirige por um caminho que ir evitar o trnsito em funo de um acidente numa das avenidas. Ao relatar isso qualquer um de ns seres humanos compreende, pois somos capazes de completar as informaes com nossa experincia, imaginao e at mesmo com intuio. Agora imagine explicar estas atividades do dia-a-dia que se faz normalmente, de forma quase automtica, para um marciano que chegou aqui na Terra. Ele no tem experincia, nem imaginao e intuio para completar as falhas de uma descrio. Seria bem diferente um relato para ele, no? Para o marciano, necessrio explicar em detalhes cada uma das atividade e as decises tomadas para se deslocar do local de casa para o trabalho. Por exemplo, como acordar? Com ou sem despertador? Se com despertador como fazer a programao de horrio? O que fazer depois que ele toca? Desligar? Como? Deixar tocar at o final? Ao levantar para onde se dirige? Ao lavar o rosto usa ou no sabonete, abre a torneira antes ou depois de passar o sabonete? Lava com gua fria ou quente? E por a vai, tudo nos mnimos detalhes... Bem, e o que isto tem a ver com programao? Muito bem, o programador de computador uma pessoa que resolve problemas e faz isso de forma de forma rigorosa e sistemtica. Ele explica direitinho a um marciano, ou melhor, a uma mquina, a um computador ou microcontrolador - que no tem imaginao, criatividade e nem entende ambigidades - quais as etapas que deve seguir para resolver um determinado problema. A metodologia para resolver problemas atravs de um programa uma Metodologia de Programao cujo ponto central o algoritmo.

Algoritmo
O algoritmo um mtodo para resolver problemas. Houve uma popularizao deste termo com a chegada da informtica mas este conceito muito anterior aos computadores. A palavra algoritmo veio de um matemtico persa que viveu no sculo IX, chamado Mohammed Al-Khowarizmi famoso pelas regras que enunciou para soma, subtrao e diviso de nmeros decimais. A traduo do latim da palavra algorismus deu origem a palavra algoritmo. Euclides, um grande matemtico grego que viveu no sculo IV Antes de Cristo inventou um mtodo para
Unidade 2 Programao dos microcontroladores 8051 Texto base Primeira parte Introduo programao 1

SENAI Curso Microcontroladores 8051

encontrar o mximo divisor comum de dois nmeros e ele e Al-Khowazritzmi so considerados os pais dos algortmos. O professor Niklaus Wirth, inventor da linguagem Pascal de programao, afirma que s se realiza um bom programa se se desenvolve um bom algoritmo e uma correta estrutura de dados. A resoluo de um problema depende da concepo do algoritmo que resolva o problema proposto. E os passos para a resoluo do problema so:

Conceber um algoritmo que descreva a seqncia ordenada de passos que leva a soluo de um dado problema. Para isso preciso analisar muito bem um problema e a seqncia de passos para sua soluo. Expressar o algoritmo como um programa com uma linguagem de programao adequada. Corresponde a fase de codificao Execuo e validao do programa.

Sem algoritmo no existe programa. A programao pode ser feita em qualquer linguagem mas o algoritmo base para todas as linguagens de programao. Podemos dizer que o algoritmo a receita de um bolo com os ingredientes e a forma de fazer. Naturalmente a receita pode ser escrita em francs, ingls, portugus, mas os ingredientes e o modo de fazer no se alteram independente da nacionalidade do cozinheiro. Na programao o algoritmo mais importante que a linguagem e que o computador ou microcontrolador. A linguagem de programao um meio de expressar o algoritmo e o computador um processador para execut-lo. A concepo dos algoritmos requer criatividade e conhecimento das tcnicas de programao. As caractersticas que os algoritmos devem ter so

Preciso - devem indicar a ordem de realizao de cada passo. Definio - se seguirmos um algoritmo duas vezes devemos obter o mesmo resultado Ser Finito - deve ter um nmero finito de passos

A definio de um algoritmo deve ter trs partes: entrada.procedimento e sada. Para ilustrar vamos imaginar estas etapas na preparao de um bolo:

Entrada: ingrediente e utenslios Procedimento: elaborao da receita na cozinha Sada: Prato executado (bolo, por exemplo)

Para criar um algoritmo vamos imaginar a seguinte situao: Um cliente faz um pedido de compra a uma empresa. A empresa examina em seu banco de dados a ficha do cliente. Se o cliente no tiver nenhum dbito a empresa aceita o pedido e em caso contrrio rejeita o pedido. Observe, a seguir, um algoritmo que corresponde a situao descrita: 1. 2. 3. 4. 5. Incio Ler o pedido Examinar a ficha do cliente Se o cliente no tiver dbito aceitar o pedido e em caso contrrio rejeitar Fim

Temos, ento, uma etapa que a anlise do processo de programao em que se determina o que o programa ir fazer. No exemplo, corresponde descrio da situao (aprovar ou rejeitar o cliente).

Unidade 2 Programao dos microcontroladores 8051 Texto base Primeira parte Introduo programao

SENAI Curso Microcontroladores 8051

Depois que sabemos o que o programa dever fazer passamos a etapa da criao do algoritmo em que se determina como o programa ir fazer a tarefa solicitada. O melhor e mais usado processo de criao dos algoritmos se baseia na expresso "dividir para governar". Isso quer dizer que cada tarefa complexa dividida em pequenas tarefas simples. Ento, um programa dividido em sub programas. Lembre-se que um bom programa constitudo de um programa principal que pode chamar outros sub programas. Falar de algoritmos mais fcil que faz-los. Vamos ver mais um exemplo: Uma pessoa estava dirigindo um carro e o pneu furou. O problema: trocar o pneu do carro. O algoritmo para a troca de um pneu deve explicitar como realizar a troca de pneu Incio Abrir o porta malas e pegar o "macaco", o estepe e a chave de rodas Afrouxar os parafusos da roda do pneu furado Encaixar o macaco para levantar o carro Levantar o carro Tirar as porcas do pneu Soltar o pneu Colocar o estepe e apertar as porcas Abaixar o carro Reapertar as porcas com a chave de rodas Colocar o pneu furado, o macaco e a chave de rodas no porta malas Fim

No h apenas um algoritmo possvel para resolver um problema. As pessoas podem encontrar algoritmos diferentes para resolver o mesmo problema. Possivelmente se voc fizesse o algoritmo da troca de pneu iria fazer diferente. As etapas podem ser mais ou menos detalhadas e a seqncia fundamental Para o computador resolver problemas ou executar tarefas previstas por um algoritmo preciso traduzi-las em instrues. As aes so expressas por instrues e o programa a seqncia das instrues. O programa, ento, faz com que o computador realize a seqncia de aes que foram previstas pelo algoritmo. mais simples entender os algoritmos do que de elabor-los. Um bom algoritmo aquele que com um menor nmero de passos, conduz com clareza e exatido ao resultado desejado e no d margem a dvida ou erro. J vimos que o ser humano executa um algoritmo mesmo com falhas ou ambigidades, pois usa recursos mentais como a imaginao, criatividade e at mesmo a intuio para fazer as correes necessrias. Uma mquina como um computador ou microcontrolador, entretanto, executa exatamente o programa. As decises tomadas pela mquina so as previstas pelo programa. Qualquer falha no programa leva a um resultado falso ou incompleto. O programador deve evitar que estas falhas aconteam. Programas simples, em qualquer linguagem, podem ser escritos diretamente linha por linha (instruo por instruo) sem maiores dificuldades. Porm, para escrever programas complexos com sub programas preciso usar ferramentas que auxiliem na programao, como por exemplo, o fluxograma.

Unidade 2 Programao dos microcontroladores 8051 Texto base Primeira parte Introduo programao

SENAI Curso Microcontroladores 8051

Fluxogramas
Os algoritmos so construdos com as listas de aes ou operaes que devem ser executadas para resolver um problema. Para representar graficamente o algoritmo ou o fluxo da seqncia de aes que compem o algoritmo usa-se o fluxograma, em forma de diagrama de blocos. Os fluxogramas permitem uma visualizao clara da seqncia de operaes e suas interdependncias, facilitando a montagem de programas ou trechos de programas mais complexos. Em programao, os blocos do fluxograma tm os seguintes smbolos: Ponto terminal (inicio ou fim do algarismo) Execuo de ao ou operao Deciso lgica Ponto de conexo (de partes do fluxograma) Entrada / sada de informaes Sub-rotina

Por exemplo, temos o seguinte problema: a aprovao de um aluno depende da mdia das notas anuais; se ele tiver mdia maior que 5 ser aprovado e se tiver menor que 5 ser reprovado. O algoritmo deste problema : Incio Aluno recebe nota 1, nota 2, nota 3, nota 4 Calcular a media das notas (somar: nota 1+ nota2 + nota 3 + nota4; o resultado dever ser dividido pelo nmero de notas, por 4) Media > 5 Aluno Aprovado Mdia < 5 Aluno Reprovado Fim E o fluxograma o seguinte:

Unidade 2 Programao dos microcontroladores 8051 Texto base Primeira parte Introduo programao

SENAI Curso Microcontroladores 8051

Vamos ver agora a montagem de um fluxograma com sub-rotina. Problema: Trs lmpadas em seqncia devero funcionar da seguinte maneira: acender uma lmpada de cada vez. O tempo de permanncia da lmpada apagada ou acesa deve ser de um segundo. O algoritmo: Inicio Acender a Lmpada 1 A Lmpada 1 deve permanecer 1 segundo acesa Apagar a Lmpada 1 Acender a Lmpada 2 A Lmpada 2 deve permanecer 1 segundo acesa Apagar a Lmpada 2 Acender a Lmpada 3 A Lmpada 3 dever permanecer 1 segundo acesa Apagar a Lmpada 3 Voltar ao incio O fluxograma deste algoritmo o seguinte:

Unidade 2 Programao dos microcontroladores 8051 Texto base Primeira parte Introduo programao

SENAI Curso Microcontroladores 8051

incio 2 acende a lmpada n1

incio da sub-rotina de 1 segundo

acende a lmpada n3

Rotina de tempo de 1 segundo

sub-rotina de 1 segundo

sub-rotina de 1 segundo

Retorno da subrotina de 1 segundo

apaga a lmpada n1

apaga a lmpada n3

sub-rotina de 1 segundo

sub-rotina de 1 segundo

acende a lmpada n2

sub-rotina de 1 segundo

apaga a lmpada n2

sub-rotina de 1 segundo

Aspectos gerais da programao


Os programas so construdos a partir dos algoritmos. Vamos ver como isto funciona no microcontrolador. Os microcontroladores funcionam com base num conjunto de "convenes" para determinar como as operaes iro manipular os dados. A instruo pode ser definida pela forma Operao Operando onde a Operao representa a funo (atividade) e o Operando especifica os dados a serem usados por essa funo.

Unidade 2 Programao dos microcontroladores 8051 Texto base Primeira parte Introduo programao

SENAI Curso Microcontroladores 8051

Uma seqncia de instrues forma um programa. O programa executado pelo processador e fica armazenado na memria. Um programa composto por dados (informaes) e instrues (atividades). A memria pode ser vista como uma matriz, onde cada posio representa um endereo usado para armazenar um dado ou uma instruo do programa. As instrues so executadas na seqncia determinada por suas posies na memria. Alm da memria h uma unidade lgica e aritmtica (ULA) responsvel pela execuo de operaes numricas (aritmticas) e lgicas, alm da preparao de informaes para desvios de programas. A unidade de controle responsvel por determinar qual a instruo que deve ser executada em determinado momento. A unidade de controle e a unidade lgica e aritmtica correspondem a unidade central de processamento, tambm conhecida por processador. As memrias, as unidades operacionais, as unidades de controle e dispositivos de entrada e sada so compostos de unidades mais simples como registradores, contadores, multiplexadores, seletores, decodificadores, somadores, portas lgicas. Os registradores armazenam os dados. Possuem sinais de carga que determinam quando armazenar novos contedos. Quando o sinal de carga acionado o registrador copia o dado que est nas suas linhas de entrada. Contadores, multiplexadores, seletores, decodificadores, somadores e portas lgicas operam sobre os dados, alteram e fornecem um novo dado como resultado da operao que realizam. Quando um programa carregado para a memria para ser executado os dados so colocados na parte da memria de segmento de dados e as instrues so colocadas na parte da memria de segmento de cdigos. O ciclo de instruo envolve busca - decodificao - execuo. No processador o contador de instruo (CI) tem a prxima instruo a ser executada. Ao iniciar uma seqncia de execuo de instrues, a instruo do contador de instruo trazida do segmento de cdigo para uma rea de armazenamento dentro do processador, chamada de registrador de instruo. Esse processo conhecido como busca da instruo. A instruo interpretada por circuitos de decodificao que geram sinais eletrnicos no processador como resultado do valor do campo de operao, decodificando a informao correspondente operao realizada. Esses sinais ou esta seqncia de sinais resultam na execuo da instruo. Execuo a aplicao da funo do operador nos operandos. Quando termina a execuo de uma instruo o contador de instruo atualizado para o endereo de memria da prxima instruo. Esta instruo trazida da memria para o registrador de instrues e executada, repetindo-se assim o ciclo de busca-decodificao-execuo.

Unidade 2 Programao dos microcontroladores 8051 Texto base Primeira parte Introduo programao

Você também pode gostar