Primeiro projeto com Pic


1.674 visualizações

Olá pessoal.

Neste post trago o primeiro projeto em linguagem C para microcontrolador Pic. Trata-se de um simples Olá Mundo! com um led, afinal tudo sempre tem um começo!

O IDE utilizado é o mikroC Pro v3.80 da  mikroElektronika

Para nosso pequeno projeto, a versão demo atende perfeitamente.  Ela compila qualquer programa até 2K de código por tempo indeterminado! Como nosso projeto é muito simples (< 1K), atenderá perfeitamente.

O mikroC, possui diversas bibliotecas prontas para uso. Uma desvantagem nele é que tais bibliotecas são de código “fechado”. Portanto devemos nos conformar com o “utilize-as” já estão prontas!. Porém algumas vantagens:

  • Muito rápido o desenvolvimento.
  • Ajuda a compreender o hardware do pic, pois todos os registradores são chamados pelos próprios nomes, identicos ao datasheet. Fantástico isto, com um pouco de tempo, o usuário terá condições de utilizar blocos programados diretamente em Assembly, onde seja requerido precisão em bases de tempo, mudanças rápidas nos registradores, etc.
  • O uso deste ambiente vem crescendo cada vez mais. Já existem empresas com material disponível em português Br.

Link para download aqui.

Como todo IDE, é dificil ter de aprender os comandos e outras coisas mais. Para quem migra do CCS por exemplo, tenho certeza que fica uma “pilha” tentando entender com o mikroC funciona.

A lógica é a mesma coisa, porém menos “complicado” depois de familiarizarmos com o ambiente.

O projeto aqui exposto com o microcontrolador PIC16F628A, já está pronto junto do arquivo para simulação no Proteus 7.

O código é bem comentado, e permite aos iniciantes entender o funcionamento.

Por hora, não é o escopo do post iniciar um “projeto do zero”. Ficará para um próximo onde aplicaremos a nossaplaca de entradas e saídas.

O código desenvolvido é simples acende um led ligado no pino B0 e pode ser executado de duas formas distintas:

  • Ao ligar uma pausa de 3 segundos inicial, pisca com intervalo de 1 segundo 10 x, pausa de 3 segundos e assim enquanto houver alimentação.
  • Ao ligar uma pausa de 3 segundos inicial, acende por 1 segundo e pausa por 3 segundos … enquanto houver alimentação.

Os arquivos já estão com a primeira opção acima compilado. Ao executar no Proteus aguarde a pausa inicial de 3 segundos. Se quiser testar a segunda, siga os passos dentro do próprio código.

Para quem desejar montar no protoboard, basta uma fonte de 5Vcc, as ligações como vista no simulador e adicionar o GND ao pino 5, a VCC ao pino 14. O botão serve para resetar o microcontrolador.  Não é necessário o capacitor e botão de reset. Sem o resistor de 10K, o circuito não entra em funcionamento.

Como podemos ver, o oscilador utilizado é o interno sem saída de clock à 4Mhz. Apesar de não termos precisão no tempo(afinal o oscilador interno é um arranjo RC) os pinos 15 e 16 destinados ao cristal estão liberados e podem ser utilizados como I/O. Para ver as configs iniciais, abra o arquivo PrimeiroProjeto.mcppi  e pressione CTRL + SHIFT + E.

Aos iniciantes que não sabem como gravar o microcontrolador, recomendo este  post

Segue os arquivos compactados para download: Primeiro Projeto com MikroC e PIC16F628A (327)

Caso algum de nossos leitores realizar a montagem em protoboard e quiser nos enviar uma foto, a mesma será publicada abaixo, junto aos devidos créditos.

Até à próxima!

Sobre Fabio Betoni

Fabio Betoni já escreveu 12 artigos no portal.

Formado em Gestão de Tecnologia da Informação, Técnico em Eletrônica, Pós-Técnico em Automação Industrial. Atualmente trabalha como Analista de Redes e Informatica; Desenvolvedor livre de circuitos, layout, protótipos, montagens, testes de placas de circuito impresso e projetos com microcontroladores Microchip©.

Posts relacionados:

  1. Projeto Pisca-Led e Switch – Completo
  2. Semáforo Microcontrolado
  3. Fórum de eletrônica aberto
  4. Reaproveitando um pouco de sucata.
  5. Decodificador BCD para 7 Segmentos
-->

