38
Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07 Pg. 1/38 TÉCNICAS DE PROGRAMAÇÃO FLUXOGRAMA PIC - Microchip

Tecnica Programacao Com Fluxograma

  • Upload
    kalpico

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 1/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 1/38

TÉCNICAS DE PROGRAMAÇÃO

FLUXOGRAMA

PIC - Microchip

Page 2: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 2/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 2/38

Técnicas de programação

Fluxograma

Introdução

Conhecer e até dominar uma linguagem de programação (seus comandos e funções) é relativamente simples.Este conhecimento permite que programas simples ou complexos possam ser escritos e tarefas sejamrealizadas. Então podemos concluir que fazer um programa que realiza tarefas também é simples. É claroque precisamos conhecer como as tarefas são realizadas e obviamente,escrevermos uma seqüência deinstruções (ou comandos) para que isso aconteça.

Hoje qualquer aplicação envolve equipamentos e dispositivos eletrônicos, e em muitos casos,envolve umprograma para que funcionem da maneira esperada pelo usuário.

Alguns exemplos simples

- Bilhete único: processo de pagamento de passagem no transporte urbano utilizando-se um cartão quecontém valores, datas e horários gravados. Considerando apenas o item “valor da passagem”, aaproximação do cartão do leitor faz com que o valor seja debitado do cartão e um novo saldo sejagravado. É claro que outras operações são realizadas em conjunto e isto envolve a aplicação de umcomponente eletrônico, tanto no cartão como no leitor capaz de trocar informações entre si, o queobriga a existência de uma complexa seqüência de tarefas que são realizadas a partir de um programagravado no componente do cartão e no componente do leitor. Tudo isso para o simples ato de pagaruma passagem de ônibus.

- Telefone celular: Considerando apenas o fato do aparelho ligado, existe uma constante troca deinformações com uma estação radio-base (ERB) utilizando o canal de sinalização que identifica oaparelho, o assinante, a qualidade de sinal recebido e a localização física. Um programa específico noprocessador interno se encarrega de realizar estas tarefas. Se houver uma ligação, mais dois canais sãoativados (controle e voz) e outros programas vão realizar as tarefas envolvidas na manutenção daconexão e na codificação e decodificação da voz.

Foram expostos acima apenas dois fatos comuns, que no dia a dia facilita a vida da maioria das pessoas eninguém percebe, e ainda envolve algum tipo de programa que realiza inúmeras tarefas (simples oucomplexas). Com a evolução da tecnologia da construção de semicondutores, processadores complexostiveram seu custo drásticamente reduzidos e como conseqüência, seu uso em aparelhos e dispositivos

domésticos com larga aplicação tornou-se comum.O técnico atual necessita conhecer como funcionam os processadores e naturalmente, ter condições deescrever e/ou alterar programas em qualquer modelo disponível no mercado. A técnica de programação maisinteressante que se pode utilizar é o fluxograma. Para utilizá-lo não é necessário nenhum conhecimento delinguagem de programação de um modelo especifico de processador. O importante é conhecer o processoque se deseja controlar e então realizar o fluxograma.

Antes de atacar o problema,é importante que as três leis dos controladores/processadores sejam conhecidas:

1ª - Um controlador/processador cumpre exatamente as instruções dadas, sem discussão.

2ª - Um controlador/processador não toma iniciativa em nenhuma ocasião, mesmo quando o desastre éiminente.

3ª - Um controlador/processador jamais erra, quem erra é o programador.

Page 3: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 3/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 3/38

Definição

“Uma figura vale mais que mil palavras” - (atribuída a Fred R. Barnard – executivo de vendas em 1921 -que disse ser um provérbio chinês)

Um fluxograma é a representação gráfica da definição, análise ou solução de um problema onde símbolossão utilizados para representar operações, dados, fluxos, equipamentos etc..

Fluxograma é uma ferramenta originalmente criada na indústria de computadores para mostrar os diversospassos envolvidos em um programa. Provavelmente é o método mais antigo criado para representar umaseqüência de atividades ou comandos.

É constituído por um diagrama que utiliza figuras geométricas (quadrados, retângulos, losangos, círculosetc.) conectados por linhas e flechas, onde cada figura representa um passo no programa e as flechasrepresentam a seqüência em que os passos ocorrem.

A utilização de fluxograma apresenta algumas vantagens:

- São fáceis de fazer e compreender (melhor que um texto descritivo).

- Demonstram claramente o fluxo do programa ou atividade usando símbolos padronizados.

- Facilmente atualizados ou modificados.

A quantidade de informação que se coloca no fluxograma é suficiente para a compreensão do comando,instrução ou processo.

O detalhamento deve ser evitado em favor da compreensão rápida.

Page 4: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 4/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 4/38

Símbolos

Os símbolos utilizados na construção de um fluxograma são básicamente os mostrados na fig.1:

Começo/fim – indica o começo e o fim de uma seqüência de comandos ou instruções. 

Processo/comando/instruções – indica um procedimento ou operação.

Decisão – ponto em que dois ou três caminhos podem ser escolhidos.

Sub-rotina – indica outro fluxograma contendo uma seqüência de comandos ouinstruções.

Quebra de página – indica que o fluxograma continua em outra página.

Retorno de página – indica que em vem de outro fluxograma em outra página.

Flecha de sentido – indica direção que o fluxo de comandos ou instruções seguem

Linha de interligação – conecta os diversos símbolos do fluxograma

Fig. 1 – Símbolos usualmente empregados em fluxograma.

Page 5: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 5/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 5/38

Regras Básicas

Clareza e simplicidade na construção de um fluxograma são essenciais. Logo, detalhes de sistema oucomplexidades devem ser evitados logo no início do desenvolvimento do fluxograma.

Texto explicativo de alguns trechos de comandos/instruções podem (e devem) ser incluídos, mas devem serbreves.

A combinação de fluxograma e textos explicativos costuma ser bastante eficiente na compreensão e soluçãode problemas.

a) Início de um fluxograma:

A primeira providencia é executar o projeto eletro-eletrônico completo com as seguintes informações:

- Diagrama funcional: contendo os sinais de entrada (vindos do campo – sensores,botões etc.) e saída(retornam para o campo – lampadas, relés etc.).

- Tabela de Estado ou Tabela Verdade: indica todas as possibilidades que os sinais de entrada/saídapodem assumir.

- Gráfico Funcional: mostra como os diversos elementos de entrada e saída se relacionam no tempo.- Descritivo funcional: conhecimento e descrição do processo a ser controlado detalhadamente.

b) Montagem de um fluxograma:

O fluxograma é a seqüência de um raciocínio lógico portanto, também deve ter uma disposição dos diversossímbolos de forma lógica.

Então, algumas regras simples devem ser seguidas:

1. Iniciar do topo para a base da folha.

2. Desenvolvimento lateral deve ser da esquerda para a direita, preferencialmente.

3. Nas quebras de página, identificar numéricamente a página de destino/retorno.

4. Sempre empregar as flechas de sentido para maior clareza do fluxo de raciocínio.

5. Numerar as páginas seqüencialmente.

6. Escrever as operações dentro dos símbolos de forma clara e compacta.

7. Fazer comentários quando a descrição das operações não for suficiente.

c) Uso dos símbolos:

O uso dos símbolos também segue algumas regras. Evitar criar novos símbolos e, se não houver alternativa,explicar a função do novo símbolo detalhadamente.

1 - Os símbolos possuem apenas uma entrada e uma saída (com exceção do símbolo de decisão) comomostra a fig.2:

Page 6: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 6/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 6/38

Fig.2 – Entra/saída de símbolos funcionais.

2 - O símbolo de decisão possui apenas 1 entrada, mas pode ter 2 ou 3 saídas de acordo com asnecessidades da lógica. A fig. 3 mostra as opções possíveis.

