C:\Users\meito\MPLABXProjects\Takujo-13-2.X\Takujo-13-2.c |
1 /*****************************************
2
3
4
5
6 #include <xc.h>
7
8 #define _XTAL_FREQ 8000000
9
10
11 #pragma config FOSC = INTOSC
12 #pragma config WDTE = OFF
13 #pragma config PWRTE = ON
14 #pragma config MCLRE = ON
15 #pragma config CP = OFF
16 #pragma config CPD = OFF
17 #pragma config BOREN = ON
18 #pragma config CLKOUTEN = OFF
19 #pragma config IESO = ON
20 #pragma config FCMEN = OFF
21
22
23 #pragma config WRT = OFF
24 #pragma config PLLEN = ON
25 #pragma config STVREN = ON
26 #pragma config BORV = LO
27 #pragma config LVP = OFF
28
29 void main()
30 {
31 unsigned int spe ;
32
33 OSCCON = 0b01110010;
34 ANSELA = 0b00000000;
35 ANSELB = 0b00000000;
36 TRISA = 0b10000010;
37 TRISB = 0b00001100;
38 PORTA = 0b00000000;
39 PORTB = 0b00001100;
40 CCPTMRS = 0b00000000;
41 CCP3CON = 0b00001100;
42 T2CON = 0b00000010;
43 PR2 = 124;
44 CCPR3L = 0;
45 CCPR3H = 0;
46 TMR2 = 0;
47 TMR2ON = 1;
48
49 CCPR3L = 0;
50 RA1 = 0;
51 RA2 = 0;
52 RA7 = 0;
53 RA0 = 0;
54
55 RB1 = 1;
56 __delay_ms(500);
57 RB0 = 1;
58 __delay_ms(1000);
59 RB1 = 0;
60 __delay_ms(500);
61 RB0 = 0;
62 __delay_ms(1000);
63
64 while(1){
65 while(RA7 == 0){
66 __delay_ms(50);
67 }
68
69 RA2 = 1;
70 for(spe =0; spe<256; spe++){
71 CCPR3L = spe ;
72 __delay_ms(5);
73 }
74 __delay_ms(2000);
75
76 while(RB2 == 1){
77 __delay_ms(50);
78 }
79 __delay_ms(2000);
80
81 while(RB2 == 1){
82 __delay_ms(50);
83 }
84 for(spe=255; spe>-1; spe--){
85 CCPR3L = spe ;
86 __delay_ms(5);
87 }
88 RA2 = 0;
89 __delay_ms(2000);
90
91 RA0 = 1;
92 while(RB3 == 1){
93 __delay_ms(50);
94 }
95 RA0 = 0;
96 __delay_ms(500);
97
98 RA2 = 1;
99 for(spe =0; spe<256; spe++){
100 CCPR3L = spe ;
101 __delay_ms(5);
102 }
103
104 __delay_ms(1000);
105 RB0 = 1;
106 __delay_ms(500);
107 RB1 = 1;
108 __delay_ms(500);
109
110 while(RB2 == 1){
111 __delay_ms(50);
112 }
113 for(spe=255; spe>-1; spe--){
114 CCPR3L = spe ;
115 __delay_ms(5);
116 }
117 RA2 = 0;
118
119 while(RA1 == 0){
120 __delay_ms(50);
121 }
122
123 RB0 = 0;
124 __delay_ms(500);
125 RB1 = 0;
126 __delay_ms(500);
127
128 while(RA1 == 1){
129 __delay_ms(50);
130 }
131 }
132 }
133
134