Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-SemDerivados CC BY-NC-ND. Você possui a permissão para visualizar e compartilhar, desde que atribua os créditos do autor. Não poderá alterá-los e nem utilizá-los para fins comerciais.
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
Cursos / Eletrônica / Prototipagem e Montagem de Placa de Circuito Impresso / Aula
O compilador CCS é um ambiente de desenvolvimento para microcontroladores PIC que possui suporte para várias famílias de PIC, permitindo que o usuário escreva o programa em linguagem C.
A Figura 15 mostra a tela inicial do ambiente de compilação CCS.
Inicialmente, vamos clicar no ícone e depois na opção New → Source File, como mostra a Figura 16. Daí, escolhemos a pasta onde vamos salvar e criamos o nosso arquivo “Semaforo_16F628A.c” (Figura 17).
O próximo passo é escrever o código responsável por executar a lógica desejada na linguagem C. No caso, para o projeto do semáforo, vamos adiantar o processo e utilizar o código que está descrito na Figura 19, conforme mostrado na Figura 18.
#include <16f628a.h>
// Inclui cabeçalho especifico do
PIC a ser utilizado
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz)
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES BROWNOUT //Reset when brownout detected
#FUSES MCLR //Master Clear pin enabled
#FUSES NOCPD //No EE protection
#use delay(clock=20M) // Seta o clock interno para 20Mhz
#define L_VERMELHO1 PIN_B4
#define L_VERMELHO2 PIN_B2
#define L_VERDE1 PIN_B1
#define L_VERDE2 PIN_B5
#define L_AMARELO1 PIN_B3
#define L_AMARELO2 PIN_B0
void main(void) // função principal
{
do {
/*
S1 S2
O X
O O
X O
*/
output_high(L_VERMELHO2);
output_high(L_VERDE1);
output_low(L_AMARELO2);
output_low(L_VERMELHO1);
delay_ms(3000);
/*
S1 S2
O X
X O
O O
*/
output_low(L_VERDE1);
output_high(L_AMARELO1);
delay_ms(1000);
output_low(L_VERMELHO2);
output_high(L_VERDE2);
output_low(L_AMARELO1);
output_high(L_VERMELHO1);
delay_ms(3000);
/*
S1 S2
X O
O X
O O
*/
output_low(L_VERDE2);
output_high(L_AMARELO2);
delay_ms(1000);
} while (TRUE); // mantem o laço de
repetição rodando em loop infinito
}
Na disciplina “Projetos de Sistemas Microcontrolados”, você verá, de forma mais detalhada, o que representa cada parte do código da Figura 20: definição do PIC a ser utilizado; comportamento dos fuses para o nosso projeto; do cristal; das portas; dos comentários e das funções principais do nosso semáforo.
Nesse código, você pode verificar que as portas de saída estão relacionadas a flags, como por exemplo: na porta B, o pino 1 está relacionado à flag L_VERDE1, informando que é o Led verde do semáforo 1.
Após criarmos todo o nosso código (Figura 19), clicamos na opção Compile -> Compile para que nosso código seja compilado.
Lembra dos arquivos de saída? Um deles é o “.hex” de que falamos tanto! Pronto, é justamente nesse ponto que ele será criado.
Caso seu código não tenha nenhum erro, uma tela, como a da Figura 20, será mostrada. É nessa tela que podemos ver os arquivos que foram gerados: “.ERR”, “.HEX”, “.SYM”, dentre outros. Esses arquivos foram gerados dentro da mesma pasta em que você salvou o código em C e apresentam, por padrão, o mesmo nome em que foi salvo o código em C, diferenciados apenas, pelas extensão (".ERR", ".HEX", ".SYM", etc).
Esse arquivo “.hex” é o que utilizamos para gravar o nosso microcontrolador, os outros arquivos tem funções específicas, como debugger, que não serão abordadas aqui.
Por fim, na barra de “Output” (Figura 21), podemos ver também um relatório da nossa compilação, já que a outra tela (Figura 20) desaparece rapidamente.
Versão 5.3 - Todos os Direitos reservados