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

📄 led.lst

📁 通过车载终端采集GPS数据
💻 LST
字号:
C51 COMPILER V7.09   LED                                                                   09/25/2008 11:56:21 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE LED
OBJECT MODULE PLACED IN .\output\bin\led.obj
COMPILER INVOKED BY: C:\Keil709\C51\BIN\C51.EXE extendUART\led.c LARGE BROWSE INCDIR(audio\;eeprom\;extendUART\;flash\;g
                    -ps\;inter\;key\;mcu\;menu\;usb\;gprs\;main\;1wire\) DEBUG OBJECTEXTEND PRINT(.\output\led.lst) OBJECT(.\output\bin\led.o
                    -bj)

line level    source

   1          #include <string.h>
   2          #include "typedef.h"
   3          #include "16c554.h"
   4          #include "led.h"
   5          
   6          //#include "Trans_process.h"
   7          #include "nf_file.h"
   8          //#include "commoninterface.h"
   9          //#include "display.h"
  10          char gLedBuf[300];
  11          char gLedReSendBuf[300];
  12          unsigned char gLedSendFlag = 0;
  13          #define DEFAULT_PARAM 3
  14          #define DEFAULT_DELAY 0
  15          
  16          #define LED_QUERY_NOTICE 0xa2
  17          #define LED_QUERY_ADVERTISE 0x81
  18          char gLedMsgID[4];
  19          unsigned char gLedQueryType=0;
  20          unsigned char gLedQuerySeq=0;
  21          unsigned char gLedSetType=0;
  22          #define LED_CLOCK_TIMER 10
  23          unsigned char gLedClock = LED_CLOCK_TIMER;
  24          //该进程处理LED接收的问题
  25          /**注意该接口也可以做更新程序的接口,在用做更新程序使用时,需要屏蔽掉LED功能*/
  26          #define LED_UPDATE_TIMEOUT 200
  27          #define LED_UPDATEPROGRAM 2
  28          #define LED_NORMALSTATUE 1
  29          unsigned char gLedInterfaceStatus = LED_NORMALSTATUE;
  30          Uint32 gLedUpdateOffset = 0;
  31          Uint16 gLedUpdateLastNum = 0;
  32          void led_process()
  33          {
  34   1          char* tmpBuf;
  35   1          Byte recieveLen;
  36   1          //处理接收
  37   1          recieveLen = sioc_receive(&tmpBuf);
  38   1          if (recieveLen > 0)
  39   1          {
  40   2              if ((tmpBuf[0] == '*') && (tmpBuf[recieveLen-1] == '#'))
  41   2              {
  42   3                  //为更新程序的
  43   3                  gLedInterfaceStatus = LED_UPDATEPROGRAM;
  44   3                  led_updateprogram(tmpBuf, recieveLen);
  45   3              }
  46   2              sioc_start_receive(); 
  47   2              
  48   2          }
  49   1      }
  50          
  51          #define SOH   1 /*数据正在传输*/
  52          #define EOT   4 /*数据传输结束*/
  53          #define QUIT   5 /*放弃前面传输的数据*/
C51 COMPILER V7.09   LED                                                                   09/25/2008 11:56:21 PAGE 2   

  54          
  55          #define RESPONSE_ACK 0//应答成功
  56          #define RESPONSE_NAK 1//应答失败
  57          /******以下程序是LED接口用作更新程序时使用*********/
  58          /****返回应答信息******/
  59          void encapsulate_response_update(Uint8 ProcessResult, Uint8 TransferStatus, Uint16 BlockSequence)
  60          {
  61   1          Byte len;
  62   1          if(TransferStatus == SOH)
  63   1          {
  64   2              len = 8;
  65   2              gLedBuf[7] = '#';
  66   2              gLedBuf[0] = '*';
  67   2              gLedBuf[1] = 0;
  68   2              gLedBuf[2] = 8;
  69   2              gLedBuf[3] = 0xa5;
  70   2              gLedBuf[4] = ProcessResult;
  71   2              gLedBuf[5] = High(BlockSequence);
  72   2              gLedBuf[6] = Low(BlockSequence);
  73   2          }
  74   1          else
  75   1          {
  76   2              len = 6;
  77   2              gLedBuf[5] = '#';
  78   2              gLedBuf[0] = '*';
  79   2              gLedBuf[1] = 0;
  80   2              gLedBuf[2] = 6;
  81   2              gLedBuf[3] = 0xa5;
  82   2              gLedBuf[4] = ProcessResult;
  83   2          }
  84   1          sioc_send(gLedBuf, len);//sioc_send
  85   1      //    sioc_send(gLedBuf, len);
  86   1      }
  87          
  88          void led_updateprogram(Byte* pBuf, Byte nLen)
  89          {
  90   1          Uint16 blocksequence, chsum;
  91   1          Byte i;
  92   1          if (nLen == pBuf[2])
  93   1          {
  94   2              if (pBuf[5] == SOH)
  95   2              {
  96   3                  if (0 == pBuf[4])
  97   3                  {
  98   4                      blocksequence = *(pBuf + 6);
  99   4                      blocksequence <<= 8;
 100   4                      blocksequence +=  *(pBuf + 7);
 101   4          
 102   4                      chsum = 0;
 103   4                      for(i=0; i<128; i++)//计算累加校验和
 104   4                      {
 105   5                          chsum += *(pBuf + 8 + i);
 106   5                          chsum &= 0x00ff;
 107   5                      }
 108   4                      if((blocksequence == gLedUpdateLastNum+1) && (chsum == *(pBuf + 136)))//数据块号校验和累加
             -校验
 109   4                      {
 110   5                          gLedUpdateLastNum = blocksequence;
 111   5                          if (1 == blocksequence)
 112   5                          {
 113   6                              gLedUpdateOffset = 0;
 114   6                              init_serialupdateprogram(SERIAL_FIRSTUPDATE);
C51 COMPILER V7.09   LED                                                                   09/25/2008 11:56:21 PAGE 3   

 115   6                          }
 116   5                          else
 117   5                              init_serialupdateprogram(SERIAL_FOLLOWUPDATE);
 118   5                          if (OK == write_programtoFlash(pBuf+8, 128, gLedUpdateOffset, NFUPDATE_SERIAL))
 119   5                          {
 120   6                              gLedUpdateOffset += 128;
 121   6                              encapsulate_response_update(RESPONSE_ACK, SOH, blocksequence);
 122   6                          }
 123   5                      }
 124   4                      else
 125   4                          encapsulate_response_update (RESPONSE_NAK, SOH, gLedUpdateLastNum);
 126   4                  }
 127   3                  
 128   3              }
 129   2              else if ((pBuf[5] == EOT) && (0 != gLedUpdateLastNum))
 130   2              {
 131   3                  //传输结束
 132   3                  //进行更新
 133   3                  gLedInterfaceStatus = LED_NORMALSTATUE;
 134   3                  encapsulate_response_update (RESPONSE_ACK, EOT, 0);
 135   3                  gLedUpdateLastNum = 0;
 136   3                  gLedUpdateOffset = 0;
 137   3                  switch_ld_ap();
 138   3              }
 139   2          }
 140   1      }
 141          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    605    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    616      11
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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