⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sysmain.lst

📁 一款性能稳定的DMX512液晶显示控制系统,包括标准的数据输出,多级的菜单显示,通道可以任意设置
💻 LST
📖 第 1 页 / 共 3 页
字号:
 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 + -