Fig. 3 - Opções de saída para símbolo decisão.

3 – Toda a lógica admite vários caminhos para atingir uma mesma solução. Portanto, escolher umcaminho lógico entre vários exige uma decisão com o emprego do símbolo adequado (losango), comomostra a fig.4a. O desvio a partir de uma linha de interligação (fig.4b) não é possível.

Fig. 4 – Opção Correta de desvio ou derivação lógica.

sim

a) Desvio Correto b) Desvio Não Possível

não

sim >=

não <=

< >

=

Page 7: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 7/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 7/38

4 – Vários caminhos lógicos convergindo para uma única solução é comum e, como já foi observado, aum símbolo lógico associa-se uma única entrada. Conseqüência, os vários caminhos convergentes seunem sobre uma linha de interligação (fig.5a). Evitar o uso igual ao da fig.5b para maior clareza eorganização do fluxograma.

Fig.5 – Convergência de Caminhos lógicos.

5 - Podemos verificar que as figuras 2, 3, 4 e 5 mostram símbolos lógicos conectados por linhas deinterligação, e nestas foram colocadas flechas de sentido, indicando com clareza o fluxo do raciocíniológico ou da informação. É importante o uso da flecha de sentido (não deve haver dúvida quanto àdireção do raciocínio).

6 - A função/instrução ou operação desejada deve ser escrita no interior do símbolo e deve ser sucinta,compacta, suficiente para total compreensão. Se houver necessidade de maior detalhe, este pode serescrito externamente ao símbolo como um comentário.

7 - A fig.6 mostra a disposição dos símbolos lógicos na área de uma página. Não se trata de uma normamas uma regra que a experiência mostra ser bastante funcional. A disposição do fluxograma em umafolha (A4) pode ser em três ou quatro colunas onde a coluna central recebe o fluxo principal doraciocínio. Derivações ou retornos ocupam as demais colunas. Observe que nesta disposição surgemáreas para comentários ou observações, ao mesmo tempo em que mantém o trabalho organizado. Se aapresentação for por meio eletrônico, a disposição pode ser modificada e ocupar menos área.

a) Forma Adequada a) Forma não Adequada

Page 8: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 8/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 8/38

ROT_PRINC

ATIVATEMPO t1

ATIVATEMPO t2

t2 = 10s ?

CH = 1 ?

ABREVÁLVULA

A

F_CH = 0 C

F_CH = 1 ?

B

t2 = 10s

t2 < 10s

= 0(ABERTA)

= 1(FECHADA)

= 1(CONTINUA FECHADA APÓS 10s)

= 0(ABRIU - PRIMEIRA VEZ)

Vai p/ Pg..2/10

Inicia tempo para

modo "SLEEP"(baixo consumo)

Vem da Pg..2/10

Verifica es tado da chave CH:

- se permanece fechadapara t2>=10s

- se abriu ao menos uma vezpara t2<10s

 Fig. 6 - Exemplo de fluxograma

Page 9: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 9/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 9/38

d) Fazendo o fluxograma

Para iniciar um fluxograma é necessário que tenhamos um projeto, conhecimento do funcionamento desteprojeto e o seguinte material:

- Papel (preferencialmente rascunho) em quantidade. - Lápis (vários) ou lapiseira (com muita carga) – não usar canetas.- Borracha (grande).

Por maior que seja seu conhecimento do processo ou funcionamento do projeto,o fluxograma não nascepronto. Começa de uma idéia simples e vai crescendo e evoluindo até que atenda a todos (todos mesmo) osrequisitos funcionais do processo.

Logo, muita coisa vai ser desenhada, escrita, apagada, redesenhada, reescrita etc., etc, e mais alguns etc..

O trabalho está confuso, atrapalhado enfim, uma bagunça difícil de entender, é hora de redesenharorganizadamente todo o fluxograma desenvolvido e estudá-lo novamente.

Todo o documento/informação substituído por um documento novo ou redesenhado não deve ser jogado

fora. Em várias ocasiões o raciocínio original contém a melhor solução.Não tenha o mesmo trabalho duasvezes. Quando tudo estiver terminado (testado, retestado, funcionando), descartar os documentos antigos oumodificados.

Fluxograma Básico – Projeto 1

Vamos adotar o Projeto 1 - Acionamento de um Led - como início do nosso procedimento. A fig.7 mostra odiagrama funcional do projeto contendo as informações dos sinais de entrada e saída.

Para facilitar a compreensão e organizar o projeto, desenhou-se a entrada à esquerda e a saída à direita. O

retângulo denominado MCU (microcontroller unit - microcontrolador) representa a unidade de controle quedeve produzir uma saída em função de um estado da entrada. No caso do diagrama funcional da fig.7, aentrada é representada pelo botão B1, e a saída é representada pelo led L1.

Fig. 7 - Diagrama funcional - Projeto 1

Considerando como o botão B1 e o led L1 devem operar no circuito, devemos elaborar uma Tabela deEstados como mostra a fig. 8:

B1

RB1

R2

L1

MCURA2

R1

Page 10: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 10/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 10/38

Tabela de Estados

B1Livre 1Pressionado 0

L1Apagado 0Aceso 1

Fig.8 - Tabela de Estados - Projeto 1

A função desta tabela é determinar os níveis lógicos (0 ou 1) que os dispositivos de entrada e saída vãooperar. O que pode parecer óbvio ao olharmos o diagrama funcional, quando fizermos a análise de operaçãono fluxograma podem surgir muitas dúvidas e erros. Portanto, a elaboração da Tabela de Estado éimportante.

Analisando o caso da fig.8, podemos afirmar que:

- O botão B1 (tipo NA – normal aberto) mantém seu contato aberto quando seu acionamento estiverlivre (ou não pressionado). De acordo com a fig.7, a entrada do microcontrolador fica conectada ao

positivo da fonte (Vdd) através do resistor R1, logo, o nível lógico da entrada quando B1 estiver livre(não pressionado) será 1 (um). Quando o botão B1 tiver seu acionamento pressionado o contato devese fechar, fazendo com que o negativo da fonte (Vss) se ligue à entrada do controlador logo, o nívellógico da entrada quando B1 estiver pressionado será 0 (zero). Atenção para o fato que, nestasituação,deve circular uma corrente pelo resistor R1. Para que o consumo do circuito não sejaelevado e, ao mesmo tempo, a resistência de contato de B1 não interfira no circuito, sugerimos queR1 seja dimensionado para uma corrente não menor que 1mA.

- O led L1 fica apagado se não houver tensão sobre R2, o que implica nível de tensão nulo na saída docontrolador logo, o nível lógico da saída quando L1 estiver apagado será 0 (zero). Quando L1 estiveraceso é porque existe tensão na saída do controlador logo, o nível lógico da saída quando L1 estiver

aceso será 1 (um).

O simples fato de possuirmos o diagrama funcional (fig.7) e a tabela de estado (fig.8) não nos possibilitamentender como o circuito deve funcionar.É necessário que haja uma descrição das operações ou seqüênciasque se desejam realizar. A descrição operacional deve conter a seqüência (ou seqüências) de funcionamentoque o conjunto deve realizar. O grau de detalhamento deve ser suficiente para que todas as operações defuncionamento sejam analisadas.A fig.9 procura mostrar um exemplo:

DESCRITIVO OPERACIONAL

1- Energizar o dispositivo com B1 livre, L1 apagado.

2- Mantendo B1 livre, L1 permanece apagado.3- Pressionando B1, L1 acende.4- Mantendo B1 pressionado, L1 permanece aceso.5- Liberando B1, L1 apaga.

Fig.9 - Descritivo Operacional - Projeto 1

A forma de expor a operação ou seqüência lógica é simples e direta. A descrição da fig.9 poderia serresumida de uma forma mais direta,ainda:

- Aperta o botão, acende o led.

- Solta o botão, apaga o led.

Elaborar uma Tabela Verdade também ajuda a visualizar as diversas situações e principalmente, permiteestipular todas as combinações possíveis que as entradas podem assumir e estabelecer as combinaçõespossíveis que as saídas podem ter. No caso do Projeto 1, a Tabela Verdade tem o aspecto da fig.10:

Page 11: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 11/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 11/38

B1 L1

0 11 0

Fig.10 - Tabela Verdade – Projeto 1

A Tabela Verdade coloca de forma simples e objetiva o descrito na Tabela de Estado e no DescritivoOperacional.

Uma outra forma de descrever a operação de um sistema, principalmente envolve temporizações (a TabelaVerdade não consegue trabalhar intervalos de tempo de forma eficiente), é a utilização de gráficos.

A fig.11 mostra o gráfico que representa o funcionamento do sistema do Projeto 1 exatamente de acordocom o Descritivo Operacional e a Tabela Verdade.

Fig. 11 – Gráfico Funcional – Projeto 1.

Vamos observar que o o diagrama é um retrato mais claro e objetivo do funcionamento do Projeto 1 do queo Descritivo Operacional e a Tabela Verdade. Óbviamente que os parametros de funcionamento já foramdefinidos anteriormente na fig.8 portanto, fica fácil entender o texto do Descritivo e a Tabela Verdade. Oscomentários incluídos relativos ao funcionamento de cada componente (B1 Livre, L1 Aceso etc.) tem apenaso objetivo de melhorar a compreensão dos diversos estados lógicos durante o funcionamento. Não sãoobrigatórios, mas podem ser úteis.

As figuras 7 e 11 dispõem de todas as informações necessárias para o desenvolvimento do fluxogramalógico do Projeto 1 - Acionamento de um Led.

Para iniciarmos o fluxograma, devemos recorrer aos símbolos da fig.1 e utilizar aqueles que atendam àsnossas necessidades. Portanto, mãos à obra.

Um fluxograma tem que possuir um início então,devemos começar com o símbolo que representa o início,como mostra a fig.12:

Fig.12 - Início fluxograma - Projeto 1

ROT_PRINC

L1

0

L1Aceso

L1A

pagado

1

B1

0

1

B1Pressionado

B1

Livre

L1Apagado

L1Aceso

L1Apagado

t

t

B1Pressiona

do

B1Livre

B1Livre

Page 12: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 12/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 12/38

Observar que foi colocado um nome dentro do símbolo de início - Rot_Princ. Este nome (pode ser qualquerum) é uma referencia ou endereço quando o programa do controlador for escrito.

Na fig.9 o Descritivo Operacional especifica como o circuito deve operar desde as condições iniciais.Portanto, para fazermos com que L1 esteja apagado (nível lógico zero), precisamos saber qual é o estado dobotão B1.

Para saber o estado de qualquer dispositivo (interno ou externo), precisamos “olhar” para o dispositivo. E

“olhar” para o dispositivo implica em perguntar o seu estado lógico naquele instante. Se existe umapergunta, existe uma decisão (o estado lógico do dispositivo está alto - 1 ou baixo - 0). Vamos incluir nofluxograma esta pergunta na fig.13:

Fig.13 – Determinação do estado de B1 – Projeto 1

Dentro do símbolo que representa “decisão” e que, logicamente, é uma pergunta, colocamos a questão:

B1 = 1?

Ou seja, perguntamos se o estado lógico do botão B1 é igual a 1 (um) .Na fig.8 encontra-se a Tabela deEstados que determina como raciocinar o estado lógico do botão B1. Como o botão B1 só pode assumir doisestados, somente duas respostas são possíveis. Então, no símbolo de decisão assumimos duas saídas onderespondemos à questão proposta:

Sim – B1 livre (logo B1 = 1)Não – B1 pressionado (logo B1 = 0)

Após cada resposta, uma instrução deve ser dada. Na fig.14 acrescentamos as duas instruções necessáriaspara cumprir o Descritivo Operacional:

Fig.14 – Acréscimo das Instruções - Projeto 1

ROT_PRINC

B1 = 1 ?SIM

(B1 livre)

NÃO

(B1 pressionado)

ROT_PRINC

B1 = 1 ?SIM

(B1 livre)

NÃO

(B1 pressionado)

L1 = 0

L1 = 1

Page 13: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 13/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 13/38

Então, se B1 = 1 (sim - B1 livre) devemos desligar o led L1(L = 0) .Se B1 = 0 (não - B1 pressionado)devemos ligar o led L1 (L1 = 1).

Ao que tudo indica, o fluxograma está completo. O Descritivo Operacional foi atendido integralmente eportanto, a fig.14 representa o fluxograma do projeto 1.

Vamos olhar com mais atenção o fluxograma da fig.14. Vamos seguir o caminho lógico que ele representa,

simulando cada uma das opções de caminho disponível, como podemos ver na fig.14a onde estabelecemos acondição:

1) Botão B1 está livre (B1 = 1).

Fig.14a – Análise Primeiro Caminho – Projeto 1 

Primeiro Caminho (fig.15a):

a) Inicia em ROT_PRINC.

b) Verifica o estado do botão B1:

# B1 livre (B1 = 1): segue para comando

c) Apaga L1 (L1 = 0).

Observe que, ao tomarmos a decisão de B1 = 0, adotamos o desvio para L1 = 0 ou seja, descartamos a outra

opção B1 = 1. Como não existe nenhuma linha de interligação após a instrução L1 = 0, paramos nestaposição e não vamos para nenhum outro caminho (eternamente). Se neste período B1 mudar de estado (B1 =1) nunca saberemos.

Vamos ver a outra opção de caminho, mostrada na fig.14b porém, com a seguinte condição:

1) Botão B1 está pressionado (B1 = 0).

Fig.14b – Análise Segundo Caminho – Projeto 1 

Segundo Caminho (fig.15a):

a) Inicia em ROT_PRINC.

b) Verifica o estado do botão B1:# B1 pressinado (B1 = 0): segue para comando

c) Acende L1 (L1 = 0).

O mesmo problema acontece se adotarmos o desvio para L1 =1, ou seja, descartando a opção B1 = 0. Após ainstrução L1 = 1, não vamos para lugar nenhum.

ROT_PRINC

B1 = 1 ?SIM

(B1 livre)

NÃO

(B1 pressionado)

L1 = 0

L1 = 1

Fig. 14b

ROT_PRINC

B1 = 1 ?SIM

(B1 livre)

NÃO

(B1 pressionado)

L1 = 0

L1 = 1

Fig. 14a

Page 14: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 14/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 14/38

Se quisermos saber se o estado de B1 sofreu alteração, será necessário voltar ao ponto do fluxogramaimediatamente anterior à pergunta sobre o estado do botão B1. E este retorno deve ser feito por ambos oscaminhos lógicos propostos. A fig.15 mostra o retorno anterior à verificação do estado do botão B1:

Fig.15 - Fluxograma Completo - Projeto 1

Agora podemos verificar constantemente o estado do botão B1 e, a partir desta verificação, podemos ligar oudesligar o led L1.

Simulando a operação do Projeto 1 na fig.15a, partindo das condições abaixo (na fig.11 o gráfico mostra acondição inicial de cada componente):

1) Botão B1 está livre (B1 = 1).2) Led L1 apagado (L1 = 0).

Fig.15a – Análise Primeiro Caminho – Projeto 1 

Primeiro Caminho (fig.15a):

a) Inicia em ROT_PRINC.

b) Verifica o estado do botão B1:# B1 livre (B1 = 1): segue para comando

c) Apaga L1 (L1 = 0).

d) Retorna para verificar estado de B1 emROT_PRINC

