📄 main.lst
字号:
216 1 RCAP2H=0XFF;
217 1 RCAP2L=0XF1;//@24MH,50,000BP
218 1 // RCAP2H=0XFF;
219 1 // RCAP2L=0XDC;//@24MH,50,000BP
220 1 SCON=0X50;
221 1 TR2=1;
222 1 IE=0X82; //不用串口中断
223 1 RS485_ENABLE=YES; //允许接收 以发送为主 RS485_ENABLE=1
224 1 }
225
226 //************看门狗涵数********
227 /*void REST_WDT(void)
228 {
229 WDREST=0x1e;
230 WDREST=0xe1;
231 } */
232 //***********清发送缓冲区函数****
233 void Clear_Buf(void)
234 {
C51 COMPILER V7.00 MAIN 09/24/2007 06:08:38 PAGE 6
235 1 memset(Send_Buf, 0x00, sizeof(Send_Buf));
236 1 }
237 //*********发送数据子函数*********
238 void Send_Data(uchar ucRemoteAdd)
239 {
240 1 uint i;
241 1 RS485_ENABLE=YES;
242 1 Data_Length=sizeof(Send_Buf)+3;
243 1 SBUF=HEAD1;
244 1 while(TI==0);
245 1 TI=0;
246 1 // REST_WDT();
247 1 SBUF=HEAD2;
248 1 while(TI==0);
249 1 TI=0;
250 1 // REST_WDT();
251 1
252 1 SBUF=(uchar)(Data_Length>>8);
253 1 while(TI==0);
254 1 TI=0;
255 1 // REST_WDT();
256 1 SBUF=(uchar)Data_Length;
257 1 while(TI==0);
258 1 TI=0;
259 1 // REST_WDT();
260 1
261 1 SBUF=0xff;
262 1 while(TI==0);
263 1 TI=0;
264 1 // REST_WDT();
265 1 SBUF=ucRemoteAdd;
266 1 while(TI==0);
267 1 TI=0;
268 1 // REST_WDT();
269 1
270 1 SBUF=0x00;
271 1 while(TI==0);
272 1 TI=0;
273 1 // REST_WDT();
274 1
275 1 for(i=0;i<sizeof(Send_Buf);i++)
276 1 {
277 2 // REST_WDT();
278 2 SBUF= Send_Buf[i];
279 2 while(TI==0);
280 2 TI=0;
281 2 }
282 1
283 1 }
284
285 //*******T0中断函数***************
286 void TMR0_int(void) interrupt 1 using 1
287 {
288 1 TH0=0xff;//100us
289 1 TL0=0X38;
290 1
291 1 time20ms++;
292 1 if( time20ms>20)
293 1 {
294 2 time20ms=0;
295 2 }
296 1 }
C51 COMPILER V7.00 MAIN 09/24/2007 06:08:38 PAGE 7
297
298 //************延时函数************
299
300 void Delay_Time(uint TimeCount)
301 {
302 1 uchar i;
303 1 do
304 1 {
305 2 TimeCount--;
306 2 for(i=0;i<200;i++)
307 2 {
308 3 // REST_WDT();
309 3 }
310 2 }while(TimeCount>0);
311 1
312 1 }
313
314 //*********变化模式函数**********
315 void mode1(void) //整体亮灭
316 {
317 1 uint i,ucAdd;
318 1 Clear_Buf();
319 1 for(ucAdd=0;ucAdd<24;ucAdd++)
320 1 {
321 2 Send_Data(ucAdd);
322 2 }
323 1 Delay_Time(200);
324 1 for(ucAdd=0;ucAdd<24;ucAdd++) //23层整体亮
325 1 {
326 2 for(i=0;i<sizeof(Send_Buf);i++)
327 2 {
328 3 Send_Buf[i]=0xff;
329 3 }
330 2 Send_Data(ucAdd);
331 2 }
332 1 Delay_Time(ucQuick*4000);//原来是200倍。
333 1 for(ucAdd=0;ucAdd<24;ucAdd++) //23层整体灭
334 1 {
335 2 for(i=0;i<sizeof(Send_Buf);i++)
336 2 {
337 3 Send_Buf[i]=0x00;
338 3 }
339 2 Send_Data(ucAdd);
340 2 }
341 1 Delay_Time(ucQuick*2);
342 1 //*********************************
343 1 Clear_Buf();
344 1 for(ucAdd=0;ucAdd<24;ucAdd++)
345 1 {
346 2 Send_Data(ucAdd);
347 2 }
348 1 Delay_Time(200);
349 1 //************************************
350 1 for(ucAdd=0;ucAdd<24;ucAdd++) //层变
351 1 {
352 2
353 2
354 2 for(i=0;i<sizeof(Send_Buf);i++)
355 2 {
356 3 Send_Buf[i]=0xff;
357 3 }
358 2 Send_Data(ucAdd);
C51 COMPILER V7.00 MAIN 09/24/2007 06:08:38 PAGE 8
359 2 Delay_Time(ucQuick*200);
360 2 for(i=0;i<sizeof(Send_Buf);i++)
361 2 {
362 3 Send_Buf[i]=0x00;
363 3 }
364 2 Send_Data(ucAdd);
365 2 Delay_Time(ucQuick*2);
366 2
367 2 }
368 1 Clear_Buf();
369 1 for(ucAdd=0;ucAdd<24;ucAdd++)
370 1 {
371 2 Send_Data(ucAdd);
372 2 }
373 1 Delay_Time(20);
374 1 for(ucAdd=0;ucAdd<24;ucAdd++)
375 1 {
376 2 for(i=0;i<24;i++)
377 2 {
378 3 Send_Buf[i]=PIC3[ucAdd][i];
379 3 }
380 2 Send_Data(ucAdd);
381 2 Delay_Time(ucQuick*200);
382 2 }
383 1 for(ucAdd=0;ucAdd<24;ucAdd++)
384 1 {
385 2 for(i=0;i<24;i++)
386 2 {
387 3 Send_Buf[i]=~PIC3[ucAdd][i];
388 3 }
389 2 Send_Data(ucAdd);
390 2 Delay_Time(ucQuick*200);
391 2 }
392 1
393 1 }
394
395 //****************变化方式单点跳变***********
396 void mode2(void)
397 {
398 1 uint i,ucAdd;
399 1 Clear_Buf();
400 1 for(ucAdd=0;ucAdd<24;ucAdd++)
401 1 {
402 2 Send_Data(ucAdd);
403 2 }
404 1 Delay_Time(20);
405 1
406 1 for(ucAdd=0;ucAdd<24;ucAdd++) //层变
407 1 {
408 2 for(i=0;i<sizeof(Send_Buf);i++)
409 2 {
410 3 Send_Buf[i]=0xff;
411 3 }
412 2 Send_Data(ucAdd);
413 2 Delay_Time(ucQuick*200);
414 2 for(i=0;i<sizeof(Send_Buf);i++)
415 2 {
416 3 Send_Buf[i]=0x00;
417 3 }
418 2 Send_Data(ucAdd);
419 2 Delay_Time(ucQuick*200);
420 2
C51 COMPILER V7.00 MAIN 09/24/2007 06:08:38 PAGE 9
421 2 }
422 1
423 1
424 1 }
425
426 //***************整体渐变的变化方式********
427 void mode3(void)
428 {
429 1 uchar i,j,ucAdd;
430 1 // uint Dimming_Data_Up,Dimming_Data_Down,j;
431 1
432 1
433 1 Clear_Buf();
434 1 for(ucAdd=0;ucAdd<24;ucAdd++)
435 1 {
436 2 Send_Data(ucAdd);
437 2 }
438 1 Delay_Time(20);
439 1
440 1 for(i=0;i<sizeof(Send_Buf);i++)//单列跑动
441 1 {
442 2 for(ucAdd=0;ucAdd<24;ucAdd++)
443 2 {
444 3 for(j=0;j<24;j++)
445 3 {
446 4 if(j==i)
447 4 {Send_Buf[j]=0xff;}
448 4 else
449 4 {Send_Buf[j]=0;}
450 4 }
451 3 Send_Data(ucAdd);
452 3 }
453 2 Delay_Time(ucQuick*200);
454 2 }
455 1
456 1 }
457
458 //**********混合渐变*******************************
459 void mode4(void)
460 {
461 1 uchar i,j;
462 1 // uint Dimming_Data_Up,Dimming_Data_Down,j;
463 1
464 1
465 1 Clear_Buf(); //清屏
466 1 Send_Data(0xff);
467 1 Delay_Time(5000);
468 1 for(i=0;i<23;i++)
469 1 {
470 2 for(j=0;j<24;j++)
471 2 {
472 3 Send_Buf[i]=PIC1[i][j];
473 3 }
474 2 Send_Data(i);
475 2 }
476 1 Delay_Time(ucQuick*200);
477 1 for(i=0;i<23;i++)
478 1 {
479 2 for(j=0;j<24;j++)
480 2 {
481 3 Send_Buf[i]=PIC2[i][j];
482 3 }
C51 COMPILER V7.00 MAIN 09/24/2007 06:08:38 PAGE 10
483 2 Send_Data(i);
484 2 }
485 1 Delay_Time(ucQuick*200);
486 1
487 1
488 1 }
489
490
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1041 ----
CONSTANT SIZE = 1776 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 5
IDATA SIZE = 25 ----
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 + -