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

📄 m101(2)x_test.lst

📁 kf902 104 uart- 19200
💻 LST
📖 第 1 页 / 共 2 页
字号:
 231   1              {
 232   2                      Delay100uS(1);
 233   2              }
 234   1              if ((g_cReceBuf[1] != cPa[1]) || (0 == cCnt))
 235   1              {
 236   2                      return 5;
 237   2              }
 238   1      //比较写入的和读出的数据
 239   1              cPa = &ComWriteBlock4[10];
 240   1              cPb = &g_cReceBuf[2];
 241   1              if (memcmp(cPa, cPb, 16) != 0)
C51 COMPILER V7.07   M101_2_X_TEST                                                         06/18/2007 15:10:20 PAGE 5   

 242   1              {
 243   2                      return 6;
 244   2              }
 245   1      
 246   1      //初始化钱包的值为0x12345678
 247   1              cPa = ComIntiPurse5;
 248   1              SendUart(cPa); 
 249   1              for (cCnt=200; (cCnt > 0) && !g_bReceCommandOk; cCnt--)
 250   1              {
 251   2                      Delay100uS(1);
 252   2              }
 253   1              if ((g_cReceBuf[1] != cPa[1]) || (0 == cCnt))
 254   1              {
 255   2                      return 7;
 256   2              }
 257   1      //增值
 258   1              cPa = ComIncrPurse5;
 259   1              SendUart(cPa);  
 260   1              for (cCnt=200; (cCnt > 0) && !g_bReceCommandOk; cCnt--)
 261   1              {
 262   2                      Delay100uS(1);
 263   2              }
 264   1              if ((g_cReceBuf[1] != cPa[1]) || (0 == cCnt))
 265   1              {
 266   2                      return 8;
 267   2              }
 268   1      
 269   1      //减值
 270   1              cPa=ComDecrPurse5;
 271   1              SendUart(cPa);  
 272   1              for (cCnt=200; (cCnt > 0) && !g_bReceCommandOk; cCnt--)
 273   1              {
 274   2                      Delay100uS(1);
 275   2              }
 276   1              if ((g_cReceBuf[1] != cPa[1]) || (0 == cCnt))
 277   1              {
 278   2                      return 9;
 279   2              }
 280   1      
 281   1      //restore the purse in block No.5 to block No.6
 282   1              cPa = ComBakPurse56;
 283   1              SendUart(cPa);  
 284   1              for (cCnt=200; (cCnt > 0) && !g_bReceCommandOk; cCnt--)
 285   1              {
 286   2                      Delay100uS(1);
 287   2              }
 288   1              if ((g_cReceBuf[1] != cPa[1]) || (0 == cCnt))
 289   1              {
 290   2                      return 10;
 291   2              }
 292   1      
 293   1      //读块6
 294   1              cPa = ComReadPurse6;
 295   1              SendUart(cPa);  
 296   1              for (cCnt=200; (cCnt > 0) && !g_bReceCommandOk; cCnt--)
 297   1              {
 298   2                      Delay100uS(1);
 299   2              }
 300   1              if ((g_cReceBuf[1] != cPa[1]) || (0 == cCnt))
 301   1              {
 302   2                      return 11;
 303   2              }
C51 COMPILER V7.07   M101_2_X_TEST                                                         06/18/2007 15:10:20 PAGE 6   

 304   1      //比较操作钱包的结果
 305   1              cPa = pursevalue;
 306   1              cPb = &g_cReceBuf[2];
 307   1              if (memcmp(cPa, cPb, 4) != 0)
 308   1              {
 309   2                      return 12;
 310   2              }       
 311   1      
 312   1              cPa=ComHaltMCU;
 313   1              SendUart(cPa);  
 314   1              for (cCnt=200; (cCnt > 0) && !g_bReceCommandOk; cCnt--)
 315   1              {
 316   2                      Delay100uS(1);
 317   2              }
 318   1              if ((g_cReceBuf[1] != cPa[1]) || (0 == cCnt))
 319   1              {
 320   2                      return 13;
 321   2              }
 322   1              return SUCCESS;
 323   1      }
 324          /*****************************************************************************
 325          * 发光管错误指示
 326          *****************************************************************************/
 327          void ShowError(unsigned char cTimes)
 328          {
 329   1              Delay100uS(5000);
 330   1              while (cTimes--)
 331   1              {
 332   2                      LED_error = 0;
 333   2                      Delay100uS(1000);
 334   2                      LED_error = 1;
 335   2                      Delay100uS(1000);
 336   2              }
 337   1      }
 338          /*****************************************************************************
 339          错误,蜂鸣器1s
 340          *****************************************************************************/
 341          void Err()
 342          {
 343   1              BEEP = 1;
 344   1              Delay100uS(1000);
 345   1              BEEP = 0;
 346   1      }                                   
 347                   
 348          /*****************************************************************************
 349          系统初始化
 350          *****************************************************************************/
 351          void InitializeSystem()
 352          {
 353   1              TMOD  = 0x21;
 354   1              PCON |= 0x80;
 355   1              SCON  = 0xD0;
 356   1              TH1   = 0xFD;
 357   1              TL1   = TH1;
 358   1              TR1   = 1;
 359   1              IE   |= 0x90;
 360   1      }
 361          /*****************************************************************************
 362          *命令传送
 363          *****************************************************************************/
 364          void SendUart(unsigned char *cSendBuffer)
 365          {    
C51 COMPILER V7.07   M101_2_X_TEST                                                         06/18/2007 15:10:20 PAGE 7   

 366   1              unsigned char i;
 367   1              unsigned char cCheckSum;
 368   1              g_bReceCommandOk = 0;
 369   1              LED_zhishi = CARDPIN;
 370   1              ES = 0;
 371   1              TI = 0;
 372   1              TB8 = 1;
 373   1              SBUF = 0;
 374   1              while (!TI);
 375   1              TB8 = 1;
 376   1              TI = 0;
 377   1              SBUF = 0;
 378   1              while (!TI);
 379   1              cCheckSum = 0;
 380   1              for (i=0; i<cSendBuffer[0]; i++)
 381   1              {    
 382   2                      cCheckSum ^= cSendBuffer[i];
 383   2                      TB8 = 0;
 384   2                      TI = 0;
 385   2                      SBUF = cSendBuffer[i];
 386   2                      while (!TI);
 387   2              }
 388   1              TI = 0;
 389   1              TB8 = 0;
 390   1              SBUF = cCheckSum;
 391   1              while (!TI);
 392   1              TI = 0;
 393   1              ES = 1;
 394   1      }
 395          /*****************************************************************************
 396                          串口中断程序
 397          *****************************************************************************/
 398          seri_int () interrupt 4 using 1
 399          {
 400   1              static unsigned char i;
 401   1              static unsigned char cReceivedData;
 402   1              static unsigned char cCheckSum;
 403   1              if (RI)
 404   1              {    
 405   2                      cReceivedData = SBUF;
 406   2                      RI = 0;
 407   2                      if (g_bReceAA)
 408   2                      {
 409   3                              g_bReceAA = 0;
 410   3                              if (0 != cReceivedData)
 411   3                              {
 412   4                                      g_cReceNum = 0;
 413   4                                      LED_UART = ~LED_UART;
 414   4                              }
 415   3                      }
 416   2                      else
 417   2                      {    
 418   3                              if (0xAA == cReceivedData)
 419   3                              {    
 420   4                                      g_bReceAA = 1;
 421   4                              }
 422   3                              g_cReceBuf[g_cReceNum++] = cReceivedData;
 423   3      
 424   3                              if (g_cReceNum > g_cReceBuf[0])
 425   3                              {
 426   4                                      cCheckSum = 0;
 427   4                                      for (i=0; i <= g_cReceBuf[0]; i++)
C51 COMPILER V7.07   M101_2_X_TEST                                                         06/18/2007 15:10:20 PAGE 8   

 428   4                                      {
 429   5                                              cCheckSum ^= g_cReceBuf[i];
 430   5                                      }
 431   4                                      LED_UART = ~LED_UART;
 432   4                                      if (0 == cCheckSum)
 433   4                                      {
 434   5                                              g_bReceCommandOk = 1;
 435   5                                              ES = 0;
 436   5                                      }
 437   4                                      g_bReceAA = 0;
 438   4                                      g_cReceNum = 0;
 439   4                              }
 440   3                              if (g_cReceNum >= sizeof(g_cReceBuf))
 441   3                              {
 442   4                                      g_cReceNum = 0;
 443   4                                      g_bReceAA = 0;
 444   4                              }
 445   3                      }
 446   2              }
 447   1              if (TI)
 448   1              {
 449   2                      TI = 0;
 450   2              }
 451   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1080    ----
   CONSTANT SIZE    =    142    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     63      23
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      3    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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