Menus de configuração no Painel de Administração

GVensino - fome de saber!

Lista 01 de Exercícios Básicos de Microcontroladores PIC

Olá galera!

A seguir, vamos fazer alguns exercícios bem básicos de programação de microcontroladores PIC em C.

[author] [author_image timthumb=’on’]http://gvensino.com.br/wp-content/uploads/2013/04/eyes-34619_6401-150×150.jpg[/author_image] [author_info]Pausa para uma dica: Quer aprender a programar?

Então não perca também o nosso curso de Programação em Linguagem C. Todos os dias, uma aula nova pra você! Clique Aqui e acesse as aulas que já foram publicadas![/author_info] [/author]

Utilizaremos a IDE PIC C Compiler, que já vem com o compilador CCS.

O PIC que vocês devem utilizar é o 16F628A, usando o Isis Proteus para simular.

[box type=”info”] Conhecimentos Necessários:

Ligar e desligar saídas (output_high e output_low);

Contagem de tempo (delay_ms);

Instrução de Salto/Desvio (goto).

[/box]


 

[box type=”warning”]Lembre-se: 

* Pino RA5 é apenas entrada neste modelo de PIC;

* Pino RA4 é saída em coletor aberto. Precisa de um resistor de pull-up (resistor para VCC) para funcionar com saída.

[/box]


 

Mãos à obra!

[box type=”shadow”] Programa 01 –

Faça com que um Led ligado em RA2 pisque 3x e então apague (as piscagens podem ser de 0,5s cada)[/box]

[learn_more caption=”Resolução Programa 01″]

 

Solução enviada pelo aluno Túlio Lima Silva:

output_high(pin_a2);
delay_ms(500);
output_low(pin_a2);
delay_ms(400);

output_high(pin_a2);
delay_ms(500);
output_low(pin_a2);
delay_ms(400);

output_high(pin_a2);
delay_ms(500);
output_low(pin_a2);
delay_ms(400);

[/learn_more]


[box type=”shadow”] Programa 02 –

Utilize 4 leds, nas seguintes cores: Azul, Verde, Amarelo e Vermelho.

O led Azul acende primeiro. Após 2s, ele apaga e então o Verde e o Amarelo acendem juntos. Após 2s, o Amarelo apaga e o Vermelho acende. Após 1s, o Verde apaga. Após 2s, o Vermelho também apaga. Após 2s, todos os 4 acendem e ficam acesos por 4s. Após esse tempo, eles apagam.[/box]

[learn_more caption=”Resolução Programa 02″]

Solução enviada pelo aluno Túlio Lima Silva:

output_high(pin_a2);
delay_ms(2000);
output_low(pin_a2);
output_high(pin_a1);
output_high(pin_a3);
delay_ms(2000);
output_low(pin_a3);
output_high(pin_a0);
delay_ms(1000);
output_low(pin_a1);
delay_ms(2000);
output_low(pin_a0);
delay_ms(2000);
output_high(pin_a0);
output_high(pin_a1);
output_high(pin_a2);
output_high(pin_a3);
delay_ms(4000);
output_low(pin_a0);
output_low(pin_a1);
output_low(pin_a2);
output_low(pin_a3);

[/learn_more]


[box type=”shadow”] Programa 03 –

Faça com que um led fique piscando sem parar (tempo: 0,5s).[/box]

[learn_more caption=”Resolução Programa 03″]

Solução enviada pelo aluno Túlio Lima Silva:

volta:
output_high(pin_a0);
delay_ms(500);
output_low(pin_a0);
delay_ms(200);
goto volta;

[/learn_more]


[box type=”shadow”] Programa 04 –

Faça com que 2 leds fiquem piscando alternadamente (tempo: 0,5s).[/box]

[learn_more caption=”Resolução Programa 04″]

Solução enviada pelo aluno Túlio Lima Silva:

volta:
output_high(pin_a0);
delay_ms(500);
output_low(pin_a0);
output_high(pin_a1);
delay_ms(500);
output_low(pin_a1);
goto volta;

