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

📄 card9346.lst

📁 51单片机控制网卡实现上网程序代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.09   CARD9346                                                              03/27/2005 16:17:14 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE CARD9346
OBJECT MODULE PLACED IN card9346.OBJ
COMPILER INVOKED BY: E:\学习工具\Keil51\C51\BIN\C51.EXE card9346.c LARGE DEBUG OBJECTEXTEND CODE SYMBOLS

line level    source

   1          
   2          /**************************************************************/
   3          // from www.laogu.com
   4          /**************************************************************/
   5          
   6          
   7          #include "card9346.h"
   8          #include "ylystd.h"
   9          #include "hostmcu.h"
  10          #include "8019.h"
  11          
  12          /**************************************************************/
  13          
  14          uint read_93c46(uchar address)
  15          {
  16   1         //93c46 command register:
  17   1         //  7    6    5   4   3    2    1     0
  18   1         //  eem1 eem0 nc  nc  eecs eesk eedi  eedo
  19   1      
  20   1         uchar count;
  21   1         uint retval;
  22   1         
  23   1         address|=0x80;
  24   1         myoutportb(0x00,0xe2); //select page 3 register
  25   1                                //first bit is 1
  26   1         myoutportb(0x01,0x8a); //cs=1 sk=0 di=1
  27   1         myoutportb(0x01,0x8e); //cs=1 sk=1 di=1
  28   1         do_93c46(address);
  29   1         
  30   1         for(count=0;count<16;count++)
  31   1         {
  32   2            //out 0
  33   2            myoutportb(0x01,0x88); //cs=1 sk=0 di=0
  34   2            myoutportb(0x01,0x8c); //cs=1 sk=1 di=0
  35   2            retval<<=1;
  36   2            if(myinportb(0x01)&0x01!=0)
  37   2            {
  38   3               retval|=0x01;
  39   3            }
  40   2         }
  41   1         myoutportb(0x01,0x88); //cs=1 sk=0 di=0
  42   1         myoutportb(0x01,0x00); //cs=0 sk=0 di=0
  43   1         
  44   1         return retval;
  45   1      }
  46          
  47          /**************************************************************/
  48          
  49          void write_93c46(uchar address,uint value)
  50          {
  51   1         uchar tmp;
  52   1      
  53   1         myoutportb(0x00,0xe2);  //select page 3 register
  54   1      
  55   1         myoutportb(0x01,0x8a);  //out start bit: 1
C51 COMPILER V7.09   CARD9346                                                              03/27/2005 16:17:14 PAGE 2   

  56   1         myoutportb(0x01,0x8e);
  57   1      
  58   1         do_93c46(0x3c);         //Write/Erase enable
  59   1         myoutportb(0x01,0x88);
  60   1         myoutportb(0x01,0x00);
  61   1      
  62   1         myoutportb(0x01,0x8a);  //out start bit: 1
  63   1         myoutportb(0x01,0x8e);
  64   1      
  65   1         tmp=address|0x40;       //actrual write
  66   1         do_93c46(tmp);
  67   1         do_93c46(value>>8);
  68   1         do_93c46(value&0xff);
  69   1         myoutportb(0x01,0x88);
  70   1         myoutportb(0x01,0x00);
  71   1      
  72   1         myoutportb(0x01,0x88);  //wait for write finish
  73   1         for(tmp=0;tmp<10000;tmp++)
  74   1         {
  75   2            if((myinportb(0x01)&0x01)!=0)
  76   2                   break;
  77   2         }
  78   1         myoutportb(0x01,0x00);
  79   1      
  80   1         myoutportb(0x01,0x8a);  //Write/Erase disable
  81   1         myoutportb(0x01,0x8e);
  82   1         do_93c46(0x00);
  83   1         myoutportb(0x01,0x88);
  84   1         myoutportb(0x01,0x00);
  85   1      
  86   1      }
  87          /**************************************************************/
  88          void do_93c46(uchar val)
  89          {
  90   1          uchar count;
  91   1          uchar tmpval;
  92   1          
  93   1          tmpval=val;
  94   1          
  95   1          for(count=0;count<8;count++)
  96   1          {
  97   2              if((tmpval&0x80)!=0)
  98   2              {
  99   3                  //out 1
 100   3                  myoutportb(0x01,0x8a);
 101   3                  myoutportb(0x01,0x8e);
 102   3              }
 103   2              else
 104   2              {
 105   3                  //out 0
 106   3                  myoutportb(0x01,0x88);
 107   3                  myoutportb(0x01,0x8c);
 108   3              }
 109   2              tmpval<<=1;
 110   2          }
 111   1      }
 112          
 113          /**************************************************************/
 114          
C51 COMPILER V7.09   CARD9346                                                              03/27/2005 16:17:14 PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _read_93c46 (BEGIN)
                                           ; SOURCE LINE # 14
0000 900000      R     MOV     DPTR,#address
0003 EF                MOV     A,R7
0004 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 15
                                           ; SOURCE LINE # 23
