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

📄 utility.lst

📁 世纪民生公司的带网络功能的单片机CS6209开发http服务器的演示源代码。
💻 LST
📖 第 1 页 / 共 4 页
字号:
 544   3                                      printf("ADDROK");
 545   3                              break;
 546   3                      case SET_LEN_COMMAND:
 547   3                              while (RS232_rx_empty());
 548   3                              tmp=RS232_rx_getchar();
 549   3      
C51 COMPILER V7.50   UTILITY                                                               10/12/2006 15:31:40 PAGE 10  

 550   3                              length=(((unsigned int)tmp)<<8)&0xff00;
 551   3                                while (RS232_rx_empty());
 552   3                                tmp=RS232_rx_getchar();
 553   3                              length|=(tmp&0xff);
 554   3      
 555   3                              if (length>0x8000)
 556   3                              {
 557   4                                      printf("ERROR");
 558   4                                      tx_char(0);
 559   4                              }
 560   3                              else 
 561   3                              {
 562   4                                      printf("LENOK");
 563   4                                      tx_char(0);
 564   4                              }
 565   3                              break;
 566   3                      case WRITE_COMMAND:
 567   3                              printf("WCOK");
 568   3                              tx_char(0);
 569   3                              tx_char(0);
 570   3                              count=0;
 571   3                              P1=0xFE;
 572   3                              while (count<length)
 573   3                              {
 574   4                    P1^=0x03;
 575   4                                while (RS232_rx_empty());
 576   4                                tmp=RS232_rx_getchar();
 577   4                                c256_bytewrite(start_addr+count,tmp);
 578   4                                count++;
 579   4                              }
 580   3                              printf("WSOK");
 581   3                              tx_char(0);
 582   3                              tx_char(0);
 583   3                              break;
 584   3                      case SET_READ_COMMAND:
 585   3                              printf("RCOK");
 586   3                              tx_char(0);
 587   3                              tx_char(0);
 588   3                              count=0;
 589   3                              P1=0xFE;
 590   3                              while (count<length)
 591   3                              {
 592   4                    P1^=0xf3;
 593   4                                tmp=c256_byteread(start_addr+count);
 594   4                                if (tmp==0x11)
 595   4                                {
 596   5                                      tx_char(0xa1);
 597   5                                      tmp=0;
 598   5                                }
 599   4                                else if (tmp==0x13)
 600   4                                {
 601   5                                      tx_char(0xa1);
 602   5                                      tmp=1;
 603   5                                }
 604   4                                else if (tmp==0xa1)
 605   4                                {
 606   5                                      tx_char(0xa1);
 607   5                                      tmp=2;
 608   5                                }
 609   4                                tx_char(tmp);
 610   4                                count++;
 611   4                              }
C51 COMPILER V7.50   UTILITY                                                               10/12/2006 15:31:40 PAGE 11  

 612   3                              printf("RSOK");
 613   3                              tx_char(0);
 614   3                              tx_char(0);
 615   3                      break;
 616   3                      default:
 617   3                      printf("ERROR");
 618   3                      tx_char(0);
 619   3                      break;
 620   3                      }
 621   2              }
 622   1      #endif
 623   1      }
 624          #endif
 625          /************************************************************************
 626          /*      Function Name : parse_mac_str                                                                           *
 627          /*                                                                                                                                              *
 628          /*      Arguments :                                                                                                             *
 629          /*                      char *line_buff : Point to a string to parse numbers out.       *
 630          /*                      char *nums : Point to a BYTE array to return numbers.           *
 631          /*                                                                                                                                              *
 632          /*      Return :                                                                                                                        *
 633          /*                      The number of numbers parsing from line_buff                            *
 634          /*                                                                                                                                              *
 635          /*  Comment :                                                                                                                   *
 636          /*                      This function parse numbers from a string like                          *
 637          /*                      xx-xx-xx-xx-xx-xx (MAC address format).                                                                                         *
 638          /*                                                                                                                                              *
 639          /************************************************************************/
 640          unsigned char parse_mac_str(char * line_buff,char *nums)
 641          {
 642   1              unsigned char *ptr;
 643   1              unsigned char num_count=0;
 644   1              unsigned char digital_count=0;
 645   1              int i;
 646   1              ptr=&line_buff[0];
 647   1              memset(nums,0,6);
 648   1              /*Ignore command char and space.*/
 649   1              while ( (ptr[i] == 'i') || (ptr[i] == 'M') || (ptr[i]==' ')|| (ptr[i]=='n')|| (ptr[i]=='g'))
 650   1                      ptr++;
 651   1              for (i=0;i<30;i++,ptr++)
 652   1              {
 653   2                      if (*ptr==' ')
 654   2                              continue;
 655   2                      else if (*ptr=='-')
 656   2                      {
 657   3                              if (num_count<6)
 658   3                                      num_count++;
 659   3                              else 
 660   3                              {
 661   4                                      num_count=0;
 662   4                                  break;
 663   4                              }
 664   3                              digital_count=0;
 665   3                      }
 666   2                      /*0-9*/
 667   2                      else if ((*ptr>=0x30) && (*ptr<=0x39))
 668   2                      {
 669   3                              nums[num_count]=nums[num_count]*16+(*ptr-0x30);
 670   3                              digital_count++;
 671   3                              if (digital_count>2)
 672   3                              {
 673   4                                      num_count=0;
C51 COMPILER V7.50   UTILITY                                                               10/12/2006 15:31:40 PAGE 12  

 674   4                                      break;
 675   4                              }
 676   3                      }
 677   2                      /*A-F*/
 678   2                      else if ((*ptr>=0x41) && (*ptr<=0x46))
 679   2                      {
 680   3                              nums[num_count]=nums[num_count]*16+(*ptr+10-0x41);
 681   3                              digital_count++;
 682   3                              if (digital_count>2)
 683   3                              {
 684   4                                      num_count=0;
 685   4                                      break;
 686   4                              }
 687   3                      }
 688   2                      /*a-f*/
 689   2                      else if ((*ptr>=0x61) && (*ptr<=0x66))
 690   2                      {
 691   3                              nums[num_count]=nums[num_count]*16+(*ptr+10-0x61);
 692   3                              digital_count++;
 693   3                              if (digital_count>2)
 694   3                              {
 695   4                                      num_count=0;
 696   4                                      break;
 697   4                              }
 698   3                      }
 699   2                      /*End of string.*/
 700   2                      else if ((*ptr==0xd) || (*ptr==0xa)|| (*ptr==0x0)||(*ptr==0x2e))
 701   2                      {
 702   3                              num_count++;
 703   3                              break;
 704   3                      }
 705   2                      else
 706   2                      {
 707   3                              num_count=0;
 708   3                              break;
 709   3                      }
 710   2              }
 711   1              return num_count; 
 712   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2077    ----
   CONSTANT SIZE    =    815    ----
   XDATA SIZE       =     41      47
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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