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

📄 sio.lst

📁 金星车载TV PAL制频头UV7305BDI控制源代码
💻 LST
字号:
C51 COMPILER V7.20   SIO                                                                   11/18/2004 17:33:51 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE SIO
OBJECT MODULE PLACED IN D:\TEST\TV\SIO.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\TEST\TV\SIO.C DB SB OE

line level    source

   1          #include <REG52.H>
   2          #include <extern.h>
   3          #include <constant.h>
   4          #include <function.h>
   5          
   6          //功能:先设置帧首和帧尾,然后计算校验和,再把buf_sio缓冲区中的数据发送出去
   7          //
   8          //
   9          void SioTransmit()
  10          {
  11   1              unsigned char i;
  12   1              buf_sio[13]=SIO_CMD_HEAD;
  13   1              buf_sio[1] =buf_sio[12];
  14   1              buf_sio[1] +=buf_sio[11];
  15   1              buf_sio[1] +=buf_sio[10];
  16   1              buf_sio[1] +=buf_sio[9];
  17   1              buf_sio[1] +=buf_sio[8];
  18   1              buf_sio[1] +=buf_sio[7];
  19   1              buf_sio[1] +=buf_sio[6];
  20   1              buf_sio[1] +=buf_sio[5];
  21   1              buf_sio[1] +=buf_sio[4];
  22   1              buf_sio[1] +=buf_sio[3];
  23   1              buf_sio[1] +=buf_sio[2];
  24   1              buf_sio[1] =~buf_sio[1];
  25   1              buf_sio[1] +=1;
  26   1              buf_sio[0] =SIO_CMD_END;
  27   1      
  28   1              i=SIO_BUF_LEN-1;
  29   1              ES=0;
  30   1              do
  31   1              {
  32   2                      SBUF=buf_sio[i];
  33   2                      while(!TI);
  34   2                      TI=0;
  35   2              }while(i--);
  36   1              ES=1;
  37   1      }
  38          
  39          
  40          //功能:清除缓冲区的数据,使其全0
  41          //buf:缓冲区地址
  42          //num:缓冲区大小
  43          void ClearBuffer(unsigned char *buf,unsigned char num)
  44          {
  45   1       while(num)
  46   1       {
  47   2              *buf=0x00;
  48   2              buf++;
  49   2              num--;
  50   2       }
  51   1      }
  52          
  53          
  54          
  55          //功能:设置发送缓冲区