0005 4480              ORL     A,#080H
0007 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 24
0008 E4                CLR     A
0009 FF                MOV     R7,A
000A 120000      E     LCALL   _map_io
000D 8F82              MOV     DPL,R7
000F 8E83              MOV     DPH,R6
0011 74E2              MOV     A,#0E2H
0013 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 26
0014 7F01              MOV     R7,#01H
0016 120000      E     LCALL   _map_io
0019 8F82              MOV     DPL,R7
001B 8E83              MOV     DPH,R6
001D 748A              MOV     A,#08AH
001F F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 27
0020 7F01              MOV     R7,#01H
0022 120000      E     LCALL   _map_io
0025 8F82              MOV     DPL,R7
0027 8E83              MOV     DPH,R6
0029 748E              MOV     A,#08EH
002B F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 28
002C 900000      R     MOV     DPTR,#address
002F E0                MOVX    A,@DPTR
0030 FF                MOV     R7,A
0031 120000      R     LCALL   _do_93c46
                                           ; SOURCE LINE # 30
0034 E4                CLR     A
0035 900000      R     MOV     DPTR,#count
0038 F0                MOVX    @DPTR,A
0039         ?C0001:
                                           ; SOURCE LINE # 31
                                           ; SOURCE LINE # 33
0039 7F01              MOV     R7,#01H
003B 120000      E     LCALL   _map_io
003E 8F82              MOV     DPL,R7
0040 8E83              MOV     DPH,R6
0042 7488              MOV     A,#088H
0044 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 34
0045 7F01              MOV     R7,#01H
0047 120000      E     LCALL   _map_io
004A 8F82              MOV     DPL,R7
004C 8E83              MOV     DPH,R6
004E 748C              MOV     A,#08CH
0050 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 35
0051 900000      R     MOV     DPTR,#retval+01H
0054 E0                MOVX    A,@DPTR
C51 COMPILER V7.09   CARD9346                                                              03/27/2005 16:17:14 PAGE 4   

0055 25E0              ADD     A,ACC
0057 F0                MOVX    @DPTR,A
0058 900000      R     MOV     DPTR,#retval
005B E0                MOVX    A,@DPTR
005C 33                RLC     A
005D F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 36
005E 7F01              MOV     R7,#01H
0060 120000      E     LCALL   _map_io
0063 8F82              MOV     DPL,R7
0065 8E83              MOV     DPH,R6
0067 E0                MOVX    A,@DPTR
0068 30E00A            JNB     ACC.0,?C0003
                                           ; SOURCE LINE # 37
                                           ; SOURCE LINE # 38
006B 900000      R     MOV     DPTR,#retval
006E E0                MOVX    A,@DPTR
006F F0                MOVX    @DPTR,A
0070 A3                INC     DPTR
0071 E0                MOVX    A,@DPTR
0072 4401              ORL     A,#01H
0074 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 39
                                           ; SOURCE LINE # 40
0075         ?C0003:
0075 900000      R     MOV     DPTR,#count
0078 E0                MOVX    A,@DPTR
0079 04                INC     A
007A F0                MOVX    @DPTR,A
007B E0                MOVX    A,@DPTR
007C C3                CLR     C
007D 9410              SUBB    A,#010H
007F 40B8              JC      ?C0001
0081         ?C0002:
                                           ; SOURCE LINE # 41
0081 7F01              MOV     R7,#01H
0083 120000      E     LCALL   _map_io
0086 8F82              MOV     DPL,R7
0088 8E83              MOV     DPH,R6
008A 7488              MOV     A,#088H
008C F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 42
008D 7F01              MOV     R7,#01H
008F 120000      E     LCALL   _map_io
0092 8F82              MOV     DPL,R7
0094 8E83              MOV     DPH,R6
0096 E4                CLR     A
0097 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 44
0098 900000      R     MOV     DPTR,#retval
009B E0                MOVX    A,@DPTR
009C FE                MOV     R6,A
009D A3                INC     DPTR
009E E0                MOVX    A,@DPTR
009F FF                MOV     R7,A
                                           ; SOURCE LINE # 45
00A0         ?C0005:
00A0 22                RET     
             ; FUNCTION _read_93c46 (END)

             ; FUNCTION _write_93c46 (BEGIN)
                                           ; SOURCE LINE # 49
C51 COMPILER V7.09   CARD9346                                                              03/27/2005 16:17:14 PAGE 5   

0000 900000      R     MOV     DPTR,#address
0003 EF                MOV     A,R7
0004 F0                MOVX    @DPTR,A
0005 A3                INC     DPTR
0006 EC                MOV     A,R4
0007 F0                MOVX    @DPTR,A
0008 A3                INC     DPTR
0009 ED                MOV     A,R5
000A F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 50
                                           ; SOURCE LINE # 53
000B E4                CLR     A
000C FF                MOV     R7,A
000D 120000      E     LCALL   _map_io
0010 8F82              MOV     DPL,R7
0012 8E83              MOV     DPH,R6
0014 74E2              MOV     A,#0E2H
0016 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 55
0017 7F01              MOV     R7,#01H
0019 120000      E     LCALL   _map_io
001C 8F82              MOV     DPL,R7
001E 8E83              MOV     DPH,R6
0020 748A              MOV     A,#08AH
0022 F0                MOVX    @DPTR,A
                                           ; SOURCE LINE # 56
0023 7F01              MOV     R7,#01H

⌨️ 快捷键说明

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