📄 cmain.lst
字号:
279 void carry();
280 void t_state(void);
281 void clean(void); //清空显存
282 void slogan(uchar m);
283 void LeftMove(uchar *p);
284 void UpMove(void);
285 void WordUpMove(void);
286 void LoadNoSmoking(uchar *p);
287
288
289 /***************************************/
290 /**************主程序开始***************/
291 /***************************************/
292 void main(void)
293 {
294 1 uchar i;
295 1 TMOD=0x11;
296 1 // TH0=TH1=TL0=TL1=0x00;
297 1 SCON=0x00;
298 1 EA=1;
299 1 ES=0;
300 1 while(1)
301 1 {
302 2 clean();
303 2 // carry();
C51 COMPILER V8.16 CMAIN 12/16/2008 14:05:47 PAGE 6
304 2
305 2 display(20);
306 2
307 2
308 2 for(i=0;i<1;i++){
309 3 //禁烟标志
310 3 LoadNoSmoking(no_smoking[0]);
311 3 pc[0]=&zero[0][0];
312 3 slogan(1);
313 3 //请勿在车厢内吸烟。
314 3 pc[0]=&qing[0][0];pc[1]=&wu4[0][0];pc[2]=&zai[0][0];pc[3]=&che[0][0];pc[4]=&xiang[0][0];
315 3 pc[5]=&nei[0][0];pc[6]=&xi1[0][0];pc[7]=&yian[0][0];pc[8]=&zero[0][0];
316 3 slogan(9);
317 3 }
318 2
319 2
320 2
321 2
322 2 //谢谢合作。
323 2 pc[0]=&xie[0][0];pc[1]=&xie[0][0];pc[2]=&he[0][0];pc[3]=&zuo[0][0];
324 2 slogan(4);
325 2
326 2 //祝您旅途愉快!
327 2 pc[0]=&dh[0][0];pc[1]=&zhu[0][0];pc[2]=&nin[0][0];pc[3]=&lui[0][0];pc[4]=&tu[0][0];pc[5]=&yu[0][0];
328 2 pc[6]=&kuai[0][0];pc[7]=&well[0][0];
329 2 slogan(8);
330 2 //slogan(8);
331 2 pc[0]=&zero[0][0];
332 2 for(i=0;i<5;i++)
333 2 slogan(1);
334 2
335 2 //
336 2 }
337 1
338 1 }
339
340
341
342 /*###########子函数##########*/
343
344 /*
345 void timer0() interrupt 1 using 2{
346
347 ET0=0;
348 TR0=0;
349
350 }
351
352 void timer1() interrupt 3 using 3{
353
354 ET1=0;
355 TR1=0;
356
357 }
358 */
359
360 void clean(void){
361 1 uchar i,j;
362 1 for(i=0;i<16;i++)
363 1 for(j=0;j<8;j++)
364 1 buffer[i][j]=0x00;
365 1
C51 COMPILER V8.16 CMAIN 12/16/2008 14:05:47 PAGE 7
366 1
367 1 }
368
369
370 void slogan(uchar m){
371 1 uchar i;
372 1 for(i=0;i<m;i++)
373 1 LeftMove(pc[i]);
374 1
375 1
376 1 }
377
378
379
380 void delay(uint t){
381 1 int i,j;
382 1 for(i=0;i<t;i++)
383 1 for(j=0;j<10;j++);
384 1 }
385
386
387
388
389 void display(uint t){
390 1 uint i;
391 1 uchar j,k,a;
392 1 uchar *disp;
393 1 for(i=0;i<t;i++){
394 2 a=0x80;
395 2 latch=0;
396 2 outen=1;
397 2 P0=0;
398 2 P2=0;
399 2 for(j=0;j<8;j++){
400 3 disp=buffer[j]+6;
401 3 for(k=0;k<7;k++){
402 4 SBUF=*disp--;
403 4 while(!TI){;}
404 4 TI=0;
405 4 }
406 3 latch=1;
407 3 //delay(1);
408 3 latch=0;
409 3 //delay(1);
410 3 P0=a;
411 3 outen=0;
412 3 delay(6);
413 3 a=a>>1;
414 3 //delay(2);
415 3 outen=1;
416 3 }
417 2 P0=0;
418 2 a=0x80;
419 2 for(j=0;j<8;j++){
420 3 disp=buffer[j+8]+6;
421 3 for(k=0;k<7;k++){
422 4 SBUF=*disp--;
423 4 while(!TI){;}
424 4 TI=0;
425 4 }
426 3 latch=1;
427 3 //delay(1);
C51 COMPILER V8.16 CMAIN 12/16/2008 14:05:47 PAGE 8
428 3 latch=0;
429 3 //delay(1);
430 3 P2=a;
431 3 outen=0;
432 3 delay(6);
433 3 a=a>>1;
434 3 //delay(2);
435 3 outen=1;
436 3 }
437 2 }
438 1 }
439
440
441 void move(void){
442 1 uchar *m,i,j;
443 1 for(i=0;i<16;i++){
444 2 for(j=0;j<7;j++){
445 3 m=&buffer[i][j];
446 3 *m=*m<<1;
447 3 *m=*m|*(m+1)>>7;
448 3 }
449 2 buffer[i][7]=buffer[i][7]<<1;
450 2 }
451 1 }
452
453 /*==============
454 void carry(){
455 uchar i,j,*car=wc;
456 for(i=0;i<16;i++) //16行
457 for(j=0;j<4;j++) //4 byte
458 buffer[i][j+3]=*car++;
459
460 }
461 *////////////////////
462
463 void LeftMove(uchar *p){
464 1 uchar i;
465 1 buffer[0][7]=buffer[1][7]=buffer[14][7]=buffer[15][7]=0x00;
466 1 for(i=0;i<12;i++)
467 1 buffer[i+2][7]=*(p+2*i); //装载高8位
468 1 for(i=0;i<8;i++){ //左移8次,并显示
469 2 move();
470 2 display(1);
471 2 }
472 1 for(i=0;i<12;i++)
473 1 buffer[i+2][7]=*(p+1+2*i); //装载低4位
474 1 for(i=0;i<4;i++){ //左移4次,并显示
475 2 move();
476 2 display(1);
477 2 }
478 1
479 1 }
480
481
482
483 void LoadNoSmoking(uchar *p){
484 1 uchar i;
485 1 //buffer[0][7]=buffer[1][7]=buffer[14][7]=buffer[15][7]=0x00;//清除0、1、14、15行
486 1 //buffer[0][0]=buffer[1][0]=buffer[14][0]=buffer[15][0]=0x00;//清除号码
487 1 for(i=0;i<16;i++)
488 1 buffer[i][7]=*(p+2*i); //装载高8位
489 1 for(i=0;i<8;i++){ //左移8次,并显示
C51 COMPILER V8.16 CMAIN 12/16/2008 14:05:47 PAGE 9
490 2 move();
491 2 display(1);
492 2 }
493 1 for(i=0;i<16;i++)
494 1 buffer[i][7]=*(p+1+2*i); //装载低4位
495 1 for(i=0;i<8;i++){ //左移8次,并显示
496 2 move();
497 2 display(1);
498 2 }
499 1
500 1 }
501
502 /*
503 void UpMove(void){
504 uchar i,j;
505 for(i=0;i<15;i++){
506 for(j=0;j<7;j++)
507 buffer[i][j]=buffer[i+1][j];
508 }
509 for(i=0;i<7;i++)
510 buffer[15][i]=0x00;
511
512 }
513 */
514
515 /*
516 void WordUpMove(void){
517 uchar i,j;
518
519 buffer[15][0]=*pc[0];
520 display(3);
521 UpMove();
522 buffer[15][0]=*(pc[0]+1);
523 display(3);
524 UpMove();
525 for(i=0;i<12;i++){
526 buffer[15][0]=*(pc[0]+2+i);
527 for(j=0;j<2;j++){
528 buffer[15][1+3*j]=*(pc[1+2*j]+2*i);
529 buffer[15][2+3*j]=*(pc[1+2*j]+1+2*i)|(*(pc[2+2*j]+2*i)>>4);
530 buffer[15][3+3*j]=(*(pc[2+2*j]+2*i)<<4)|(*(pc[2+2*j]+1+2*i)>>4);
531 }
532 display(3);
533 UpMove();
534 }
535 //UpMove();
536 buffer[15][0]=*(pc[0]+14);
537 display(3);
538 UpMove();
539 buffer[15][0]=*(pc[0]+15);
540
541 display(150);
542 display(150);
543 //display(150);
544
545 }
546 */
547
548
MODULE INFORMATION: STATIC OVERLAYABLE
C51 COMPILER V8.16 CMAIN 12/16/2008 14:05:47 PAGE 10
CODE SIZE = 966 ----
CONSTANT SIZE = 776 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 48 26
IDATA SIZE = 128 ----
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 + -