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

📄 hldkzqv11.lst

📁 LED照明行业地砖及护栏控制器程序 从现况来看
💻 LST
📖 第 1 页 / 共 2 页
字号:
 237   1      uchar xdata *op;
 238   1      uchar idata *sp;        //0x1000 test 0x1000
 239   1      //FPGH=send_buf[4];
 240   1      //FPGL=send_buf[3];
 241   1      if(type)
C51 COMPILER V7.06   HLDKZQV11                                                             08/10/2004 19:20:16 PAGE 5   

 242   1              op=(send_buf[5]*64);
 243   1      else
 244   1              op=(send_buf[5]*64)|0x1000;
 245   1      
 246   1      sp=&send_buf[8];
 247   1      for(i=0;i<64;i++)*op++=*sp++;   //写入RAM 1000H 单元 位图数据
 248   1      }
 249          //********************************************
 250          void    delay1s()
 251          {
 252   1      uint i,j;
 253   1      for(i=0;i<0xfff;i++)
 254   1              {for(j=0;j<0x50;j++);
 255   2              wdgclr=!wdgclr;
 256   2              }
 257   1      }
 258          //***********************************************
 259          void test()
 260          {
 261   1      //uchar xdata *rp;
 262   1      uchar xdata *p;
 263   1      //uchar xdata *sp;
 264   1      p=0x0000;
 265   1      memset(p,0x00,1024);
 266   1      delay1s();//1   
 267   1      p=0x0000;
 268   1      memset(p,255,255);
 269   1      delay1s();  //4
 270   1      
 271   1      p=0x0100;
 272   1      memset(p,255,255);
 273   1      delay1s();  //4
 274   1      
 275   1      p=0x0200;
 276   1      memset(p,255,255);
 277   1      delay1s();//8
 278   1      
 279   1      p=0x0300;
 280   1      memset(p,255,255);
 281   1      delay1s();//15
 282   1      /*
 283   1      p=0x0000;
 284   1      memset(p,0x00,1024);
 285   1      p=0x1000;
 286   1      memset(p,0x80,4096);
 287   1      Program_One_Sector(0);
 288   1      delay1s();//1   
 289   1      
 290   1      FPGH=0;FPGL=0;
 291   1      p=0x0000;
 292   1      sp=0x8000;
 293   1      rp=memcpy(p,sp,255);
 294   1      delay1s();//1   
 295   1      p=0x0100;
 296   1      sp=0x8100;
 297   1      rp=memcpy(p,sp,255);
 298   1      delay1s();//1
 299   1      p=0x0200;
 300   1      sp=0x8200;
 301   1      rp=memcpy(p,sp,255);
 302   1      delay1s();//1
 303   1      p=0x0300;
C51 COMPILER V7.06   HLDKZQV11                                                             08/10/2004 19:20:16 PAGE 6   

 304   1      sp=0x8300;
 305   1      rp=memcpy(p,sp,255);
 306   1      delay1s();//1XS
 307   1      */
 308   1      }
 309          
 310          /*
 311          ************************************
 312                  通讯协议解析                    接收数据
 313          *******************************************8
 314          */
 315          void receive(void)
 316          {
 317   1      /*
 318   1      uchar xdata *p;
 319   1      uchar xdata *rp;
 320   1      uchar xdata *sp;*/
 321   1      switch(send_buf[2])//命令标志
 322   1              {
 323   2              case 1:rec_sta=1;TR0=0;//进入接收状态
 324   2                      break;  
 325   2              case 2:                 //接收数据
 326   2                      rece_picture(0);
 327   2                      break;  
 328   2              case 0:                 //加载某一帧数据到显存
 329   2                      dis_page=send_buf[4]*256+send_buf[3];
 330   2                      load_data(dis_page);
 331   2                      break;  
 332   2              case    3:              //将一扇区数据写闪存
 333   2                      Program_One_Sector(send_buf[4]*256+send_buf[3]);
 334   2                      break;
 335   2              case    4:              //测试
 336   2                      test();
 337   2                      break;
 338   2              case 5:         //接收到显存
 339   2                      rece_picture(1);
 340   2              case 6:         //同步信号
 341   2                      dis_page=send_buf[4]*256+send_buf[3];
 342   2                      ms=0;
 343   2              break;
 344   2              case 7:                 //进入自动播放
 345   2                      page_sta=send_buf[4]*256+send_buf[3];
 346   2                      dis_page=page_sta;
 347   2                      page_end=send_buf[6]*256+send_buf[5];
 348   2                      zhepe=100/send_buf[8];
 349   2      //              FPGH=0;FPGL=0;
 350   2      /*              p=0x1000;
 351   2                      sp=0x8000;
 352   2                      rp=memcpy(p,sp,4096);
 353   2      
 354   2                      XBYTE[0x10ff]=0xaa;
 355   2                      XBYTE[0x11ff]=send_buf[4];
 356   2                      XBYTE[0x12ff]=send_buf[3];
 357   2                      XBYTE[0x13ff]=send_buf[6];
 358   2                      XBYTE[0x14ff]=send_buf[5];
 359   2                      XBYTE[0x15ff]=zhepe;
 360   2                      Program_One_Sector(0);
 361   2      */
 362   2                      ms=0;
 363   2                      TR0=1;
 364   2              break;
 365   2              default:break;
C51 COMPILER V7.06   HLDKZQV11                                                             08/10/2004 19:20:16 PAGE 7   

 366   2              }
 367   1      }
 368          
 369          
 370          
 371          //********************************************
 372          //                                       主程序
 373          //********************************************
 374          void main()
 375          {
 376   1      //uchar xdata *p;
 377   1      PS=1;
 378   1      ES=0;
 379   1      SM0=1;
 380   1      SM1=1;
 381   1      T2CON=0X30;
 382   1      RCAP2H=0XFF;
 383   1      TH2=0XFF;
 384   1      RCAP2L=0Xfb;    //9600bps= c4  115200bps =fb 57600= f6 19200 = e2
 385   1      TL2=0Xfb;
 386   1      TR2=1;
 387   1      
 388   1      REN=1;
 389   1      TMOD=0x05;      //定时器0 模式1 外部时钟
 390   1      TL0=V_TL0;
 391   1      TH0=V_TH0;
 392   1      //TR0=1;
 393   1      ET0=1;
 394   1      ES=1;
 395   1      EA=1;
 396   1      SM2=1;
 397   1      ADD=(~P1)&0x1f;
 398   1      //ADD=1;
 399   1      frameok=0;
 400   1              test();
 401   1      while(1)
 402   1              {
 403   2      //      
 404   2      
 405   2              wdgclr=!wdgclr;
 406   2              if(timout)
 407   2                      {load_data(dis_page);dis_page++;timout=0;
 408   3                      if(dis_page>page_end)dis_page=page_sta;
 409   3                      }
 410   2      
 411   2              if(frameok)
 412   2                      {receive();frameok=0;}
 413   2              }//while(1)
 414   1      }
 415          /************************************************/
 416          void send_delay( void)
 417          {
 418   1      uint    Count;
 419   1      for (Count=0;Count<=200;Count++);
 420   1      
 421   1      }
 422          //*****************************************
 423          //                      串口中断服务程序
 424          //*****************************************
 425          void send(void) interrupt  4 
 426          {
 427   1      uchar d;
C51 COMPILER V7.06   HLDKZQV11                                                             08/10/2004 19:20:16 PAGE 8   

 428   1      if(!TI && RI && !frameok)
 429   1       {RI=0;
 430   2        d=SBUF;
 431   2              if(pointer==0)
 432   2              {if(d==ADD)
 433   3                              {subchk=d;send_buf[0]=d;TB8=1;senden=1;
 434   4                              send_delay();SBUF=d;while(!TI);TI=0;send_delay();
 435   4                              senden=0;SM2=0;TB8=0;pointer++;}//71
 436   3                      else if(d==0xff)
 437   3                              {subchk=d;SM2=0;pointer++;}
 438   3                              
 439   3              }
 440   2        else 
 441   2                      {if(pointer==71)
 442   3              {send_buf[pointer]=d;
 443   4                              if(d==subchk)
 444   4                                      {senden=1;send_delay();SBUF=subchk;while(!TI);send_delay();senden=0;TI=0;frameok=1;}
 445   4                              else
 446   4                                      {senden=1;send_delay();SBUF=~subchk;while(!TI);send_delay();TI=0;senden=0;}
 447   4                              SM2=1;pointer=0;
 448   4                              }
 449   3              else
 450   3                {send_buf[pointer]=d;subchk+=d;pointer++;}
 451   3                      }        
 452   2        }//end if
 453   1      }
 454          //*************************************
 455          void timer1() interrupt  1  
 456          {TL0=V_TL0;
 457   1      TH0=V_TH0;
 458   1      ms++;
 459   1      if(ms>zhepe)
 460   1              {timout=1;
 461   2              ms=0;
 462   2              }
 463   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1051    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     16      10
   IDATA SIZE       =     72    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -