pca_lcd.lst

来自「c8051f020单片机的例程」· LST 代码 · 共 322 行 · 第 1/2 页

LST
322
字号
 148   1                      unsigned char *lcdpoint;        //指向 lcddata数组的指针
 149   1      
 150   1                      LCD_Init();                         //LCD初始化
 151   1                  P2  = 0xA0;                         //准备送数据
 152   1                  delay(5000);
 153   1                  lcdpoint=&onedata;                                  //取地址
 154   1                  for(i=0;i<16;i++)                   //显示第一行字符
 155   1                  { 
 156   2                          lcddata=*lcdpoint;                          //读出数据                      
 157   2                          P7 = lcddata;                                       //写数据到端口
 158   2                              P2 = 0X20;
 159   2                      P2 = 0XA0;                                              //控制LCD写数据 
 160   2                      lcdpoint++;
 161   2                          delay(5000);                   //13ms,控制每个字符显示的时间
 162   2                      }
 163   1           
 164   1              if(f>=1000)     //1k
 165   1                      {
 166   2                          b=f;
 167   2      
 168   2                  c[0]=b/10000000;temp=b-c[0]*10000000;c[0]|=0x30;
 169   2                              c[1]=temp/1000000;temp=temp-c[1]*1000000;c[1]|=0x30;
 170   2                              c[2]=temp/100000;temp=temp-c[2]*100000;c[2]|=0x30;
 171   2                              c[3]=temp/10000;temp=temp-c[3]*10000;c[3]|=0x30;
 172   2                              c[4]=temp/1000;temp=temp-c[4]*1000;c[4]|=0x30;
 173   2                              c[5]=temp/100;temp=temp-c[5]*100;c[5]|=0x30;
 174   2                              c[6]=temp/10;temp=temp-c[6]*10;c[6]|=0x30;
 175   2                              c[7]=temp;c[7]|=0x30;
 176   2                              }
 177   1                              
 178   1               if(f<1000)
