📄 sysmain.lst
字号:
287 2 return;
288 2 default:
289 2 break;
290 2 }
291 1 cNextJmp = cExpect;
292 1 funLcd = KeyTab[cNextJmp].pKeyFunc;
293 1 (*funLcd)();
294 1 return;
295 1
296 1 }
297 /*------------数据收发缓冲区初始化-------------*/
298 void VariableInit()
299 {
300 1 int data i;
301 1 for(i=0;i<512;i++)
302 1 {
303 2 dmx_inbuf[i]=0;
C51 COMPILER V6.23a SYSMAIN 05/22/2003 17:10:26 PAGE 6
304 2 dmx_outbuf[i]=0;
305 2 chMode[i]=0;
306 2 }
307 1 DequeInit(&key_buf);
308 1 AddrBeginTmp=SIOAddrBegin=1;//AddrBegin;
309 1 AddrEndTmp=SIOAddrEnd=96;//AddrEnd;
310 1 DmxLength=AddrEndTmp-AddrBeginTmp+1;
311 1 idmxIndex = 0;
312 1 odmxIndex = 0;
313 1 RcvStartCode = 32;
314 1 bOutEnd = True;
315 1 bBeginRcv = False;
316 1 bDataReady = False;
317 1 }
318
319 /*-----------------系统硬件初始化---------------*/
320 void HardwareInit()
321 {
322 1 /*初始化的内容:
323 1 1。串行口设置为方式2,波特率为250k。
324 1 2。外部中断0 用于DMX数据包的接收中断。
325 1 3。定时器0工作与方式1,每50毫秒一次中断用以扫描键盘。
326 1 4。定时器1工作与方式1,用于软件查询中断的延时。
327 1 */
328 1 IE = 0; //Forbid Interrupt
329 1 IP = 0x15; //00010101 | - | PS1 | PT2 | PS | PT1 | PX1 | PT0 | PX0
330 1 //1.Serial Init
331 1 SCON=0xa8; //10101000 | SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI
332 1 PCON=0; /*波特率250k*/
333 1 ES =1; //serial interrupt enable
334 1 //2.Exterior interrupt-0 Init
335 1 IT0 = 1; /*边沿触发*/
336 1 IE0 = 0; //Exterior interrupt-0 flag
337 1 EX0 =1;
338 1 //3.Time Init
339 1 TMOD=0x11; //00010001 | GATE-1 | C/T-1 | M1-1 | M0-1 | GATE-0 | C/T-0 | M1-0 | M0-0 |
340 1 TL0 =TIME50MSL;
341 1 TH0 =TIME50MSH;
342 1 TF0 =0; //Time0 overflow/interrupt flag
343 1 TR0 =1; //Time0 enable
344 1 ET0 =1; //Time0 interrupt enable
345 1 TF1 =0;
346 1 TR1 =0;
347 1
348 1 LcdInit();
349 1 EA =1; //Interrupt Enable
350 1 }
351
352 void LcdInit()
353 {
354 1 PORT_LCDCMD = 0x30;
355 1 TF1 = 0;
356 1 TH1 = 0;
357 1 TL1 = 0;
358 1 TR1 = 1;
359 1 while( TF1 == 0 );
360 1 TF1 = 0;
361 1 PORT_LCDCMD = 0x30;//Lcd_PutCmd(0x30);
362 1
363 1 TH1 = TIME15MSH;
364 1 TL1 = TIME15MSL;
365 1 while( TF1 == 0 );
C51 COMPILER V6.23a SYSMAIN 05/22/2003 17:10:26 PAGE 7
366 1 TF1 = 0;
367 1 PORT_LCDCMD = 0x30;//cCmd;
368 1 // Lcd_PutCmd(0x30);
369 1
370 1 TH1 = TIME15MSH;
371 1 TL1 = TIME15MSL;
372 1 while( TF1 == 0 );
373 1 TF1 = 0;
374 1 //PORT_LCDCMD = 0x30;//cCmd;
375 1 // Lcd_PutCmd(0x30);
376 1
377 1 //PORT_LCDCMD = 0x30;//cCmd;
378 1 // Lcd_PutCmd(0x30);
379 1 Lcd_PutCmd(0x38);
380 1
381 1 Lcd_PutCmd(0x01); //clr display
382 1 Lcd_PutCmd(0x06); //Cursor increment,
383 1 Lcd_PutCmd(0x0f); //Cursor on, display on
384 1 Lcd_PutCmd(0x80); //Set dd ram address
385 1 return;
386 1 }
387
388 void DspMain()
389 {
390 1 PrintStr_xy(0,0,Main1);
391 1 PrintStr_xy(0,1,Main2);
392 1 }
393 void DspAddrMenu()
394 {
395 1 PrintStr_xy(0,0,MenuString[0]);
396 1 PrintStr_xy(0,1,MainPromptStr);
397 1 }
398
399 void DspCH_ModeMenu()
400 {
401 1 PrintStr_xy(0,0,MenuString[1]);
402 1 PrintStr_xy(0,1,MainPromptStr);
403 1
404 1 }
405
406 void DspSCheckMenu()
407 {
408 1 bLocalControl = False; /*用于自检退出时关闭自检标志*/
409 1 bSelfCheck = False;
410 1 PrintStr_xy(0,0,MenuString[2]);
411 1 PrintStr_xy(0,1,MainPromptStr);
412 1 }
413 void DspCharseMenu()
414 {
415 1 bLocalControl = False; /*用于自检退出时关闭自检标志*/
416 1 bCharseCheck = False;
417 1 PrintStr_xy(0,0,MenuString[3]);
418 1 PrintStr_xy(0,1,MainPromptStr);
419 1 }
420 void DspCSaveMenu()
421 {
422 1 PrintStr_xy(0,0,MenuString[4]);
423 1 PrintStr_xy(0,1,MainPromptStr);
424 1 }
425 void DspCDeleMenu()
426 {
427 1 PrintStr_xy(0,0,MenuString[5]);
C51 COMPILER V6.23a SYSMAIN 05/22/2003 17:10:26 PAGE 8
428 1 PrintStr_xy(0,1,MainPromptStr);
429 1 }
430 void DspCRcallMenu()
431 {
432 1 PrintStr_xy(0,0,MenuString[6]);
433 1 PrintStr_xy(0,1,MainPromptStr);
434 1 }
435 void DspAddrSel()
436 {
437 1 PrintStr_xy(0,0,AddrSetupStr);
438 1 AddrBeginTmp=AddrBegin;
439 1 AddrEndTmp=AddrEnd;
440 1 PrintNum3_xy(11,0,AddrBeginTmp);
441 1 PrintNum3_xy(16,0,AddrEndTmp);
442 1 PrintStr_xy(0,1,ChildPromptStr);
443 1 Cursor_xy(11,0);
444 1 }
445 void DspChannelSel()
446 {
447 1 PrintStr_xy(0,0,CHSelectStr);
448 1 ChannelSel = 0;
449 1 PrintStr_xy(16,0,AllStr);
450 1 PrintStr_xy(0,1,ChildPromptStr);
451 1 Cursor_xy(16,0);
452 1 }
453 void DspTimeSel()
454 {
455 1 PrintStr_xy(0,0,TimeCountStr);
456 1 TimeCout=10;
457 1 PrintNum2_xy(17,0,TimeCout);
458 1 PrintStr_xy(0,1,ChildPromptStr);
459 1 Cursor_xy(16,0);
460 1 }
461 void DspCueNumSel()
462 {
463 1 PrintStr_xy(0,0,CueNumStr);
464 1 CueNum=0;
465 1 PrintNum2_xy(17,0,CueNum);
466 1 PrintStr_xy(0,1,ChildPromptStr);
467 1 Cursor_xy(17,0);
468 1 }
469 //void DeleCue();
470 //void RecallCue();
471 void AddrLefInc()
472 {
473 1 if( AddrBeginTmp == 512)
474 1 AddrBeginTmp = 1;
475 1 else
476 1 AddrBeginTmp++ ;
477 1 if( AddrBeginTmp > AddrEndTmp)
478 1 AddrEndTmp = AddrBeginTmp;
479 1 PrintNum3_xy(11,0,AddrBeginTmp);
480 1 PrintNum3_xy(16,0,AddrEndTmp);
481 1 Cursor_xy(11,0);
482 1 }
483 void AddrLefDec()
484 {
485 1 if( AddrBeginTmp == 1)
486 1 AddrBeginTmp = 512;
487 1 else
488 1 AddrBeginTmp-- ;
489 1 if( AddrBeginTmp > AddrEndTmp)
C51 COMPILER V6.23a SYSMAIN 05/22/2003 17:10:26 PAGE 9
490 1 AddrEndTmp = AddrBeginTmp;
491 1 PrintNum3_xy(11,0,AddrBeginTmp);
492 1 PrintNum3_xy(16,0,AddrEndTmp);
493 1 Cursor_xy(11,0);
494 1
495 1 }
496 void AddrRgtInc()
497 {
498 1 if( AddrEndTmp == 512)
499 1 AddrEndTmp = 1;
500 1 else
501 1 AddrBeginTmp++ ;
502 1 if( AddrBeginTmp > AddrEndTmp)
503 1 AddrEndTmp = AddrBeginTmp;
504 1 PrintNum3_xy(11,0,AddrBeginTmp);
505 1 PrintNum3_xy(16,0,AddrEndTmp);
506 1 Cursor_xy(16,0);
507 1 }
508 void AddrRgtDec()
509 {
510 1 if( AddrEndTmp == 1)
511 1 AddrEndTmp = 512;
512 1 else
513 1 AddrEndTmp-- ;
514 1 if( AddrBeginTmp > AddrEndTmp)
515 1 AddrEndTmp = AddrBeginTmp;
516 1 PrintNum3_xy(11,0,AddrBeginTmp);
517 1 PrintNum3_xy(16,0,AddrEndTmp);
518 1 Cursor_xy(16,0);
519 1 }
520 void AddrLefSav()
521 {
522 1 EA = 0;
523 1 AddrBegin = AddrBeginTmp ;
524 1 AddrEnd = AddrEndTmp;
525 1 DmxLength = AddrEndTmp - AddrBeginTmp +1;
526 1 EA = 1;
527 1 PrintNum3_xy(11,0,AddrBeginTmp);
528 1 PrintNum3_xy(16,0,AddrEndTmp);
529 1 Cursor_xy(16,0);
530 1
531 1 }
532 void AddrRgtSav()
533 {
534 1 EA = 0;
535 1 AddrBegin = AddrBeginTmp ;
536 1 AddrEnd = AddrEndTmp;
537 1 DmxLength = AddrEndTmp - AddrBeginTmp +1;
538 1 EA = 1;
539 1 PrintStr_xy(0,0,SettingSaved);
540 1 }
541
542 void ChannelInc()
543 {
544 1 if(ChannelSel == 512)
545 1 ChannelSel = 0;
546 1 else
547 1 ChannelSel++;
548 1 if(ChannelSel == 0)
549 1 PrintStr_xy(16,0,AllStr);
550 1 else
551 1 PrintNum3_xy(16,0,ChannelSel);
C51 COMPILER V6.23a SYSMAIN 05/22/2003 17:10:26 PAGE 10
552 1 Cursor_xy(16,0);
553 1 }
554 void ChannelDec()
555 {
556 1 if(ChannelSel == 1)
557 1 ChannelSel = 512;
558 1 else
559 1 ChannelSel--;
560 1 if(ChannelSel == 0)
561 1 PrintStr_xy(0,0,AllStr);
562 1 else
563 1 PrintNum3_xy(16,0,ChannelSel);
564 1 Cursor_xy(16,0);
565 1 }
566 void DspModeSel()
567 {
568 1 PrintStr_xy(0,0,ModeStr);
569 1 if(ChannelSel == 0)
570 1 {
571 2 PrintStr_xy(1,0,AllStr);
572 2 ModeTmp = 0 ;
573 2 }else{
574 2 PrintNum3_xy(1,0,ChannelSel);
575 2 ModeTmp = chMode[ChannelSel];
576 2 }
577 1 PrintStr_xy(15,0,CurveStr[ModeTmp]);
578 1 }
579 void CH_ModeInc()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -