亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.lst

?? 一個8位單片機的TCPIP處理程序
?? LST
字號:
C51 COMPILER V7.09   MAIN                                                                  07/07/2004 14:57:20 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(9,SPEED) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //---------------------------------------------------------------------------
   2          // Net MAIN.C
   3          //
   4          // 8051 Web Server project
   5          // See Makefile for build notes 
   6          // Written for Keil C51 V5.1 compiler, notes:
   7          //   It uses big endian order, which is the same as the
   8          //   network byte order, unlike x86 systems.
   9          //   Use OPTIMIZE(2)or higher so that automatic variables get shared
  10          //   between functions, to stay within the 256 bytes idata space
  11          //---------------------------------------------------------------------------
  12          
  13          #include <string.h>
  14          #include <stdlib.h>
  15          #include "C8051f.h"
  16          #include "net.h"
  17          #include "eth.h"
  18          #include "serial.h"
  19          #include "timer.h"
  20          #include "analog.h"
  21          #include "arp.h"
  22          #include "tcp.h"
  23          #include "http.h"
  24          #include "ip.h"
  25          
  26          
  27          // Global variables
  28          UINT volatile event_word;
  29          char xdata text[20];  
  30          UCHAR idata debug;
  31          UCHAR idata rcve_buf_allocated;
  32          
  33          
  34          // This sets my hardware address to 00:01:02:03:04:05
  35          UCHAR code my_hwaddr[6] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05}; 
  36          
  37          // Hardware addr to send a broadcast
  38          UCHAR code broadcast_hwaddr[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
  39          
  40          // This sets my IP address to 192.168.0.10
  41          ULONG code  my_ipaddr = 0xC0A8000AL;
  42          
  43          // This sets my subnet mask to 255.255.255.0
  44          ULONG code my_subnet = 0xFFFFFF00L;
  45          
  46          // Set to 0 if no gateway is present on network
  47          ULONG code gateway_ipaddr = 0;
  48          
  49          //--------------------------------------------------------------------------
  50          // Initialize the memory management routines
  51          // Initialize variables declared in main
  52          //--------------------------------------------------------------------------
  53          
  54          unsigned int Count1msInc;
  55          unsigned char Count1ms,Count10ms,Count1s;
C51 COMPILER V7.09   MAIN                                                                  07/07/2004 14:57:20 PAGE 2   

  56          unsigned char TimeSecond,TimeMinute;
  57          
  58          void init_main(void)
  59          {
  60   1              // Start the memory pool for incoming and outgoing Ethernet
  61   1              // frames at 1000, with length = 1500 bytes. Memory below 500
  62   1              // is used for program variables
  63   1              init_mempool((void xdata *)1000, 1500);
  64   1              memset(text, 0, sizeof(text));
  65   1              event_word = 0;
  66   1              rcve_buf_allocated = FALSE;
  67   1              debug = FALSE;
  68   1      }
  69          
  70          void PORT_Init (void)
  71          {
  72   1         XBR0    = 0x07;                     // Enable SMBus, SPI0, and UART0
  73   1         XBR1    = 0x00;
  74   1         XBR2    = 0x44;                     // Enable crossbar and weak pull-ups
  75   1         EMI0TC  = 0x21;
  76   1         P74OUT  = 0xFF;
  77   1         P0MDOUT = 0x15;
  78   1      }
  79          
  80          void SPI0_Init (void)
  81          {
  82   1         SPI0CFG = 0x07;                     // data sampled on 1st SCK rising edge
  83   1                                             // 8-bit data words
  84   1         SPI0CFG|=0xC0;       //CKPOL =1;
  85   1      
  86   1         SPI0CN = 0x03;                      // Master mode; SPI enabled; flags
  87   1                                             // cleared
  88   1         SPI0CKR = SYSCLK/2/8000000-1;       // SPI clock <= 8MHz (limited by 
  89   1                                             // EEPROM spec.)
  90   1      }
  91          
  92          void Timer0_Init (void)
  93          {
  94   1              CKCON|=0x8;
  95   1              TMOD|=0x1;      //16Bit
  96   1              Count10ms=10;
  97   1              Count1s=0;
  98   1              TR0 = 0;                                // STOP Timer0
  99   1              TH0 = (-SYSCLK/1000) >> 8;              // set Timer0 to overflow in 1ms
 100   1              TL0 = -SYSCLK/1000;
 101   1              TR0 = 1;        // START Timer0
 102   1              IE|= 0x2; 
 103   1      }
 104          void SYSCLK_Init (void)
 105          {
 106   1         int i;                              // delay counter
 107   1         OSCXCN = 0x67;                      // start external oscillator with
 108   1                                             // 18.432MHz crystal
 109   1         for (i=0; i < 256; i++) ;           // Wait for osc. to start up
 110   1         while (!(OSCXCN & 0x80)) ;          // Wait for crystal osc. to settle
 111   1         OSCICN = 0x88;                      // select external oscillator as SYSCLK
 112   1                                             // source and enable missing clock
 113   1                                             // detector
 114   1      //      OSCICN = 0x07;   //interal 16MHZ
 115   1      }
 116          void Timer0_ISR (void) interrupt 1  //1ms
 117          {
C51 COMPILER V7.09   MAIN                                                                  07/07/2004 14:57:20 PAGE 3   

 118   1              TH0 = (-SYSCLK/1000) >> 8;  
 119   1              TL0 = -SYSCLK/1000;
 120   1              if (Count1ms) Count1ms--;
 121   1              Count1msInc++;
 122   1              if (Count10ms) Count10ms--;
 123   1              else
 124   1              {
 125   2                      Count10ms=10;                           //10ms
 126   2                      if (Count1s) Count1s--;
 127   2                      else
 128   2                      {
 129   3                              Count1s=100;                    //1s
 130   3                              TimeSecond++;
 131   3                              if (TimeSecond>=60)
 132   3                              {
 133   4                                      TimeSecond=0;           //1min
 134   4                                      TimeMinute++;
 135   4                                      if      (TimeMinute==60)        TimeMinute=0;
 136   4                              }
 137   3                      }
 138   2              }
 139   1      }
 140          
 141          
 142          void Delay1ms(unsigned char T)
 143          {
 144   1              Count1ms=T;
 145   1              while (Count1ms);
 146   1      }
 147          
 148          /*通過SPI發送一字節*/
 149          #define CHIP595_SELECT          P5 &= ~(0x10);                  // P54 
 150          #define CHIP_NOSELECT           P5 |= 0xf8;                     // P53-57 
 151          
 152          void SendSPIByte(unsigned char ch)
 153          {
 154   1                      SPIF = 0;
 155   1                      SPI0DAT = ch;
 156   1                      while (SPIF == 0);       // wait for data transfer to be completed                                      
 157   1      } 
 158          
 159          void LightONOFF(bit b)
 160          {
 161   1              CHIP_NOSELECT;  
 162   1              CHIP595_SELECT;
 163   1              SendSPIByte(0x0);
 164   1              if (b)
 165   1              {
 166   2                      SendSPIByte(0x01);
 167   2              }
 168   1              else
 169   1              {
 170   2                      SendSPIByte(0x00);
 171   2              }
 172   1              CHIP_NOSELECT;  
 173   1      }
 174          
 175          
 176          void main (void)
 177          {
 178   1              UINT j, event_word_copy;
 179   1              UCHAR xdata * inbuf;
C51 COMPILER V7.09   MAIN                                                                  07/07/2004 14:57:20 PAGE 4   

 180   1                              
 181   1              WDTCN = 0xDE;              // Disable watchdog timer
 182   1              WDTCN = 0xAD;
 183   1      
 184   1              EMI0CF =0x24;                                           // share low 4K XRAM
 185   1              SYSCLK_Init ();                     // initialize oscillator
 186   1              Timer0_Init();
 187   1              PORT_Init ();                       // initialize crossbar and GPIO
 188   1              SPI0_Init ();                       // initialize SPI0
 189   1      
 190   1              init_main();
 191   1              init_tcp();
 192   1              init_http();
 193   1      
 194   1              EA=1;
 195   1              init_serial();
 196   1              SendCommString("Init OK\r\n");
 197   1      
 198   1              init_adc();
 199   1              init_timer2();
 200   1              init_arp();
 201   1              init_8019();
 202   1         
 203   1              
 204   1      
 205   1              j = 0;
 206   1              ET2 = 1;                            // Enable timer 2 interrupt
 207   1      
 208   1         // The code below is a priority based RTOS.  The event
 209   1         // handlers are in priority order - highest priority first.
 210   1              while (1)
 211   1         {
 212   2            // Query CS8900A to see if Ethernet frame has arrived
 213   2            // If so, set EVENT_ETH_ARRIVED bit in event_word
 214   2            query_8019();
 215   2            
 216   2            // Use a copy of event word to avoid interference
 217   2            // with interrupts
 218   2                      EA = 0;
 219   2                      event_word_copy = event_word;
 220   2                      EA = 1;
 221   2            
 222   2            // See if an Ethernet frame has arrived      
 223   2            if (event_word_copy & EVENT_ETH_ARRIVED)
 224   2            {
 225   3               EA = 0;
 226   3               event_word &= (~EVENT_ETH_ARRIVED);
 227   3               EA = 1;
 228   3               
 229   3               // Allocate a buffer and read frame from CS8900A
 230   3               inbuf = rcve_frame();
 231   3               if (inbuf != NULL)
 232   3               {
 233   4                  // Process the received Ethernet frame 
 234   4                  eth_rcve(inbuf); 
 235   4               
 236   4                  // If the memory allocated for the rcve message has
 237   4                  // not already been freed then free it now
 238   4                  if (rcve_buf_allocated)
 239   4                  {
 240   5                     free(inbuf);
 241   5                     rcve_buf_allocated = FALSE;
C51 COMPILER V7.09   MAIN                                                                  07/07/2004 14:57:20 PAGE 5   

 242   5                  }
 243   4               }
 244   3            }
 245   2            
 246   2            // See if TCP retransmit timer has expired                       
 247   2            else if (event_word_copy & EVENT_TCP_RETRANSMIT)
 248   2            {
 249   3               EA = 0;
 250   3               event_word &= (~EVENT_TCP_RETRANSMIT);
 251   3               EA = 1;
 252   3               tcp_retransmit();
 253   3                      }
 254   2      
 255   2            // See if TCP inactivity timer has expired
 256   2            else if (event_word_copy & EVENT_TCP_INACTIVITY)
 257   2            {
 258   3               EA = 0;
 259   3               event_word &= (~EVENT_TCP_INACTIVITY);
 260   3               EA = 1;
 261   3               tcp_inactivity();
 262   3                      }
 263   2      
 264   2            // See if ARP retransmit timer has expired
 265   2                      else if (event_word_copy & EVENT_ARP_RETRANSMIT)
 266   2            {
 267   3               EA = 0;
 268   3               event_word &= (~EVENT_ARP_RETRANSMIT);
 269   3               EA = 1;
 270   3               arp_retransmit();
 271   3                      }
 272   2      
 273   2            // See if it is time to age the ARP cache
 274   2            else if (event_word_copy & EVENT_AGE_ARP_CACHE)
 275   2            {
 276   3               EA = 0;
 277   3               event_word &= (~EVENT_AGE_ARP_CACHE);
 278   3                              EA = 1;
 279   3               age_arp_cache();
 280   3                      }
 281   2      
 282   2                      // See if it is time to read the analog inputs
 283   2                      else if (event_word_copy & EVENT_READ_ANALOG)
 284   2            {
 285   3               EA = 0;
 286   3               event_word &= (~EVENT_READ_ANALOG);
 287   3               EA = 1;
 288   3                              // Read one of the 3 analog inputs each time
 289   3                              read_analog_inputs();
 290   3            }
 291   2      
 292   2                      // See if an RS232 message has arrived.  It is
 293   2            // not handled - RS232 is used for sending only
 294   2                      else if (event_word_copy & EVENT_RS232_ARRIVED)
 295   2            {
 296   3               EA = 0;
 297   3               event_word &= (~EVENT_RS232_ARRIVED);
 298   3               EA = 1;
 299   3            }
 300   2         }
 301   1      }
 302          
 303          
C51 COMPILER V7.09   MAIN                                                                  07/07/2004 14:57:20 PAGE 6   



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    463    ----
   CONSTANT SIZE    =     34    ----
   XDATA SIZE       =     20    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      9       6
   IDATA SIZE       =      2    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美视频第二页| 国产精品久久久久久户外露出| 最新日韩av在线| 成年人国产精品| 亚洲人成网站影音先锋播放| 91亚洲精品久久久蜜桃网站| 亚洲天堂精品在线观看| 色综合天天综合给合国产| 精品国产髙清在线看国产毛片| 91老司机福利 在线| 久久九九99视频| 成人黄色小视频| 亚洲人xxxx| 精品视频免费在线| 日韩三级精品电影久久久 | 欧美亚洲综合网| 亚洲在线视频网站| 91精品国产一区二区三区香蕉| 久久99精品国产.久久久久久| 国产91精品在线观看| 国产精品国产三级国产| 在线免费不卡视频| 毛片av一区二区| 日韩一区日韩二区| 91精品国产全国免费观看 | 91精品国产综合久久精品麻豆 | 成人激情文学综合网| 亚洲免费在线观看视频| 欧美一区二区成人6969| 国产成人在线观看| 亚洲国产三级在线| 欧美国产日本视频| 欧美日本一区二区三区| 成人午夜在线播放| 青青草一区二区三区| 中文字幕在线观看不卡| 欧美电影精品一区二区| 97久久精品人人做人人爽50路| 蜜臀va亚洲va欧美va天堂| 国产精品的网站| 精品国产麻豆免费人成网站| 欧美在线一二三四区| 国产成人免费av在线| 日韩精品色哟哟| 成人免费在线播放视频| 精品国产一区久久| 欧美日韩久久久| 波多野结衣一区二区三区| 六月丁香综合在线视频| 亚洲va国产天堂va久久en| 国产精品久久久久久久久免费丝袜 | 色婷婷综合中文久久一本| 国产揄拍国内精品对白| 日韩和欧美一区二区三区| 国产精品国产三级国产aⅴ原创| 精品少妇一区二区| 欧美精品丝袜中出| 欧美日韩一区在线观看| 99久久久久免费精品国产| 国产mv日韩mv欧美| 国产精品99久久久久| 激情久久五月天| 免费观看30秒视频久久| 亚洲一区在线观看免费观看电影高清 | www.欧美日韩| 粉嫩av亚洲一区二区图片| 国产精品自拍毛片| 久久99国产精品麻豆| 亚洲福利视频三区| 午夜亚洲国产au精品一区二区| 亚洲精品亚洲人成人网在线播放| 国产精品看片你懂得| 中日韩免费视频中文字幕| 国产欧美日韩视频在线观看| 久久久一区二区| 久久男人中文字幕资源站| 久久免费精品国产久精品久久久久| 欧美一区二区三区男人的天堂| 欧美日韩在线三区| 欧美在线视频不卡| 欧美最猛黑人xxxxx猛交| 日本伦理一区二区| 欧美日韩另类国产亚洲欧美一级| 欧美午夜精品电影| 欧美人体做爰大胆视频| 欧美精三区欧美精三区| 日韩丝袜情趣美女图片| 欧美一卡2卡3卡4卡| 精品国产乱码91久久久久久网站| 欧美大胆人体bbbb| 精品sm在线观看| 久久久久久久久免费| 久久精品人人做人人综合| 久久精品视频在线看| 中文字幕欧美一区| 一卡二卡三卡日韩欧美| 亚洲制服丝袜一区| 婷婷国产v国产偷v亚洲高清| 日韩成人午夜电影| 日本精品一区二区三区四区的功能| 波多野洁衣一区| 欧美亚洲综合网| 日韩免费观看高清完整版在线观看| 欧美精品一区二| 中文av字幕一区| 亚洲成人资源在线| 国产麻豆精品久久一二三| 99精品在线观看视频| 欧美男人的天堂一二区| 久久久久久97三级| 亚洲精品网站在线观看| 日韩不卡一区二区| 国产iv一区二区三区| 欧美怡红院视频| 久久这里只有精品6| 亚洲免费av网站| 麻豆91精品视频| av成人免费在线观看| 91精品久久久久久久99蜜桃 | 国产呦萝稀缺另类资源| 91亚洲精品乱码久久久久久蜜桃| 日韩一区二区三区在线观看| 国产欧美一二三区| 日韩精品五月天| 97成人超碰视| 亚洲精品一区二区三区在线观看| 成人欧美一区二区三区1314| 免费观看一级特黄欧美大片| 91色porny在线视频| 精品毛片乱码1区2区3区| 亚洲你懂的在线视频| 国内成+人亚洲+欧美+综合在线| 91啪亚洲精品| 国产人久久人人人人爽| 日日摸夜夜添夜夜添亚洲女人| 成人黄色在线网站| 久久女同互慰一区二区三区| 亚洲成人资源网| 91麻豆国产在线观看| 国产欧美精品一区二区色综合| 天天操天天干天天综合网| 日韩欧美国产系列| 亚洲国产一区二区在线播放| 成人永久免费视频| 日韩精品一区二区三区视频在线观看| 亚洲激情在线播放| 成人黄色av电影| 久久久久久久久久久99999| 日韩和欧美一区二区| 欧美日韩一区二区三区四区| 中文字幕中文字幕一区| 国产精品一区二区不卡| 欧美大片国产精品| 免费精品视频在线| 欧美日韩精品高清| 亚洲综合色婷婷| 日本久久精品电影| 一区二区三区在线看| 成人黄色免费短视频| 国产精品污www在线观看| 国产成人免费视频| 久久这里只精品最新地址| 精品一区二区三区免费毛片爱| 在线播放国产精品二区一二区四区| 亚洲精品中文字幕在线观看| 91麻豆自制传媒国产之光| 综合在线观看色| 色香色香欲天天天影视综合网| 亚洲视频狠狠干| 91免费观看视频| 亚洲精品自拍动漫在线| 91福利在线免费观看| 一区二区三区欧美在线观看| 欧美亚洲国产一区二区三区 | 欧美日韩一区二区三区在线看| 亚洲夂夂婷婷色拍ww47 | 日本色综合中文字幕| 欧美一区二区三区视频免费播放| 五月婷婷久久丁香| 日韩精品一区二区三区视频播放| 成人在线视频一区二区| 国产欧美一区视频| 成人av午夜电影| 亚洲激情在线播放| 欧美一区二区三区日韩视频| 久久国产精品99精品国产 | 成人精品视频网站| 亚洲色图一区二区三区| 欧美三级三级三级| 五月天中文字幕一区二区| 日韩欧美中文一区| 大桥未久av一区二区三区中文| 国产精品激情偷乱一区二区∴| 欧美自拍偷拍午夜视频| 免费欧美日韩国产三级电影| 久久久影院官网| 91老司机福利 在线| 免费在线观看精品| 国产精品沙发午睡系列990531| 91麻豆123|