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

📄 lcd.lst

📁 脉冲宽度的测量
💻 LST
字号:
C51 COMPILER V7.50   LCD                                                                   07/24/2007 01:28:04 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN LCD.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LCD.C LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <REGX52.H>
   2          #include "LCD1602.h"
   3          #include "Key2.h"
   4          #include "CeLiang.h"
   5          #include "delay.h"
   6          
   7          void IntToStr(uint t, uchar *str, uchar n) 
   8          {       uchar a[5]; uchar i2, j;                                        
   9   1              a[0]=(t/10000)%10;         //取得整数值到数组           
  10   1              a[1]=(t/1000)%10;                                       
  11   1              a[2]=(t/100)%10;                                        
  12   1              a[3]=(t/10)%10;                                         
  13   1              a[4]=(t/1)%10;                  
  14   1                                                            
  15   1              for(i2=0; i2<5; i2++)         //转成ASCII码                     
  16   1                      a[i2]=a[i2]+'0';                                        
  17   1              for(i2=0; a[i2]=='0' && i2<=3; i2++);
  18   1          for(j=5-n; j<i2; j++)       //填充空格                      
  19   1                      { *str=' ';  str++; }                                                           
  20   1              for(; i2<5; i2++)                                               
  21   1                      { *str=a[i2]; str++; }  //加入有效的数字                
  22   1              *str='\0'; 
  23   1      }
  24          
  25          
  26          main()
  27          {   data uchar i,j,k,key;
  28   1          data uchar TempBuffer[10];   //LCD字符显示缓存
  29   1      
  30   1          max=0;
  31   1              LCD_Initial();      //LCD初始化
  32   1      
  33   1              /*延时2s*/
  34   1          for(i=100;i>0;--i)
  35   1                delay_1ms(20);
  36   1          
  37   1              /*提示输入脉冲的测量次数*/
  38   1              GotoXY(0,0);
  39   1              Print(" Input Measure  ");
  40   1              GotoXY(0,1);
  41   1              Print(" Number(10-64): ");
  42   1          
  43   1              /*此while循环为测量次数输入模块*/
  44   1              while(1)
  45   1              {  key=keyScan();
  46   2                 switch(key)
  47   2               { case(11):
  48   3                  LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
  49   3                  max=max*10+1;
  50   3                  IntToStr(max,&TempBuffer[0],3);
  51   3                  GotoXY(0,0);
  52   3                  Print(&TempBuffer[0]);
  53   3                     break;
  54   3      
  55   3                     case(12):
C51 COMPILER V7.50   LCD                                                                   07/24/2007 01:28:04 PAGE 2   

  56   3                      LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
  57   3                  max=max*10+2;
  58   3                      IntToStr(max,&TempBuffer[0],3);
  59   3                  GotoXY(0,0);
  60   3                  Print(&TempBuffer[0]);
  61   3                 break;
  62   3      
  63   3                 case(13):
  64   3                      LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
  65   3                  max=max*10+3;
  66   3                      IntToStr(max,&TempBuffer[0],3);
  67   3                  GotoXY(0,0);
  68   3                  Print(&TempBuffer[0]);
  69   3                 break;
  70   3              
  71   3                     case(21):
  72   3                  LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏 
  73   3                      max=max*10+4;
  74   3                      IntToStr(max,&TempBuffer[0],3);
  75   3                  GotoXY(0,0);
  76   3                  Print(&TempBuffer[0]);
  77   3                 break;
  78   3      
  79   3                     case(22):
  80   3                      LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
  81   3                  max=max*10+5;
  82   3                      IntToStr(max,&TempBuffer[0],3);
  83   3                  GotoXY(0,0);
  84   3                  Print(&TempBuffer[0]);
  85   3                 break;
  86   3      
  87   3                     case(23):
  88   3                      LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
  89   3                  max=max*10+6;
  90   3                      IntToStr(max,&TempBuffer[0],3);
  91   3                  GotoXY(0,0);
  92   3                  Print(&TempBuffer[0]);
  93   3                 break;
  94   3      
  95   3                     case(31):
  96   3                      LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
  97   3                  max=max*10+7;
  98   3                      IntToStr(max,&TempBuffer[0],3);
  99   3                  GotoXY(0,0);
 100   3                  Print(&TempBuffer[0]);
 101   3                 break;
 102   3      
 103   3                     case(32):
 104   3                      LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
 105   3                  max=max*10+8;
 106   3                      IntToStr(max,&TempBuffer[0],3);
 107   3                  GotoXY(0,0);
 108   3                  Print(&TempBuffer[0]);
 109   3                 break;
 110   3      
 111   3                     case(33):
 112   3                      LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
 113   3                  max=max*10+9;
 114   3                      IntToStr(max,&TempBuffer[0],3);
 115   3                  GotoXY(0,0);
 116   3                  Print(&TempBuffer[0]);
 117   3                 break;
C51 COMPILER V7.50   LCD                                                                   07/24/2007 01:28:04 PAGE 3   

 118   3      
 119   3                     case(42):
 120   3                      LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
 121   3                  max=max*10+0;
 122   3                      IntToStr(max,&TempBuffer[0],3);
 123   3                  GotoXY(0,0);
 124   3                  Print(&TempBuffer[0]);
 125   3                 break;
 126   3             }//switch
 127   2                 if(max>64)
 128   2                  {  max=64;
 129   3                         IntToStr(max,&TempBuffer[0],3);
 130   3                 GotoXY(0,0);
 131   3                 Print(&TempBuffer[0]);
 132   3                      }
 133   2                 if(max>9)break;
 134   2              }//while
 135   1          /*输入测量次数模块结束*/
 136   1      
 137   1              /*显示输入的数2s*/
 138   1          for(i=100;i>0;--i)
 139   1                delay_1ms(20);
 140   1      
 141   1      
 142   1          for(i=0;i<=max;++i)
 143   1          {  time[i].second=0;
 144   2             time[i].m_second=0;
 145   2          }
 146   1      
 147   1          GotoXY(0,0);
 148   1              Print(" Please press 1 ");
 149   1              GotoXY(0,1);
 150   1              Print("    to start    ");
 151   1              key=0;
 152   1      
 153   1          /*下面为测量脉冲过程*/
 154   1          while(keyScan()!=11);
 155   1          LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
 156   1          GotoXY(0,0);
 157   1          Print("  LOADING.....  ");
 158   1          int0_initial();
 159   1          while(puls_num<max);//测量结束      
 160   1          /*测量脉冲结束,下面为结果计算和显示*/
 161   1              
 162   1          LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
 163   1          GotoXY(0,1);
 164   1          Print("  Measrue end!  ");
 165   1      
 166   1              /*显示输入的数2s*/
 167   1          for(i=100;i>0;i--)
 168   1                delay_1ms(20);
 169   1      
 170   1          GotoXY(0,0);
 171   1          Print(" Please press 2 ");
 172   1          GotoXY(0,1);
 173   1          Print("     To show    "); 
 174   1              while(keyScan()!=12);
 175   1          
 176   1          /*显示模块,按"->"键增加,按"<-"键减少*/
 177   1              i=max-1;
 178   1              while(1)
 179   1          {  LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
C51 COMPILER V7.50   LCD                                                                   07/24/2007 01:28:04 PAGE 4   

 180   2                          
 181   2                 if(time[i].m_second/100>0)k=3;      //三位数
 182   2             else if(time[i].m_second/10>0)k=2;  //二位数
 183   2                      else k=1;                     //一位数
 184   2                 if(time[i].second/100>0)j=3;      //三位数
 185   2             else if(time[i].second/10>0)j=2;  //二位数
 186   2                      else j=1;                     //一位数
 187   2                 
 188   2                 GotoXY(0,0);
 189   2             Print(" Times:");
 190   2                 IntToStr(i,&TempBuffer[0],j);
 191   2             GotoXY(7,0);
 192   2             Print(&TempBuffer[0]);
 193   2            
 194   2             GotoXY(2,1);
 195   2             Print("Data:");
 196   2             GotoXY(7+j,1);
 197   2             Print(".");
 198   2      
 199   2                 IntToStr(time[i].second,&TempBuffer[0],j);
 200   2             GotoXY(7,1);
 201   2             Print(&TempBuffer[0]);
 202   2      
 203   2                 IntToStr(time[i].m_second,&TempBuffer[0],k);
 204   2             GotoXY(8+j,1);
 205   2             Print(&TempBuffer[0]);
 206   2             
 207   2             GotoXY(8+j+k,1);
 208   2             Print("ms");
 209   2      
 210   2                 while(1)
 211   2                 { key=keyScan();
 212   3                   if(key==41&&i>1)
 213   3                       { i=i-1;break;}
 214   3                   if(key==43&&i<max-1)
 215   3                       { i=i+1;break;}
 216   3                 }
 217   2              }//while
 218   1          while(1);
 219   1      }
 220          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1722    ----
   CONSTANT SIZE    =    155    ----
   XDATA SIZE       =    195      13
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3      14
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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