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

📄 led.lst

📁 用keil开发的.单片机税控器程序.单片机用的是AT公司的.upsd3245
💻 LST
📖 第 1 页 / 共 5 页
字号:
 277   1              switch(bi)
 278   1              {
 279   2                      
 280   2                      case 1:
 281   2              
 282   2                      temp |=0x0800;
 283   2                      break;
 284   2                      case 2:
 285   2              
 286   2                      temp |=0x0900;
 287   2                      break;
 288   2                      case 3:
 289   2              
 290   2                      temp |=0x0a00;
 291   2                      break;
 292   2                      case 4:
 293   2              
 294   2                      temp |=0x0b00;
 295   2                      break;
 296   2                      case 5:
 297   2      
 298   2                      temp |=0x0c00;
 299   2                      break;
 300   2                      case 6:
 301   2              
 302   2                      temp |=0x0d00;
 303   2                      break;
C51 COMPILER V7.50   LED                                                                   08/30/2005 17:12:03 PAGE 6   

 304   2                      case 7:
 305   2              
 306   2                      temp |=0x0e00;
 307   2                      break;
 308   2                      case 8:
 309   2              
 310   2                      temp |=0x0f00;
 311   2                      break;          
 312   2                      default:break;
 313   2              }
 314   1              switch(dat)
 315   1              {
 316   2                      case 0:
 317   2                              temp |=0x3f;
 318   2                      break;
 319   2                      case 1:
 320   2                              temp |=0x06;
 321   2                      break;
 322   2                      case 2:
 323   2                              temp |=0x5b;
 324   2                      break;
 325   2                      case 3:
 326   2                              temp |=0x4f;
 327   2                      break;
 328   2                      case 4:
 329   2                              temp |=0x66;
 330   2                      break;
 331   2                      case 5:
 332   2                              temp |=0x6d;
 333   2                      break;
 334   2                      case 6:
 335   2                              temp |=0x7d;
 336   2                      break;
 337   2                      case 7:
 338   2                              temp |=0x07;
 339   2                      break;
 340   2                      case 8:
 341   2                              temp |=0x7f;
 342   2                      break;
 343   2                      case 9:
 344   2                              temp |=0x6f;
 345   2                      break;
 346   2                      case 10:
 347   2                              temp |=0x77;
 348   2                      break;
 349   2                      case 11:
 350   2                              temp |=0x7c;
 351   2                      break;
 352   2                      case 12:
 353   2                              temp |=0x58;
 354   2                      break;
 355   2                      case 13:
 356   2                              temp |=0x5e;
 357   2                      break;
 358   2                      case 14:
 359   2                              temp |=0x79;
 360   2                      break;
 361   2                      case 15:
 362   2                              temp |=0x71;
 363   2                      break;
 364   2                      default:break;
 365   2              }
C51 COMPILER V7.50   LED                                                                   08/30/2005 17:12:03 PAGE 7   

 366   1      
 367   1              I2cStart();
 368   1              if(CH452CS==1)
 369   1              {
 370   2                      CH452_I2c_WrByte(((unsigned char)(temp>>7)&0x3E)|0x60);  // CH452的ADDR=1时(默认)
 371   2              }
 372   1              else if(CH452CS==2)
 373   1              {
 374   2                      CH452_I2c_WrByte(((unsigned char)(temp>>7)&0x3E)|0x40);
 375   2              }
 376   1              CH452_I2c_WrByte((unsigned char)temp);               /*发送数据*/
 377   1              I2cStop();                 /*结束总线*/ 
 378   1      
 379   1      
 380   1      
 381   1      } 
 382          //-------------------------------------------------------
 383          void VfdDisplayInt(uchar *str,uchar MaxNum,uchar Pwd)
 384          {       
 385   1              uchar i,j=0,k,m,w=0,len,add=0;
 386   1              uchar buff[30]; 
 387   1              uchar temp[30];
 388   1      
 389   1              len=strlen(str);
 390   1              if(len==0)
 391   1              {
 392   2                      CH452_Init();
 393   2                      return;
 394   2              }
 395   1              if(len>20)len=20;
 396   1              for(i=0;i<30;i++)
 397   1              {
 398   2                      buff[i]=0;
 399   2                      temp[i]=0;
 400   2              }
 401   1              CH452_Init();   
 402   1              if(Pwd==0)
 403   1              {               
 404   2                      for(i=0;i<len;i++)
 405   2                      {
 406   3                              if(str[i]=='.')j=i;     
 407   3                      }
 408   2      
 409   2                      for(i=0;i<len;i++)
 410   2                      {
 411   3      
 412   3                              if(str[i]!='.')
 413   3                              {
 414   4                                      buff[add]=str[i];
 415   4                                      add++;
 416   4                                      w +=1;
 417   4                              }
 418   3                      }
 419   2                      for(i=0;i<20;i++)
 420   2              {
 421   3                      if(buff[i]<='9' && buff[i]>='0')   temp[i] = buff[i] - '0';
 422   3                      else if(buff[i]<='F' && buff[i]>='A') temp[i] = (buff[i] - 'A')+10;
 423   3                      else if(buff[i]<='f' && buff[i]>='a') temp[i] = (buff[i] - 'a')+10;
 424   3                              else temp[i] = 0x13;
 425   3              }
 426   2                      k=len-1;        
 427   2                      m=k-j;
C51 COMPILER V7.50   LED                                                                   08/30/2005 17:12:03 PAGE 8   

 428   2                      if(len>8)len=8;
 429   2                      if(k>8)len=8;
 430   2                      if(j==0)
 431   2                      {
 432   3                              for(i=0;i<len;i++)
 433   3                              {
 434   4      
 435   4                                      CH452_Disp(1,0,i+1,temp[w-1-i]);                        
 436   4                              }       
 437   3      //              CH452_Disp(2,0,1,8);
 438   3      //              CH452_Disp(2,0,2,8);
 439   3                      }
 440   2                      else
 441   2                      {
 442   3                      
 443   3                              for(i=0;i<k;i++)
 444   3                              {
 445   4                                      if(j!=0&&i==m)
 446   4                                      {
 447   5                                              CH452_Disp(1,1,i+1,temp[w-1-i]);
 448   5                                      }
 449   4                                      else
 450   4                                      {
 451   5      
 452   5                                              CH452_Disp(1,0,i+1,temp[w-1-i]);
 453   5                                      }
 454   4                              }       
 455   3                      
 456   3                      }
 457   2              
 458   2              }
 459   1              else
 460   1              {
 461   2                      for(i=0;i<len;i++)
 462   2                      {
 463   3                                      CH452_Disp(1,0,i+1,20);                 
 464   3                      }
 465   2              }
 466   1              CH452_Disp(2,0,1,8);
 467   1              CH452_Disp(2,0,2,8);
 468   1      
 469   1      }
*** WARNING C280 IN LINE 383 OF LED.C: 'MaxNum': unreferenced local variable
 470          
 471          void VfdDisStr(uchar *str)
 472          {
 473   1              
 474   1              uchar i,buff[10];
 475   1              uchar len;
 476   1              len=strlen(str);
 477   1              if(len==0)
 478   1              {
 479   2              CH452_Init();
 480   2              return; 
 481   2      
 482   2              }       
 483   1         for(i=0;i<10;i++)
 484   1          {
 485   2             if(str[i]<='9' && str[i]>='0')   buff[i] = str[i] - '0';
 486   2               else if(str[i]<='F' && str[i]>='A') buff[i] = (str[i] - 'A')+10;
 487   2                      else if(str[i]<='f' && str[i]>='a') buff[i] = (str[i] - 'a')+10;
 488   2                              else buff[i] = 0x13;
C51 COMPILER V7.50   LED                                                                   08/30/2005 17:12:03 PAGE 9   

 489   2          }
 490   1              CH452_Disp(1,0,1,buff[0]);
 491   1              CH452_Disp(1,0,2,buff[1]);
 492   1              CH452_Disp(1,0,3,buff[2]);
 493   1              CH452_Disp(1,0,4,buff[3]);
 494   1              CH452_Disp(1,0,5,buff[4]);
 495   1              CH452_Disp(1,0,6,buff[5]);
 496   1              CH452_Disp(1,0,7,buff[6]);
 497   1              CH452_Disp(1,0,8,buff[7]);
 498   1              CH452_Disp(2,0,1,buff[8]);
 499   1              CH452_Disp(2,0,2,buff[9]);
 500   1              
 501   1      }
C51 COMPILER V7.50   LED                                                                   08/30/2005 17:12:03 PAGE 10  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION Com007E (BEGIN)
0000         L?0127:
0000         L?0128:
0000 900000      R     MOV     DPTR,#temp
0003 E0                MOVX    A,@DPTR
0004 F0                MOVX    @DPTR,A
0005 A3                INC     DPTR
0006 E0                MOVX    A,@DPTR
0007 22                RET     
0008         L?0129:
0008 900000      R     MOV     DPTR,#i
000B         L?0130:
000B E0                MOVX    A,@DPTR
000C FF                MOV     R7,A
000D 04                INC     A
000E FB                MOV     R3,A
000F 900000      R     MOV     DPTR,#w
0012 E0                MOVX    A,@DPTR
0013 C3                CLR     C
0014 9F                SUBB    A,R7
0015 FF                MOV     R7,A
0016 E4                CLR     A
0017 9400              SUBB    A,#00H
0019 FE                MOV     R6,A
001A 7400        R     MOV     A,#LOW temp+0FFFFH
001C 2F                ADD     A,R7
001D F582              MOV     DPL,A
001F 7400        R     MOV     A,#HIGH temp+0FFFFH
0021 3E                ADDC    A,R6
0022 F583              MOV     DPH,A
0024 E0                MOVX    A,@DPTR
0025 900000      R     MOV     DPTR,#?_CH452_Disp?BYTE+03H
0028 F0                MOVX    @DPTR,A
0029 22                RET     
002A         L?0131:
002A         L?0132:
002A 900000      R     MOV     DPTR,#i
002D E0                MOVX    A,@DPTR
002E FF                MOV     R7,A
002F         L?0133:
002F 2400        R     ADD     A,#LOW buff
0031         L?0134:
0031 F582              MOV     DPL,A
0033 E4                CLR     A
0034 3400        R     ADDC    A,#HIGH buff
0036 F583              MOV     DPH,A
0038 22                RET     
0039         L?0135:
0039         L?0136:
0039 900000      R     MOV     DPTR,#str
003C E0                MOVX    A,@DPTR
003D FB                MOV     R3,A
003E A3                INC     DPTR
003F E0                MOVX    A,@DPTR

⌨️ 快捷键说明

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