C51 COMPILER V7.20   PCA_LCD                                                               09/14/2008 19:58:08 PAGE 4   

 179   1                       {
 180   2                         b1=(int)f;
 181   2                         b2=(int)((f-b1)*1000);
 182   2                         d[0]=b1/100;temp=b1-d[0]*100;d[0]|=0x30;
 183   2                              d[1]=temp/10;temp=temp-d[1]*10;d[1]|=0x30;
 184   2                              d[2]=temp;d[2]|=0x30;
 185   2      
 186   2                              d[3]=b2/100;temp=b2-d[3]*100;d[3]|=0x30;
 187   2                              d[4]=temp/10;temp=temp-d[4]*10;d[4]|=0x30;
 188   2                              d[5]=temp;d[5]|=0x30;
 189   2                         }
 190   1      
 191   1             if(f>=10000000)          //>=10M
 192   1                  {
 193   2                    twodata[6]=c[0]; twodata[7]=c[1]; twodata[8]='.';twodata[9]=c[2];twodata[10]=c[3];
 194   2                        twodata[11]=c[4];twodata[12]=' '; twodata[13]='M';twodata[14]='H';twodata[15]='z';//送到第二行数组里   
             - 
 195   2                      }
 196   1      
 197   1                 if(f>=1000000&&f<10000000)     //1M<=F<10M
 198   1                      {
 199   2                twodata[6]=' '; twodata[7]=c[1]; twodata[8]='.';twodata[9]=c[2];twodata[10]=c[3];
 200   2                        twodata[11]=c[4];twodata[12]=' '; twodata[13]='M';twodata[14]='H';twodata[15]='z';//送到第二行数组里   
             - 
 201   2                       }
 202   1      
 203   1                      if(f>=100000&&f<1000000)     //100K<=F<1M
 204   1                      {
 205   2                twodata[5]=c[2];twodata[6]=c[3]; twodata[7]=c[4]; twodata[8]='.';twodata[9]=c[5];twodata[10]=c[6
             -];
 206   2                        twodata[11]=c[7];twodata[12]=' '; twodata[13]='K';twodata[14]='H';twodata[15]='z';//送到第二行数组里  
 207   2                       }
 208   1      
 209   1                      if(f>=10000&&f<100000)     //10K<=F<100K
 210   1                       {
 211   2                twodata[5]=' ';twodata[6]=c[3]; twodata[7]=c[4]; twodata[8]='.';twodata[9]=c[5];twodata[10]=c[6]
             -;
 212   2                        twodata[11]=c[7];twodata[12]=' '; twodata[13]='K';twodata[14]='H';twodata[15]='z';//送到第二行数组里  
 213   2                        }
 214   1                       if(f>=1000&&f<10000)     //1K<=F<10K
 215   1                       {
 216   2                twodata[5]=' ';twodata[6]=' '; twodata[7]=c[4]; twodata[8]='.';twodata[9]=c[5];twodata[10]=c[6];
 217   2                        twodata[11]=c[7];twodata[12]=' '; twodata[13]='K';twodata[14]='H';twodata[15]='z';//送到第二行数组里
 218   2                        }
 219   1      
 220   1                        if(f>=100&&f<1000)     //100<=F<1K
 221   1                       {
 222   2                twodata[5]=' ';twodata[6]=d[0]; twodata[7]=d[1];twodata[8]=d[2];twodata[9]='.';twodata[10]=d[3];
 223   2                        twodata[11]=d[4]; twodata[12]=d[5];twodata[13]=' ';twodata[14]='H';twodata[15]='z';//送到第二行数组里
 224   2                        }
 225   1      
 226   1                        if(f>=10&&f<100)     //10<=F<100
 227   1                        {
 228   2                 twodata[5]=' ';twodata[6]=' '; twodata[7]=d[1];twodata[8]=d[2];twodata[9]='.';twodata[10]=d[3];
 229   2                         twodata[11]=d[4]; twodata[12]=d[5];twodata[13]=' ';twodata[14]='H';twodata[15]='z';//送到第二行数组里
 230   2                        }
 231   1      
 232   1                        if(f<10)     //F<10
 233   1                        {
 234   2                 twodata[5]=' ';twodata[6]=' '; twodata[7]=' ';twodata[8]=d[2];twodata[9]='.';twodata[10]=d[3];
 235   2                         twodata[11]=d[4]; twodata[12]=d[5];twodata[13]=' ';twodata[14]='H';twodata[15]='z';//送到第二行数组里
 236   2                         }
C51 COMPILER V7.20   PCA_LCD                                                               09/14/2008 19:58:08 PAGE 5   

 237   1                
 238   1      
 239   1                      P2 = 0x80;
 240   1                      P7 = 0xc0;
 241   1                      P2 = 0x00;              
 242   1                      P2 = 0x80;              
 243   1                      delay(1000);
 244   1                    lcdpoint=&twodata;
 245   1                  for(i=0;i<16;i++)               //显示第二行字符
 246   1                  { 
 247   2                          lcddata=*lcdpoint;
 248   2                          P7 = lcddata; 
 249   2                          P2 = 0xA0;                   //修改后的LCD程序
 250   2                  P2 = 0x20;
 251   2                      lcdpoint++;
 252   2                              delay(5000);
 253   2                      }
 254   1              
 255   1      }
 256          
 257          
 258          //---LCD初始化----------------------------------------
 259          void LCD_Init(void)
 260          {  
 261   1         P2 = 0X80;
 262   1         delay(5000);             //delay(50000);
 263   1      
 264   1             //P7 = 0x30;                             //一行显示
 265   1         //LCD_BUSY();
 266   1         P7 = 0x38;                           //两行显示
 267   1         P2 = 0X00;//0x08;
 268   1         P2 = 0X80;//0x09; 
 269   1         delay(1000);
 270   1      
 271   1         P7 = 0x0e;
 272   1         P2 = 0x00;
 273   1         P2 = 0x80;
 274   1         delay(1000);
 275   1      
 276   1         P7 = 0x06;
 277   1         P2 = 0x00;
 278   1         P2 = 0x80;
 279   1         delay(5000);
 280   1       
 281   1         P7 = 0x01;
 282   1         P2 = 0x00;
 283   1         P2 = 0x80; 
 284   1         delay(5000);
 285   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2032    ----
   CONSTANT SIZE    =     32    ----
   XDATA SIZE       =   ----      32
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     17      39
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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