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

📄 windows.lst

📁 用keil开发的.单片机税控器程序.单片机用的是AT公司的.upsd3245
💻 LST
📖 第 1 页 / 共 5 页
字号:
 231   4                                      StartLn = 1;
 232   4                                      CurLn = 1;
 233   4                              }
 234   3                              break;
 235   3      
 236   3                              case K_RIGHT:
 237   3                                                      if(MenuLen>4)
 238   3                                      {
C51 COMPILER V8.01   WINDOWS                                                               03/28/2006 09:48:48 PAGE 5   

 239   4                                              if((StartLn+4)<=MenuLen)
 240   4                                      {
 241   5                                              if((StartLn+4)<=MenuLen-4)
 242   5                                      {
 243   6                                              StartLn+=4;
 244   6                                              CurLn+=4;
 245   6                                      }
 246   5                                      else
 247   5                                      {
 248   6                                              StartLn = MenuLen-4+1;
 249   6                                              CurLn = MenuLen-4+1;
 250   6                                      }
 251   5                                      }
 252   4                                      else
 253   4                                      {
 254   5                                              StartLn = MenuLen-4+1;
 255   5                                              CurLn = MenuLen;
 256   5                                      }
 257   4                              }
 258   3                              break;
 259   3      
 260   3                  default:
 261   3                                      for(i=0;i<k;i++)
 262   3                              {
 263   4                                      if(key[i]==val)
 264   4                                      {
 265   5                                      key[0] = val;
 266   5                                      return CurLn;
 267   5                                      }
 268   4                              }
 269   3                              continue;
 270   3              }
 271   2              }
 272   1      }
 273          
 274          void DelGb18030(uchar *str)
 275          {
 276   1              uchar i,j,k;
 277   1              
 278   1              i=0;
 279   1              j=0;
 280   1              while(str[i]!=0)
 281   1              {
 282   2                      if(str[i]<0x80)
 283   2                      {
 284   3                              j=1;
 285   3                              i++;
 286   3                      }
 287   2                      else
 288   2      //              if(str[i]>=0x81)
 289   2                      {
 290   3                              i++;
 291   3                              if(str[i]>=0x40)
 292   3                              {
 293   4                                      j=2;
 294   4                                      i++;
 295   4                              }
 296   3                              else
 297   3                              {
 298   4                                      j=4;
 299   4                                      i+=3;
 300   4                              }
C51 COMPILER V8.01   WINDOWS                                                               03/28/2006 09:48:48 PAGE 6   

 301   3                      }
 302   2              }
 303   1              i--;
 304   1              for(k=0;k<j;k++)
 305   1                      str[i-k]=0;
 306   1      }               
 307          
 308          uchar DisMenuMode(uchar no,uchar MenuLen,uchar *InputLocation,uchar *key)
 309          {
 310   1              uchar i,j,k,val;
 311   1              uchar StartLn, CurLn;
 312   1              uchar SelectInput=0;
 313   1              uchar const TotalInput = 5;
 314   1              uchar CharBuff[30];
 315   1              uchar KeyPress;
 316   1              gyt4 num,*xp;
 317   1              bit flg;
 318   1      
 319   1              if(no==0) no = 1;
 320   1              CurLn = no;
 321   1              if(no<=4)
 322   1                      StartLn = 1;
 323   1              else
 324   1                      StartLn = no-3;
 325   1      
 326   1              KeyPress=key[0];
 327   1              while(1)
 328   1          {
 329   2              Dis4HintMode(StartLn, CurLn,InputLocation);
 330   2              ScrollBar(CurLn,MenuLen);
 331   2              k=CurLn-1;
 332   2              switch(WinDat[k][0])
 333   2              {
 334   3                      //case 7 8 与 case 1 2 的位置不能调换
 335   3                      case 7:
 336   3                      case 8: ScanerIni();   //初始化扫描仪
 337   3                      case 1:
 338   3                      case 2:
 339   3                                      xp = &WinDat[k][2];
*** WARNING C182 IN LINE 339 OF WINDOWS.C: pointer to different objects
 340   3                                      num.dat = xp->dat;
 341   3                              val = WinDat[k][1] | 0x80;      //允许输入最大长度
 342   3                                              if(WinDat[k][0]==1 || WinDat[k][0]==7)//输入整数
 343   3                                                      num.dat = GetInt((CurLn-StartLn)*16,InputLocation[k],num.dat,val,0,key);
 344   3                                              else    //输入小数
 345   3                                                      num.dat = GetFloat((CurLn-StartLn)*16,InputLocation[k],num.dat,val,key);
 346   3                              if(key[0] == 0)
 347   3                                                      return 0xf0;    //扫描仪输入返回
 348   3                              else
 349   3                                      xp->dat = num.dat;
 350   3                                              val = key[0];
 351   3                                              key[0] = KeyPress;
 352   3                                              break;
 353   3      
 354   3                      case 3: memset(CharBuff,0,sizeof(CharBuff));
 355   3                                      if(SelectInput == 0)    //拼音输入法
 356   3                                  {
 357   4                                      val = ImeInput(CharBuff);
 358   4                                  }
 359   3                                  if(SelectInput==1)          //区位输入法
 360   3                              {
 361   4                                      val = QuWeiInput(48,32,CharBuff);
C51 COMPILER V8.01   WINDOWS                                                               03/28/2006 09:48:48 PAGE 7   

 362   4                              }
 363   3                              if(SelectInput==2)      //英语输入法
 364   3                          {
 365   4                              val = EnglishInput(48,32,CharBuff);
 366   4                          }
 367   3                                              if(SelectInput==3)      //手写板输入
 368   3                          {
 369   4                              val = ManuscriptInput(48,32,CharBuff);
 370   4                          }
 371   3                          if(SelectInput==4)
 372   3                          {
 373   4                              val = Gb18030Input(CharBuff);
 374   4                          }
 375   3                          j = strlen(&WinDat[k][2]);
 376   3                              if(j<WinDat[k][1])
 377   3                              {
 378   4                                      strncpy(&WinDat[k][j+2],CharBuff,WinDat[k][1]-j);
 379   4                              }
 380   3                          break;
 381   3      
 382   3                      case 4: xp = &WinDat[k][2];             //输入密码
*** WARNING C182 IN LINE 382 OF WINDOWS.C: pointer to different objects
 383   3                                      num.dat = xp->dat;
 384   3                              val = WinDat[k][1] | 0x80;      //允许输入最大长度
 385   3                              num.dat = GetInt((CurLn-StartLn)*16,InputLocation[k],num.dat,val,1,key);
 386   3                              xp->dat = num.dat;
 387   3                              val = key[0];
 388   3                              key[0] = KeyPress;
 389   3                              break;
 390   3      
 391   3                      //case 5 与 case 6 的位置不能调换
 392   3                      case 6: ScanerIni();                            //初始化扫描仪
 393   3                                              while(1)
 394   3                                              {
 395   4                                                      val = GetKey();
 396   4                                                  if(val!=0xff)
 397   4                                                      {
 398   5                                                              if(val==K_TM)
 399   5                                                          {
 400   6                                                              IEA &= 0xEF;            //禁止扫描仪输入的串口中断
 401   6      //                                                              WinDat[k][0] = 5;       //切换到键盘输入,
 402   6                                                                      flg=0;  //继续执行case 5:
 403   6                                                                  break;
 404   6                                                              }
 405   5                                                              if((val==K_UP)||(val==K_DOWN)||(val==K_LEFT)||(val==K_RIGHT)||(val==K_TC)||(val==K_HJ))
 406   5                                                              {
 407   6                                                                      IEA &= 0xEF;            //禁止扫描仪输入的串口中断
 408   6                                                                      flg=1;
 409   6                                                                      break;
 410   6                                                              }
 411   5                                                      }
 412   4                                                  if(RxdFlg)
 413   4                                                      {//收到条形码
 414   5                                                              IEA &= 0xEF;                    //关描仪输入的串口中断
 415   5      //                                                      UartTxd(15,&RxdBuf[200]);
 416   5                                                              RxdBuf[213] = 0;
 417   5                                                          StrToBcd(WinDat[k][1],&RxdBuf[200],&WinDat[k][2]);
 418   5      //                                                  UartTxd(8,&WinDat[k][2]);
 419   5                                                              val = 0;
 420   5                                                              flg=1;
 421   5                                                              RxdFlg=0;
 422   5                                                              break;
C51 COMPILER V8.01   WINDOWS                                                               03/28/2006 09:48:48 PAGE 8   

 423   5                                                      }
 424   4                                              }
 425   3                                              if(flg==1)break;
 426   3                              case 5:                                         //输入BCD码;
 427   3                              val = GetBcd((CurLn-StartLn)*16,InputLocation[k],&WinDat[k][2],WinDat[k][1]|0x80,key);
 428   3                              key[0] = KeyPress;;
 429   3                                          break;
 430   3      
 431   3                      default:val = ScanNumber(0,0,0,0);
 432   3                                      if(val<11)continue;
 433   3                                      break;
 434   3              }
 435   2      //      val&=0x7F;
 436   2              switch(val)
 437   2                      {
 438   3                              case K_UP:              if(CurLn>StartLn)
 439   3                                                              CurLn--;
 440   3                                                      else
 441   3                                                      {
 442   4                                                              CurLn--;
 443   4                                                              StartLn--;
 444   4                                                          if((CurLn<1) || (StartLn<1))
 445   4                                                          {
 446   5                                                              CurLn = MenuLen;
 447   5                                                              if(MenuLen>3)
 448   5                                                              {
 449   6                                                                      StartLn = MenuLen - 3;
 450   6                                                              }
 451   5                                                              else
 452   5                                                              {
 453   6                                                                      StartLn = 1;
 454   6                                                              }
 455   5                                                          }
 456   4                                                      }
 457   3                                                      break;
 458   3      
 459   3                              case K_DOWN:    if(CurLn<(StartLn+3))
 460   3                                              {
 461   4                                                      CurLn++;
 462   4                                                      if(CurLn>MenuLen)
 463   4                                                      {
 464   5                                                              CurLn = 1;
 465   5                                                              StartLn = 1;
 466   5                                                      }
 467   4                                              }
 468   3                                              else

⌨️ 快捷键说明

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