C51 COMPILER V7.20   SIO                                                                   11/18/2004 17:33:51 PAGE 2   

  56          //cFlagSuccess:串口数据帧中的命令字
  57          //
  58          void SetSuccessFlag(unsigned char cFlagSuccess)
  59          {
  60   1              buf_sio[12]     =cFlagSuccess;
  61   1              buf_sio[11]     =0x00;
  62   1              buf_sio[10]     =0x00;
  63   1              buf_sio[9]      =0x00;
  64   1              buf_sio[8]      =0x00;
  65   1              buf_sio[7]      =0x00;
  66   1              buf_sio[6]      =0x00;
  67   1              buf_sio[5]      =0x00;
  68   1              buf_sio[4]      =0x00;
  69   1              buf_sio[3]      =0x00;
  70   1              buf_sio[2]      =0x00;
  71   1      }
  72          
  73          
  74          //功能:发送指定的EEPROM数据
  75          //addr:eeprom首地址
  76          //num:读取的eeprom数据数量
  77          void UploadEeprom(unsigned char addr,unsigned char num)
  78          {
  79   1      //      buf_sio[11]=addr;
  80   1      //      buf_sio[10]=num;
  81   1              ClearBuffer(buf_eeprom,8);
  82   1              ReadEEPROM(addr,buf_eeprom,num);
  83   1              buf_sio[9]=buf_eeprom[0];
  84   1              buf_sio[8]=buf_eeprom[1];
  85   1              buf_sio[7]=buf_eeprom[2];
  86   1              buf_sio[6]=buf_eeprom[3];
  87   1              buf_sio[5]=buf_eeprom[4];
  88   1              buf_sio[4]=buf_eeprom[5];
  89   1              buf_sio[3]=buf_eeprom[6];
  90   1              buf_sio[2]=buf_eeprom[7];
  91   1              SioTransmit();
  92   1      }
  93          
  94          
  95          
  96          //功能:通过串口写EEPROM
  97          //
  98          //
  99          void DownloadEeprom(void)
 100          {
 101   1              buf_eeprom[0]=buf_sio[9];
 102   1              buf_eeprom[1]=buf_sio[8];
 103   1              buf_eeprom[2]=buf_sio[7];
 104   1              buf_eeprom[3]=buf_sio[6];
 105   1              buf_eeprom[4]=buf_sio[5];
 106   1              buf_eeprom[5]=buf_sio[4];
 107   1              buf_eeprom[6]=buf_sio[3];
 108   1              buf_eeprom[7]=buf_sio[2];
 109   1              if(WriteEEPROM(buf_sio[11],buf_eeprom,buf_sio[10]))
 110   1                      SetSuccessFlag(CMDFAILURE);
 111   1              else
 112   1                      SetSuccessFlag(CMDSUCCESS);
 113   1              SioTransmit();
 114   1      }
 115          
 116          /*
 117          void UploadTV_M200TSatus(void)
C51 COMPILER V7.20   SIO                                                                   11/18/2004 17:33:51 PAGE 3   

 118          {
 119                  if(!ReadTV_M200T(buf_eeprom))
 120                  {
 121                          buf_sio[11]=buf_eeprom[0];
 122                          SioTransmit();
 123                  }
 124                  else
 125                  {
 126                          SetSuccessFlag(CMDFAILURE);
 127                          SioTransmit();
 128                  }
 129          }
 130          */
 131          //-----------SIO Data Deal------------------
 132          
 133          //功能:串口接收数据的处理
 134          //
 135          //
 136          void DealSioData(void)
 137          {
 138   1              unsigned char chksum,i;
 139   1      
 140   1              chksum=0;
 141   1              for(i=SIO_BUF_LEN-2;i>0;i--)
 142   1              {
 143   2                      chksum+=buf_sio[i];
 144   2              }
 145   1              if(chksum)
 146   1              {
 147   2                      SetSuccessFlag(SUMERROR);
 148   2                      SioTransmit();
 149   2                      return;
 150   2              }
 151   1              switch(buf_sio[12])
 152   1              {
 153   2                      case CMDTEST:
 154   2                              SioTransmit();
 155   2                              break;
 156   2                      case CMDVENDOR:
 157   2                              break;
 158   2                      case UPLOADEEPROM:
 159   2                              UploadEeprom(buf_sio[11],buf_sio[10]);
 160   2                              break;
 161   2                      case DOWNLOADEEPROM:
 162   2                              DownloadEeprom();
 163   2                              break;
 164   2                      case READTV_M200T:
 165   2                              //UploadTV_M200TSatus();
 166   2                              break;
 167   2      
 168   2                      case SETTV_M200T:
 169   2                              break;
 170   2                      case SETTVPAL:
 171   2                      /*      for(i=0;i<buf_sio[11];i++)
 172   2                              {
 173   2                                      buf_eeprom[i]=buf_sio[9-i];
 174   2                              }
 175   2                              if(!SetTVPal(buf_sio[10],buf_sio[11],buf_eeprom))
 176   2                              {
 177   2                                      SetSuccessFlag(CMDSUCCESS);
 178   2                                      SioTransmit();
 179   2                              }
C51 COMPILER V7.20   SIO                                                                   11/18/2004 17:33:51 PAGE 4   

 180   2                              else
 181   2                              {
 182   2                                      SetSuccessFlag(CMDFAILURE);
 183   2                                      SioTransmit();
 184   2                              } */
 185   2                              break;
 186   2                      case READTVPAL:
 187   2                              /*if(!ReadTVPal(buf_eeprom,3))
 188   2                              {
 189   2                                      buf_sio[11]=buf_eeprom[0];
 190   2                                      buf_sio[10]=buf_eeprom[1];
 191   2                                      buf_sio[9]=buf_eeprom[2];
 192   2                                      SioTransmit();
 193   2                              }
 194   2                              else
 195   2                              {
 196   2                                      SetSuccessFlag(CMDFAILURE);
 197   2                                      SioTransmit();
 198   2                              }  */
 199   2                              break;
 200   2                      default:
 201   2                              break;
 202   2              }
 203   1      }
C51 COMPILER V7.20   SIO                                                                   11/18/2004 17:33:51 PAGE 5   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P0 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0080H  1
P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
SioTransmit. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
DealSioData. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  chksum . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
_ClearBuffer . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  buf. . . . . . . . . . . . . . . . .  * REG *  DATA   PTR      0001H  3
  num. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
_ReadEEPROM. . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
DownloadEeprom . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
buf_eeprom . . . . . . . . . . . . . .  EXTERN   DATA   ARRAY    -----  8
SBUF . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0099H  1
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
_UploadEeprom. . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  addr . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  num. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
_WriteEEPROM . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
_SetSuccessFlag. . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  cFlagSuccess . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
buf_sio. . . . . . . . . . . . . . . .  EXTERN   DATA   ARRAY    -----  13
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    273    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   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 + -