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

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

?? eth.lst

?? 基于單片機C8051F020與以太網進行通信程序
?? LST
?? 第 1 頁 / 共 2 頁
字號:
C51 COMPILER V7.06   ETH                                                                   07/29/2006 13:15:57 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE ETH
OBJECT MODULE PLACED IN Eth.OBJ
COMPILER INVOKED BY: c:\KEIL\C51\BIN\C51.exe Eth.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 ETH.C
   6          //
   7          // This module is the Ethernet layer
   8          //-----------------------------------------------------------------------------
   9          #include <string.h>
  10          #include <stdlib.h>
  11          #include "C8051f.h"
  12          #include "net.h"
  13          #include "serial.h"
  14          #include "arp.h"
  15          #include "ip.h"
  16          #include "eth.h"
  17          
  18          
  19          #define reg00   XBYTE[0x8000]   //reg00- 10為isa網卡接口的寄存器地址300-310;
  20          #define reg01   XBYTE[0x8001]
  21          #define reg02   XBYTE[0x8002]
  22          #define reg03   XBYTE[0x8003]
  23          #define reg04   XBYTE[0x8004]
  24          #define reg05   XBYTE[0x8005]
  25          #define reg06   XBYTE[0x8006]
  26          #define reg07   XBYTE[0x8007]
  27          #define reg08   XBYTE[0x8008]
  28          #define reg09   XBYTE[0x8009]
  29          #define reg0a   XBYTE[0x800a]
  30          #define reg0b   XBYTE[0x800b]
  31          #define reg0c   XBYTE[0x800c]
  32          #define reg0d   XBYTE[0x800d]
  33          #define reg0e   XBYTE[0x800e]
  34          #define reg0f   XBYTE[0x800f]
  35          #define reg10   XBYTE[0x8010]
  36          
  37          bit txd_buffer_select=0;                //選擇網卡的發送緩沖區  
  38          extern UCHAR idata debug;
  39          extern UCHAR xdata arpbuf[];
  40          extern UCHAR code my_hwaddr[]; 
  41          
  42          void Delay1ms(unsigned char T);
  43          
  44          extern UCHAR idata rcve_buf_allocated;
  45          extern UINT volatile event_word;
  46          
  47          
  48          
  49          #define Rtl8019ResetLow         P5 &= ~(0x4);   // P52 
  50          #define Rtl8019ResetHigh        P5 |= 0x4;              // P52
  51          
  52          //------------------------------------------------------------------------
  53          // Initialize the Cirrus Logic 8019 chip
  54          //------------------------------------------------------------------------
  55          
