Sunteți pe pagina 1din 3

MyProject.

c 25/01/2018 13:12:17

1: #define TrisTriac TRISD.RD0


2: #define Triac RA0_bit
3: #define aumenta RA1_bit
4: #define diminui RA2_bit
5: #define INTE 0b00000000
6:
7:
8: int n=50;
9: char teste=1;
10: unsigned int i=0;
11:
12:
13:
14:
15: void interrupt()
16: {
17:
18:
19: if(INTF_bit)
20: {
21:
22: INTF_bit = 0x00;
23:
24: for(i=0; i<n; i++)
25: {
26: while(TMR0 > 200);
27: TMR0 =0x00;
28: }
29: TMR0 = 0x00;
30:
31: Triac = 0x00;
32: while(TMR0<10);
33: Triac = 0x01;
34:
35: }
36: }
37:
38:
39: void setting (void);
40: void main() {
41:
42: unsigned char segmento[10] = {0x80,
43: 0xF2,
44: 0x48,
45: 0x60,
46: 0x32,
47: 0x24,
48: 0x06,
49: 0xF0,
50: 0x00,
51: 0x30};
52: int indice=0;
53: TRISB = 0x01;
54: PORTB = 0x00;
55: TRISA.RA0 = 0x00;
56: RA0_bit = 0x01;
57: setting ();
58: PORTB = segmento[indice];
59:
60: while(1)
61: {
62: if(aumenta)

1/3 mikroC PRO for PIC by mikroElektronika


MyProject.c 25/01/2018 13:12:17

63: {
64: while(RA1_bit);
65: n+=50;
66: if(n>350)
67: {
68: n = 350;
69: }
70: indice++;
71: if(indice > 9)
72: {
73: indice = 9;
74: }
75: PORTB = segmento[indice];
76: }
77:
78: if(diminui && n>50)
79: {
80: while(RA2_bit);
81: n-=35;
82: if(n<35)
83: {
84: n=35;
85: }
86: indice--;
87: if(indice < 0)
88: {
89: indice=0;
90: break;
91: }
92: PORTB = segmento[indice];
93: }
94: }
95:
96: /*
97: for(teste = 0; teste<7; teste++)
98: {
99:
100: delay_ms(100);
101: xablau = PORTB & 0xFE;
102: xablau |=(((0x80)|xablau)>>1);
103: PORTB = xablau;
104: delay_ms(100);
105: }
106:
107: for(teste = 0; teste<7; teste++)
108: {
109: delay_ms(100);
110: xablau = PORTB & 0xFE;
111: xablau =(((0x80)|xablau)<<1);
112: PORTB = xablau;
113: delay_ms(100);
114: }
115:
116: */
117:
118:
119:
120: }
121:
122:
123: void setting (void)
124: {

2/3 mikroC PRO for PIC by mikroElektronika


MyProject.c 25/01/2018 13:12:17

125: //configurando ports


126: TRISB = 0x01;
127: PORTB =0x00;
128: TRISA.RA0 = 0x00; //Habilita pino de acionamento de TRIAC
129: TRISA.RA1 = 0x01; //habilita pino de entrada dos dados de botao_aumenta
130: TRISA.RA2 = 0x01; //habilita pino de entrada dos dados de botao_diminui
131: RA0_bit = 0x00; //deixa pino de acionamento de TRIAC em LOW
132: PIE1 = 0x00; //desabilita interrupções não usadas;
133: CMCON = 0b11111111; //desabilita comparadores analogicos;
134:
135: //habilitando interrupções
136: GIE_bit = 0x01; //Enables all un-masked interrupts
137: PEIE_bit = 0x01; //Enables all un-masked peripheral interrupts
138: INTE_bit = 0x01; //Enables the RB0/INT external interrupt
139: INTEDG_bit = 0x01; //Interrupt on rising edge of RB0/INT pin
140:
141:
142: //prescaler e fonte de clock//
143: T0CS_bit = 0x00; //Internal instruction cycle clock (CLKOUT)
144: PSA_bit = 0x00; //Prescaler is assigned to the Timer0 module
145: PS2_bit = 0x00; //escala tmr0 \\ //
146: PS1_bit = 0x00; //escala tmr0 escala 1:2
147: PS0_bit = 0x00; //escala tmr0 // \\
148:
149:
150: }

3/3 mikroC PRO for PIC by mikroElektronika

S-ar putea să vă placă și