PRÁTICA 2 – SEMÁFORO E CONTADOR
Objetivos:
- Montar um circuito com 3 leds simulando um semáforo de trânsito:
Tarefa:
- Compilar o programa 1 (abaixo) em C usando o MikroC e gerar o arquivo HEX.
- Enviar o arquivo HEX para o pic usando o pickit2.
- Montar o circuito e verificar o funcionamento.
- Configurações para o projeto (em project -> edit project)
- OSCILLATOR SELECTION: INTOSC
- MASTER CLEAR: DISABLE
- POWER-UP TIMER: ENABLE
- Todas as outras opções: DISABLE
Programa 1 – Semáforo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
void main() { TRISA = 0x00; //Todos os pinos RA são saídas TRISB = 0x00; //Todos os pinos RB são saídas CMCON = 0x07; //desabilitar comparadores while(1) { //Loop infinito PORTA.RA0 = 0; //LED VERDE OFF PORTA.RA0 = 1; //LED VERDE ON Delay_ms(4000); //4 Segundos de Delay PORTA.RA0 = 0; //LED VERDE OFF PORTA.RA1 = 1; //LED AMARELO ON Delay_ms(1000); //1 Segundo de Delay PORTA.RA1 = 0; //LED AMARELO OFF PORTA.RA2 = 1; //LED VERMELHO ON Delay_ms(4000); //4 Segundos de Delay PORTA.RA2 = 0; //LED VERMELHO OFF } } |
Circuito 1 – Semáforo:
Desafio: Modifique o programa para que o led verde fique aceso durante o acendimento do led amarelo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
void main() { TRISA = 0x00; //Todos os pinos RA são saídas TRISB = 0x00; //Todos os pinos RB são saídas CMCON = 0x07; //desabilitar comparadores while(1) { //Loop infinito PORTA.RA0 = 0; //LED VERMELHO OFF PORTA.RA0 = 1; //LED VERDE ON Delay_ms(4000); //4 Segundos de Delay PORTA.RA1 = 1; //LED AMARELO ON Delay_ms(1000); //1 Segundo de Delay PORTA.RA0 = 0; //LED VERDE OFF PORTA.RA1 = 0; //LED AMARELO OFF PORTA.RA2 = 1; //LED VERMELHO ON Delay_ms(4000); //4 Segundos de Delay } } |