📄 krhld.lst
字号:
187 {
188 1 uchar i;
189 1 for(i=1;i<255;i++)
190 1 {
191 2 roe=(r<i)?1:0;
192 2 goe=(g<i)?1:0;
193 2 boe=(b<i)?1:0;
194 2 }
195 1 }
196
197 //********************************
198 // 多彩流动
199 //***************************************
200 void qcld(uchar ts,uchar code *rp,uchar code *gp,uchar code *bp)
201 {
202 1 uchar i,j;
203 1 for(j=0;j<ts;j++)
204 1 {
205 2 for(i=0;i<7;i++)
206 2 dis_buf[i]=dis_buf[i+1];
207 2 dis_buf[7]=dis_buf[24];
208 2 for(i=8;i<15;i++)
209 2 dis_buf[i]=dis_buf[i+1];
210 2 dis_buf[15]=dis_buf[32];
211 2 for(i=16;i<23;i++)
212 2 dis_buf[i]=dis_buf[i+1];
213 2 dis_buf[23]=dis_buf[40];
214 2
215 2 for(i=24;i<31;i++)
216 2 dis_buf[i]=dis_buf[i+1];
217 2 dis_buf[31]=dis_buf[48];
218 2 for(i=32;i<39;i++)
219 2 dis_buf[i]=dis_buf[i+1];
220 2 dis_buf[39]=dis_buf[56];
221 2 for(i=40;i<47;i++)
222 2 dis_buf[i]=dis_buf[i+1];
223 2 dis_buf[47]=dis_buf[64];
224 2
225 2 for(i=48;i<55;i++)
226 2 dis_buf[i]=dis_buf[i+1];
227 2 dis_buf[55]=dis_buf[72];
228 2 for(i=56;i<63;i++)
229 2 dis_buf[i]=dis_buf[i+1];
230 2 dis_buf[63]=dis_buf[80];
231 2 for(i=64;i<71;i++)
232 2 dis_buf[i]=dis_buf[i+1];
233 2 dis_buf[71]=dis_buf[88];
234 2
235 2 for(i=72;i<79;i++)
236 2 dis_buf[i]=dis_buf[i+1];
237 2 dis_buf[79]=*rp++;
238 2 for(i=80;i<87;i++)
239 2 dis_buf[i]=dis_buf[i+1];
240 2 dis_buf[87]=*gp++;
241 2 for(i=88;i<95;i++)
C51 COMPILER V7.50 KRHLD 11/09/2006 17:29:01 PAGE 5
242 2 dis_buf[i]=dis_buf[i+1];
243 2 dis_buf[95]=*bp++;
244 2
245 2 delay(60);
246 2 }
247 1
248 1 }
249 //************************************
250 //七彩渐变
251 //**********************************
252
253 void qcjb(uint speed)
254 {
255 1 uchar i,j;
256 1 for(i=0;i<96;i++)
257 1 {
258 2 da=1;
259 2 sclk=1;
260 2 sclk=0;
261 2 }
262 1 lat=0;
263 1 lat=1;
264 1 for(i=0;i<255;i++)
265 1 for(j=0;j<speed;j++)
266 1 pwm_oe(i,0,0);
267 1 for(i=0;i<255;i++)
268 1 for(j=0;j<speed;j++)
269 1 pwm_oe(255,i,0);//y
270 1 for(i=255;i>0;i--)
271 1 for(j=0;j<speed;j++)
272 1 pwm_oe(i,255,0);//g
273 1 for(i=0;i<255;i++)
274 1 for(j=0;j<speed;j++)
275 1 pwm_oe(0,255,i);//q
276 1 for(i=255;i>0;i--)
277 1 for(j=0;j<speed;j++)
278 1 pwm_oe(0,i,255);//b
279 1 for(i=0;i<255;i++)
280 1 for(j=0;j<speed;j++)
281 1 pwm_oe(i,0,255);//z
282 1 for(i=0;i<255;i++)
283 1 for(j=0;j<speed;j++)
284 1 pwm_oe(255,i,255);//b
285 1
286 1 }
287
288 //*********************************
289 void main(void)
290 {
291 1 uchar i;
292 1 TMOD=0x01;
293 1 TL0=V_TL0;
294 1 TH0=V_TH0;
295 1 TR0=1;
296 1 ET0=1;
297 1 TR1=1;
298 1 rl=0x01;
299 1 P1=0;
300 1 while(1)
301 1 {
302 2 EA=0;
303 2 qcjb(2);
C51 COMPILER V7.50 KRHLD 11/09/2006 17:29:01 PAGE 6
304 2 EA=1;
305 2 roe=0;
306 2 goe=0;
307 2 boe=0;
308 2
309 2 cler();
310 2 qcld(255,chr,chg,chb);
311 2 qcld(255,chr,chg,chb);
312 2 qcld(56,x64cr,x64cg,x64cb);
313 2 qcld(56,x64cr,x64cg,x64cb);
314 2 for(i=0;i<12;i++)
315 2 qcld(7,x7cr,x7cg,x7cb);
316 2
317 2 }
318 1
319 1 }
320
321 //**************************************
322 void pwmout(void)
323 {
324 1 uchar i;
325 1 for(i=0;i<96;i++)
326 1 {
327 2 da=(bit)(dis_buf[i]&rl);
328 2 sclk=0;
329 2 sclk=1;
330 2 }
331 1 lat=0;
332 1 lat=1;
333 1 }
334
335 //*******************************************
336 void timer1() interrupt 1
337 {
338 1 TR0=0;
339 1 pwm++;
340 1 switch(pwm)
341 1 {
342 2 case 1:
343 2 pwmout();
344 2 rl=0x02;
345 2 break;
346 2 case 2:
347 2 pwmout();
348 2 rl=0x04;
349 2 break;
350 2 case 4:
351 2 pwmout();
352 2 rl=0x08;
353 2 break;
354 2 case 8:
355 2 pwmout();
356 2 rl=0x01;
357 2 break;
358 2 case 16:
359 2 pwm=0;
360 2 break;
361 2 default: break;
362 2 }
363 1
364 1 TR0=1;
365 1 }//end sub
C51 COMPILER V7.50 KRHLD 11/09/2006 17:29:01 PAGE 7
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 992 ----
CONSTANT SIZE = 957 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 100 12
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -