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

📄 cc.lst

📁 通过提升机械传动轴的转角脉冲计数,将计数值与预置值作对比,即可确定驱动电机的启停升降,达到平层就位的目的.以AT89C51为CPU,在中断处理程序中对外来脉冲计数.
💻 LST
字号:
C51 COMPILER V7.20   CC                                                                    07/22/2005 12:11:50 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[]="                ";
  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                              m=1843200/m;
  50   3                              if( m<1000 )
  51   3                              {
  52   4                                      line1[0]=m/100+0x30;
  53   4                                      m=m%100;
  54   4                                      line1[1]=m/10+0x30;
  55   4                                      line1[2]=m%10+0x30;
C51 COMPILER V7.20   CC                                                                    07/22/2005 12:11:50 PAGE 2   

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

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

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


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    931    ----
   CONSTANT SIZE    =     68    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     22      50
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
C51 COMPILER V7.20   CC                                                                    07/22/2005 12:11:50 PAGE 5   

END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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