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

📄 hldkzqts.lst

📁 LED照明行业地砖及护栏控制器程序 从现况来看
💻 LST
📖 第 1 页 / 共 2 页
字号:
 209   1              *DestBuf=Src;
 210   1          Check_Toggle_Ready(DestBuf);    /* wait for TOGGLE bit to get ready */
 211   1      }
 212          
 213          
 214          /************************************************************************/
 215          /* PROCEDURE:   Program_One_Sector                                      */
 216          /*                                                                      */
 217          /* This procedure can be used to program a total of 4096 bytes of data  */
 218          /* to the SST39VF016.                                                   */
 219          /*                                                                      */
 220          /* NOTES: 1. It is necessary to first erase the sector before the       */
 221          /*        programming.                                                  */
 222          /*        2. This sample code assumes the destination address passed    */
C51 COMPILER V7.06   HLDKZQTS                                                              07/20/2004 13:59:29 PAGE 5   

 223          /*        from the calling function is the starting address of the      */
 224          /*        sector.                                                       */
 225          /*                                                                      */
 226          /* Input:                                                               */
 227          /*           Src     SOURCE address containing the data which will be   */
 228          /*                   written to the 39VF016                             */
 229          /*           Dst     DESTINATION address which will be written with the */
 230          /*                   data passed in from Src                            */
 231          /*                                                                      */
 232          /* Output:                                                              */
 233          /*           None                                                       */
 234          /************************************************************************/
 235          
 236          void Program_One_Sector (uint Dst)
 237          {
 238   1              uchar xdata *SourceBuf;
 239   1              uchar xdata *DestBuf;
 240   1      
 241   1              uint Index;
 242   1                      page=Dst;
 243   1              SourceBuf = 0x1000;
 244   1              DestBuf = 0x8000;
 245   1      
 246   1              Erase_One_Sector(Dst);          /* erase the sector first */
 247   1      
 248   1              for (Index = 0; Index < 4096; Index++)
 249   1                      {
 250   2                              Program_One_Byte( *SourceBuf, DestBuf);
 251   2                              DestBuf++;
 252   2                              SourceBuf++;
 253   2                      }
 254   1      }
 255          
 256          //***********************************************
 257          //                      接收数据
 258          //************************************************
 259          void rece_picture(void)
 260          {
 261   1      uchar i;
 262   1      uchar xdata *op;
 263   1      uchar idata *sp;        //0x1000 test 0x1000
 264   1      FPGH=send_buf[4];
 265   1      FPGL=send_buf[3];
 266   1      op=(send_buf[5]*64)|0x1000;
 267   1      sp=&send_buf[8];
 268   1      for(i=0;i<64;i++)*op++=*sp++;   //写入RAM 1000H 单元 位图数据
 269   1      }
 270          
 271          /*
 272          ************************************
 273                  通讯协议解析                    接收数据
 274          *******************************************8
 275          */
 276          void receive(void)
 277          {
 278   1      
 279   1      switch(send_buf[2])//命令标志
 280   1              {
 281   2              case 1:rec_sta=1;//进入接收状态
 282   2                      break;  
 283   2              case 2:                 //接收数据
 284   2                      rece_picture();
C51 COMPILER V7.06   HLDKZQTS                                                              07/20/2004 13:59:29 PAGE 6   

 285   2                      break;  
 286   2              case 0:                 //加载某一帧数据到显存
 287   2                      dis_page=send_buf[4]*256+send_buf[3];
 288   2                      load_data(dis_page);
 289   2                      break;  
 290   2              case    3:              //将一扇区数据写闪存
 291   2                      Program_One_Sector(send_buf[4]*256+send_buf[3]);
 292   2                      break;
 293   2              default:break;
 294   2              }
 295   1      }
 296          //********************************************
 297          void    delay1s()
 298          {
 299   1      uint i,j;
 300   1      for(i=0;i<0xfff;i++)
 301   1              for(j=0;j<0x11;j++);
 302   1      led=!led;
 303   1      }
 304          //***********************************************
 305          void test()
 306          {
 307   1      uchar xdata *rp;
 308   1      uchar xdata *p;
 309   1      uchar xdata *sp;
 310   1      uchar j;
 311   1      uint i;
 312   1      p=0x0000;
 313   1      memset(p,0x00,1024);
 314   1      delay1s();//1   
 315   1      
 316   1      FPGH=4;FPGL=0;
 317   1      p=0x0000;
 318   1      sp=0x8000;
 319   1      rp=memcpy(p,sp,255);
 320   1      delay1s();//1   
 321   1      p=0x0100;
 322   1      sp=0x8100;
 323   1      rp=memcpy(p,sp,255);
 324   1      delay1s();//1
 325   1      p=0x0200;
 326   1      sp=0x8200;
 327   1      rp=memcpy(p,sp,255);
 328   1      delay1s();//1
 329   1      p=0x0300;
 330   1      sp=0x8300;
 331   1      rp=memcpy(p,sp,255);
 332   1      delay1s();//1XS
 333   1      
 334   1      
 335   1      p=0x0000;
 336   1      memset(p,0x00,1024);
 337   1      delay1s();//1   
 338   1      p=0x0000;
 339   1      memset(p,255,255);
 340   1      delay1s();  //4
 341   1      
 342   1      p=0x0100;
 343   1      memset(p,255,255);
 344   1      delay1s();  //4
 345   1      
 346   1      p=0x0200;
C51 COMPILER V7.06   HLDKZQTS                                                              07/20/2004 13:59:29 PAGE 7   

 347   1      memset(p,255,255);
 348   1      delay1s();//8
 349   1      
 350   1      p=0x0300;
 351   1      memset(p,255,255);
 352   1      delay1s();//15
 353   1      
 354   1      }
