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

GVensino - fome de saber!

PIC com MPLAB X e XC8: Primeiro programa

 


Nesta aula, vamos aprender a fazer nosso primeiro programa utilizando a IDE MPLAB X e o Compilador XC8, ambos gratuitos e que podem ser encontrados no site da Microchip:

Microchip MPLAB X

Microchip XC Compilers

Há versões para Windows, Linux e MAC! Todas gratuitas e de uso livre, inclusive, para fins comerciais!

Instale primeiramente o MPLAB X e depois o compilador XC8, que é o compilador para os PICs da linha 10, 12, 16 e 18.

Feito isto, vamos criar nosso primeiro programa!

Utilizaremos o PIC 16F88 com dois LEDs, conforme o esquema abaixo:

Screen Shot 08-25-15 at 11.39 AM

 

Ligamos um led vermelho (LED-RED) no pino RB0 e um led verde (LED-GREEN) no pino RB1 do microcontrolador.

Vamos agora abrir o MPLAB X:

mplab01

 

Na tela inicial, vamos no menu File -> New Project:

mplab02

 

Aparecerá a tela a seguir, a qual deveremos manter as opções Microchip Embedded e Standalone Project marcadas e clicar em Next:

mplab04

 

Selecione a seguir o modelo do Microcontrolador que está trabalhando. No nosso caso, o PIC 16F88:

mplab03

 

Selecione Simulator e Next:

mplab06

 

Muito importante! Marque o compilador XC8. E então Next:

mplab05

 

Agora, vamos dar um nome para nosso projeto. No nosso caso, chamei de Programa 01 e salvei dentro de uma pasta em C:. É muito importante você criar seus projetos em pastas separadas e cuja localização no computador você conheça bem. Por isso que optei por criar em C:. Então, clique em Finish:

mplab07b

 

Feito isto, criamos nosso projeto. Agora, vamos à programação em si.


Iniciando a programação

Para iniciarmos a nossa programação, precisamos criar o arquivo onde iremos digitar o código. Para isso, do lado direito da tela, em Projects, clique com o botão direito do mouse em Source Codes -> New -> C Source File, conforme a imagem abaixo:

mplab10b

 

Um novo arquivo, então, será aberto, já com alguns códigos definidos:

mplab11

 

E agora precisamos entender algumas coisas.

  1. A lógica do nosso programa deverá ser digitada dentro do int main.
  2. o comando return (EXIT_SUCCESS); deve sempre ser o último comando do int main e portanto, tudo o que vamos digitar deve vir antes desta instrução.

Vamos agora configurar a frequência do oscilador do nosso microcontrolador. Como utilizaremos oscilador interno, vamos escolher 4MHz. Para isso, a primeira linha de código do nosso programa deverá ser:

Ficando assim:

mplab12

 

Agora que já definimos a frequência, vamos definir os fusíveis do nosso microcontrolador.

Para isso, vá até o menu Run -> Set Configuration Bits (também é possível acessar pelo menu Window -> Pic Memory Views -> Configuration Bits):

mplab13

 

 

Então, na parte debaixo da tela, aparecerá uma janela permitindo a escolha dos diversos fusíveis do PIC 16F88. Vamos deixar como na imagem abaixo, à saber, colocar o oscilador como interno, sem saída de clock (INT OSC IO) e as demais opções, todas, marcar em OFF (menos as duas últimas, que por enquanto, tanto faz deixar em ON ou OFF). Veja como deve ficar:

mplab14b

Alterações Realizadas nos fusíveis:

  • FOSC: INTOSCIO
  • WDTE: OFF
  • MCLRE: OFF
  • BOREN: OFF
  • LVP: OFF

Feitas as alterações, clique no botão Generate Source Code to Output. Copie todo o código gerado (ver imagem abaixo) e cole no programa (ver imagem seguinte):

mplab15

 

mplab16

 

Retirando alguns comentários, o código ficará assim:

Finalmente, a configuração está pronta!


Definindo os pinos como Entrada ou Saída

Já que vamos ligar LEDs em RB0 e RB1, precisamos definir estes pinos como SAÍDA.

Para isso, devemos configurar o registrador TRIS. Cada PORT do PIC tem um registrador TRIS correspondente à ele. Assim como existem o PORTA (pinos RA), o PORTB (pinos RB), o PORTC (pinos RC), etc, também existem os registradores TRISA (para o PORTA), TRISB (para o PORTB), TRISC (para o PORTC), etc.

Podemos alterar individualmente se o pino vai ser entrada ou saída através de várias maneiras. Uma delas é:

Repare que, se colocarmos o registrador TRIS do pino como 0 (zero), esse pino será SAÍDA.

Se colocarmos o registrador TRIS do pino como 1 (um), o esse pino será ENTRADA.

Isso é porque o número 0 lembra a letra O, de Output. E o número 1 lembra a letra I, de Input.

0 = Output (Saída)

1 = Input (Entrada)

Também podemos configurar a direção (entrada ou saída) de todos os pinos de uma só vez. Veja:

No caso acima, começamos com 0b (zero + b), indicando que se trata de um número binário, e depois oito números 0’s ou 1’s, um para cada pino do PORT, à partir do último (B7):

Screen Shot 08-26-15 at 05.00 PM

O código ficará assim:

mplab17

 

 


 

Ligando os Leds!

Agora, vamos criar o nosso laço de repetição while, que é onde ficará nosso código que será executado:

mplab18

 

Estamos quase lá!

Podemos controlar o estado dos pinos de saída RB0 e RB1 de forma muito simples. Veja:

Para fazermos um pisca-pisca, precisaremos, ainda, utilizar o comando __delay_ms(), que gera uma espera de um tempo, em ms (milisegundos). Veja como ficaria, então, um pisca-pisca:

 

 

O código completo:

 

Para compilar o código, vá no menu Run -> Build Main Project ou no botão do martelinho:mplab19

 

Se tudo der certo, aparecerá BUILD SUCCESSFUL:

mplab20

Caso houve algum erro, você deverá revisar o código e todos os procedimentos acima. Leia a informação do erro, pois ela dará dicas do que você pode ter errado.

Agora, vá no PROTEUS, clique nas propriedades do microcontrolador e procure a pasta onde você criou o projeto do MPLAB X:

mplab21

 

 

O arquivo compilado [.hex] pode ser localizado dentro da pasta onde salvamos o nosso projeto -> dist -> default -> production:

mplab22

 

Mande abrir o arquivo. Não se esqueça de configurar a frequência do clock para 4MHz no Proteus, assim como fizemos no MPLAB:

mplab23

Pronto! Ao simular, os leds deverão piscar!


Alternativas da Programação

Podemos também fazer uma versão simplificada do mesmo pisca-pisca:

Com o código acima, podemos ver que o ~ é um operador que faz a inversão de um bit. Se RB0 = 0, então ~RB0 = 1. Se RB0 = 1, ~RB0 = 0.


 

Download

Aula 01 Acendendo LED [ESQUEMÁTICO DO PROTEUS 7.8 + ARQUIVOS DO MPLAB]

Então é isso. Espero que tenham gostado! Nos escreva!

1Respostas em "PIC com MPLAB X e XC8: Primeiro programa"

Deixe sua mensagem

©GVensino - Todos os Direitos Reservados
css.php