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

📄 main.lst

📁 包括ARM开发环境的使用和一些调试用的源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 249          *********************************/
 250          uchar  tige(uchar keydata)
 251          {
 252   1              uchar j=0xfe;
 253   1              switch(keydata)
 254   1              {
 255   2                      case 1: j=0;            break;
 256   2                      case 2: j=1;            break;
 257   2                      case 4: j=2;            break;
 258   2                      default:        j=0xfe;         break;
 259   2              }
 260   1              return j;
 261   1      }
 262          
 263          
 264          
 265          
 266          /**************************************************
 267              读按键
 268          ****************************************************/
 269          
 270          #define  key_scan  P1
 271          uchar key_store[3][3];
 272          uchar key_code1;
 273          uchar key_code2;
 274          uchar key_code3;
 275          uchar key_code;
 276          bit   key_close;//鍵码释放变量。
 277          bit   key_tag;//按键变量。
 278          sbit  L1=P1^0;
 279          sbit  L2=P1^1;
 280          sbit  L3=P1^2;
 281          uchar key_count;
 282          void  readkey(void)
 283          {
 284   1              uchar tempp;
 285   1         key_count++;
 286   1              if(key_count>120)
 287   1              {
 288   2                      key_count=0;
 289   2                      L1=0;
 290   2                      L2=1;
 291   2                      L3=1;
 292   2                      key_scan=key_scan|0x38;
 293   2                      tempp=key_scan;
 294   2                      tempp>>=3;
 295   2                      tempp&=0x07;
 296   2                      key_store[0][2]=key_store[0][1];
 297   2                      key_store[0][1]=key_store[0][0];
 298   2                      key_store[0][0]=tempp;
 299   2      
 300   2                      L1=1;
 301   2                      L2=0;
 302   2                      L3=1;
C51 COMPILER V7.06   MAIN                                                                  06/14/2003 11:25:10 PAGE 6   

 303   2                      key_scan|=0x38;
 304   2                      tempp=key_scan;
 305   2                      tempp>>=3;
 306   2                      tempp&=0x07;
 307   2                      key_store[1][2]=key_store[1][1];
 308   2                      key_store[1][1]=key_store[1][0];
 309   2                      key_store[1][0]=tempp;
 310   2      
 311   2                      L1=1;
 312   2                      L2=1;
 313   2                      L3=0;
 314   2                      key_scan|=0x38;
 315   2            tempp=key_scan;
 316   2                      tempp>>=3;
 317   2                      tempp&=0x07;
 318   2                      key_store[2][2]=key_store[2][1];
 319   2                      key_store[2][1]=key_store[2][0];
 320   2              key_store[2][0]=tempp;
 321   2                      if(key_close)
 322   2                      {
 323   3                              tempp=key_store[0][0]&key_store[1][0]&key_store[2][0];
 324   3                              if(tempp==0x07)
 325   3                              key_close=0;
 326   3                      }
 327   2                      else
 328   2                      {
 329   3                              if(key_store[0][0]==key_store[0][1])
 330   3                              {
 331   4                                      tempp=key_store[0][0];
 332   4                                      tempp|=0xf8;
 333   4                                      tempp=~tempp;
 334   4                                      if(tempp!=0)
 335   4                                      {
 336   5                                              tempp=tige(tempp);
 337   5                                              if(tempp<3)
 338   5                                              {
 339   6                                                      key_code=keynumber[tempp];
 340   6                                                      key_tag=1;
 341   6                                                      key_close=1;
 342   6      
 343   6                                              }
 344   5                                      }
 345   4                              }
 346   3                              if(key_store[1][0]==key_store[1][1])
 347   3                              {
 348   4                                      tempp=key_store[1][0];
 349   4                                      tempp|=0xf8;
 350   4                                      tempp=~tempp;
 351   4                                      if(tempp!=0)
 352   4                                      {
 353   5                                              tempp=tige(tempp);
 354   5                                              if(tempp<3)
 355   5                                              {
 356   6                                                      tempp=tempp+3;
 357   6                                                      key_code=keynumber[tempp];
 358   6                                                      key_tag=1;
 359   6                                                      key_close=1;
 360   6      
 361   6                                              }
 362   5                                      }
 363   4                              }
 364   3                              if((key_store[2][0]&0x07)==0x01)
C51 COMPILER V7.06   MAIN                                                                  06/14/2003 11:25:10 PAGE 7   

 365   3                              {
 366   4                                              key_code=FORDOWN;
 367   4                                              key_tag=1;
 368   4                                              key_close=1;
 369   4                              }
 370   3                              if(key_store[2][0]==key_store[2][1])
 371   3                              {
 372   4                                      tempp=key_store[2][0];
 373   4                                      tempp|=0xf8;
 374   4                                      tempp=~tempp;
 375   4                                      if(tempp!=0)
 376   4                                      {
 377   5                                              tempp=tige(tempp);
 378   5                                              if(tempp<3)
 379   5                                              {
 380   6                                                      tempp=tempp+6;
 381   6                                                      key_code=keynumber[tempp];
 382   6                                                      key_tag=1;
 383   6                                                      key_close=1;
 384   6      
 385   6                                              }
 386   5                                      }
 387   4                              }
 388   3                              if(((key_store[1][0]&0x07)==0x06)&&((key_store[2][0]&0x07)==0x05))
 389   3                                         key_code=FORUP;
 390   3      
 391   3                      }
 392   2              }
 393   1      }
 394          /*********************************
 395          液晶清屏函数
 396          **********************************/
 397          void cleardisp(void)
 398          {
 399   1              uchar i=0,j;
 400   1              for(j=0;j<8;j++)
 401   1              {
 402   2                  LCM12864(i,j,0,128,0);
 403   2              }
 404   1      }
 405          /*********************************
 406                    停止界面函数
 407          ************************************/
 408          void interfaceStop(void)
 409          {
 410   1              MuchPageDisp(stop,0, 10,67,4);
 411   1              MuchPageDisp(plist0,4, 10,98,2);
 412   1              MuchPageDisp(plist1,6, 10,90,2);
 413   1      }
 414          
 415          /*********************************
 416           运行主界面函数
 417          ***********************************/
 418          void interfaceRun(void)
 419          {
 420   1              MuchPageDisp(run,0, 10,52,4);
 421   1              MuchPageDisp(fwd,1, 75,37,2);
 422   1              MuchPageDisp(plist0,4, 10,98,2);
 423   1              MuchPageDisp(plist1,6, 10,90,2);
 424   1      }
 425          /********************************
 426          字体合并一行显示
C51 COMPILER V7.06   MAIN                                                                  06/14/2003 11:25:10 PAGE 8   

 427          *********************************/
 428          uchar idata  fingersbuf[10];
 429          void combinline(uchar finger1,uchar finger2,finger3,finger4,uchar finger5,uchar finger6,uchar finger7,ucha
             -r finger8,uchar finger9,uchar finger10)
 430          {
 431   1              fingersbuf[0]=finger1;
 432   1              fingersbuf[1]=finger2;
 433   1              fingersbuf[2]=finger3;
 434   1              fingersbuf[3]=finger4;
 435   1              fingersbuf[4]=finger5;
 436   1              fingersbuf[5]=finger6;
 437   1              fingersbuf[6]=finger7;
 438   1              fingersbuf[7]=finger8;
 439   1              fingersbuf[8]=finger9;
 440   1              fingersbuf[9]=finger10;
 441   1      }
 442          
 443          /************************************
 444          数码管动态显示以及LCD刷新显示
 445          *************************************/
 446          uint time;
 447          uint lcdrefreshtime;
 448          uint lcdcount;
 449          extern uchar  dispnum[4];
 450          uint back;
 451          uchar page;
 452          uchar state;
 453          void intt0(void)        interrupt 1
 454          {
 455   1              TH0=0x3C;               //2.5ms
 456   1              TL0=0xB0;
 457   1              lcdrefreshtime++;
 458   1              time++;
 459   1              if(time>=50000)//for 0.05s
 460   1              {
 461   2                      if((page==2)||(page==3)||(page==4))
 462   2                      {
 463   3                              back++;
 464   3                              if(back>30000)
 465   3                              {       back=0;
 466   4                                      if(state==0)//stop condition
 467   4                                      {
 468   5                                              cleardisp();
 469   5                                              interfaceStop();
 470   5                                              page=0;
 471   5                                              state=0;
 472   5      
 473   5                                      }
 474   4                                      if(state==1)//run condition
 475   4                                      {
 476   5                                              cleardisp();
 477   5                                              interfaceRun();
 478   5                                              page=1;
 479   5                                              state=1;
 480   5      
 481   5                                      }
 482   4                              }
 483   3                      }
 484   2              }
 485   1      
 486   1              if(lcdrefreshtime>50000)//0.05s
 487   1              {       lcdrefreshtime=0;
C51 COMPILER V7.06   MAIN                                                                  06/14/2003 11:25:10 PAGE 9   

 488   2                      lcdcount++;
 489   2                      if(lcdcount>=60000)
 490   2                      {       lcdcount=0;
 491   3                              if((state==0)&&(page==0))
 492   3                              {
 493   4                                              cleardisp();
 494   4                                              interfaceStop();
 495   4                              }
 496   3                              if((state==1)&&(page==1))
 497   3                              {
 498   4                                      cleardisp();
 499   4                                      interfaceRun();
 500   4                              }
 501   3                      }
 502   2      
 503   2              }
 504   1              //if(time>1600)
 505   1              //{

⌨️ 快捷键说明

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