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

📄 function.lst

📁 单片机的下位端
💻 LST
字号:
C51 COMPILER V7.09   FUNCTION                                                              10/12/2006 14:21:46 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE FUNCTION
OBJECT MODULE PLACED IN function.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE function.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "sys.h"
   2          #include "user.h"
   3          
   4          extern data UCHAR *p;
   5          extern code UCHAR handshake[6];
   6          extern data UCHAR UIData[6];
   7          extern UCHAR voltageShow;
   8          bit sendFlag,timerFlag;
   9          UCHAR ampNum;
  10          typedef struct
  11          {       
  12                  signed int d[30];
  13                  UINT front,rear;
  14          }ASEQ;
  15          ASEQ sq;
  16          void UserInit()
  17          {
  18   1              AD7895_CONVST = 0;
  19   1          AD7895_SCLK   = 0;
  20   1              MEASURE_UI    = 0;           //measure i first;
  21   1              AMPGAIN       = 1;              //*1
  22   1              //AD2           = 1;           
  23   1          //AD3           = 1;           //*2
  24   1              sendFlag      = 0;
  25   1              timerFlag     = 0;
  26   1              ampNum        = 1;//2;           //the amplify multiple is 2
  27   1              SEND_RECEIVE  = 0;           //receive status
  28   1              TEST_START    = 0;           
  29   1      }
  30          
  31          void Send(bit flag)
  32          {
  33   1              SEND_RECEIVE  = 1;           //send status
  34   1              EA = 0;
  35   1              SBUF = 0xff;
  36   1              while(TI == 0);
  37   1              TI = 0;
  38   1              SBUF = 0xff;
  39   1              while(TI == 0);
  40   1              TI = 0;       
  41   1              EA = 1;                  
  42   1              if(!flag)          //handshake
  43   1                      p = handshake;
  44   1              else               //transfer the data
  45   1                      p = UIData;
  46   1              TB8 = 1;           //sign address flag
  47   1          SBUF = 0x5a;       //send base's address
  48   1          while(!sendFlag);
  49   1              EA = 0;
  50   1              sendFlag = 0;
  51   1              SBUF = 0xff;
  52   1              while(TI == 0);
  53   1              TI = 0;
  54   1              SEND_RECEIVE = 0;       //receive status
  55   1              EA = 1;
C51 COMPILER V7.09   FUNCTION                                                              10/12/2006 14:21:46 PAGE 2   

  56   1      }
  57          
  58          //the frequency of MCU is 12MHz;
  59          void Delay(UCHAR n)
  60          {
  61   1              UCHAR i;
  62   1              for(i=0;i<n;i++);
  63   1      }
  64          
  65          void GatherUI()                
  66          {
  67   1          typedef union 
  68   1              {
  69   1                      signed int datatmp;
  70   1                      struct{UCHAR hi;UCHAR lo;}bytes;
  71   1              }UNION;
  72   1          UNION newData;
  73   1      //      UCHAR i;
  74   1              ES = 0;
  75   1                   
  76   1              newData.datatmp = MeasureUI();
  77   1              UIData[0] = newData.bytes.hi;
  78   1              UIData[1] = newData.bytes.lo;
  79   1              UIData[2] = ampNum|(voltageShow&0x30);  //添加电池电压信息
  80   1      
  81   1              newData.datatmp = MeasureUI();
  82   1              UIData[3] = newData.bytes.hi;
  83   1              UIData[4] = newData.bytes.lo;
  84   1              UIData[5] = ampNum;
  85   1              ES = 1;
  86   1      }
  87          
  88          signed int MeasureUI(void)
  89          {
  90   1              signed int datatmp1,datatmp2;
  91   1              UCHAR i;
  92   1              datatmp1 = 0;
  93   1              datatmp2 = 0;
  94   1              TH0 = TIMER0/256;
  95   1          TL0 = TIMER0%256;           //timer0 800us;
  96   1              sq.front = sq.rear = 0;
  97   1              TR0 = 1;
  98   1              MEASURE_UI = 1;           //measure u second;
  99   1              AMPGAIN =1; //*1
 100   1              ampNum = 1;//2;
 101   1              timerFlag=0;
 102   1              while(!timerFlag )
 103   1              {
 104   2              //      NOP;
 105   2              }
 106   1              timerFlag = 0;
 107   1              for(i=0;i<15;i++)
 108   1                      datatmp1 += sq.d[i];
 109   1              datatmp1 /= 15;
 110   1              for(i=15;i<30;i++)
 111   1                      datatmp2 += sq.d[i];
 112   1              datatmp2 /= 15;
 113   1              datatmp1 = (datatmp1+datatmp2)/2;
 114   1              return datatmp1;
 115   1      }
 116          
 117          signed int AD7895()
C51 COMPILER V7.09   FUNCTION                                                              10/12/2006 14:21:46 PAGE 3   

 118          {
 119   1          signed int result;
 120   1          UCHAR tmpNum;
 121   1          AD7895_CONVST = 1;
 122   1          Delay(10);             //wake-up time,6us min;
 123   1          AD7895_CONVST = 0;
 124   1              NOP; 
 125   1          while(AD7895_BUSY);
 126   1          for(tmpNum=0;tmpNum<16;tmpNum++)
 127   1          {
 128   2              AD7895_SCLK = 1;
 129   2              result <<= 1;
 130   2              result |= AD7895_DATA;            
 131   2              AD7895_SCLK = 0;
 132   2          }
 133   1          return result;
 134   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    311    ----
   CONSTANT SIZE    =      4    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     65       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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