Fica claro porque o sistema é dinâmico: enquanto B1 estiver livre (B1 = 1) o ciclo operacional vai percorrersempre este caminho escolhido. O outro caminho possível é ignorado (como se não existisse).

Agora vamos simular a operação do Projeto 1 considerando que o botão B1 foi pressionado. O caminho a serseguido vai considerar as condições:

1) Botão B1 pressionado (B1 = 0).2) Led L1 apagado (L1 = 0).

A fig.15b mostra o caminho analisado:

ROT_PRINC

B1 = 1 ?SIM

(B1 livre)

NÃO

(B1 pressionado)

L1 = 0

L1 = 1

ROT_PRINC

B1 = 1 ?SIM

(B1 livre)

NÃO

(B1 pressionado)

L1 = 0

L1 = 1Fig.15a

Page 15: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 15/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 15/38

Fig.15b – Análise Primeiro Caminho – Projeto 1 

Segundo Caminho (fig.15b):

a) Inicia em ROT_PRINC.

b) Verifica o estado do botão B1:# B1 pressionado (B1 = 0): segue para comando

c) Acende L1 (L1 = 1).

d) Retorna para verificar estado de B1 emROT_PRINC.

Da mesma forma que o Primeiro Caminho, enquanto B1 estiver pressionado (B1 = 0) o ciclo operacional vai

percorrer sempre este caminho escolhido. O outro caminho possível é ignorado (como se não existisse).Notar que:

- O fluxograma é um ciclo fechado dinâmico, supervisionando constantemente o estado das entradas eacionando as saídas de acordo com a lógica proposta.

- Através do fluxograma todas as opções possíveis de operação são analisadas e testadas.- A partir do fluxograma é possível escolher os caminhos lógicos que envolvem o menor número de

instruções, isto é, o caminho mais curto ou o código-fonte mais eficiente.

Para a realização do fluxograma da fig.15 empregamos apenas três símbolos:

- Início.- Decisão (ou desvio).- Instrução/operação.

ROT_PRINC

B1 = 1 ?SIM

(B1 livre)

NÃO

(B1 pressionado)

L1 = 0

L1 = 1Fig.15b

Page 16: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 16/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 16/38

Desvio Interno – Flag. – Projeto 2

Existem situações que exigem desvio no processo lógico, e estes não podem depender de um agente externoligado a uma entrada. A existência de um dispositivo externo implica na necessidade de algo ou alguéminterferindo no processo. Um desvio interno é provocado exclusivamente por processos internos. Apenas aseqüência lógica determina a sua utilização ou não, independente de uma ação externa.

Para analisar o uso e onde colocar um desvio interno – ou flag (bandeira) – vamos adotar o Projeto 2 – Ligar

e Desligar por Toque. A fig.16 mostra o diagrama funcional do Projeto 2 contendo as informações dos sinaisde entrada e saída.

Fig.16 – Diagrama funcional Projeto – 2

Olhando a fig.7 - Projeto 1 - verificamos que o diagrama funcional é idêntico ao da fig.16 – Projeto 2 -portanto, são válidas as mesmas considerações feitas para a fig.7 - Projeto 1.

Elaborando a Tabela de Estados na fig.17:Tabela de Estados

B1Livre 1Pressionado 0

L1Apagado 0Aceso 1

Fig.17 - Tabela de estados – Projeto 2.

Da mesma forma, a fig.17 é igual à fig.8. A fig.18 mostra o Descritivo Operacional do projeto 2:

DESCRITIVO OPERACIONAL

1- Energizar dispositivo com B1 livre, L1 apagado.2- Mantendo B1 livre, L1 permanece apagado.3- Pressionado B1, L1 acende.4- Mantendo B1 pressionado, L1 permanece aceso.

5- Liberando B1, L1 permanece aceso.6- Mantendo B1 livre, L1 permanece aceso.7- Pressionando B1, L1 apaga.8- Mantendo B1 pressionado, L1 permanece apagado.9- Liberando B1, L1 permanece apagado.

B1

RB1

R2

L1

MCURA2

R1

Page 17: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 17/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 17/38

10- Mantendo B1 livre, L1 permanece apagado.

Fig.18 - Descritivo Operacional – Projeto 2.

Agora, a comparação da fig.18 com a fig.9 mostra que o funcionamento de cada um dos dispositivos écompletamente distinto, apesar de possuírem o diagrama funcional (fig.7 e16) e a tabela de estados (fig.8 e17) idênticos.A diferença vai ocorrer na unidade de controle (MCU) que conterá a lógica adequada a cadafunção.

De maneira simples, o descritivo operacional da fig.18 pode ser resumido como:

- Aperta o botão para acender o led.- Aperta o botão para apagar o led.

A Tabela Verdade para o Projeto 2 fica de acordo com a fig.19:

B1 L1

0 01 10 11 00 0

Fig.19 - Tabela Verdade – Projeto 2.

Para atender à nova situação, a Tabela Verdade mostra uma seqüência de operação, uma vez que a saída L1pode assumir dois estados distintos para o mesmo estado na entrada B1. Isto se deve porque o Projeto 2 é umcircuito bi-estável, ou seja, a mudança de estado da saída é estável, mesmo que a entrada retorne ao estadooriginal. O gráfico da fig.20 torna a operação descrita na fig.18 mais clara (observe no gráfico que o tempo

que B1 fica pressionado não interfere na operação de L1).

Fig.20 – Gráfico funcional - Projeto 2.

Com todas as informações disponíveis, vamos começar a desenhar o fluxograma. Em uma primeira análise,podemos observar que B1 livre não tem nenhuma ação (nem liga L1 ou desliga L1). Então podemoscomeçar o fluxograma exatamente nesta ação:

L1Aceso

B1Livre

B1

Pressionado

L1Aceso

L1

Apagado

B1

Pressionado

B1Pressio

nado

B1Livre

B1Livre

L1

0

L1Apag

ado

B1Livre

1

B1

0

1

L1Apagado

t

B1Pressionado

B1Livre

t

Page 18: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 18/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 18/38

Início, verificação do estado de B1.

Fig.21 – Determinação do estado de B1.

De acordo com a fig.21 iniciamos o processo em ROT_PRINC e verificamos o estado do B1. Considerandoque B1 está livre (portanto B1 = 1), retornamos à verificação do estado de B1 novamente.

Lembre-se sempre que o processo é dinâmico e não pára simplesmente após uma condição satisfeita.Portanto, deve-se retornar à supervisão porque em algum momento o estado do botão B1 pode ser alterado.

Vamos observar a Tabela Verdade da fig.19 e o gráfico funcional da fig.20. Podemos ver que, se o botão B1for pressionado, isto é, B1 = 1, duas ações distintas podem ser adotadas:

- Se o led L1 estiver apagado (L1 = 0), deve-se acendê-lo.- Se o led L1 estiver aceso (L1 = 1), deve-se apagá-lo.

Como não há conhecimento prévio do estado do led L1, é necessário verificar seu estado e só depois, agir.Com base neste raciocínio, o fluxograma será acrescentado com a decisão (pergunta) para verificação do

estado do led L1:

Fig.22 – Determinação do estado de L1 + ação correspondente.

ROT_PRINC

B1 = 1 ?SIM

(B1 livre)

NÃO

(B1 pressionado)

ROT_PRINC

B1 = 1 ?SIM

(B1 livre)

NÃO

(B1 pressionado)

L1 = 1 ?

L1 = 0 L1 = 1

SIM NÃO

(Ligado) (Desligado)

Page 19: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 19/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 19/38

Agora o fluxograma da fig.22 está completo e atende aos requisitos de funcionamento descritos nas fig.18,19e 20. Vamos fazer a análise do funcionamento do dispositivo a partir do fluxograma da fig.22:

Fig.22a – Análise Primeiro Caminho – Projeto 2 

Primeiro Caminho (fig.22a):