[/learn_more]


[box type=”shadow”] Programa 05 –

Utilize 3 leds. Faça um contador binário de 000 até 111. 0 é led apagado e 1 é led aceso. Utilize o tempo de 1s entre uma contagem e outra. Após o término da contagem, ela será reiniciada automaticamente.[/box]

[learn_more caption=”Resolução Programa 05″]

Solução enviada pelo aluno Túlio Lima Silva:

volta:
output_low(pin_a0);
output_low(pin_a1);
output_low(pin_a2);
delay_ms(500);

output_high(pin_a2);
delay_ms(1000);
output_low(pin_a2);
delay_ms(200);

output_high(pin_a1);
delay_ms(1000);
output_low(pin_a1);
delay_ms(200);

output_high(pin_a1);
output_high(pin_a2);
delay_ms(1000);
output_low(pin_a1);
output_low(pin_a2);

output_high(pin_a0);
delay_ms(1000);
output_low(pin_a0);
delay_ms(200);

output_high(pin_a0);
output_high(pin_a2);
delay_ms(1000);
output_low(pin_a0);
output_low(pin_a2);
delay_ms(200);

output_high(pin_a0);
output_high(pin_a1);
delay_ms(1000);
output_low(pin_a0);
output_low(pin_a1);
delay_ms(200);

output_high(pin_a0);
output_high(pin_a1);
output_high(pin_a2);
delay_ms(1000);
output_low(pin_a0);
output_low(pin_a1);
output_low(pin_a2);
delay_ms(200);
goto volta;

[/learn_more]


[box type=”shadow”] Programa 06 –

Utilize 5 leds. Eles deverão acender na sequência, um por um (da esquerda para a direita). Quando todos estiverem acesos, eles deverão apagar, igualmente um por um, da direita para a esquerda (isto é, apaga primeiro o da direita). Utilize o tempo de 0,7s. O funcionamento irá se repetir indefinidamente.[/box]

[learn_more caption=”Resolução Programa 06″]

Solução enviada pelo aluno Túlio Lima Silva:

volta:
output_high(pin_a0);
delay_ms(700);
output_high(pin_a1);
delay_ms(700);
output_high(pin_a2);
delay_ms(700);
output_high(pin_a3);
delay_ms(700);
output_high(pin_a4);
delay_ms(700);
output_low(pin_a4);
delay_ms(700);
output_low(pin_a3);
delay_ms(700);
output_low(pin_a2);
delay_ms(700);
output_low(pin_a1);
delay_ms(700);
output_low(pin_a0);
delay_ms(700);
goto volta;

[/learn_more]


[box type=”shadow”] Programa 07 –

Utilize 4 leds, 2 verdes e 2 vermelhos. Um led verde e vermelho serão um semáforo da Avenida 1. O outro led verde e vermelho serão o semáforo da Avenida 2.

Faça um programa que controle o funcionamento desses semáforos. Você escolhe os tempos.

Obs.: para evitar acidentes de trânsito, sempre que um dos semáforos passar para vermelho, o outro aguardará 2s também em vermelho, para então passar para verde. Os semáforos deverão funcionar continuamente, sem parar nunca, exceto quando o microcontrolador for desligado.[/box]

[learn_more caption=”Resolução Programa 07″]

Solução enviada pelo aluno Túlio Lima Silva:

volta:
output_high(pin_a0);
output_high(pin_a2);
delay_ms(1000);
output_low(pin_a2);
output_high(pin_a1);
delay_ms(1000);
output_low(pin_a0);
output_high(pin_a3);
delay_ms(1000);
output_low(pin_a3);
output_high(pin_a0);
delay_ms(1000);
output_low(pin_a1);
goto volta;

[/learn_more]


Dúvidas? Entre em nosso fórum, faça login e escreva-nos!

Se você conseguiu fazer algum dos exercícios acima, nos mande sua resposta através do fórum ou deixando um comentário abaixo! Iremos publicar seu código em nosso site e, é claro, usaremos seu nome!

 

 

