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

📄 timer.lst

📁 Keil_C51程序,C8051实现的TCP/IP功能源码
💻 LST
字号:
C51 COMPILER V7.20   TIMER                                                                 03/07/2006 14:49:13 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE TIMER
OBJECT MODULE PLACED IN Timer.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Timer.c OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //-----------------------------------------------------------------------------
   2          // Net TIMER.C
   3          //
   4          // This module sets up the timer and handles the timer interrupt
   5          //-----------------------------------------------------------------------------
   6          #include "reg52.h"
   7          #include "net.h"
   8          #include "timer.h"
   9          
  10          extern unsigned int     volatile        event_word;
  11          extern ULONG idata initial_sequence_nr;
  12          //--------------------------------------------------------------------------
  13          // Timer 2 interrupt service routing. Intr vector location is
  14          // address 0x002B. The timer generates an interrupt every 25 msec
  15          // It is set to auto reload so do not need to reload it.
  16          //--------------------------------------------------------------------------
  17          
  18          void timer2_interrupt(void) interrupt 5
  19          {
  20   1              static UCHAR    count1 = 0;
  21   1              static UINT     count2 = 0;
  22   1              
  23   1              TF2 = 0;                // Clear interrupt flag 
  24   1      
  25   1              // Advance the initial sequence number
  26   1              initial_sequence_nr += 6250;
  27   1         // Keep it some distance from rolling over
  28   1         if (initial_sequence_nr & 0x10000000L) initial_sequence_nr = 1;
  29   1      //      Keep it some distance from rolling over
  30   1      //  if (initial_sequence_nr & 0x10000000L) initial_sequence_nr = 1;     
  31   1      
  32   1              count1++;
  33   1              // These events happens every 0.5 seconds, not simultaneously
  34   1              if (count1 == 5) event_word |= EVENT_ARP_RETRANSMIT;
  35   1              if (count1 == 8) event_word |= EVENT_TCP_INACTIVITY;
  36   1              if (count1 == 10)event_word |= EVENT_RS232_ARRIVED;     
  37   1              if (count1 == 20)
  38   1              {
  39   2                      count1 = 0;
  40   2                      event_word |= EVENT_TCP_RETRANSMIT;
  41   2                      LED     = ~LED;//350ms
  42   2              }
  43   1      
  44   1              count2++;
  45   1              if (count2 == 1714)
  46   1              {
  47   2                      // This happens every 60.025 seconds, not simultaneous
  48   2                      // with above tasks
  49   2                      count2 = 0;
  50   2                      event_word |= EVENT_AGE_ARP_CACHE;
  51   2              }
  52   1      }
  53          //--------------------------------------------------------------------------
  54          // Setup Timer2 in mode 1 which is 16 bit auto reload
  55          // Intr rate = 22.1184 MHz /(12 * (65536 - reload value))
C51 COMPILER V7.20   TIMER                                                                 03/07/2006 14:49:13 PAGE 2   

  56          // For 25 msec reload value = 19456 = 0x4C00
  57          //12MHz -->reload value =65536-t(ms)*cystal/12=65536-25=
  58          //--------------------------------------------------------------------------
  59          void init_timer2(void)
  60          {
  61   1              T2CON = 0x00;
  62   1              RCAP2H = 0x04;          // Reload value  35ms
  63   1              RCAP2L = 0x00;
  64   1              TH2 = 0x04;                     // Initial load value
  65   1              TL2 = 0x00;
  66   1              TR2 = 1;                        // Timer 2 run
  67   1              PT2 = 0;                        //优先级低
  68   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    176    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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