a) Inicia em ROT_PRINC.

b) Verifica o estado do botão B1:# B1 livre (B1 = 1): retorna para verificar B1.

Fig.22b – Análise Segundo Caminho – Projeto 2 

Segundo Caminho (fig.22b):

a) Inicia em ROT_PRINC.

b) Verifica estado do botão B1:# B1 pressionado (B1 = 0): segue para verificar

L1.

c) Verifica o estado de L1:# L1 apagado (L1 = 0): segue para comando.

d) Comando: acende L1 (L1 = 1).

e) Retorna para verificar B1.

ROT_PRINC

B1 = 1 ?SIM

(B1 livre)

NÃO

(B1 pressionado)

L1 = 1 ?

L1 = 0 L1 = 1

SIM NÃO

(Ligado) (Desligado)

ROT_PRINC

B1 = 1 ?SIM

(B1 livre)

NÃO

(B1 pressionado)

L1 = 1 ?

L1 = 0 L1 = 1

SIM NÃO

(Ligado) (Desligado)

Page 20: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 20/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 20/38

Fig.22c – Análise Terceiro Caminho – Projeto 2 

Terceiro Caminho (fig.22c):

a) Inicia em ROT_PRINC.

b) Verifica estado do botão B1:# B1 pressionado (B1 = 0): segue para verificar

L1.

c) Verifica o estado de L1:# L1 aceso (L1 = 1): segue para comando.

d) Comando: apaga L1 (L1 = 0).

e) Retorna para verificar B1.

Alerta: Um fluxograma permite enxergar, analisar e simular todas as opções e possibilidadesque um sistema dispõe. Mesmo a situação mais absurda deve ser analisada.

Ora, sob todos os aspectos, atendemos plenamente os requisitos de funcionamento propostos. Atendemosmesmo? Verificamos efetivamente todos os aspectos de funcionamento? Testamos todas as possibilidades?

Então, retornando à fig.22b e considerando que B1 está pressionado (B1 = 0), na seqüência vamos verificaro estado do led L1 que, para efeito de raciocínio, está desligado (L1 = 0). A ação adotada será ligar L1 (L1 =1) e retornar para a verificação do estado do botão B1.

Vamos considerar que, por um motivo qualquer, B1 permanece pressionado (não foi liberado, logo, B1continua igual a 0). Como B1 continua pressionado (fig.22c), voltamos a verificar o estado do led L1 que,agora, se encontra aceso(L1 = 1). A ação adotada será desligar L1 (L1 = 0) e retornar para verificação dobotão B1.

Como B1 ainda está pressionado (fig.22b), voltamos a verificar o estado do led L1 que, agora, está apagado(L1 = 0). A ação adotada será ligar o led L1 e retornar para...

Enquanto o botão B1 se mantiver pressionado, o led L1 será aceso e apagado constantemente (pisca-pisca).Se considerarmos a velocidade que a informação gira no fluxograma é muito alta, o led L1 ficará “meio”aceso aos nossos olhos. Quando liberarmos o botão B1 (B1 fica igual a 1) o led L1 assume o últimocomando (ou instrução) dado e, como podemos perceber, não sabemos se o led ficará aceso ou apagado.

Como o caminho para as ambas as situações é o mesmo (possui o mesmo número de instruções e consome omesmo número de ciclos de máquina) a possibilidade de termos o led L1 aceso é de 50%.

Conclusão: Os requisitos de funcionamento proposto não foram atendidos.

Podemos tentar uma outra solução no fluxograma para contornar o problema de L1 piscar enquanto B1estiver pressionado, ao mesmo tempo em que seja certa a função de Ligar ou Desligar o led L1.

ROT_PRINC

B1 = 1 ?SIM

(B1 livre)

NÃO

(B1 pressionado)

L1 = 1 ?

L1 = 0 L1 = 1

SIM NÃO

(Ligado) (Desligado)

Page 21: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 21/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 21/38

Podemos desenhar um novo fluxograma onde verificamos o estado do led L1 para adotarmos a ação dobotão B1 em seguida:

Fig.23 – Nova solução para fluxograma da fig.22.

Comparando o fluxograma da fig.22 com o fluxograma da fig.23 podemos observar o aumento do númerode instruções para realizar a mesma tarefa.

Vamos fazer a análise do funcionamento do dispositivo utilizando o fluxograma da fig.23a considerando ascondições:

1) Botão B1 está livre (B1 = 1).2) Led L1 apagado (L1 = 0).

Fig.23a – Análise Primeiro Caminho – Projeto 2 

Primeiro Caminho (fig.23a):

a) Inicia em ROT_PRINC.

b) Verifica o estado de L1:

# L1 apagado (L1 = 0): segue paraverificar B1.

c) Verifica estado do botão B1:# B1 livre (B1 = 1): retorna para

verificar L1.

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

Page 22: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 22/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 22/38

Pressionado o botão B1, o fluxograma da fig.23b mostra o novo caminho para as condições:

1) Botão B1 pressionado (B1 = 0).2) Led L1 apagado (L1 = 0).

Fig.23b – Análise Segundo Caminho – Projeto 2 

Segundo Caminho (fig.23b):

a) Inicia em ROT_PRINC.

b) Verifica o estado de L1:# L1 apagado (L1 = 0): segue para

verificar B1.

c) Verifica estado do botão B1:# B1 pressionado (B1 = 0): segue para

comando.

d) Comando: desliga L1 (L1 = 0).

e) Retorna para verificar L1.

Como podemos ver, ao percorrer o caminho da fig.23b a Lampada L1 foi acendida (L1 = 1).

Vamos considerar que ao retornar para verificar L1 (em ROT_PRINC), o botão B1 tenha sido liberado (B1 =

1). Então vamos percorrer o caminho mostrado na fig.23c que inicia nas condições de:

1) Botão B1 está livre (B1 = 1).2) Led L1 aceso (L1 = 1).

Fig.23c – Análise Terceiro Caminho – Projeto 2 

Terceiro Caminho (fig.23c):

a) Inicia em ROT_PRINC.

b) Verifica o estado de L1:# L1 aceso (L1 = 1): segue para verificar

B1.

c) Verifica estado do botão B1:# B1 livre (B1 = 1): retorna para

verificar L1.

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

Page 23: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 23/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 23/38

Agora pressionamos B1 (B1 = 0) e seguimos o caminho da fig.23d com as condições:

1) Botão B1 pressionado (B1 = 0).2) Led L1 aceso (L1 = 1).

Fig.23d – Análise Quarto Caminho – Projeto 2 

Quarto Caminho (fig.23d):

a) Inicia em ROT_PRINC.

b) Verifica o estado de L1:# L1 aceso (L1 = 1): segue para

verificar B1.

c) Verifica estado do botão B1:# B1 pressionado (B1 = 0): segue para

comando.

d) Comando: liga L1 (L1 = 1).

e) Retorna para verificar L1.

Agora, se considerarmos que o botão B1 permanece pressionado (B1 = 0) por tempo suficiente para

completar o ciclo com retorno a ROT_PRINC, podemos facilmente verificar que a Lampada L1 tambémentra no processo de piscar, da mesma forma que o fluxograma da fig.22.

Fig.23b – Análise Segundo Caminho – Projeto 2  Fig.23d – Análise Quarto Caminho – Projeto 2 

Uma solução para este problema seria criar um desvio tal que o fluxo lógico só passa por um determinado

caminho uma única vez enquanto uma condição não retornar à posição original.

Para criar um desvio condicional, utiliza-se o artifício do “flag”, ou seja, o programa sinaliza que passou poraquele caminho específico uma vez, não devendo retornar a ele até que a condição que gerou o desvio sejadesfeita.

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

Page 24: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 24/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 24/38