C51 COMPILER V7.06   ETH                                                                   07/29/2006 13:15:57 PAGE 2   

  56          void page(unsigned char pagenumber)
  57          {
  58   1              unsigned char data temp;
  59   1              temp=reg00;             
  60   1              temp=temp&0x3B ;
  61   1              pagenumber=pagenumber <<6;
  62   1              temp=temp | pagenumber;
  63   1              reg00=temp;
  64   1      }
  65          
  66          void Rtl8019AS_Reset() //復位網卡
  67          {
  68   1              Rtl8019ResetHigh;;      
  69   1              Delay1ms(200);
  70   1              Rtl8019ResetLow;
  71   1              Delay1ms(200);
  72   1      }
  73          
  74          void ReadRtl8019NodeID(void)//讀出網卡的物理地址存到my_ethernet_address.bytes[6]里  
  75          {
  76   1              unsigned char data i;
  77   1              page(0);
  78   1              reg09=0;        //讀取網卡的ram的地址為0x0000 
  79   1              reg08=0;
  80   1              reg0b=0;
  81   1              reg0a=12;       //讀取12個字節
  82   1              reg00=0x0a;     //讀ram
  83   1              for (i=0;i<6;i++)
  84   1              { 
  85   2      //      my_hwaddr[i]=reg10;
  86   2      //      my_hwaddr[i]=reg10;
  87   2              }
  88   1      }
  89          
  90          void WriteRtl8019NodeID()
  91          {
  92   1              page(1);
  93   1              reg01=my_hwaddr[0];
  94   1              reg02=my_hwaddr[1];
  95   1              reg03=my_hwaddr[2];
  96   1              reg04=my_hwaddr[3];
  97   1              reg05=my_hwaddr[4];
  98   1              reg06=my_hwaddr[5];
  99   1              page(0);
 100   1      }
 101          
 102          void init_8019(void)
 103          {
 104   1              Delay1ms(10);
 105   1              Rtl8019AS_Reset();              //復位8019
 106   1              R8019_CHIP_SELECT;
 107   1              reg00=0x21;                             //使芯片處于停止模式,這時進行寄存器設置 停止模式下,將不會發送和接收數據包
 108   1              Delay1ms(10);                   //延時10毫秒,確保芯片進入停止模式
 109   1              page(0);
 110   1              reg0a=0x00;     reg0b=0x00;
 111   1              reg0c= 0xe0;                    //monitor mode (no packet receive)
 112   1              reg0d= 0xe2;                    //loop back mode 使芯片處于mon和loopback模式,跟外部網絡斷開  
 113   1              reg01=0x4c;     reg02=0x80;     reg03=0x4c;     reg04=0x40;
 114   1              reg07=0xff;                             //清除所有中斷標志位
 115   1              reg0f=0x00;                             //disable all interrupt
 116   1              reg0e=0xc8;                             //byte dma 8位dma方式
 117   1              page(1);
C51 COMPILER V7.06   ETH                                                                   07/29/2006 13:15:57 PAGE 3   

 118   1              reg07=0x4d;     reg08=0x00;     reg09=0x00;     reg0a=0x00;     reg0b=0x00;     
 119   1              reg0c=0x00;     reg0d=0x00;     reg0e=0x00;     reg0f=0x00;
 120   1              reg00=0x22;                             //這時讓芯片開始工作
 121   1              ReadRtl8019NodeID();    //讀出網卡的物理地址48位  
 122   1              WriteRtl8019NodeID();   //將網卡地址寫入到mar寄存器  
 123   1              page(0);
 124   1              reg0c=0xcc;                             //將網卡設置成正常的模式,跟外部網絡連接
 125   1              reg0d=0xe0;
 126   1              reg00=0x22;                             //這時讓芯片開始工作
 127   1              reg07=0xff;                             //清除所有中斷標志位
 128   1      }
 129          
 130          //------------------------------------------------------------------------
 131          // This functions checks 8019 status then sends an ethernet
 132          // frame to it by calling an assembler function. 
 133          //------------------------------------------------------------------------
 134          
 135          void send_frame(UCHAR xdata * outbuf, UINT len)/*發送一個數據包的命令,長度最小為60字節,最大1514字節*/
 136          {
 137   1      UCHAR i;
 138   1      UINT ii;
 139   1              page(0);
 140   1              if(len<60)len=60;
 141   1              txd_buffer_select=!txd_buffer_select;
 142   1              if      (txd_buffer_select)
 143   1                      reg09=0x40 ;    //txdwrite highaddress
 144   1              else
 145   1              reg09=0x46 ;    //txdwrite highaddress
 146   1              reg08=0x00;             //read page address low
 147   1              reg0b=len>>8;           //read count high
 148   1              reg0a=len&0xff;         //read count low;
 149   1              reg00=0x12;                     //write dma, page0
 150   1              for     (ii=0;ii<len;ii++)      //for   (ii=4;ii<len+4;ii++)  //是否加4有待驗證
 151   1              {
 152   2                 reg10=*(outbuf+ii);  
 153   2              }
 154   1      
 155   1              /* 以下3句為中止dma的操作,可以不要            */
 156   1              reg0b=0x00;             //read count high   中止DMA操作
 157   1              reg0a=0x00;             //read count low;
 158   1              reg00=0x22;             //complete dma page 0
 159   1      
 160   1              for(i=0;i<16;i++)       //最多重發16次
 161   1              {
 162   2                      for(ii=0;ii<1000;ii++)  //檢查txp為是否為低
 163   2                      {
 164   3                              if ((reg00&0x04)==0) break;
 165   3                      }
 166   2                      if ((reg04&0x01)!=0) break;     //表示發送成功
 167   2                      reg00=0x3e;
 168   2              }
 169   1              reg07=0xff;
 170   1              if(txd_buffer_select)
 171   1                      reg04=0x40;     //txd packet start; 
 172   1              else
 173   1                      reg04=0x46;     //txd packet start; 
 174   1              reg06=len>>8;   //high byte counter
 175   1              reg05=len&0xff; //low byte counter

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美一区电影| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 日韩一区二区三区在线视频| 亚洲大片精品永久免费| 91麻豆精品国产自产在线 | 久久亚洲综合色一区二区三区| 玖玖九九国产精品| 久久欧美一区二区| av影院午夜一区| 亚洲一区二区中文在线| 日韩精品在线看片z| 国产精品伊人色| 亚洲乱码中文字幕| 欧美精品久久久久久久久老牛影院 | 五月婷婷久久丁香| 日韩欧美国产麻豆| 高清在线观看日韩| 一区二区三区在线视频观看| 51精品国自产在线| 国产福利91精品一区二区三区| 自拍视频在线观看一区二区| 欧美性xxxxx极品少妇| 日本aⅴ免费视频一区二区三区| 国产三级精品视频| 欧美系列亚洲系列| 国产一区二区精品久久| 亚洲激情一二三区| 久久夜色精品国产噜噜av| 色欲综合视频天天天| 久久国产成人午夜av影院| 亚洲三级久久久| 精品粉嫩aⅴ一区二区三区四区| 91丨国产丨九色丨pron| 免费观看在线综合色| 综合分类小说区另类春色亚洲小说欧美| 欧美三级视频在线| 成人一区二区视频| 日韩av午夜在线观看| 国产精品久久久久久久久久免费看 | 一本在线高清不卡dvd| 美女精品一区二区| 亚洲欧美日韩电影| 久久亚洲捆绑美女| 欧美一区二区免费视频| 色噜噜狠狠色综合中国| 成人精品免费视频| 国产中文字幕一区| 天堂在线亚洲视频| 亚洲猫色日本管| 国产欧美一区二区三区在线看蜜臀 | 日韩黄色在线观看| 亚洲欧洲国产日韩| 亚洲国产精品成人综合色在线婷婷| 91精品国产一区二区三区蜜臀 | 国产成人精品在线看| 日韩精品免费视频人成| 亚洲图片欧美色图| 亚洲人成网站色在线观看| 日本一区二区三区国色天香 | 青娱乐精品在线视频| 亚洲精品伦理在线| 最新不卡av在线| 欧美高清在线一区二区| 国产三级久久久| 国产日韩成人精品| 国产日产精品1区| 国产三级精品视频| 国产欧美精品在线观看| 国产亚洲综合av| 国产亚洲污的网站| 久久免费的精品国产v∧| 日韩一区二区免费在线电影 | 亚洲精品在线观看网站| 日韩欧美第一区| 日韩精品一区二| 精品欧美久久久| 久久久久久一二三区| 久久蜜桃av一区二区天堂 | 欧美tickling网站挠脚心| 欧美一区二区高清| 欧美一区二区精美| 亚洲精品一区在线观看| 久久久亚洲午夜电影| 国产日产欧美精品一区二区三区| 久久天堂av综合合色蜜桃网| 国产欧美一区二区三区网站| 国产精品久久久久久久久免费相片| 中文字幕日韩av资源站| 一区二区三区小说| 婷婷中文字幕综合| 久久精品99久久久| 成人涩涩免费视频| 欧美午夜免费电影| 日韩欧美在线网站| 国产精品狼人久久影院观看方式| 亚洲男帅同性gay1069| 亚洲影视在线观看| 久久精品国产亚洲一区二区三区 | 国产99久久久久| 91热门视频在线观看| 欧美剧在线免费观看网站| 日韩欧美亚洲国产另类| 亚洲国产精品国自产拍av| 一区二区三区.www| 久久99精品国产91久久来源 | 日本韩国欧美在线| 日韩精品中文字幕一区二区三区| 欧美国产成人精品| 亚洲成人午夜电影| 国产99久久久精品| 欧美精品在线观看播放| 国产欧美一区二区精品久导航| 亚洲人成网站色在线观看| 奇米影视一区二区三区| 成人在线视频首页| 91精品国产一区二区三区香蕉| 国产亚洲精久久久久久| 亚洲成人av一区二区三区| 国精产品一区一区三区mba视频 | 亚洲黄色小视频| 麻豆91精品视频| 不卡一区二区中文字幕| 欧美一区在线视频| 中文字幕在线观看不卡| 久久精品久久久精品美女| 色噜噜狠狠成人网p站| 久久精品视频在线看| 香蕉加勒比综合久久| 国产成人免费在线视频| 91精品在线免费观看| 最新国产精品久久精品| 国产一区二区三区免费| 7777精品伊人久久久大香线蕉最新版| 国产精品美女久久久久久| 久久精品噜噜噜成人av农村| 欧美在线观看视频在线| 国产精品久久99| 国产盗摄一区二区| 欧美mv日韩mv国产网站| 亚洲福利一二三区| 99精品视频在线观看免费| 国产欧美日韩在线| 精久久久久久久久久久| 91精品国产高清一区二区三区蜜臀 | 精品美女在线播放| 亚洲成av人片www| 91美女片黄在线| 亚洲欧洲日韩一区二区三区| 国产精品亚洲综合一区在线观看| 日韩欧美一区二区三区在线| 日韩激情中文字幕| 欧美肥妇毛茸茸| 午夜精品久久久久久久99樱桃| 色综合天天在线| 中文字幕一区三区| voyeur盗摄精品| 欧美国产日韩一二三区| 国产99久久久久| 国产精品色呦呦| 不卡一区二区在线| 中文字幕制服丝袜一区二区三区| 国模娜娜一区二区三区| 久久久综合视频| 国产成人aaa| 中文在线一区二区| 懂色av中文一区二区三区| 久久久噜噜噜久久人人看 | 国产一区二区在线影院| 精品久久人人做人人爰| 国产在线精品一区二区三区不卡 | 久久机这里只有精品| 日韩精品一区二区三区视频在线观看 | 色综合视频一区二区三区高清| 亚洲欧洲日韩一区二区三区| 色婷婷久久99综合精品jk白丝| 伊人开心综合网| 7777精品伊人久久久大香线蕉| 日本成人中文字幕| 久久一区二区三区四区| 不卡的电影网站| 亚洲自拍都市欧美小说| 欧美区在线观看| 久久机这里只有精品| 日本一二三四高清不卡| 91福利视频久久久久| 日本欧美在线看| 久久久精品国产99久久精品芒果| 成人91在线观看| 亚瑟在线精品视频| 久久亚洲综合色| 色婷婷久久久综合中文字幕 | 欧美日韩成人在线一区| 久久成人18免费观看| 欧美国产禁国产网站cc| 在线看国产一区二区| 久热成人在线视频| 亚洲欧美一区二区三区极速播放 | 久久久久97国产精华液好用吗| gogogo免费视频观看亚洲一| 亚洲高清三级视频|