*** WARNING C280 IN LINE 310 OF HLDKZQTS.C: 'j': unreferenced local variable
*** WARNING C280 IN LINE 311 OF HLDKZQTS.C: 'i': unreferenced local variable
 355          
 356          //********************************************
 357          //                                       主程序
 358          //********************************************
 359          void main()
 360          {
 361   1      uchar xdata *p;
 362   1      PS=1;
 363   1      ES=0;
 364   1      SM0=1;
 365   1      SM1=1;
 366   1      T2CON=0X30;
 367   1      RCAP2H=0XFF;
 368   1      TH2=0XFF;
 369   1      RCAP2L=0Xf6;    //9600bps c4  115200bps fb 57600 f6 
 370   1      TL2=0Xf6;
 371   1      TR2=1;
 372   1      EA=1;
 373   1      REN=1;
 374   1      ES=1;
 375   1      SM2=1;
 376   1      ADD=(~P1)&0x1f;
 377   1      frameok=0;
 378   1      cler();
 379   1      
 380   1      p=0x1000;
 381   1      memset(p,0x01,4096);
 382   1      Program_One_Sector(1024);
 383   1      
 384   1      while(1)
 385   1              {test();
 386   2              }
 387   1      while(1)
 388   1              {
 389   2              if(frameok)
 390   2                      {receive();frameok=0;}
 391   2              }//while(1)
 392   1      }
 393          //*****************************************
 394          //                      串口中断服务程序
 395          //*****************************************
 396          void send(void) interrupt  4 
 397          {
 398   1      uchar d;
 399   1      if(!TI && RI && !frameok)
 400   1       {RI=0;
 401   2        d=SBUF;
 402   2              if(pointer==0)
 403   2              {if(d==ADD)
 404   3                              {subchk=d;send_buf[0]=d;TB8=1;senden=1;
 405   4                              delayms(1);SBUF=d;while(!TI);TI=0;delayms(1);
 406   4                              senden=0;SM2=0;TB8=0;pointer++;paklen=68;}//71
C51 COMPILER V7.06   HLDKZQTS                                                              07/20/2004 13:59:29 PAGE 8   

 407   3                      else if(d==0xff)
 408   3                              {subchk=d;SM2=0;TB8=0;pointer++;paklen=5;}
 409   3                              
 410   3              }
 411   2        else 
 412   2                      {if(pointer==paklen)
 413   3              {send_buf[pointer]=d;
 414   4                              if(d==subchk)
 415   4                                      {senden=1;delayms(1);SBUF=subchk;while(!TI);delayms(1);senden=0;TI=0;frameok=1;}
 416   4                              else
 417   4                                      {senden=1;delayms(1);SBUF=~subchk;while(!TI);delayms(1);TI=0;senden=0;}
 418   4                              SM2=1;pointer=0;
 419   4                              }
 420   3              else
 421   3                {send_buf[pointer]=d;subchk+=d;pointer++;}
 422   3                      }        
 423   2        }//end if
 424   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1061    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     20      17
   IDATA SIZE       =     72    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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