O termo “flag” significa “bandeira” (rígida ou não) e, nos sistemas ferroviários, sinaliza o estado do desvioem uma via para as composições que trafegam. Da mesma forma em um fluxograma, o “flag”tem a funçãode sinalizar o estado do desvio em uma lógica.

Um “flag” é colocado dentro de uma seqüência lógica de acordo com a sua necessidade, pode ser acionadopor um elemento externo (botão, chave, sensor etc..) ou por um elemento interno, mas não faz nenhumcontrole externo.

Não existe regra para a colocação de um ou vários “flags” em um fluxograma, mesmo para o local exato dodesvio e das instruções/comandos para acionar ou não o desvio.

A necessidade, a localização e o modo de operar são determinados pela lógica do processo, o que pode levarao procedimento de tentativas e erros para a colocação de um “flag”.

No caso das figuras 22 e 23, é necessário que verifiquemos os estados do botão B1 (fig.22) e do led (fig.23)para adotarmos a ação correta porém, uma vez escolhida a opção, este caminho lógico deve ser percorridouma única vez.

Fazendo a inclusão do flag no fluxograma da fig.22:

Fig.24 - Inclusão do flag no fluxograma da fig.22.

ROT_PRINC

B1 = 1 ?

SIM

(B1 livre)

NÃO

(B1 pressionado)

L1 = 1 ?

FLAG = 1 FLAG = 1

SIM NÃO

(Ligado) (Desligado)

FLAG = 1 ?

FLAG = 0

L1 = 0 L1 = 1

SIM

NÃO

(Acionado)

(Não Acionado)

Page 25: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 25/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 25/38

Podemos observar na fig.24 que o desvio do flag foi incluído entre a verificação de estado do botão B1 e doled L1.

Para a análise de funcionamento da fig.24a, consideramos as condições iniciais:

1) Botão B1 está livre (B1 = 1).2) Flag tem nível lógico igual a zero (FLAG = 0).3) Led L1 apagado (L1 = 0).

Fig.24a – Análise Primeiro Caminho – Projeto 2 

Primeiro Caminho (fig.24a):

a) Inicia em ROT_PRINC.

b) Verifica estado do botão B1:# B1 livre (B1 = 1): segue para comando.

c) Comando:#Desliga FLAG (FLAG = 0).

d) Retorna para verificar B1 em ROT_PRINC.

Enquando forem mantidas as condições iniciais, o caminho seguido será sempre o marcado na fig.24a.

Para ligar o Led L1 é necessário pressionar o botão B1. Portando, vamos consideramos as condições:

1) Botão B1 foi pressionado (B1 = 1) - para ligar L12) Flag tem nível lógico igual a zero (FLAG = 0).3) Led L1 apagado (L1 = 0).

e seguir o caminho lógico mostrado na fig.24b para ligar L1:

ROT_PRINC

B1 = 1 ?

SIM

(B1 livre)

NÃO

(B1 pressionado)

L1 = 1 ?

FLAG = 1 FLAG = 1

SIM NÃO

(Ligado) (Desligado)

FLAG = 1 ?

FLAG = 0

L1 = 0 L1 = 1

SIM

NÃO

(Acionado)

(Não Acionado)

Page 26: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 26/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 26/38

Fig.24b – Análise Segundo Caminho – Projeto 2 

Segundo Caminho (fig.24b):

a) Inicia no retorno em ROT_PRINC.

b) Verifica estado do botão B1:# B1 pressionado (B1 = 0): segue para verificar

FLAG.

c) Verifica estado do FLAG# FLAG não acionado (FLAG = 0): segue para

verificar L1.

d) Verifica estado de L1# L1 apagado (L1 = 0): segue para comando.

e) Comando:# Acende L1 (L1 = 1).# Liga FLAG (FLAG = 1).

e) Retorna para verificar B1.

Após ligar L1 e acionar o FLAG e retornando para verificar o estado de B1 (em ROT_PRINC), vamosencontrar a seguinte situação:

1) Botão B1 continua pressionado (B1 = 1).2) Flag foi acionado (FLAG = 1).3) Led L1 foi aceso (L1 = 1).

O novo caminho a ser seguido é mostrado na fig.24c:

ROT_PRINC

B1 = 1 ?

SIM

(B1 livre)

NÃO

(B1 pressionado)

L1 = 1 ?

FLAG = 1 FLAG = 1

SIM NÃO

(Ligado) (Desligado)

FLAG = 1 ?

FLAG = 0

L1 = 0 L1 = 1

SIM

NÃO

(Acionado)

(Não Acionado)

Page 27: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 27/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 27/38

Fig.24c – Análise Terceiro Caminho – Projeto 2 

Terceiro Caminho (fig.24c):

a) Inicia no retorno em ROT_PRINC.

b) Verifica estado do botão B1:# B1 pressionado (B1 = 0): segue para verificar

FLAG.

c) Verifica estado do FLAG# FLAG acionado (FLAG = 1): retorna para

verificar B1.

Mantendo B1 pressionado (B1 = 0), vamos observar que o caminho da fig.24b só será percorrido uma únicavez devido ao acionamento do FLAG (como mostra a fig.24c).

Liberando o botão B1 (fazendo B1 = 1), voltamos a percorrer o caminho da fig.24a, com o retorno do FLAGao nível lógico zero (FLAG = 0) mas agora as seguintes condições são encontradas:

1) Botão B1 está livre (B1 = 1).2) Flag tem nível lógico igual a zero (FLAG = 0).3) Led L1 aceso (L1 = 1) - na condição inicial estava apagado (L1 = 0).

Observar que o retorno do FLAG ao nível lógico zero (FLAG = 0) prepara o caminho para apagar a lampadaL1 quando B1 for pressionado novamente.

Acionando novamente o botão B1 para apagar L1, percorremos o fluxograma com as condições:

1) Botão B1 é pressionado (B1 = 0).2) Flag tem nível lógico igual a zero (FLAG = 0).3) Led L1 aceso (L1 = 1).

A fig.24d mostra o novo caminho:

ROT_PRINC

B1 = 1 ?

SIM

(B1 livre)

NÃO

(B1 pressionado)

L1 = 1 ?

FLAG = 1 FLAG = 1

SIM NÃO

(Ligado) (Desligado)

FLAG = 1 ?

FLAG = 0

L1 = 0 L1 = 1

SIM

NÃO

(Acionado)

(Não Acionado)

Page 28: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 28/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 28/38

Fig.24d – Análise Quarto Caminho – Projeto 2 

Quarto Caminho (fig.24d):

a) Inicia no retorno em ROT_PRINC.

b) Verifica estado do botão B1:# B1 pressionado (B1 = 0): segue para verificar

FLAG.

c) Verifica estado do FLAG# FLAG não acionado (FLAG = 0): segue para

verificar L1.

d) Verifica estado de L1# L1 aceso (L1 = 1): segue para comando.

e) Comando:# Apaga L1 (L1 = 0).# Liga FLAG (FLAG = 1).

e) Retorna para verificar B1.

O caminho para comando do led L1 vai ficar bloqueado pelo flag enquanto o botão B1 permanecerpressionado. Ao liberar B1, desligamos o flag (flag = 0) e permitimos o acesso ao comando do led L1 na

próxima vez que B1 for pressionado.

Conclusão: A colocação do flag no fluxograma da fig.22 eliminou o problema da incerteza defuncionamento do dispositivo e L1 não pisca, ou seja, agora todos os requisitos descritos nasfiguras 16 a 20 foram atendidos.

Agora, vamos incluir o flag no fluxograma da fig.23, obtendo a fig.25 e analisar os resultados.

ROT_PRINC

B1 = 1 ?

SIM

(B1 livre)

NÃO

(B1 pressionado)

L1 = 1 ?

FLAG = 1 FLAG = 1

SIM NÃO

(Ligado) (Desligado)

