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

📄 main.lst

📁 C8051F020的全面应用,包括两个UART口、SPI、I2C
💻 LST
字号:
C51 COMPILER V7.10   MAIN                                                                  06/04/2006 14:49:16 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*      This program is used for Signalmachine.
   2                  Copyright by Wangr
   3                  2006-05-27
   4                  LOG:
   5                  2006-05-27: C8051F020 configured
   6                  */
   7          #include <intrins.h>
   8          #include <absacc.h>
   9          #include <math.h>
  10          #include <string.h>
  11          #include <config.c>
  12          #include <maindef.h>
  13          #include <Flash.c>
  14          #include <ram.c>
  15          #include <calender.c>
  16          
  17          /******* parameter declare *********/
  18          /*******                  *********/
  19          uchar xdata Com0RecBuf[RecBufLen], Com1RecBuf[RecBufLen],Com0SendBuf[SendBufLen], Com1SendBuf[SendBufLen];
  20          uchar xdata Com0RecBufIdx, Com1RecBufIdx;
  21          bit Com0SaveEn, Com1SaveEn, Com0RecComplete, Com1RecComplete;
  22          
  23          //extern FlashBuf[FlashBufLen];
  24          
  25          
  26          /******* function declare *********/
  27          /*******                  *********/
  28          void config (void);
  29          void McuInit (void);
  30          
  31          void delayus(uchar delayvalue);
  32          
  33          void FlashWE(void) ;/*Write Enable (WREN) Instruction*/
  34          void FlashWD(void);/*Write Disable (WRDI) Instruction*/
  35          uchar FlashRDSR(void)  ;/*Read Status Register (RDSR) Instruction*/
  36                                                          /*Status Register :bit7-2 non-used; bit1 WEL(write enable latch); bit0 WIP(write in progress)*/
  37          void FlashRDB(uint PageAdr, uchar Colum, uchar length);/*Read Data Bytes (READ)*/
  38          void FlashReadFast(uint PageAdr, uchar Colum, uchar length)     ;/*Read Data Bytes at Higher Speed (FAST_READ)
             -*/
  39          void FlashPW(uint PageAdr, uchar Colum, uchar length);/*Page Write (PW)*/
  40          void FlashPE(uint PageAdr, uchar Colum) ;/*Page Erase (PE)*/ 
  41          void FlashSE(uint PageAdr, uchar Colum) ;/*Sector Erase (SE)*/
  42          
  43          void RamByteWR(uchar RowAdr, uchar ColumnAdr, uchar ramdata);/*write 1 byte to RAM*/
  44          uchar RamByteRD(uchar RowAdr, uchar ColumnAdr);/*read 1 byte from RAM*/
  45          
  46          /*******  main function   *********/
  47          /*******                  *********/
  48          void main()
  49          {
  50   1              config();
  51   1              McuInit();
  52   1      
  53   1              /*read info from flash*/
  54   1              _nop_();
C51 COMPILER V7.10   MAIN                                                                  06/04/2006 14:49:16 PAGE 2   

  55   1      }
  56          
  57          /*******  function body   *********/
  58          /*******                  *********/
  59          void McuInit (void)
  60          {
  61   1              /*Timer2 for UART0; Timer4 for UART1; Timer3 for 1 second control
  62   1              SPI for FLASH; I2C for calender IC*/
  63   1              
  64   1              /*****  UART *****/
  65   1              Com0RecBufIdx = 0;
  66   1              Com1RecBufIdx = 0;
  67   1              Com0SaveEn = 0;
  68   1              Com1SaveEn = 0;
  69   1              Com0RecComplete = 0;
  70   1              Com1RecComplete = 0;
  71   1              
  72   1              /* FLASH */
  73   1              FlashCS = 1;
  74   1              
  75   1              /*I2C master mode*/
  76   1              i2c_init();
  77   1      }
  78          
  79          /* delay function ; us unit for 22.1184 MHz*/
  80          void delayus(uchar delayvalue)
  81          {
  82   1              uchar idata i;
  83   1              for(i=0;i<delayvalue;i++)
  84   1              {
  85   2                      _nop_();
  86   2                      _nop_();
  87   2                      _nop_();
  88   2                      _nop_();
  89   2                      _nop_();
  90   2                      _nop_();
  91   2                      _nop_();
  92   2                      _nop_();
  93   2                      _nop_();
  94   2                      _nop_();
  95   2                      _nop_();
  96   2                      _nop_();
  97   2                      _nop_();
  98   2                      _nop_();
  99   2                      _nop_();
 100   2                      _nop_();
 101   2                      _nop_();
 102   2                      _nop_();
 103   2                      _nop_();
 104   2                      _nop_();
 105   2                      _nop_();
 106   2                      _nop_();
 107   2              }
 108   1      }
 109          
 110          /**** timer3 for 1 second control ****/
 111          void timer3_int(void) interrupt 14 using 0
 112          {
 113   1              TMR3CN &= 0x7F;
 114   1      }
 115          
 116          
