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

📄 timer.lst

📁 c8051f020单片机的例程
💻 LST
字号:
C51 COMPILER V7.06   TIMER                                                                 07/29/2008 10:01:33 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE TIMER
OBJECT MODULE PLACED IN TIMER.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TIMER.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <c8051f020.h>                    // SFR declarations
   2          
   3          //------------------------------------------------------------------------------------
   4          // 16-bit SFR Definitions for 'F02x
   5          //------------------------------------------------------------------------------------
   6          
   7          
   8          
   9          //------------------------------------------------------------------------------------
  10          // Global CONSTANTS
  11          //------------------------------------------------------------------------------------
  12          
  13          #define SYSCLK 2000000                    // approximate SYSCLK frequency in Hz
  14          
  15          sbit  LED = P3^7;                         // green LED: '1' = ON; '0' = OFF
  16          
  17          //------------------------------------------------------------------------------------
  18          // Function PROTOTYPES
  19          //------------------------------------------------------------------------------------
  20          void PORT_Init (void);
  21          void Timer3_Init (int counts);
  22          void Timer3_ISR (void);
  23          
  24          //------------------------------------------------------------------------------------
  25          // MAIN Routine
  26          //------------------------------------------------------------------------------------
  27          void main (void) {
  28   1       
  29   1         
  30   1         WDTCN = 0xde;
  31   1         WDTCN = 0xad;//关闭看门狗
  32   1                       //没有配置时钟,默认内部2M晶振
  33   1              
  34   1         PORT_Init ();
  35   1         Timer3_Init (SYSCLK / 12 / 10);        // Init Timer3 to generate interrupts
  36   1                                                // at a 10Hz rate.
  37   1      
  38   1         EA = 1;                                                                // enable global interrupts
  39   1      
  40   1         while (1) {                            // spin forever
  41   2         }
  42   1      }
  43          
  44          //------------------------------------------------------------------------------------
  45          // PORT_Init
  46          //------------------------------------------------------------------------------------
  47          //
  48          // Configure the Crossbar and GPIO ports
  49          //
  50          void PORT_Init (void)
  51          {
  52   1         XBR2    = 0x40;                     // Enable crossbar and weak pull-ups
  53   1         P1MDOUT |= 0x40;                   
  54   1         P3MDOUT |= 0x80;                    // enable P3.7 (LED) as push-pull output
  55   1      }
C51 COMPILER V7.06   TIMER                                                                 07/29/2008 10:01:33 PAGE 2   

  56          
  57          //------------------------------------------------------------------------------------
  58          // Timer3_Init
  59          //------------------------------------------------------------------------------------
  60          //
  61          // Configure Timer3 to auto-reload and generate an interrupt at interval
  62          // specified by <counts> using SYSCLK/12 as its time base.
  63          //
  64          void Timer3_Init (int counts)
  65          {
  66   1         TMR3CN = 0x00;                      // Stop Timer3; Clear TF3;
  67   1                                             // use SYSCLK/12 as timebase
  68   1         TMR3RLL  = -counts;                  // Init reload values
  69   1         TMR3L    = 0xffff;                   // set to reload immediately
  70   1         EIE2   |= 0x01;                     // enable Timer3 interrupts
  71   1         TMR3CN |= 0x04;                     // start Timer3
  72   1      }
  73          
  74          //------------------------------------------------------------------------------------
  75          // Interrupt Service Routines
  76          //------------------------------------------------------------------------------------
  77          
  78          //------------------------------------------------------------------------------------
  79          // Timer3_ISR
  80          //------------------------------------------------------------------------------------
  81          // This routine changes the state of the LED whenever Timer3 overflows.
  82          //
  83          void Timer3_ISR (void) interrupt 14
  84          {
  85   1         TMR3CN &= ~(0x80);                     // clear TF3
  86   1         LED = ~LED;                            // change state of LED
  87   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     54    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   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 + -