Pregunta
Barrido de led
B
Bridget Centeno
@lupita
0 vistas
Es un barrido de leds en una tablilla protoboard donde tienen que prender los led de izquierda a derecha y de derecha a izquierda
1#include <xc.h>
2
3#define _XTAL_FREQ 4000000
4
5// CONFIG
6#pragma config FOSC = INTRC_NOCLKOUT
7#pragma config WDTE = OFF
8#pragma config PWRTE = ON
9#pragma config MCLRE = ON
10#pragma config CP = OFF
11#pragma config CPD = OFF
12#pragma config BOREN = ON
13#pragma config IESO = OFF
14#pragma config FCMEN = OFF
15#pragma config LVP = OFF
16
17void main(void)
18{
19 // Oscilador interno a 4 MHz
20 OSCCON = 0x61;
21
22 // PORTD como salida
23 TRISD = 0x00;
24
25 // Apagar todos los LEDs al comenzar
26 PORTD = 0x00;
27
28 while(1)
29 {
30 // ===== IZQUIERDA A DERECHA =====
31
32 PORTD = 0b00000001; // LED 1 - RD0
33 __delay_ms(500);
34
35 PORTD = 0b00000010; // LED 2 - RD1
36 __delay_ms(500);
37
38 PORTD = 0b00000100; // LED 3 - RD2
39 __delay_ms(500);
40
41 PORTD = 0b00001000; // LED 4 - RD3
42 __delay_ms(500);
43
44 PORTD = 0b00010000; // LED 5 - RD4
45 __delay_ms(500);
46
47 PORTD = 0b00100000; // LED 6 - RD5
48 __delay_ms(500);
49
50 PORTD = 0b01000000; // LED 7 - RD6
51 __delay_ms(500);
52
53 PORTD = 0b10000000; // LED 8 - RD7
54 __delay_ms(500);
55
56
57 // ===== DERECHA A IZQUIERDA =====
58
59 PORTD = 0b01000000; // LED 7
60 __delay_ms(500);
61
62 PORTD = 0b00100000; // LED 6
63 __delay_ms(500);
64
65 PORTD = 0b00010000; // LED 5
66 __delay_ms(500);
67
68 PORTD = 0b00001000; // LED 4
69 __delay_ms(500);
70
71 PORTD = 0b00000100; // LED 3
72 __delay_ms(500);
73
74 PORTD = 0b00000010; // LED 2
75 __delay_ms(500);
76
77 PORTD = 0b00000001; // LED 1
78 __delay_ms(500);
79 }
80}
0 comentarios
Inicia sesión para comentar
Sé el primero en comentar.