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

📄 main.c.lst

📁 包括ARM开发环境的使用和一些调试用的源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 286   2            key_store[2][0]=tempp;
 287   2            if(key_close)
 288   2            {       
 289   3               tempp=key_store[0][0]&key_store[1][0]&key_store[2][0];
 290   3               if(tempp==0x07)
 291   3               key_close=0;
 292   3            }
 293   2            else
 294   2            {
 295   3               if(key_store[0][0]==key_store[0][1])
 296   3               {
 297   4                  tempp=key_store[0][0];
 298   4                                      tempp|=0xf8;
 299   4                  tempp=~tempp;
 300   4                  if(tempp!=0)
 301   4                  {
 302   5                     tempp=tige(tempp);
C51 COMPILER V7.06   MAIN_C                                                                06/13/2003 10:55:13 PAGE 6   

 303   5                     if(tempp<3)
 304   5                     {
 305   6                        key_code1=keynumber[tempp];
 306   6                        key_tag=1;
 307   6                        key_close=1;
 308   6                     }
 309   5                  }
 310   4               }
 311   3               if(key_store[1][0]==key_store[1][1])
 312   3               {
 313   4                  tempp=key_store[1][0];
 314   4                                      tempp|=0xf8;
 315   4                  tempp=~tempp;
 316   4               
 317   4                  if(tempp!=0)
 318   4                  {
 319   5                     tempp=tige(tempp);
 320   5                     if(tempp<3)
 321   5                     {
 322   6                        tempp=tempp+3;
 323   6                        key_code2=keynumber[tempp];
 324   6                        key_tag=1;
 325   6                        key_close=1;
 326   6                     }
 327   5                  }
 328   4               }
 329   3               if(key_store[2][0]==key_store[2][1])
 330   3               {
 331   4                  tempp=key_store[2][0];
 332   4                                      tempp|=0xf8;
 333   4                  tempp=~tempp;
 334   4                  if(tempp==6)
 335   4                  {
 336   5                        key_code3=FORUP;
 337   5                        key_tag=1;
 338   5                        key_close=1;
 339   5                  }
 340   4                  if(tempp!=0)
 341   4                  {
 342   5                     tempp=tige(tempp);
 343   5                     if(tempp<3)
 344   5                     {
 345   6                        tempp=tempp+6;
 346   6                        key_code3=keynumber[tempp];
 347   6                        key_tag=1;
 348   6                        key_close=1;
 349   6                     }
 350   5                  }
 351   4               }
 352   3            }
 353   2         }
 354   1      }
 355          /*********************************
 356          液晶清屏函数
 357          **********************************/
 358          void cleardisp(void)
 359          {
 360   1         uchar i=0,j;
 361   1         for(j=0;j<8;j++)
 362   1         {
 363   2             LCM12864(i,j,0,128,0);
 364   2         }
C51 COMPILER V7.06   MAIN_C                                                                06/13/2003 10:55:13 PAGE 7   

 365   1      }
 366          /*********************************
 367                    停止界面函数
 368          ************************************/
 369          void interfaceStop(void)
 370          {
 371   1         MuchPageDisp(stop,0, 10,67,4);
 372   1         MuchPageDisp(plist0,4, 10,98,2);
 373   1         MuchPageDisp(plist1,6, 10,90,2);
 374   1      }
 375          
 376          /*********************************
 377           运行主界面函数
 378          ***********************************/
 379          void interfaceRun(void)
 380          {
 381   1         MuchPageDisp(run,0, 10,52,4);
 382   1         MuchPageDisp(fwd,1, 75,37,2);
 383   1         MuchPageDisp(plist0,4, 10,98,2);
 384   1         MuchPageDisp(plist1,6, 10,90,2);
 385   1      }
 386          /********************************
 387          字体合并一行显示
 388          *********************************/
 389          uchar idata  fingersbuf[10];
 390          void combinline(uchar finger1,uchar finger2,finger3,finger4,uchar finger5,uchar finger6,uchar finger7,ucha
             -r finger8,uchar finger9,uchar finger10)
 391          {
 392   1         fingersbuf[0]=finger1;
 393   1         fingersbuf[1]=finger2;
 394   1         fingersbuf[2]=finger3;
 395   1         fingersbuf[3]=finger4;
 396   1         fingersbuf[4]=finger5;
 397   1         fingersbuf[5]=finger6;
 398   1         fingersbuf[6]=finger7;
 399   1         fingersbuf[7]=finger8;
 400   1         fingersbuf[8]=finger9;
 401   1         fingersbuf[9]=finger10;
 402   1      }
 403                
 404          /************************************
 405          数码管动态显示以及LCD刷新显示
 406          *************************************/
 407          uint time;
 408          uint lcdrefreshtime;
 409          uint lcdcount;
 410          extern uchar  dispnum[4];
 411          uint back;
 412          uchar page;
 413          uchar state;
 414          void intt0(void)  interrupt 1
 415          {
 416   1         TH0=0x3C;      //2.5ms
 417   1         TL0=0xB0;
 418   1         lcdrefreshtime++;
 419   1         time++;
 420   1         if(time>=50000)//for 0.05s
 421   1         {
 422   2            if((page==2)||(page==3)||(page==4))
 423   2            {
 424   3               back++;
 425   3               if(back>30000)
C51 COMPILER V7.06   MAIN_C                                                                06/13/2003 10:55:13 PAGE 8   

 426   3               {  back=0;
 427   4                  if(state==0)//stop condition
 428   4                  {
 429   5                     cleardisp();
 430   5                     interfaceStop();
 431   5                     page=0;
 432   5                     state=0;
 433   5                     
 434   5                  }
 435   4                  if(state==1)//run condition
 436   4                  {
 437   5                     cleardisp();
 438   5                     interfaceRun();
 439   5                     page=1;
 440   5                     state=1;
 441   5                     
 442   5                  }
 443   4               }
 444   3            }
 445   2         }
 446   1            
 447   1         if(lcdrefreshtime>50000)//0.05s
 448   1         {  lcdrefreshtime=0;
 449   2            lcdcount++;
 450   2            if(lcdcount>=60000)
 451   2            {  lcdcount=0;
 452   3               if((state==0)&&(page==0))
 453   3               {
 454   4                     cleardisp();
 455   4                     interfaceStop();
 456   4               }
 457   3               if((state==1)&&(page==1))
 458   3               {
 459   4                  cleardisp();
 460   4                  interfaceRun();
 461   4               }
 462   3            }
 463   2            
 464   2         }
 465   1         //if(time>1600)
 466   1         //{
 467   1         // time=0;
 468   1         // ddbit=!ddbit;
 469   1         //}
 470   1         //if(ledchange==4)
 471   1         //{
 472   1         // ledchange=0;
 473   1         //}
 474   1      // CTCOM1=1;
 475   1      // CTCOM2=1;
 476   1      // CTCOM3=1;
 477   1      // CTCOM4=1;
 478   1         //if(ledchange==0)
 479   1         //{
 480   1         // P0=led[dispnum[ledchange]];
 481   1      /*    CTK=1;
 482   1            CTK=0;
 483   1            CTK=1;
 484   1            CTCOM1=0;
 485   1         }
 486   1         else if(ledchange==1)
 487   1         {
C51 COMPILER V7.06   MAIN_C                                                                06/13/2003 10:55:13 PAGE 9   

 488   1            if(dotflag)
 489   1               P0=led[dispnum[ledchange]];
 490   1            else P0=led[dispnum[ledchange]]|led[10];     //加小数点
 491   1      
 492   1            CTK=1;
 493   1            CTK=0;
 494   1            CTK=1;
 495   1            CTCOM2=0;
 496   1         }
 497   1         else if(ledchange==2)
 498   1         {
 499   1            if(!dotflag)
 500   1               P0=led[dispnum[ledchange]];
 501   1            else P0=led[dispnum[ledchange]]|led[10];     //加小数点
 502   1            P0=led[dispnum[ledchange]];
 503   1            CTK=1;
 504   1            CTK=0;
 505   1            CTK=1;
 506   1            CTCOM3=0;
 507   1         }
 508   1         else if(ledchange==3)
 509   1         {
 510   1            P0=led[dispnum[ledchange]];
 511   1            CTK=1;
 512   1            CTK=0;
 513   1            CTK=1;
 514   1            CTCOM4=0;
 515   1         }
 516   1         ledchange++;*/
 517   1      }
 518          
 519          /**********************************8
 520          指示移位
 521          ************************************/
 522          void fingermove(uchar a,bit b,bit d)
 523          {
 524   1         uchar temb;
 525   1         if(d)
 526   1         {
 527   2            if(b)//指针up
 528   2            {
 529   3               temb=a-2;   
 530   3               LCM12864(0,temb,0,16,0);
 531   3               LCM12864(0,temb+1,0,16,0);
 532   3               fingersbuf[0]=40;
 533   3               DispPage2(fingersbuf,a,0,1,2);
 534   3            }
 535   2            else //down
 536   2            {
 537   3               temb=a+2;
 538   3               LCM12864(0,temb,0,16,0);
 539   3               LCM12864(0,temb+1,0,16,0);
 540   3               fingersbuf[0]=40;
 541   3               DispPage2(fingersbuf,a,0,1,2);
 542   3            }
 543   2         }
 544   1         else
 545   1         {
 546   2            fingersbuf[0]=40;
 547   2            temb=a;
 548   2            DispPage2(fingersbuf,temb,0,1,2);
 549   2         }
C51 COMPILER V7.06   MAIN_C                                                                06/13/2003 10:55:13 PAGE 10  

 550   1      }
 551          /****************************************
 552           系统处理
 553          **************************************/
 554          uchar  page;
 555          uchar  state;
 556          bit   port;//port=0 为鍵面操作,port=1为端口操作.
 557          uchar idata Fcount;//F 项位置定位。
 558          uchar idata Ecount;//E项位置 定位。
 559          uchar idata Ccount;//C项位置 定位。
 560          uchar idata Hcount;//H项位置 定位。
 561          uchar idata Ucount;//P项位置定位。
 562          uchar idata Pcount;
 563          uchar idata Mcount;//菜单位置 定位。
 564          bit   stopfirst;
 565          bit   runfirst;
 566          uchar idata movepin;
 567          uchar idata IOcount;
 568          uchar idata runcount;
 569          uchar managemenu(void)
 570          {
 571   1            uchar subb;
 572   1            if((state==0)&&(page==0)&&(stopfirst==0))
 573   1            {  cleardisp();
 574   2               interfaceStop();
 575   2               stopfirst=1;
 576   2            
 577   2            }

⌨️ 快捷键说明

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