PRÁTICA 3 – BOTÕES E LEDS
Objetivos:
- Sequenciar cargas, no caso Leds, de acordo botões que serão apertados pelo usuário:
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 – Botão e LED:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
void main() { TRISA = 0x00; //Todos os pinos RA são saídas TRISB = 0x01; //Todos os pinos RB, menos RB0, são saídas CMCON = 0x07; //desabilitar comparadores while(1) { //Loop infinito if (PORTB.RB0 == 1) { PORTA.RA0 = 1; //LED ON Delay_ms(200); //0.2 Segundo de Delay PORTA.RA0 = 0; //LED OFF Delay_ms(200); //0.2 Segundos de Delay } else { PORTA.RA0 = 1; //LED ON Delay_ms(1000); //1 Segundo de Delay PORTA.RA0 = 0; //LED OFF Delay_ms(1000); //1 Segundo de Delay } } } |
Circuito 1 – Botão e LED:
Pinagem para o botão:
Desafio: Implemente um flip flop T por software, ou seja, para cada toque na chave o led mudará de aceso para apagado ou de apagado para aceso.
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 = 0x01; //Todos os pinos RB, menos RB0, são saídas CMCON = 0x07; //desabilitar comparadores while(1) { //Loop infinito if (PORTB.RB0 == 1) { //T FLIP FLOP if (PORTA.RA0 == 0) { PORTA.RA0 = 1; //LED ON } else { PORTA.RA0 = 0; //LED OFF } Delay_ms(1000); //DEBOUNCING } } } |