FLAG = 1 ?

FLAG = 0

L1 = 0 L1 = 1

SIM

NÃO

(Acionado)

(Não Acionado)

Page 29: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 29/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 29/38

Fig.25 - Inclusão do Flag no fluxograma da fig.23.

No fluxograma da fig.25, como o estado do botão B1 é que controla a operação do dispositivo, optou-secolocar o desvio através do flag após a verificação do estado de B1 (semelhante ao fluxograma da fig.24).Como são dois caminhos lógicos independentes (um para ligar o led L1 e outro para desligar), cada caminhorecebeu o desvio do flag.

Para analisar a lógica do fluxograma da fig.25a (Primeiro Caminho) devemos considerar que o sistema estánas condições iniciais:

1) Led L1 apagado (L1 = 0).2) Botão B1 está livre (B1 = 1).

3) Flag tem nível lógico igual a zero (FLAG = 0).

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

FLAG = 1 ? FLAG = 1 ?

NÃO NÃO

(Não Aciionado)(Nao Aciionado)

SIMSIM

(Acionado) (Acionado)

FLAG = 1 FLAG = 1

FLAG = 0FLAG = 0

Page 30: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 30/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 30/38

Fig.25a – Análise Primeiro Caminho 

Primeiro Caminho (fig.25a):

a) Inicia em ROT_PRINC.

b) Verifica estado de L1:# L1 apagado (L1 = 0): segue para

verificar B1.

c) Verifica estado do Botão B1

# B1 livre (B1 = 1): segue paracomando.

d) Comando:# Desliga FLAG (FLAG = 0).

e) Retorna para verificar L1 emROT_PRINC.

Agora vamos pressionar o botão B1 e analisar o caminho seguido na fig.25b, observando as condições:

1) Led L1 apagado (L1 = 0).2) Botão B1 pressionado (B1 = 0).3) Flag igual a zero (FLAG = 0).

Fig.25b – Análise Segundo Caminho 

Segundo Caminho (fig.25b):

a) Inicia em ROT_PRINC.

b) Verifica estado de L1:# L1 desligado (L1 = 0): segue para

verificar B1.

c) Verifica estado do Botão B1# B1 pressionado (B1 = 0): segue

para verificar FLAG.

d) Verifica estado do FLAG

# FLAG desligado (FLAG = 0):segue comando.

e) Comando:# Acende L1 (L1 = 1)# Liga FLAG (FLAG = 1).

f) Retorna para verificar L1 emROT_PRINC.

Assim que ligamos o led L1, mudamos o estado do FLAG. Se ao retornarmos a ROT_PRINC para verificaro estado de L1 novamente, e mantivermos o botão B1 pressionado (B1 =1), vamos encontrar as seguintescondições:

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

FLAG = 1 ? FLAG = 1 ?

NÃO NÃO

(Não Aciionado)(Nao Aciionado)

SIMSIM

(Acionado) (Acionado)

FLAG = 1 FLAG = 1

FLAG = 0FLAG = 0

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

FLAG = 1 ? FLAG = 1 ?

NÃO NÃO

(Não Aciionado )(Nao Aciionado)

SIMSIM

(Acionado) (Acionado)

FLAG = 1 FLAG = 1

FLAG = 0FLAG = 0

Page 31: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 31/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 31/38

1) Led L1 aceso (L1 = 1).2) Botão B1 pressionado (B1 = 0).3) Flag acionado (FLAG = 1).

O que nos leva a percorrer o caminho da fig.25c:

Fig.25c – Análise Terceiro Caminho 

Terceiro Caminho (fig.25c):

a) Inicia em ROT_PRINC.

b) Verifica estado de L1:# L1 aceso (L1 = 1): segue para

verificar B1.

c) Verifica estado do Botão B1# B1 pressionado (B1 = 0): segue

para verificar FLAG.

d) Verifica estado do FLAG# FLAG acionado (FLAG = 1):

Retorna para verificar L1.

O fato de termos o FLAG acionado faz com que tenhamos o desvio de retorno para ROT_PRINC antes de

acionarmos o comando de desligar o led L1. Portanto, enquanto mantivermos o botão B1 pressionado (B1 =0), o caminho seguido será o da fig.25c.

Liberando o botão B1 (B1 = 1), as condições serão:

1) Led L1 aceso (L1 = 1).2) Botão B1 livre (B1 = 1).

Observar que o estado do FLAG não será mais verificado quando o botão B1 for liberado.

O novo caminho a ser percorrido está na fig.25d:

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

FLAG = 1 ? FLAG = 1 ?

NÃO NÃO

(Não Aciionado)(Nao Aciionado )

SIMSIM

(Acionado) (Acionado)

FLAG = 1 FLAG = 1

FLAG = 0FLAG = 0

Page 32: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 32/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 32/38

Fig.25d – Análise Quarto Caminho 

Quarto Caminho (fig.25d):

a) Inicia em ROT_PRINC.

b) Verifica estado de L1:# L1 aceso (L1 = 1): segue para

verificar B1.

c) Verifica estado do Botão B1

# B1 livre (B1 = 1): segue comando.

d) Comando# Desliga FLAG (FLAG = 0).

e) Retorna para verificar L1 emROT_PRINC.

Como podemos ver, com o botão B1 livre, o FLAG é desligado o que permitirá, na próxima vez que o botãoB1 for pressionado, desligar o led L1. Para tanto, as condições serão:

1) Led L1 aceso (L1 = 1).2) Botão B1 pressionado (B1 = 0).3) Flag desligado (FLAG = 0).

A fig.25e mostra como o caminho é seguido:

Fig.25e – Análise Quinto Caminho 

Quinto Caminho (fig.25e):

a) Inicia em ROT_PRINC.

b) Verifica estado de L1:# L1 aceso (L1 = 1): segue para

verificar B1.

c) Verifica estado do Botão B1

# B1 pressionado (B1 = 0): seguepara verificar FLAG.

d) Verifica estado do FLAG# FLAG desligado (FLAG = 0):

segue comando.

e) Comando:# Apaga L1 (L1 = 0)# Liga FLAG (FLAG = 1).

f) Retorna para verificar L1 emROT_PRINC.

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

FLAG = 1 ? FLAG = 1 ?

NÃO NÃO

(Não Aciionado)(Nao Aciionado)

SIMSIM

(Acionado) (Acionado)

FLAG = 1 FLAG = 1

FLAG = 0FLAG = 0

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

FLAG = 1 ? FLAG = 1 ?

NÃO NÃO

(Não Aciionado)(Nao Aciionado)

SIMSIM

(Acionado) (Acionado)

FLAG = 1 FLAG = 1

FLAG = 0FLAG = 0

Page 33: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 33/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 33/38

Assim que desligamos o led L1, mudamos o estado do FLAG. Se ao retornarmos a ROT_PRINC paraverificar o estado de L1 novamente, e mantivermos o botão B1 pressionado (B1 =1), vamos encontrar asseguintes condições:

1) Led L1 apagado (L1 = 0).2) Botão B1 pressionado (B1 = 0).3) Flag acionado (FLAG = 1).

O que nos leva a percorrer o caminho da fig.25f:

Fig.25f – Análise Sexto Caminho 

Sexto Caminho (fig.25f):

a) Inicia em ROT_PRINC.

b) Verifica estado de L1:# L1 apagado (L1 = 0): segue para

verificar B1.

c) Verifica estado do Botão B1# B1 pressionado (B1 = 0): segue

para verificar FLAG.

d) Verifica estado do FLAG# FLAG ligado (FLAG = 1):

retorna para verificar L1.

Se liberarmos o botão B1 (B1 = 1), voltamos ao caminho representado pela fig.25 a, repetindo todos oscaminhos novamente.

