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

📄 测速.lst

📁 PID自动调节直流电机的速度。认为规定直流转多少转
💻 LST
字号:
C51 COMPILER V7.06   测速                                                                  04/27/2007 16:21:15 PAGE 1   


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

stmt level    source

   1          #include <at89x52.h>
   2          #include <math.h>
   3          #include "TLC5615.H"
   4          
   5          #define  uchar unsigned char
   6          #define  uint  unsigned int
   7          
   8          uchar SetPoint = 90;
   9          float Kp=0.02;
  10          int Error=0;
  11          float DACTemp;
  12          uint  DAC=0;
  13          uint  RIn=0;
  14          
  15          uchar n=0,flag=0,High=0,Low=0;
  16          
  17          uchar code tv[ ] = {0x7f, 0xbf, 0xdf, 0xef};  //数码管片选
  18          uchar code a[ ] = {0x3f, 0x06, 0x5b, 0x4f,       //数码管断选
  19                             0x66, 0x6d, 0x7d, 0x07,
  20                                             0x7f, 0x6f, 0x00, 0x7c};
  21          
  22          uchar data  led[4];
  23          unsigned int data i=0;   //定义一个全局I型变量
  24          
  25          void ledxianshi(uint tvdata)   //显示函数,也就是数码管驱动
  26          {
  27   1           static unsigned char sts = 0;
  28   1               
  29   1               if( flag ){ sts=1; flag=0; }
  30   1               switch( sts )
  31   1               {
  32   2                      case 0 : sts=1; break;
  33   2                      case 1 :
  34   2                              for( i=0; i<4; i++ )
  35   2                              {
  36   3                                      led[ i ] = tvdata % 10; 
  37   3                                      tvdata /= 10;
  38   3                      }
  39   2                              sts = 2;
  40   2                              break;
  41   2                      case 2 : P0=a[ led[0] ]; P2=tv[0]; sts=3; break;
  42   2                      case 3 : P0=a[ led[1] ]; P2=tv[1]; sts=4; break;
  43   2                      case 4 : P0=a[ led[2] ]; P2=tv[2]; sts=5; break;
  44   2                      case 5 : P0=a[ led[3] ]; P2=tv[3]; sts=2; break;
  45   2                      default : sts = 0;
  46   2              }
  47   1      }
  48          
  49          void int0(void) interrupt 0
  50          {
  51   1              n++;
  52   1              if(n==4)
  53   1              {
  54   2                      TR2=0;
  55   2                      TF2=0;
C51 COMPILER V7.06   测速                                                                  04/27/2007 16:21:15 PAGE 2   

  56   2                      High=TH2;
  57   2                      Low=TL2;
  58   2                      TH2=0;
  59   2                      TL2=0;
  60   2                      TR2=1;
  61   2                      n=0;
  62   2                      flag=1; 
  63   2              }
  64   1              else
  65   1              flag=0;
  66   1      }
  67          
  68          
  69          void Timer2Int( void ) interrupt 5
  70          {
  71   1              TF2 = 0;
  72   1      }
  73          
  74          void initail(void)
  75          {
  76   1              IT0=1;
  77   1              EX0=1;
  78   1      
  79   1              C_T2=0;
  80   1              TF2=0;
  81   1              TH2 = 0;
  82   1          TL2 = 0;
  83   1              ET2 = 1;
  84   1              TR2=1;
  85   1              EA=1;
  86   1      }
  87          
  88          void main(void)
  89          {
  90   1         unsigned  long temp=0;
  91   1      
  92   1              initail();
  93   1              while(1)
  94   1              {       
  95   2                      temp=High*256+Low;
  96   2                      RIn=1000000/temp;
  97   2                      ledxianshi(RIn);
  98   2      
  99   2                      Error = SetPoint - RIn;
 100   2                      DACTemp = Error*Kp + DACTemp;
 101   2                      DAC=DACTemp;
 102   2                      Dac( DAC );
 103   2              }
 104   1      }


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