1
2
3
4
5
6
7
8 #include <stdio.h>
9 #include <stdlib.h>
10 #include <xc.h>
11 #define _XTAL_FREQ 1000000;
12
13
14
15 #pragma config FOSC=INTOSCIO, WDTE=OFF, PWRTE=ON, BOREN=ON, MCLRE=OFF, CP=OFF, IESO=OFF
16
17 int i,j,k;
18
19
20
21 int main(void){
22
23
24 ANSEL=0x00;
25 CMCON0=0x07;
26 WPU=0x14;
27 nGPPU=0;
28 TRISIO0=0;
29 TRISIO1=0;
30 TRISIO2=0;
31 TRISIO3=1;
32 TRISIO4=0;
33 TRISIO5=0;
34
35 GP0 = 1;
36 GP1 = 1;
37 GP2 = 1;
38 GP4 = 1;
39 GP3 = 1;
40
41 while(1){
42 if(GP3 == 0){
43 goto Start1;
44 }
45 else
46 {
47 GP0 = 1;
48 GP1 = 1;
49 GP2 = 1;
50 GP4 = 1;
51 }
52 }
53 Start1:
54 _delay(25000);
55 GP4 = 0;
56 _delay(25000);
57 GP1 = 0;
58 _delay(13000000);
59 GP1 = 1;
60 _delay(25000);
61 GP4 = 1;
62 _delay(25000);
63
64 GP2 = 0;
65 _delay(25000);
66 for(j=1;j<=7;j++){
67 GP0 = 0;
68 _delay(25000);
69 GP0 = 1;
70 _delay(25000);
71 }
72 GP2 = 1;
73 _delay(25000);
74
75 while(1){
76 for(i=1; i<=7; i++){
77 GP4 = 0;
78 _delay(25000);
79 GP1 = 0;
80 _delay(25000);
81 GP1 = 1;
82 _delay(25000);
83 GP4 = 1;
84 _delay(25000);
85 GP0 = 0;
86 _delay(300000);
87 for(j=1; j<=2; j++){
88 GP2 = 0;
89 _delay(25000);
90 GP2 = 1;
91 _delay(25000);
92 }
93 GP0 = 1;
94 _delay(55000);
95 }
96 _delay(50000);
97 for(i=1; i<=3; i++){
98 GP4 = 0;
99 _delay(25000);
100 GP1 = 0;
101 _delay(25000);
102 GP1 = 1;
103 _delay(25000);
104 GP4 = 1;
105 _delay(25000);
106 GP0 = 0;
107 _delay(700000);
108 for(j=1; j<=2; j++){
109 GP2 = 0;
110 _delay(25000);
111 GP2 = 1;
112 _delay(25000);
113 }
114 GP0 = 1;
115 _delay(25000);
116 }
117
118 _delay(25000);
119 GP4 = 0;
120 _delay(25000);
121 GP1 = 0;
122 _delay(25000);
123 GP1 = 1;
124 _delay(25000);
125 GP4 = 1;
126 _delay(700000);
127
128 k++ ;
129 if (k >= 10) //10回目だったら連写モードに
130 {
131 goto Multi ;
132 }
133
134 for(i=1; i<=3; i++){
135 GP4 = 0;
136 _delay(25000);
137 GP1 = 0;
138 _delay(25000);
139 GP1 = 1;
140 _delay(25000);
141 GP4 = 1;
142 _delay(25000);
143 GP2 = 0;
144 _delay(700000);
145 for(j=1; j<=2; j++){
146 GP0 = 0;
147 _delay(25000);
148 GP0 = 1;
149 _delay(25000);
150 }
151 GP2 = 1;
152 _delay(25000);
153 }
154
155 for(i=1; i<=7; i++){
156
157 _delay(50000);
158 GP4 = 0;
159 _delay(25000);
160 GP1 = 0;
161 _delay(25000);
162 GP1 = 1;
163 _delay(25000);
164 GP4 = 1;
165 _delay(300000);
166 GP2 = 0;
167 _delay(25000);
168 for(j=1; j<=2; j++){
169 GP0 = 0;
170 _delay(25000);
171 GP0 = 1;
172 _delay(25000);
173 }
174 GP2 = 1;
175 _delay(25000);
176 }
177
178 _delay(50000);
179 GP4 = 0;
180 _delay(25000);
181 GP1 = 0;
182 _delay(25000);
183 GP1 = 1;
184 _delay(25000);
185 GP4 = 1;
186 _delay(50000);
187
188 GP2 = 0;
189 _delay(25000);
190 for(j=1; j<=3; j++){
191 GP0 = 0;
192 _delay(25000);
193 GP0 = 1;
194 _delay(25000);
195 }
196 GP2 = 1;
197 _delay(55000);
198
199
200 }
201
202 Multi:
203 GP2 = 0;
204 _delay(25000);
205 for(j=1; j<=16; j++){ 1/8->1/2000
206 GP0 = 0;
207 _delay(25000);
208 GP0 = 1;
209 _delay(25000);
210 }
211 GP2 = 1;
212 _delay(25000);
213
214 GP4 = 0;
215 _delay(25000);
216 GP1 = 0;
217 _delay(13000000);
218 GP1 = 1;
219 _delay(25000);
220 GP4 = 1;
221 _delay(25000);
222
223 }