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

📄 puls_counter.lst

📁 该程序是基于c8051f020的平台
💻 LST
字号:
C51 COMPILER V8.02   PULS_COUNTER                                                          09/13/2007 16:35:01 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE PULS_COUNTER
OBJECT MODULE PLACED IN Puls_Counter.OBJ
COMPILER INVOKED BY: d:\Keil3\C51\BIN\C51.EXE Puls_Counter.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <c8051f020.h>
   2          #define uchar unsigned char
   3          #define uint unsigned int
   4          
   5          #include <Lcd1602.h>
   6          #include <DS18B20_Driver.h>
   7          
   8          void Timer1_Init(void);
   9          void Timer3_Init (int counts);
  10          uchar Puls_Counter(void);
  11          void Display_Pusle(uchar times);
  12          
  13          extern void Temperature_Display(uint Temp);
  14          
  15          
  16          sfr16 TMR3RL   = 0x92;                 // Timer3 reload value
  17          sfr16 TMR3     = 0x94;                 // Timer3 counter
  18          
  19          bit Time_f;
  20          uint Sec;
  21          
  22          uchar Puls_Counter(void)
  23          {
  24   1         Lcd1602_Clear_Line(2);Lcd1602_Clear_Line(1);
  25   1         Lcd1602_Write_String(1,1,"Wait!");
  26   1         Time_f = 0 ; TL1 = 0x00; TH1 = 0x00;     // Initilize
  27   1         
  28   1         TMR3CN |= 0x04;  TR1 =1;  //  Open the timer3 and the counter1
  29   1         while(!Time_f)
  30   1           {  if(Sec%50==0){ 
  31   3                Lcd1602_Write_String(1,7,"Time:");
  32   3                Lcd1602_Write_char(Sec/500+'0');
  33   3                Lcd1602_Write_char((Sec/50)%10+'0');
  34   3                Temperature_Display(Get_Temp()); 
  35   3                  }
  36   2              
  37   2              }    //  Wait for 1 sec
  38   1         TMR3CN &=~0x04;  TR1 =0;  //  Close the timer3 and the counter1
  39   1      
  40   1         return(TL1);
  41   1      }
  42          
  43          
  44          
  45          void Display_Pusle(uchar times)
  46          {
  47   1         uchar a[3]; uchar i;
  48   1      
  49   1         a[0] = times/100;
  50   1         a[1] = (times-a[0]*100)/10;
  51   1         a[2] = (times-a[0]*100-a[1]*10);
  52   1      
  53   1        // Lcd1602_Clear_Line(1);
  54   1         Lcd1602_Write_String(2,1,"P:");
  55   1         for(i=0;i<3;i++){  Lcd1602_Write_char(a[i]+'0');   }
C51 COMPILER V8.02   PULS_COUNTER                                                          09/13/2007 16:35:01 PAGE 2   

  56   1      }
  57          
  58          
  59          void Timer1_Init(void)
  60          {
  61   1        TMOD |= 0x40;   //  13-bit  ,counter1 Mode
  62   1      }
  63          
  64          void Timer3_Init (int counts)   // counts = 36864  T = 0.02s
  65          {
  66   1         //CKCON = 0x00;
  67   1         TMR3CN = 0x00;                      // Stop Timer3; Clear TF3;
  68   1                                             // use SYSCLK/12 as timebase
  69   1         TMR3RL  = -counts;                  // Init reload values
  70   1         TMR3    = 0xffff;                   // set to reload immediately
  71   1         EIE2   |= 0x01;                    // enable Timer3 interrupts
  72   1      
  73   1        // TMR3CN |= 0x04;                     // start Timer3
  74   1      
  75   1      }
  76          
  77          
  78          void  Timer3_ISR(void) interrupt 14   // counts = 36864  T = 0.02s
  79          {
  80   1           static uint i = 0;
  81   1           TMR3CN &= ~0x80;      //TF3 = 0;
  82   1           if (i==3000){   i=0; Sec = 0;  Time_f = 1 ;   }
  83   1           i++;    Sec++; 
  84   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    285    ----
   CONSTANT SIZE    =     15    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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