14Respostas em "Lista 01 de Exercícios Básicos de Microcontroladores PIC"

  1. Progama 05 volta:
    output_low(pin_a0); output_low(pin_a1); output_low(pin_a2);
    delay_ms(500);

    output_high(pin_a2);
    delay_ms(1000);
    output_low(pin_a2);
    delay_ms(200);

    output_high(pin_a1);
    delay_ms(1000);
    output_low(pin_a1);
    delay_ms(200);

    output_high(pin_a1);
    output_high(pin_a2);
    delay_ms(1000);
    output_low(pin_a1);
    output_low(pin_a2);

    output_high(pin_a0);
    delay_ms(1000);
    output_low(pin_a0);
    delay_ms(200);

    output_high(pin_a0);
    output_high(pin_a2);
    delay_ms(1000);
    output_low(pin_a0);
    output_low(pin_a2);
    delay_ms(200);

    output_high(pin_a0);
    output_high(pin_a1);
    delay_ms(1000);
    output_low(pin_a0);
    output_low(pin_a1);
    delay_ms(200);

    output_high(pin_a0);
    output_high(pin_a1);
    output_high(pin_a2);
    delay_ms(1000);
    output_low(pin_a0);
    output_low(pin_a1);
    output_low(pin_a2);
    delay_ms(200);
    goto volta;

  2. Progama 01
    output_high(pin_a2);
    delay_ms(500);
    output_low(pin_a2);
    delay_ms(400);

    output_high(pin_a2);
    delay_ms(500);
    output_low(pin_a2);
    delay_ms(400);

    output_high(pin_a2);
    delay_ms(500);
    output_low(pin_a2);
    delay_ms(400);

  3. Progama 02
    output_high(pin_a2);
    delay_ms(2000);
    output_low(pin_a2);
    output_high(pin_a1);
    output_high(pin_a3);
    delay_ms(2000);
    output_low(pin_a3);
    output_high(pin_a0);
    delay_ms(1000);
    output_low(pin_a1);
    delay_ms(2000);
    output_low(pin_a0);
    delay_ms(2000);
    output_high(pin_a0);
    output_high(pin_a1);
    output_high(pin_a2);
    output_high(pin_a3);
    delay_ms(4000);
    output_low(pin_a0);
    output_low(pin_a1);
    output_low(pin_a2);
    output_low(pin_a3);

  4. Progama 03
    volta:
    output_high(pin_a0);
    delay_ms(500);
    output_low(pin_a0);
    delay_ms(200);
    goto volta;

  5. progama 04
    volta:
    output_high(pin_a0);
    delay_ms(500);
    output_low(pin_a0);
    output_high(pin_a1);
    delay_ms(500);
    output_low(pin_a1);
    goto volta;

  6. progama 06
    volta:
    output_high(pin_a0);
    delay_ms(700);
    output_high(pin_a1);
    delay_ms(700);
    output_high(pin_a2);
    delay_ms(700);
    output_high(pin_a3);
    delay_ms(700);
    output_high(pin_a4);
    delay_ms(700);
    output_low(pin_a4);
    delay_ms(700);
    output_low(pin_a3);
    delay_ms(700);
    output_low(pin_a2);
    delay_ms(700);
    output_low(pin_a1);
    delay_ms(700);
    output_low(pin_a0);
    delay_ms(700);
    goto volta;

  7. progama 07
    volta:
    output_high(pin_a0);
    output_high(pin_a2);
    delay_ms(1000);
    output_low(pin_a2);
    output_high(pin_a1);
    delay_ms(1000);
    output_low(pin_a0);
    output_high(pin_a3);
    delay_ms(1000);
    output_low(pin_a3);
    output_high(pin_a0);
    delay_ms(1000);
    output_low(pin_a1);
    goto volta;

Deixe sua mensagem

©GVensino - Todos os Direitos Reservados
css.php