Você está na página 1de 2

E003_Lista1_Versao1.

c 12/04/2011 16:32:03

1: /*
2: IFBA - Engenharia Elétrica
3: Curso Intensivo de Microcontroladores PIC - Baseado no PIC16F628A
4: por Ademário José de Carvalho Neto
5: ==============================================================================
6: Firmware: Versão 1.0 beta - referente ao exercício E003 da lista1
7: Autor: Ademário José de Carvalho Neto
8: */
9: // O controle do motor de passo -> FULL_STEP (passo completo)
10: void main()
11: {
12: TRISA=0b11110000; //Define RA0, RA1, RA2 e RA3 como saída (leds/ou driver ULN)
13: //demais bits irrelevantes embora esteja
14: //definidos como entrada
15:
16: TRISB=0b00000011; //Define RB0,RB1 como entrada (botões), demais bits
17: //irrelevantes embora esteja definidos como saída
18:
19: PORTA=0; //"Zerando" todas as saídas da porta A
20: PORTB=0; //"Zerando" todas as saídas da porta B
21: //Obs: Nas operações acima os pinos definidos como entrada
22: //não são afetados
23: while(1)
24: {
25: if (PORTB.f0==1) //Se o botão do pino RB0 for pressionado o "motor"
26: { //girar em um sentido
27:
28: //A sequência abaixo é equivalente a definir PORTA=obxxxx1000 ou PORTA=8
29: PORTA.f0=0;
30: PORTA.f1=0;
31: PORTA.f2=0;
32: PORTA.f3=1;
33: Delay_ms(100);
34:
35: //A sequência abaixo é equivalente a definir PORTA=obxxxx0100 ou PORTA=4
36: PORTA.f0=0;
37: PORTA.f1=0;
38: PORTA.f2=1;
39: PORTA.f3=0;
40: Delay_ms(100);
41:
42: //A sequência abaixo é equivalente a definir PORTA=obxxxx0010 ou PORTA=2
43: PORTA.f0=0;
44: PORTA.f1=1;
45: PORTA.f2=0;
46: PORTA.f3=0;
47: Delay_ms(100);
48:
49: //A sequência abaixo é equivalente a definir PORTA=obxxxx0001 ou PORTA=1
50: PORTA.f0=1;
51: PORTA.f1=0;
52: PORTA.f2=0;
53: PORTA.f3=0;
54: Delay_ms(100);
55: }
56:
57: if (PORTB.f1==1) //Se o botão ligado so RB1 for pressionado faz o "motor"
58: { //girar no sentido contrário ao de quando RB0 é pressionado
59:
60: //A sequência abaixo é equivalente a definir PORTA=obxxxx0001 ou PORTA=1
61: PORTA.f0=1;
62: PORTA.f1=0;

1/2 mikroC PRO for PIC by mikroElektronika


E003_Lista1_Versao1.c 12/04/2011 16:32:03

63: PORTA.f2=0;
64: PORTA.f3=0;
65: Delay_ms(100);
66:
67: //A sequência abaixo é equivalente a definir PORTA=obxxxx0010 ou PORTA=2
68: PORTA.f0=0;
69: PORTA.f1=1;
70: PORTA.f2=0;
71: PORTA.f3=0;
72: Delay_ms(100);
73:
74: //A sequência abaixo é equivalente a definir PORTA=obxxxx0100 ou PORTA=1
75: PORTA.f0=0;
76: PORTA.f1=0;
77: PORTA.f2=1;
78: PORTA.f3=0;
79: Delay_ms(100);
80:
81: //A sequência abaixo é equivalente a definir PORTA=obxxxx1000 ou PORTA=8
82: PORTA.f0=0;
83: PORTA.f1=0;
84: PORTA.f2=0;
85: PORTA.f3=1;
86: Delay_ms(100);
87: }
88: }
89: }

2/2 mikroC PRO for PIC by mikroElektronika

Você também pode gostar