C51 COMPILER V7.10   MAIN                                                                  06/04/2006 14:49:16 PAGE 3   

 117          void serial0_int(void) interrupt 4 using 1
 118          {
 119   1              if(RI0)
 120   1          {
 121   2              RI0 = 0;
 122   2                      if(Com0SaveEn)
 123   2                      {
 124   3                              Com0RecBuf[Com0RecBufIdx++] = SBUF0;    
 125   3                              if(Com0RecBufIdx==RecBufLen)
 126   3                                      {
 127   4                                              Com0SaveEn = 0;
 128   4                                              Com0RecComplete = 1;
 129   4                                      }       
 130   3                      }
 131   2                      else
 132   2                      {
 133   3                              Com0RecBuf[0] = Com0RecBuf[1];
 134   3                              Com0RecBuf[1] = SBUF0;
 135   3                              if(Com0RecBuf[0]==0xEB&&Com0RecBuf[1]==0x90)
 136   3                                      {
 137   4                                              Com0SaveEn = 1;
 138   4                                              Com0RecBufIdx = 2;
 139   4                                      }
 140   3                      }
 141   2          }
 142   1          if(TI0)
 143   1          {
 144   2              TI0=0;
 145   2      /*              if (PacketIdx < TxPacketLen)    // Downlink Packet is unique to 32 Bytes.
 146   2                      {
 147   2                              IsTxBusy = TRUE;
 148   2                              SBUF = *(BYTE *)(pTX_Buf + PacketIdx);
 149   2                              PacketIdx ++;
 150   2                      }
 151   2                      else
 152   2                      {
 153   2                              IsTxBusy = FALSE;
 154   2                              SBUF0 = 0x55;
 155   2                      }*/
 156   2          }
 157   1      }
 158          
 159          void serial1_int(void) interrupt 20 using 2
 160          {
 161   1              if((SCON1&0x01)==1)
 162   1          {
 163   2              SCON1 &= 0xFE;
 164   2                      if(Com1SaveEn)
 165   2                      {
 166   3                              Com1RecBuf[Com1RecBufIdx++] = SBUF1;    
 167   3                              if(Com1RecBufIdx==RecBufLen)
 168   3                                      {
 169   4                                              Com1SaveEn = 0;
 170   4                                              Com1RecComplete = 1;
 171   4                                      }       
 172   3                      }
 173   2                      else
 174   2                      {
 175   3                              Com1RecBuf[0] = Com1RecBuf[1];
 176   3                              Com1RecBuf[1] = SBUF1;
 177   3                              if(Com1RecBuf[0]==0xEB&&Com1RecBuf[1]==0x90)
 178   3                                      {
C51 COMPILER V7.10   MAIN                                                                  06/04/2006 14:49:16 PAGE 4   

 179   4                                              Com1SaveEn = 1;
 180   4                                              Com1RecBufIdx = 2;
 181   4                                      }
 182   3                      }
 183   2          }
 184   1          if((SCON1&0x02)==1)
 185   1          {
 186   2              SCON1 &= 0xFD;
 187   2      /*              if (PacketIdx < TxPacketLen)    // Downlink Packet is unique to 32 Bytes.
 188   2                      {
 189   2                              IsTxBusy = TRUE;
 190   2                              SBUF = *(BYTE *)(pTX_Buf + PacketIdx);
 191   2                              PacketIdx ++;
 192   2                      }
 193   2                      else
 194   2                      {
 195   2                              IsTxBusy = FALSE;
 196   2                              SBUF1 = 0x55;
 197   2                      }*/
 198   2          }
 199   1      }
 200          
 201          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1291    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    386    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      12
   IDATA SIZE       =   ----      12
   BIT SIZE         =      6       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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