9 Interações

  1. Ramazzot disse:

    Achei maravilha seu projeto. Consegui fazer minha plaquinha funcionar, muito bom. Gostaria se puder que me mandasse programas assim pequenos para eu treinar; estou começando; à propósito todas vezes que vamos programar o PIC16F628A temos que colocar um cabeçalho? como é isto? Muito obrigado!

    • Fabio Betoni disse:

      Olá Ramazzot.
      Fico muito satisfeito por conseguir efetuar o experimento!
      Quanto aos cabeçalhos, outros compiladores costumam pedir. O mikroC tem uma área especifica para isso.
      Pressione CTRL+SHIFT+E que abrirá a caixa com as opções. Nela configuramos os “fuses” que determinam tipo de oscilador, frequencia, proteção de código e outros mais. Em outros posts explicarei como funciona a maior parte deles no PIC16F628A.
      Obrigado pelo comment. Grande abraço!

  2. Fabio muito legal o artigo. Espero que haja muitas visitas em sua pagina. Sempre, é muito difícil de encontrar bons materiais sobre programação e projetos com pic. Cesar.

    • Fabio Betoni disse:

      Cesar, agradeço sem medir dimensões pelo comentário. Isso nos traz imensos incentivos. É sempre muito árduo o trabalho em criar posts de qualidade. Nossa equipe se esforça ao máximo para que bons materiais venha ser publicado.
      Grande abraço!

  3. j.carlos disse:

    Boa noite à todos.
    Gostaria de parabenizar o site é muito bom,enfim o unico que se consegue baixar um programa para fazer funcionar o pic. Infelizmente estamos carente de bons blogs ou mesmo sites onde ensinam como programar um pic como funciona os porque dos includes void main while port fuses o que é para que serve onde é usado porque o pino 4 do pic sempre é ligado e quando pulsa vai para negativo, parece que todos colocam materiais na net e acham que todos sabem, nossa deveria ter alguém para explicar melhor. Eu baixei este programa gravei no pic 16f628a aliás não se vê muito programa para este tipo de pic, bem então queria ver fazer experiencia alterando tempo outras saidas como entrada, imaginem não se consegue ver o programa, poxa porque alguém que sabe nao coloca um programinha deste na net para quem não sabe como eu fazer suas experiências. Sera que é tão dificil assim programar, olha sinceramente estou achando por isto que a maioria desiste é uma pena. Desculpem mas pior é que isto é verdadeiro. Pode mandar critica [...]
    O endereço de email não será exibido

    • Fabio Betoni disse:

      Olá j. carlos. Muito obrigado pela sua visita. Veja, é muito “penoso” para o iniciante entender tudo o que você relata. Comigo não foi diferente. Porém, depende muito de nossa dedicação e esforço, que as vezes tem de ir além de nossa capacidade. O intuito deste post foi apresentar o ambiente no qual iremos desenvolver os projetos portanto não é o escopo criar um projeto do “zero”. Seu pedido está por vir; serão esclarecidas estas dúvidas em trabalhos cuidadosamente preparados aos iniciantes. Assine a newsletter da Projetos e TI ou siga-nos: @projetoseti.
      Grande abraço.

  4. mauricio marotta disse:

    Ola Fabio, boa tarde.
    Aqui vai mais um principiante amador.

    voce poderia me orientar na sequencia de instruções em “C” para um pic 16f676, que quero fazer com uma saida temporizada controlada por um potenciômetro, do tipo:
    ação/ tempo (variavel pelo pot.) e fim.
    Se nao for coisa muito complicada.
    Desde ja muito obrigado e parabens pela dedicação à divulgação de seu precioso conhecimento.
    Mauricio

  5. Fabio Betoni disse:

    Olá Mauricio, obrigado pela apreciação.
    Não é algo crítico seu projeto. Basicamente será necessário:
    1° Configurar o Conversor AD;
    2° Um timer (caso use o micro para outras tarefas).
    3° Pinos para entradas e saídas.
    … algumas variáveis, e outras pequenas coisas já apresentadas aqui no blog. Por se tratar de um assunto mais extenso e fugir do nosso escopo, trataremos via email. Muito obrigado pela visita. Grande abraço.

  6. André disse:

    Valeu a pena ter passado por aqui,voce realmente sabe o significado da palavra iniciante,todos vendem livros,kits,placas de treinamento para pic mas que para um iniciante não serve de muita coisa ja que varios termos usados nas linguagens de programação e nos hardwares não são do nosso conhecimento,então acho que os iniciantes como eu deve começar realmente pelo começo.
    ex:qual linguagem de programação usar?Qual o compilador a usar?Por que a linguagem C é a mais difundida entre os programadores de pic .Cade o basic ,o assembly, o,fluxograma.Fábio gostei muito do teu site valeu parceiro!!!!!!!!

Interaja

Qual a soma entre:
4 + 2