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

📄 main.lst

📁 基于51单片机和RTL8019以太网控制器的嵌入式以太网控制程序。
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   MAIN                                                                  09/21/2006 20:16:30 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <general.h>
   2          #include <string.h>
   3          struct timer
   4          {
   5                  unsigned char count;
   6                  unsigned char arrived;
   7          };
   8          data struct timer  D10ms,D1s;
   9          
  10          unsigned char xdata count_connect;
  11          unsigned char xdata bConnect;
  12          unsigned char xdata bFirst;
  13          unsigned char Count10ms;
  14          unsigned char xdata IndexOfClient;       //客户端套接字序号
  15          sbit P10=P1^0;
  16          sbit P11=P1^1;
  17          
  18          //外部数据
  19          extern xdata union Ethernet_address my_ethernet_address;
  20          extern xdata union IP_address my_ip_address;
  21          extern xdata union netcard rxdnet;
  22          extern xdata union netcard txdnet;
  23          extern xdata union IP_address ping_ip_address;
  24          extern unsigned long  xdata initial_sequence_nr;
  25          extern xdata union sw Server_PORT;
  26          extern xdata struct connection  conxn[NO_CONNECTION];
  27          extern xdata union IP_address my_ServerIP;
  28          
  29          #define   TIMEH1ms    0xF8
  30          #define   TIMEL1ms    0x96
  31          
  32          extern void Disp_All(void);
  33          
  34          
  35          //------------------------------------------------------------------------
  36          //函数功能:延时程序
  37          //
  38          //入参:        无
  39          //
  40          //返回值:      无
  41          //
  42          //作者:        Mingtree
  43          //
  44          //注释:        Mingtree
  45          //日期:        2004-09-19
  46          //------------------------------------------------------------------------
  47          void Delay10ms()
  48          {
  49   1      
  50   1              unsigned int iSmall;
  51   1              unsigned char iBig;
  52   1              for(iBig = 0; iBig < 10; iBig++)
  53   1                      for(iSmall = 0; iSmall < 0xFFFF; iSmall++);
  54   1      }
  55          //------------------------------------------------------------------------
C51 COMPILER V8.02   MAIN                                                                  09/21/2006 20:16:30 PAGE 2   

  56          //函数功能:定时器0,每250us进入一次
  57          //
  58          //入参:        无
  59          //
  60          //返回值:      无
  61          //
  62          //
  63          //说明:    每隔250us进入一次,进入后将D1ms减一,减到0后重赋4;减到0时表示已经过了1ms,
  64          //          再将D10ms减一,减到0后赋10,表示过了10ms,再将1s的减一.
  65          //                      该定时器的作用是在主程序中定时地去调用一些函数,实现某些需要定时的功能.
  66          //                  该定时器实现各种定时的精度取决于将定时时间段分割的大小,比如,将1ms分成了4段,
  67          //                      最大的误差为250us,因为D1ms的某个数值(比如是4)持续的时间是250us,在主程序中,
  68          //                      在这250us里去检测该D1ms的植,得到的结果都为4.
  69          //作者:        Mingtree
  70          //
  71          //注释:        Mingtree
  72          //日期:        2004-09-19
  73          //------------------------------------------------------------------------
  74          void  timer0()  interrupt 1
  75          {
  76   1              D10ms.count--;
  77   1              if(0==D10ms.count)
  78   1              {
  79   2                      D10ms.arrived=TRUE;
  80   2                      D10ms.count=10;
  81   2                      D1s.count--;
  82   2                      if(0==D1s.count)
  83   2                      {
  84   3                              D1s.count=100;
  85   3                              D1s.arrived=TRUE;
  86   3                      }
  87   2      
  88   2              }
  89   1              
  90   1              TH0=TIMEH1ms;
  91   1              TL0=TIMEL1ms;
  92   1              TR0=1;
  93   1      }
  94          
  95          //------------------------------------------------------------------------
  96          //函数功能:初始化定时器,设置波特率
  97          //
  98          //入参:        无
  99          //
 100          //返回值:      无
 101          //
 102          //
 103          //说明:    
 104          //                         
 105          //作者:        Mingtree
 106          //
 107          //注释:        Mingtree
 108          //日期:        2004-09-19
 109          //------------------------------------------------------------------------
 110          void init_Timer()
 111          {
 112   1              IE=0x00;
 113   1          ET0=1;          // timer0 interrupt enable
 114   1          ES=1;           // RS-232 interrupt enable
 115   1          EA=1;           // all interrupt enable
 116   1      
 117   1              TMOD=0x21;              //定时器1用于波特率发生器,定时器0用于定时
C51 COMPILER V8.02   MAIN                                                                  09/21/2006 20:16:30 PAGE 3   

 118   1              TH0=TIMEH1ms;
 119   1              TL0=TIMEL1ms;
 120   1              D10ms.arrived=FALSE;
 121   1              D1s.arrived=FALSE;
 122   1          D1s.count=100;
 123   1              D10ms.count=10;
 124   1      
 125   1              //启动定时器
 126   1              TR0=1;
 127   1      }
 128          
 129          //------------------------------------------------------------------------
 130          //函数功能:设置PING的IP地址
 131          //
 132          //入参:        无
 133          //
 134          //返回值:      无
 135          //
 136          //作者:        Mingtree
 137          //
 138          //注释:        Mingtree
 139          //日期:        2004-09-19
 140          //------------------------------------------------------------------------
 141          void SetPingIP(unsigned char xdata *pBuf)
 142          {
 143   1              unsigned char i;
 144   1              for(i=0;i<4;i++)
 145   1                      ping_ip_address.bytes[i]=pBuf[i];
 146   1      
 147   1      }
 148          //-------------------------------------------------------
 149          //           -----------main program--------
 150          //-------------------------------------------------------
 151          void main()
 152          {
 153   1      
 154   1              //定义命令数组
 155   1              static unsigned char code ComTable[MaxComNum][MaxLenCom+1]={"connect","ping","setsip","setlip",
 156   1                                                "setmac","ipconfig","setsport","setgate","wb05d000","tcpstate"};
 157   1      
 158   1      
 159   1              unsigned char data State=StatInputCom;          //状态
 160   1              unsigned char xdata ch;
 161   1              unsigned char xdata ComBuf[MaxLenComBuf+1];     /*store '\0'*/
 162   1              int i=-1;                       /*ComBuf pointer*/
 163   1              int tem;                        /*Temp variable*/
 164   1              int ComMatchFlag=0;             /*Command match flag*/
 165   1      
 166   1              WORDTABLE xdata WordTable;
 167   1              
 168   1              int Matched=0;  /*Match flag*/
 169   1      
 170   1              //各项初始化工作,包括定时器工作方式设定,8019初始化,串口初始化
 171   1              //---------------------------------
 172   1              InitSerial();
 173   1              InitSerialBuffer();
 174   1      
 175   1              init_Timer();
 176   1      
 177   1      
 178   1              //从5045里读各个参数
 179   1              ReadGateway();
C51 COMPILER V8.02   MAIN                                                                  09/21/2006 20:16:30 PAGE 4   

 180   1              ReadLIP();
 181   1              ReadMAC();
 182   1              ReadServerIP();
 183   1              ReadServerPort();
 184   1              //设置未连接
 185   1              bConnect = FALSE;
 186   1              count_connect=0;
 187   1              bFirst = TRUE;
 188   1              //根本未开始请求
 189   1              IndexOfClient = 6;
 190   1      
 191   1              //初始化8019as
 192   1              init_8019();
 193   1      

⌨️ 快捷键说明

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