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

📄 cc.lst

📁 通过提升机械传动轴的转角脉冲计数,将计数值与预置值作对比,即可确定驱动电机的启停升降,达到平层就位的目的.以AT89C51为CPU,在中断处理程序中对外来脉冲计数.
💻 LST
字号:
C51 COMPILER V7.20   CC                                                                    07/22/2005 12:57:51 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE CC
OBJECT MODULE PLACED IN cc.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE cc.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>
   2          #include<intrins.h>
   3          
   4          sbit RS  =P2^7;
   5          sbit RW  =P2^6;
   6          sbit EN  =P2^5;
   7          
   8          
   9          #define INT 5                   
  10          unsigned char count=0,cnt=0;
  11          //unsigned long N;
  12          unsigned long value[ INT ];
  13          void inil( void );
  14          
  15          void DelayL( );
  16          void DelayS( );
  17          void WriteCommand( unsigned char c );
  18          void WriteData( unsigned char c );
  19          void ShowChar( unsigned char pos,unsigned char c );
  20          void ShowString( unsigned char line,char *ptr );
  21          void InitLcd( );
  22          
  23          void main( void )
  24          {
  25   1              unsigned char i;
  26   1              unsigned long m;
  27   1              unsigned char code str1[]="  cuit team 36  ";
  28   1              unsigned char code str2[]="   2005-7-18    ";
  29   1              unsigned char line0[]="Frequnecy is:   ";
  30   1              unsigned char line1[]="     .  Hz      ";
  31   1      
  32   1              DelayL( );
  33   1              InitLcd( );
  34   1              DelayL( );
  35   1              ShowString( 0,str1 );
  36   1              ShowString( 1,str2 );
  37   1      
  38   1              inil( );
  39   1              
  40   1              while( 1 )
  41   1              {
  42   2                      if( count==INT )
  43   2                      {
  44   3                              for( i=0;i<INT;i++ )
  45   3                              {
  46   4                                      m=m+value[i];
  47   4                              }
  48   3                              m=m/INT;
  49   3      
  50   3                      //      m=m>>8;
  51   3                      //      m=720000/m;
  52   3                              m=1843200/m;
  53   3                              line1[0]=m/10000+0x30;
  54   3                              m=m%10000;
  55   3                              line1[1]=m/1000+0x30;
C51 COMPILER V7.20   CC                                                                    07/22/2005 12:57:51 PAGE 2   

  56   3                              m=m%1000;
  57   3                              line1[2]=m/100+0x30;
  58   3                              m=m%100;
  59   3                              line1[3]=m/10+0x30;
  60   3                      //      m=m%1000;
  61   3                              line1[4]=m%10+0x30;
  62   3                      //      m=m%10;
  63   3                      //      line1[6]=m/10+0x30;
  64   3                      //      line1[7]=m%10+0x30;
  65   3      
  66   3                              ShowString( 0,line0 );
  67   3                              ShowString( 1,line1 );
  68   3                              for( i=0;i<=15;i++ )
  69   3                              {
  70   4                                      void DelayL( );
  71   4                              }
  72   3      
  73   3                              m=0;
  74   3                              count=0;
  75   3                              cnt=0;
  76   3                              EX0=1;
  77   3                              ET0=1;
  78   3                              EA=1;
  79   3                      }
  80   2              }
  81   1      }
  82          
  83          
  84          
  85          
  86          void inil( void )
  87          {
  88   1              EA=0;
  89   1              PX0=1;
  90   1              INT0=1;
  91   1              IT0=1;
  92   1              TMOD=( TMOD&0XF0 )|0X01;
  93   1              TR0=0;
  94   1              TH0=TL0=0;
  95   1              EX0=1;
  96   1              ET0=1;
  97   1              EA=1;
  98   1      }
  99          
 100          void intlint0( void ) interrupt 0
 101          {
 102   1              unsigned char th,tl,a;
 103   1              unsigned long N;
 104   1              if( TH0==TL0&&TL0==0 ) TR0=1;
 105   1              else
 106   1              {
 107   2                      TR0=0;
 108   2                      EX0=0;//````````````````
 109   2                      th=TH0;
 110   2                      tl=TL0;
 111   2                      a=cnt;
 112   2                      TH0=TL0=0;
 113   2                      cnt=0;
 114   2              //      TR0=1;
 115   2                      if( a==0 )
 116   2                      {
 117   3                              N=th*256+tl;
C51 COMPILER V7.20   CC                                                                    07/22/2005 12:57:51 PAGE 3   

 118   3                      }
 119   2                      else
 120   2                      {
 121   3                              N=65536*a+th*256+tl;
 122   3                      }
 123   2                      value[ count++ ]=N;
 124   2      
 125   2                      if( count==INT )
 126   2                      {
 127   3                              EX0=0;
 128   3                              ET0=0;
 129   3                              TH0=TL0=0;
 130   3                              EA=0;
 131   3                      }
 132   2                      else
 133   2                      {
 134   3                              EX0=1;          //````````````````````
 135   3                      }
 136   2              }
 137   1      }
 138          
 139          
 140          void intlt0( void ) interrupt 1
 141          {
 142   1              cnt++;
 143   1              TH0=TL0=0;
 144   1      }
 145          
 146          
 147          //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                         LCD
 148          
 149          void DelayL( )
 150          {
 151   1              unsigned char i,j;
 152   1              i=0xF0;
 153   1              j=0xFF;
 154   1              while( i-- )
 155   1                      while( j-- );
 156   1      }
 157          
 158          void DelayS( )
 159          {
 160   1              unsigned char i;
 161   1              i=0x1F;
 162   1              while( i-- );
 163   1      }
 164          
 165          void WriteCommand( unsigned char c )
 166          {
 167   1              DelayS( );
 168   1              EN=0;
 169   1              RS=0;
 170   1              RW=0;
 171   1              _nop_( );
 172   1              EN=1;
 173   1              P0=c;
 174   1              EN=0;
 175   1      }
 176          
 177          void WriteData( unsigned char c )
 178          {
 179   1              DelayS( );
C51 COMPILER V7.20   CC                                                                    07/22/2005 12:57:51 PAGE 4   

 180   1              EN=0;
 181   1              RS=1;
 182   1              RW=0;
 183   1              _nop_( );
 184   1              EN=1;
 185   1              P0=c;
 186   1              EN=0;
 187   1              RS=0;
 188   1      }
 189          
 190          void ShowChar( unsigned char pos,unsigned char c )
 191          {
 192   1              unsigned char p;
 193   1              if( pos>=0x10 )
 194   1                      p=pos+0xB0;//
 195   1              else
 196   1                      p=pos+0x80;//
 197   1              WriteCommand( p );
 198   1              WriteData( c );
 199   1      }
 200          
 201          void ShowString( unsigned char line,char *ptr )
 202          {
 203   1              unsigned char l,i;
 204   1              l=line<<4;
 205   1              for( i=0;i<16;i++ )
 206   1                      ShowChar( l++, *(ptr+i) );
 207   1      }
 208          
 209          void InitLcd( )
 210          {
 211   1              DelayL( );
 212   1              WriteCommand( 0x38 );
 213   1              DelayL( );
 214   1              WriteCommand( 0x38 );
 215   1              DelayL( );
 216   1              WriteCommand( 0x06 );
 217   1              WriteCommand( 0x0c );
 218   1              WriteCommand( 0x01 );
 219   1              WriteCommand( 0x80 );
 220   1      }


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