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

📄 cc.lst

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

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

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

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


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    906    ----
   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 + -