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

📄 freqcount.lst

📁 motor_control.zip
💻 LST
字号:
C51 COMPILER V8.02   FREQCOUNT                                                             09/06/2007 14:01:35 PAGE 1   


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

line level    source

   1          
   2          
   3          //定时器0作为外部计数器,定时器1作为定时器,在定时1s范围内察看计数器0所计的数。                 
   4          
   5          //-----------------------------------------------------------------------------
   6          
   7          #include "c8051F020.h"
   8          #include "intrins.h"
   9          #include "CH452CMD.H"   // 定义常用命令码及外部子程序
  10          #include "pin.h"
  11          #include "math.h"
  12          #include "key_display.h"
  13          
  14          #define N               4       
  15          #define SYSCLK       (N*1000000)         // 根据频率值设初值
  16          
  17          unsigned int Frequence=0;               //外部脉冲数变量
  18          uchar times_of_overflow1=0;
  19          float JIA=0;
  20          uchar timein=10;
  21          // Peripheral specific initialization functions,
  22          // Called from the Init_Device() function
  23          
  24          
  25          
  26          void Port_IO_Init()
  27          {
  28   1         
  29   1          XBR1      = 0x02;  //交叉开关使能T0
  30   1          XBR2      = 0x40;   // 使能交叉开关和弱上拉                     
  31   1      }
  32          
  33          
  34          
  35          void Interrupts_Init()
  36          {
  37   1          IE        = 0x0A;  /*允许TF1/TF0标志位(TCON.7/TCON.5)的中断请求*/
  38   1                                 /*定时器1/0发生溢出*/
  39   1          IP        = 0x0A;   /*定时器1和0是高优先级中断*/
  40   1      }
  41          
  42          // Initialization function for device,
  43          // Call Init_Device() from your main program
  44          void Init_Device(void)
  45          {
  46   1          Reset_Sources_Init();
  47   1          Timer_Init();
  48   1          Port_IO_Init();
  49   1          Oscillator_Init();
  50   1          Interrupts_Init();
  51   1      }
  52          
  53          //定时n秒。不要放在循环语句中调用
  54          void timecontrol(float n)
  55          {
C51 COMPILER V8.02   FREQCOUNT                                                             09/06/2007 14:01:35 PAGE 2   

  56   1              timein=(uchar)(n*10);
  57   1              TR1=1;
  58   1              TR0=1;
  59   1      }
  60          
  61          // MAIN Routine
  62          void main (void) 
  63          {
  64   1              Init_Device();         //初始化时钟 初始化交叉开关和IO口   初始化定时器0/1      
  65   1              EA=1;                                   // 开总中断
  66   1              //TR1=1;                                        // 开定时器1
  67   1              //TR0=1;                                         // 开定时器0
  68   1              timecontrol(0.5);
  69   1              while (1) 
  70   1              {
  71   2                      //BCDdisplay1(Frequence);
  72   2                      //BCDdisplay_l(JIA);
  73   2                      delayms(200);
  74   2              }
  75   1      }
  76          
  77          
  78          
  79          void TIMER0_ISR (void) interrupt 1 using 0
  80          {
  81   1              TF0=0;                                                          //清中断标志
  82   1      }
  83          
  84          
  85          void TIMER1_ISR (void) interrupt 3 using 1
  86          {
  87   1              TR1=0;
  88   1              TF1=0;
  89   1              TH1=0x7D        ;
  90   1              TL1=0xFB        ;
  91   1              if(times_of_overflow1 < timein)
  92   1                      times_of_overflow1 ++ ;
  93   1              else
  94   1              {       TR0=0;
  95   2                      Frequence=TH0*0x100+TL0;
  96   2                      times_of_overflow1=0;
  97   2                      JIA+=(float)timein/10 ;
  98   2                      BCDdisplay_l(JIA);
  99   2                      TH0=0;
 100   2                      TL0=0;
 101   2                      TR0=1;
 102   2              }
 103   1      
 104   1              TR1=1;  
 105   1      
 106   1      
 107   1      }        


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    231    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
C51 COMPILER V8.02   FREQCOUNT                                                             09/06/2007 14:01:35 PAGE 3   

END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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