Conclusão: A inclusão do flag no fluxograma da fig.23, produzindo o fluxograma da fig.25, eliminou oproblema da incerteza de funcionamento do dispositivo e L1 não pisca,ou seja,agora todos osrequisitos descritivos nas fig.16 a 20 foram atendidos.

Alguns comentários podem ser feitos a partir das soluções apresentadas para o Projeto 2:

a) Para o mesmo problema,vários fluxogramas podem ser desenvolvidos.

b) A aplicação de desvios condicionais (flags) não possui uma regra específica.

c) Podem ser utilizados vários flags, tantos quantos forem necessários para resolver o problema.

d) Um mesmo flag pode ser empregado para funções/destinos distintos desde que os retornos não sejamentrelaçados.

e) A utilização do flag não é obrigatória nem indispensável, como pode ser visto na comparação entre osfluxogramas das figuras 22 e 24 e das figuras 23 e 25. Houve um aumento de instruções/comandoscom acréscimo do flag.

Para confirmar o comentário, vamos observar a fig.26.

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

FLAG = 1 ? FLAG = 1 ?

NÃO NÃO

(Não Aciionado)(Nao Aciionado)

SIMSIM

(Acionado) (Acionado)

FLAG = 1 FLAG = 1

FLAG = 0FLAG = 0

Page 34: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 34/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 34/38

Fig.26 – Solução sem flag para o fluxograma fig.23.

Vamos analisar o funcionamento do fluxograma da fig.26 para verificarmos se a retirada do flag e oredirecionamento dos retornos operam da maneira adequada.

Portanto, estabelecendo as condições iniciais:

1) Led L1 apagado (L1 = 0).

2) Botão B1 livre (B1 = 1).

A fig.26a mostra o caminho:

Fig.26a – Análise Primeiro Caminho 

Primeiro Caminho (fig.26a):

a) Inicia em ROT_PRINC.

b) Verifica o estado de L1:# L1 apagado (L1 = 0): segue para verificar B1.

c) Verifica estado do botão B1:# B1 livre (B1 = 1): retorna para verificar L1.

Para ligar o led L1 será necessário pressionar o botão B1. Nesta condição, o fluxograma será analisado apartir de:

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

Page 35: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 35/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 35/38

1) Led L1 apagado (L1 = 0).2) Botão B1 pressionado (B1 = 0).

A fig.26b mostra o caminho seguido para ligar L1:

Fig.26b – Análise Segundo Caminho 

Segundo Caminho (fig.26b):

a) Inicia em ROT_PRINC.

b) Verifica o estado de L1:# L1 apagado (L1 = 0): segue para verificar B1.

c) Verifica estado do botão B1:# B1 pressionado (B1 = 0): segue para comando.

e) Comando:# Acende L1 (L1 = 1).

e) Retorna para verificar B1.

Observe que não voltamos para verificar o estado de L1 mas o estado de B1, diferente dos fluxogramasanteriores. Se mantivermos B1 pressionado (B1 = 0), o caminho seguido será o demonstrado na fig. 26c:

Fig.26c – Análise Terceiro Caminho 

Terceiro Caminho (fig.26c):

a) Verifica estado do botão B1:# B1 pressionado (B1 = 0): segue para comando.

b) Comando:# Acende L1 (L1 = 1).

c) Retorna para verificar B1.

Se B1 permanecer pressionado (B1 = 0), o caminho seguido será sempre o da fig.26c. Agora vamos liberar obotão B1 (fazendo B1 = 1) e ver como fica o fluxograma na fig.26d:

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

Page 36: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 36/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 36/38

Fig.26d – Análise Quarto Caminho 

Quarto Caminho (fig.26d):

a) Comando:# Acende L1 (L1 = 1).

b) Verifica estado do botão B1:# B1 livre (B1 = 1): retorna para verificar L1.

Ao liberar o botão B1, voltamos para verificação do estado do led L1. Notar para o fato de que passamospelo comando acendendo L1 (L1 = 1). Portanto, quando houver a verificação do estado de L1, o desvioutilizado será para SIM - L1 ligado. A fig.26e mostra o novo caminho seguido para as condições:

1) Led L1 aceso (L1 = 1).2) Botão B1 livre (B1 = 1).

Fig.26e – Análise Quarto Caminho 

Quinto Caminho (fig.26e):

a) Retorna em ROT_PRINC.

b) Verifica o estado de L1:# L1 aceso (L1 = 1): segue para verificar B1.

c) Verifica estado do botão B1:# B1 livre (B1 = 1): retorna para verificar B1.

É a mesma situação encontrada na fig.26a porém, com o led L1 acesa. Pressionando o botão B1, agora paraapagar L1, teremos a seguinte situação:

1) Led L1 aceso (L1 = 1).2) Botão B1 pressionado (B1 = 0).

A fig.26f mostra o caminho:

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

Page 37: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 37/38

Bento Alves Cerqueira Cesar Filho - R 1.4 - JUN_07Pg. 37/38

Fig.26f – Análise Sexto Caminho 

Sexto Caminho (fig.26f):

a) Verifica o estado de L1:# L1 aceso (L1 = 1): segue para verificar B1.

b) Verifica estado do botão B1:# B1 pressionado (B1 = 0): segue para comando.

c) Comando:# Apaga L1 (L1 = 0).

d) Retorna para verificar B1.

Da mesma forma que na fig.26b, não voltamos para verificar o estado de L1 mas o estado de B1. Semantivermos B1 pressionado (B1 = 0), o caminho seguido será o demonstrado na fig. 26g:

Fig.26g – Análise Sétimo Caminho 

Sétimo Caminho (fig.26g):

a) Verifica estado do botão B1:# B1 pressionado (B1 = 0): segue para comando.

b) Comando:

# Apaga L1 (L1 = 0).

c) Retorna para verificar B1.

Se B1 permanecer pressionado (B1 = 0), o caminho seguido será sempre o da fig.26g (verifique que ésemelhante à fig.26c). Agora vamos liberar o botão B1 (fazendo B1 = 1) e ver como fica o fluxograma nafig.26h:

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

Page 38: Tecnica Programacao Com Fluxograma

8/6/2019 Tecnica Programacao Com Fluxograma

http://slidepdf.com/reader/full/tecnica-programacao-com-fluxograma 38/38

Fig.26h – Análise OitavoCaminho 

Oitavo Caminho (fig.26):

a) Comando:# Apaga L1 (L1 = 0).

b) Verifica estado do botão B1:# B1 livre (B1 = 1): retorna para verificar L1.

Novamente, liberando o botão B1, voltamos para verificação do estado do led L1. Notar para o fato de quepassamos pelo comando apagando L1 (L1 = 0). Portanto, quando houver a verificação do estado de L1, odesvio utilizado será para NÃO - L1 desligado. A fig.26i mostra o novo caminho seguido para as condições:

1) Led L1 apagado (L1 = 0).2) Botão B1 livre (B1 = 1).

Que nada mais é que a fig.26a do início da nossa análise:

Fig.26i – Análise Primeiro Caminho 

Primeiro Caminho (fig.26i):

a) Inicia em ROT_PRINC.

b) Verifica o estado de L1:# L1 apagado (L1 = 0): segue para verificar B1.

c) Verifica estado do botão B1:# B1 livre (B1 = 1): retorna para verificar L1.

Como pode ser verificado, bastou uma modificação no retorno após a instrução para acender ou apagar L1retornando para a verificação de B1 (e não mais para a verificação de L1), que eliminamos o flag eatingimos o objetivo de atender aos requisitos descritivos nas fig.16 a 20.

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)

ROT_PRINC

L1 = 1 ?

L1 = 0

SIM NÃO

(Ligado) (Desligado)

B1 = 1 ? B1 = 1 ?

L1 = 1

NÃO NÃO

SIM SIM

(B1 livre)

(B1 pressionado)(B1 pressionado)

(B1 livre)