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

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

?? main.lst

?? 基于單片機C8051F020與以太網進行通信程序
?? LST
字號:
C51 COMPILER V7.05   MAIN                                                                  10/22/2008 23:56:44 PAGE 1   


C51 COMPILER V7.05, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN Main.OBJ
COMPILER INVOKED BY: C:\SiLabs\MCU\IDEfiles\C51\BIN\C51.exe Main.c DB OE

stmt level    source

   1          //---------------------------------------------------------------------------
   2          // Copyright (c) 2002 Jim Brady
   3          // Do not use commercially without author's permission
   4          // Last revised August 2002
   5          // Net MAIN.C
   6          //
   7          // 8051 Web Server project
   8          // See Makefile for build notes 
   9          // Written for Keil C51 V5.1 compiler, notes:
  10          //   It uses big endian order, which is the same as the
  11          //   network byte order, unlike x86 systems.
  12          //   Use OPTIMIZE(2)or higher so that automatic variables get shared
  13          //   between functions, to stay within the 256 bytes idata space
  14          //   它使用大的 endian 命令, 是相同於那網絡字節命令,不像 x86 系統。
  15          //   使用最佳化 (2) 或更高地所以 自動變量 在功能之間分享,
  16          //   停留在 256 個字節 idata 空間里面
  17          //---------------------------------------------------------------------------
  18          
  19          #include <string.h>
  20          #include <stdlib.h>
  21          #include "C8051f.h"
  22          #include "net.h"
  23          #include "eth.h"
  24          #include "serial.h"
  25          #include "timer.h"
  26          #include "analog.h"
  27          #include "arp.h"
  28          #include "tcp.h"
  29          #include "http.h"
  30          #include "ip.h"
  31          
  32          sbit LED     = P2^0;
  33          
  34          // Global variables
  35          UINT volatile event_word;
  36          char xdata text[20];  
  37          UCHAR idata debug;
  38          UCHAR idata rcve_buf_allocated;
  39          
  40          
  41          // This sets my hardware address to 00:01:02:03:04:05
  42          UCHAR code my_hwaddr[6] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05}; 
  43          
  44          // Hardware addr to send a broadcast
  45          UCHAR code broadcast_hwaddr[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
  46          
  47          // This sets my IP address to 192.168.0.10
  48          ULONG code  my_ipaddr = 0xC0A85B10L;
  49          
  50          // This sets my subnet mask to 255.255.255.0
  51          ULONG code my_subnet = 0xFFFFFF00L;
  52          
  53          // Set to 0 if no gateway is present on network
  54          ULONG code gateway_ipaddr = 0;
  55          
C51 COMPILER V7.05   MAIN                                                                  10/22/2008 23:56:44 PAGE 2   

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

 118   1         OSCICN = 0x88;                      // select external oscillator as SYSCLK
 119   1                                             // source and enable missing clock
 120   1                                             // detector
 121   1      //      OSCICN = 0x07;   //interal 16MHZ
 122   1      }
 123          void Timer0_ISR (void) interrupt 1  //1ms
 124          {
 125   1              TH0 = (-SYSCLK/1000) >> 8;  
 126   1              TL0 = -SYSCLK/1000;
 127   1              if (Count1ms) Count1ms--;
 128   1              Count1msInc++;
 129   1              if (Count10ms) Count10ms--;
 130   1              else
 131   1              {
 132   2                      Count10ms=10;                           //10ms
 133   2                      if (Count1s) Count1s--;
 134   2                      else
 135   2                      {
 136   3                              Count1s=100;                    //1s
 137   3                              TimeSecond++;
 138   3                              if (TimeSecond>=60)
 139   3                              {
 140   4                                      TimeSecond=0;           //1min
 141   4                                      TimeMinute++;
 142   4                                      if      (TimeMinute==60)        TimeMinute=0;
 143   4                              }
 144   3                      }
 145   2              }
 146   1      }
 147          
 148          
 149          void Delay1ms(unsigned char T)
 150          {
 151   1              Count1ms=T;
 152   1              while (Count1ms);
 153   1      }
 154          
 155          /*通過SPI發送一字節*/
 156          #define CHIP595_SELECT          P5 &= ~(0x10);                  // P54 
 157          #define CHIP_NOSELECT           P5 |= 0xf8;                     // P53-57 
 158          
 159          void SendSPIByte(unsigned char ch)
 160          {
 161   1                      SPIF = 0;
 162   1                      SPI0DAT = ch;
 163   1                      while (SPIF == 0);       // wait for data transfer to be completed                                      
 164   1      } 
 165          
 166          void LightONOFF(bit b)
 167          {
 168   1       //     CHIP_NOSELECT;  
 169   1      //      CHIP595_SELECT;
 170   1      //      SendSPIByte(0x0);
 171   1              if (b)
 172   1              {
 173   2              //      SendSPIByte(0x01);
 174   2              LED=0;
 175   2              }
 176   1              else
 177   1              {
 178   2              //      SendSPIByte(0x00);
 179   2              LED=1;
C51 COMPILER V7.05   MAIN                                                                  10/22/2008 23:56:44 PAGE 4   

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

 242   3               if (inbuf != NULL)
 243   3               {
 244   4                  // Process the received Ethernet frame 
 245   4                  eth_rcve(inbuf); 
 246   4               
 247   4                  // If the memory allocated for the rcve message has
 248   4                  // not already been freed then free it now
 249   4                  if (rcve_buf_allocated)
 250   4                  {
 251   5                     free(inbuf);
 252   5                     rcve_buf_allocated = FALSE;
 253   5                  }
 254   4               }
 255   3            }
 256   2            
 257   2            // See if TCP retransmit timer has expired                       
 258   2            else if (event_word_copy & EVENT_TCP_RETRANSMIT)
 259   2            {
 260   3               EA = 0;
 261   3               event_word &= (~EVENT_TCP_RETRANSMIT);
 262   3               EA = 1;
 263   3               tcp_retransmit();
 264   3                      }
 265   2      
 266   2            // See if TCP inactivity timer has expired
 267   2            else if (event_word_copy & EVENT_TCP_INACTIVITY)
 268   2            {
 269   3               EA = 0;
 270   3               event_word &= (~EVENT_TCP_INACTIVITY);
 271   3               EA = 1;
 272   3               tcp_inactivity();
 273   3                      }
 274   2      
 275   2            // See if ARP retransmit timer has expired
 276   2                      else if (event_word_copy & EVENT_ARP_RETRANSMIT)
 277   2            {
 278   3               EA = 0;
 279   3               event_word &= (~EVENT_ARP_RETRANSMIT);
 280   3               EA = 1;
 281   3               arp_retransmit();
 282   3                      }
 283   2      
 284   2            // See if it is time to age the ARP cache
 285   2            else if (event_word_copy & EVENT_AGE_ARP_CACHE)
 286   2            {
 287   3               EA = 0;
 288   3               event_word &= (~EVENT_AGE_ARP_CACHE);
 289   3                              EA = 1;
 290   3               age_arp_cache();
 291   3                      }
 292   2      
 293   2                      // See if it is time to read the analog inputs
 294   2                      else if (event_word_copy & EVENT_READ_ANALOG)
 295   2            {
 296   3               EA = 0;
 297   3               event_word &= (~EVENT_READ_ANALOG);
 298   3               EA = 1;
 299   3                              // Read one of the 3 analog inputs each time
 300   3                              read_analog_inputs();
 301   3            }
 302   2      
 303   2                      // See if an RS232 message has arrived.  It is
C51 COMPILER V7.05   MAIN                                                                  10/22/2008 23:56:44 PAGE 6   

 304   2            // not handled - RS232 is used for sending only
 305   2                      else if (event_word_copy & EVENT_RS232_ARRIVED)
 306   2            {
 307   3               EA = 0;
 308   3               event_word &= (~EVENT_RS232_ARRIVED);
 309   3               EA = 1;
 310   3            }
 311   2         }
 312   1      }
 313          
 314          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    446    ----
   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一区二区三区免费野_久草精品视频
亚洲主播在线播放| 国产精品久线观看视频| 99久久99久久精品免费看蜜桃| 日精品一区二区三区| 一区二区久久久| 亚洲午夜激情网页| 午夜成人免费视频| 日本美女一区二区三区| 日韩中文字幕区一区有砖一区| 日韩成人免费电影| 蜜臂av日日欢夜夜爽一区| 日本少妇一区二区| 激情综合一区二区三区| 国产精品2024| 91精品1区2区| 欧美日韩国产一区二区三区地区| 777xxx欧美| 久久精品亚洲精品国产欧美 | 日韩理论片在线| 亚洲激情成人在线| 日韩专区中文字幕一区二区| 久久99久久久久久久久久久| 国产一区二区三区免费播放| 成人激情av网| 欧美色大人视频| 精品日韩一区二区| 国产精品素人一区二区| 亚洲18影院在线观看| 久久99蜜桃精品| 91首页免费视频| 777午夜精品视频在线播放| 2023国产一二三区日本精品2022| 亚洲国产精品黑人久久久| 亚洲综合色视频| 韩国成人福利片在线播放| 99久久精品一区| 日韩一级片在线观看| 国产精品免费aⅴ片在线观看| 亚洲最新视频在线观看| 韩国成人在线视频| 欧美性做爰猛烈叫床潮| 国产欧美日本一区视频| 午夜精品久久久久久不卡8050| 国产麻豆视频一区二区| 欧美日本免费一区二区三区| 国产精品麻豆久久久| 免费黄网站欧美| 在线亚洲一区二区| 中文字幕av一区二区三区高| 美女视频一区二区| 日本韩国视频一区二区| 中文字幕乱码一区二区免费| 蜜臀久久99精品久久久久宅男| 91成人看片片| 国产精品欧美综合在线| 国产乱码精品一区二区三区忘忧草| 欧美在线免费播放| 亚洲女人的天堂| 国产超碰在线一区| 26uuu亚洲| 久久av资源网| 欧美xxxx在线观看| 日本网站在线观看一区二区三区 | 肉丝袜脚交视频一区二区| 91在线视频在线| 国产精品久久久久久久久动漫 | 欧美一区二区免费观在线| 亚洲欧美日韩在线播放| 成人性生交大片免费看视频在线 | 国产精品灌醉下药二区| 国产伦精品一区二区三区免费| 日韩欧美综合一区| 日本在线播放一区二区三区| 欧美日韩久久不卡| 日韩在线观看一区二区| 欧美精品久久99久久在免费线| 亚洲一区二区三区自拍| 欧美影视一区在线| 亚洲18色成人| 日韩欧美综合一区| 久久99精品国产麻豆婷婷| 欧美成人精品3d动漫h| 国产一区二区网址| 国产精品久久久久aaaa| 99久久国产综合精品色伊| 亚洲美腿欧美偷拍| 欧美日韩一区小说| 亚洲成人动漫在线免费观看| 777xxx欧美| 国产一区二区中文字幕| 中文字幕一区二区在线播放| 91网页版在线| 丝瓜av网站精品一区二区| 欧美一级理论片| 国产99久久久精品| 一区二区在线观看视频| 欧美日本精品一区二区三区| 久久电影网电视剧免费观看| 中文一区二区完整视频在线观看 | 五月激情丁香一区二区三区| 欧美一区二区观看视频| 国产精品夜夜嗨| 国产精品成人免费在线| 欧美日韩小视频| 国产sm精品调教视频网站| 一级日本不卡的影视| 91精品国产综合久久蜜臀| 国产a视频精品免费观看| 亚洲一区二区五区| 国产日韩一级二级三级| 欧美日韩国产综合久久| 国产成人精品免费看| 亚洲成人动漫在线观看| 久久久久国产精品人| 欧美三级日韩三级国产三级| 国产成人精品免费一区二区| 亚洲成人综合网站| 中文字幕一区二区5566日韩| 91麻豆精品国产| 不卡的av在线播放| 久久se这里有精品| 亚洲国产一区二区三区| 国产欧美日韩卡一| 精品久久久久一区二区国产| 色94色欧美sute亚洲线路一久| 国产伦精品一区二区三区视频青涩 | 欧美日韩精品一区二区在线播放| 国产福利视频一区二区三区| 午夜不卡av免费| 一区二区三区不卡在线观看| 国产偷v国产偷v亚洲高清| 欧美日韩dvd在线观看| 91一区二区在线| 高清在线观看日韩| 国产在线国偷精品免费看| 欧美aaaaaa午夜精品| 亚洲高清免费观看| 亚洲高清视频的网址| 中文字幕字幕中文在线中不卡视频| 精品国产乱码久久久久久蜜臀| 欧美三级午夜理伦三级中视频| 91蜜桃网址入口| 成人深夜福利app| 大尺度一区二区| 国产成人免费在线观看| 国产酒店精品激情| 韩国三级中文字幕hd久久精品| 蜜桃av一区二区三区电影| 日本欧美肥老太交大片| 日韩国产在线观看一区| 香蕉成人啪国产精品视频综合网| 亚洲午夜激情av| 首页欧美精品中文字幕| 天天做天天摸天天爽国产一区| 亚洲激情图片小说视频| 亚洲一区二区精品3399| 亚洲电影一区二区三区| 午夜av一区二区三区| 性做久久久久久| 麻豆久久久久久| 国产高清不卡一区二区| www.久久精品| 在线观看日韩国产| 欧美一卡2卡三卡4卡5免费| 日韩丝袜美女视频| 国产欧美一区二区精品久导航 | 国产日韩精品视频一区| 中文字幕电影一区| 亚洲精品免费在线播放| 亚洲午夜国产一区99re久久| 日本中文字幕一区二区有限公司| 视频在线观看91| 国产精品原创巨作av| eeuss鲁一区二区三区| 在线观看网站黄不卡| 欧美一区二区三区四区五区| 久久中文字幕电影| 亚洲另类在线一区| 免费看日韩精品| 成人动漫在线一区| 欧美人狂配大交3d怪物一区| 久久美女艺术照精彩视频福利播放 | 欧美欧美欧美欧美| 久久色.com| 亚洲午夜久久久| 精品一区二区三区视频在线观看| 成人性生交大合| 777亚洲妇女| 中文字幕一区不卡| 久久99久久久欧美国产| 成人免费黄色大片| 3d动漫精品啪啪一区二区竹菊| 国产欧美日本一区视频| 视频精品一区二区| 色一区在线观看| 久久久久久亚洲综合| 午夜欧美电影在线观看| 99久久夜色精品国产网站| 欧美一级日韩一级| 一区二区视频在线|