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

📄 main.lst

📁 /*双龙ISP板*/ //#define SOME_CHIP /*只支持少数几种芯片*/只支持生产所用的芯片
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.09   MAIN                                                                  04/11/2005 16:01:24 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN Main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Main.c OPTIMIZE(6,SPEED) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <REG2051.H>
   2          #include <intrins.H>
   3          
   4          #define SL_BOARD  /*双龙ISP板*/
   5          //#define SOME_CHIP /*只支持少数几种芯片*/
   6          
   7          #ifndef SL_BOARD
                      sbit LED_RED1  = P3^3;
                      sbit LED_RED2  = P3^4;
                      sbit LED_GREEN = P3^5;
              
                      sbit MOSI  = P1^6;
                      sbit MISO  = P1^5;
                      sbit SCK   = P1^7;
                      sbit RESET = P1^4;
              #else
  17                  sbit LED_RED1  = P3^2;
  18                  sbit LED_RED2  = P3^4;
  19                  sbit LED_GREEN = P3^5;
  20          
  21                  sbit MOSI  = P1^2;
  22                  sbit MISO  = P1^3;
  23                  sbit SCK   = P1^4;
  24                  sbit RESET = P3^3;
  25          #endif
  26          
  27          #ifdef SOME_CHIP  /*  只支持生产所用的芯片,避免太多的芯片选择导至出错!!!  */
                      code DeviceType[][2]=
                      {
                      //AT90S8515
                              0x38,0,
                      //ATmega8515
                              0x3A,'P',
                      //ATmega8515 BOOT
                              0x3B,'P',
                      //ATmega8
                              0x76,'P',
                      //ATmega8 BOOT
                              0x77,'P',
                      };
              #else   
  42                  code DeviceType[][2]=
  43                  {
  44                  //AT90S1200 rev. A
  45                          0x10,0,
  46                  //AT90S1200 rev. B      
  47                          0x11,0,
  48                  //AT90S1200 rev. C
  49                          0x12,0,
  50                  //AT90S1200
  51                          0x13,0,
  52                  //AT90S2313
  53                          0x20,0,
  54                  //AT90S4414
  55                          0x28,0,
C51 COMPILER V7.09   MAIN                                                                  04/11/2005 16:01:24 PAGE 2   

  56                  //AT90S4433
  57                          0x30,0,
  58                  //AT90S2333
  59                          0x34,0,
  60                  //AT90S8515
  61                          0x38,0,
  62                  //ATmega8515
  63                          0x3A,'P',
  64                  //ATmega8515 BOOT
  65                          0x3B,'P',
  66                  //ATmega103
  67                          0x41,'P',
  68                  //ATmega603
  69                          0x42,'P',
  70                  //ATmega128
  71                          0x43,'P',
  72                  //ATmega128 BOOT
  73                          0x44,'P',
  74                  //AT90S2323
  75                          0x48,0,
  76                  //AT90S2343
  77                          0x4C,0,
  78                  //ATtiny11
  79                          0x50,0,
  80                  //ATtiny10
  81                          0x51,0,
  82                  //ATtiny12
  83                          0x55,0,
  84                  //ATtiny15
  85                          0x56,0,
  86                  //ATtiny19
  87                          0x58,0,
  88                  //ATtiny28
  89                          0x5C,0,
  90                  //ATtiny26
  91                          0x5E,'P',
  92                  //ATmega161
  93                          0x60,'P',
  94                  //ATmega161 BOOT
  95                          0x61,'P',
  96                  //ATmega163
  97                          0x64,'P',
  98                  //ATmega83
  99                          0x65,'P',
 100                  //ATmega163 BOOT
 101                          0x66,'P',
 102                  //ATmega83 BOOT
 103                          0x67,'P',
 104                  //AT90S8535
 105                          0x68,0,
 106                  //ATmega8535??
 107                          0x6A,'P',
 108                  //ATmega8535 BOOT??
 109                          0x6B,'P',
 110                  //AT90S4434
 111                          0x6C,0,
 112                  //AT90C8534
 113                          0x70,0,
 114                  //AT90C8544
 115                          0x71,0,
 116                  //ATmega32
 117                          0x72,'P',
C51 COMPILER V7.09   MAIN                                                                  04/11/2005 16:01:24 PAGE 3   

 118                  //ATmega32 BOOT
 119                          0x73,'P',
 120                  //ATmega16
 121                          0x74,'P',
 122                  //ATmega16 BOOT
 123                          0x75,'P',
 124                  //ATmega8
 125                          0x76,'P',
 126                  //ATmega8 BOOT
 127                          0x77,'P',
 128                  //AT89C1051
 129                  //      0x80,0
 130                  //AT89C2051
 131                  //      0x81,0
 132                  //AT89S8252
 133                          0x86,0,
 134                  //AT89S53
 135                          0x87,0
 136                  };
 137          #endif
 138          
 139          #define SW_MAJOR '3'            /*Major SW revision number*/
 140          #define SW_MINOR '0'            /*Minor SW revision number*/
 141          #define HW_MAJOR '1'            /*Major HW revision number*/
 142          #define HW_MINOR '0'            /*Minor HW revision number*/
 143          
 144          unsigned char loop,device,pgm_mode;
 145          unsigned char Addr_H,Addr_L ;
 146          unsigned char command;
 147          
 148          
 149          void Delay(unsigned int time)
 150          {
 151   1              while(time) time--;
 152   1      }
 153          
 154          void pulse_sck(void)
 155          {
 156   1              SCK = 1;
 157   1              _nop_();
 158   1              _nop_();
 159   1              _nop_();
 160   1              SCK = 0;
 161   1      }
 162          
 163          void IncAddrAuto()
 164          {
 165   1              Addr_L++;
 166   1      
 167   1              if(Addr_L == 0 )
 168   1                      Addr_H++;
 169   1      }
 170          
 171          void init_serial(void)
 172          {
 173   1           SCON = 0X50;/*Timer 1 is being used to generate baud rates.*/
 174   1           PCON = 0X80 | PCON;
 175   1           TMOD = 0X20;
 176   1           TH1 = 0XFD;
 177   1           TR1 = 1;            /*TCON.6*/
 178   1      //   ES = 1;            /*IE.4      */
 179   1           RI = 0;              /*SCON.0*/
C51 COMPILER V7.09   MAIN                                                                  04/11/2005 16:01:24 PAGE 4   

 180   1      }
 181          
 182          unsigned char getc()
 183          {
 184   1              unsigned char buff;
 185   1      
 186   1              while(RI == 0);
 187   1              buff = SBUF;
 188   1              RI = 0;
 189   1              return buff;
 190   1      }
 191          
 192          void putc(unsigned char ch)
 193          {
 194   1              SBUF = ch ;
 195   1              _nop_();
 196   1              _nop_();
 197   1              while( TI==0 );
 198   1              TI =0;
 199   1      }
 200          
 201          void showID()
 202          {
 203   1              code char ID[]={"AVR ISP"};
 204   1      
 205   1              for(loop=0;loop<sizeof(ID)-1;loop++) //ID-1是不要发串末的0
 206   1                      putc ( ID[loop] );
 207   1      }
 208          
 209          void show_device(void)
 210          {
 211   1              for(    loop=0;
 212   1                              loop< sizeof(DeviceType)/sizeof(DeviceType[0]);
 213   1                              loop++          )
 214   1                      putc ( DeviceType[loop][0] );
 215   1      }
 216          
 217          unsigned char check_device(unsigned char device)
 218          {
 219   1              for(    loop=0;
 220   1                              loop< sizeof(DeviceType)/sizeof(DeviceType[0]);
 221   1                              loop++          )
 222   1              {
 223   2                      if(device == DeviceType[loop][0] )
 224   2                              return DeviceType[loop][1];
 225   2              }
 226   1              return '?';
 227   1      }
 228          
 229          unsigned char wrser(unsigned char dat)
 230          {
 231   1              unsigned char indat = 0;
 232   1              for(loop = 0;loop<8;loop++)
 233   1              {
 234   2                      if( dat & 0x80 )
 235   2                              MOSI = 1;
 236   2                      else
 237   2                              MOSI = 0;
 238   2      
 239   2                      dat <<=1;
 240   2      
 241   2                      indat <<= 1;
C51 COMPILER V7.09   MAIN                                                                  04/11/2005 16:01:24 PAGE 5   

 242   2      
 243   2                      if(MISO)
 244   2                              indat |= 1;
 245   2      
 246   2                      pulse_sck();
 247   2              }
 248   1      
 249   1              return indat;
 250   1      }
 251          
 252          void spiinit()
 253          {
 254   1              unsigned char count;
 255   1      
 256   1              SCK = 0;
 257   1              RESET = 1;

⌨️ 快捷键说明

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