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

📄 lcdkey03.lst

📁 个人单片机入门程序集合 。很适合刚学单片机的人。用的是keil proteus
💻 LST
📖 第 1 页 / 共 3 页
字号:
 319   1              lcd_wrcmd(0x01);
 320   1              delay(100);
 321   1      }
 322          
 323          //////////////////////////////////////////////
 324          //
 325          //    生成汉字子模函数
 326          //    当lcd_wrdata(0);显示第一个汉字
 327          //    当lcd_wrdata(1);显示第二个汉字
 328          //
 329          //////////////////////////////////////////////
 330          lcd_h()
 331          {
 332   1          uchar i;
 333   1          lcd_wrcmd(0x40);
 334   1          for(i=0;i<24;i++) lcd_wrdata(hanzi[i]);
 335   1      }
 336          
 337          
 338          welcome()
 339          {
 340   1             
 341   1             uchar temp=0x12,w;
 342   1             lcd_wrcmd(0x0c);
 343   1             lcd_wrcmd(0x82); 
 344   1                
 345   1             for(w=0;w<strlen(str1);w++)
 346   1                  lcd_wrdata(str1[w]);
 347   1             lcd_h();
 348   1             lcd_wrcmd(0xc4);
 349   1             lcd_wrdata('2'); lcd_wrdata('0');lcd_wrdata('0');lcd_wrdata('7');
 350   1             lcd_wrdata(0);
 351   1             lcd_wrdata('0');lcd_wrdata('7');
 352   1             lcd_wrdata(1);
 353   1             while(1)
 354   1             {                                                           
 355   2                 temp=getkey();
 356   2                 if(temp!=0xff)    //按任意键跳转
 357   2                 {
 358   3                     state=1;  
 359   3                     lcd_wrcmd(1);
 360   3                     break;
 361   3                 }
 362   2             }
 363   1      }
 364             
C51 COMPILER V8.02   LCDKEY03                                                              07/31/2007 09:25:36 PAGE 7   

 365          
 366          phase()
 367          {
 368   1             uchar i,j,t,cnt=0;    
 369   1             lcd_wrcmd(0x0f);
 370   1             lcd_wrcmd(0xc9);
 371   1             lcd_wrdata(2);
 372   1             lcd_wrcmd(0x83);
 373   1             for(t=0;t<strlen(fre);t++)lcd_wrdata(0x30+fre[t]);
 374   1             lcd_wrcmd(0xc5);
 375   1             while(1)                  //按键处理
 376   1      
 377   1             { 
 378   2                 i=table[getkey()];
 379   2                 if(i<10)
 380   2                 {     cnt++;
 381   3                       if(cnt<=3)
 382   3                       {      
 383   4                           lcd_wrcmd(0xc5+cnt-1);
 384   4                           lcd_wrdata(0x30+i);
 385   4                       }                               
 386   3                       else
 387   3                       {
 388   4                           cnt=0;                                                              
 389   4                           lcd_wrcmd(0xc5);
 390   4                           for(j=0;j<=3;j++)
 391   4                               lcd_wrdata(' ');
 392   4                           lcd_wrcmd(0xc5);
 393   4                       }
 394   3                  }
 395   2                  else if(i==12)
 396   2                  {
 397   3                       state=1;
 398   3                       lcd_wrcmd(0x0c);
 399   3                       lcd_wrcmd(1);
 400   3                       lcd_wrcmd(0x80);
 401   3                       break;
 402   3                  }
 403   2                  else if(i==13)
 404   2                      {
 405   3                      cnt=0;                                                           
 406   3                      lcd_wrcmd(0xc5);
 407   3                      for(j=0;j<=3;j++)
 408   3                      lcd_wrdata(' ');
 409   3                      lcd_wrcmd(0xc5);    
 410   3                   }
 411   2              }
 412   1      
 413   1      
 414   1      }
 415          
 416          
 417          
 418          frequency()
 419          {      
 420   1             uchar i,j,cnt=0;  // 假如将cnt定义成全局变量,当退出这个界面时,cnt仍然保存原来的值        
 421   1             lcd_wrcmd(0x80);  //会出现光标乱跳的错误
 422   1             lcd_wrcmd(0xce);
 423   1             lcd_wrdata('H');
 424   1             lcd_wrdata('Z');
 425   1             lcd_wrcmd(0x81);
 426   1             for(i=0;i<15;i++)lcd_wrdata(str2[i]);
C51 COMPILER V8.02   LCDKEY03                                                              07/31/2007 09:25:36 PAGE 8   

 427   1             lcd_wrcmd(0x0f);
 428   1             lcd_wrcmd(0xc0);
 429   1            for(i=0;i<20;i++)   
 430   1            fre[i]=NULL;
*** WARNING C260 IN LINE 430 OF LCDKEY03.C: '=': pointer truncation
 431   1             while(1)                  //按键处理
 432   1             { 
 433   2                 i=table[getkey()];
 434   2                
 435   2                 if(i<10)
 436   2                 {     cnt++;
 437   3                       if(cnt<=10)
 438   3                       {       fre[cnt-1]=i;
 439   4                           lcd_wrcmd(0xc0+cnt-1);
 440   4                           lcd_wrdata(0x30+i);
 441   4                           
 442   4                       }                               
 443   3                       else
 444   3                       {
 445   4                           cnt=0;                                                              
 446   4                           lcd_wrcmd(0xc0);
 447   4                           for(j=0;j<=10;j++)
 448   4                               lcd_wrdata(' ');  
 449   4                       
 450   4      
 451   4                           lcd_wrcmd(0xc0);
 452   4                       }
 453   3                  }
 454   2                  else if(i==12)
 455   2                  {
 456   3                       state=1;
 457   3                       lcd_wrcmd(0x0c);
 458   3                       lcd_wrcmd(1);
 459   3                       lcd_wrcmd(0x80);
 460   3                       break;
 461   3                  }
 462   2                  else if(i==13)
 463   2                      {
 464   3                      cnt=0;                                                           
 465   3                      lcd_wrcmd(0xc0);
 466   3                      for(j=0;j<=10;j++)
 467   3                      lcd_wrdata(' ');
 468   3                      lcd_wrcmd(0xc0);    
 469   3                      }
 470   2              }
 471   1      
 472   1      }
 473          
 474          warning()
 475          {
 476   1          uchar i,ii;
 477   1          lcd_wrcmd(1);
 478   1          lcd_wrcmd(0x0c);
 479   1          lcd_wrcmd(0x83);
 480   1          for(i=0;i<9;i++)
 481   1              lcd_wrdata(warn[i]);
 482   1          lcd_wrcmd(0xc1);     
 483   1          for(i=0;i<12;i++)
 484   1              lcd_wrdata(warn[i+9]);
 485   1          while(1)
 486   1          {
 487   2              ii=getkey();
C51 COMPILER V8.02   LCDKEY03                                                              07/31/2007 09:25:36 PAGE 9   

 488   2              if(ii!=0xff)
 489   2              {
 490   3                  lcd_wrcmd(1);
 491   3                  break;
 492   3                  
 493   3              }
 494   2      
 495   2          }
 496   1      }
 497          
 498          
 499          uchar dac_convert(uchar *amp)
 500          {
 501   1          uint v;
 502   1          v=amp[2]*100+amp[1]*10+amp[0];
 503   1          if(v<500)
 504   1          {
 505   2               v=32*v;
 506   2               dac_tlc5620(v/100);
 507   2               return 0;
 508   2           }
 509   1           else
 510   1           {
 511   2               return 1;
 512   2           }
 513   1              
 514   1      }
 515          
 516          
 517          amplitude()
 518          {
 519   1           uchar i,ii;
 520   1           uchar amp[3],t=0;
 521   1           lcd_wrcmd(0x80);
 522   1           for(i=0;i<16;i++)
 523   1               lcd_wrdata(am[i]);
 524   1           lcd_wrcmd(0xcc);
 525   1           lcd_wrdata('V');
 526   1           lcd_wrcmd(0xc7);
 527   1           lcd_wrdata('.'); 
 528   1           lcd_wrcmd(0x0f);            //开光标
 529   1           lcd_wrcmd(0xc7);
 530   1           while(1)
 531   1           {
 532   2               ii=table[getkey()];
 533   2               if(ii==11)
 534   2               {
 535   3                   if(t==4)
 536   3                   {
 537   4                       if(dac_convert(amp))
 538   4                       {
 539   5                           warning();
 540   5                           break;
 541   5                        }
 542   4                   }
 543   3                   lcd_wrcmd(0x0c);
 544   3                   state=1;
 545   3                   lcd_wrcmd(1);
 546   3                   break;
 547   3               }
 548   2               if(ii<10)
 549   2               {   
C51 COMPILER V8.02   LCDKEY03                                                              07/31/2007 09:25:36 PAGE 10  

 550   3                   t++;
 551   3                   if(t==1)
 552   3                   {
 553   4                      lcd_wrcmd(0xc9);
 554   4                   }
 555   3                   if(t==2)t++;
 556   3                   if(t==1)amp[2]=ii;
 557   3                   else if(t==3)amp[1]=ii;
 558   3                   else if(t==4)amp[0]=ii;         
 559   3      
 560   3                   if(t==5)
 561   3                   {
 562   4                        t=0;
 563   4                        lcd_wrcmd(0xc7);
 564   4                        lcd_wrdata(' '); lcd_wrdata('.');lcd_wrdata(' ');lcd_wrdata(' ');
 565   4                        lcd_wrcmd(0xc7);
 566   4                   }
 567   3                   else
 568   3                   {
 569   4                        lcd_wrcmd(0xc6+t);
 570   4                        lcd_wrdata(0x30+ii);
 571   4                   }
 572   3                                       
 573   3                       
 574   3               }
 575   2      
 576   2                       
 577   2           }
 578   1          
 579   1      }
 580          
 581          inputtl()
 582          {  
 583   1          uchar i,j,n,cnt=0;
 584   1          for(i=0;i<3;i++)   
 585   1            TL[i]=NULL;
*** WARNING C260 IN LINE 585 OF LCDKEY03.C: '=': pointer truncation
 586   1          lcd_wrcmd(0x80);
 587   1          lcd_wrdata('T');
 588   1          lcd_wrdata('L');
 589   1          lcd_wrdata('=');
 590   1          while(1)
 591   1          {i=table[getkey()];
 592   2                 if(i<10)
 593   2                 {        cnt++;
 594   3                       if(cnt<=3)
 595   3                       {       TL[cnt-1]=i;
 596   4                           lcd_wrcmd(0x83+cnt-1);
 597   4                           lcd_wrdata(0x30+i);
 598   4                           
 599   4                       }                               
 600   3                       else{
 601   4                           cnt=0;                                                              
 602   4                           lcd_wrcmd(0x83);
 603   4                           for(j=0;j<=3;j++)
 604   4                               lcd_wrdata(' ');  
 605   4                                lcd_wrcmd(0x83);
 606   4      
 607   4                           }
 608   3                 }
 609   2      
 610   2                else if(i==12)
C51 COMPILER V8.02   LCDKEY03                                                              07/31/2007 09:25:36 PAGE 11  

 611   2                  {
 612   3                       state=1;
 613   3                       lcd_wrcmd(0x0c);
 614   3                       lcd_wrcmd(1);
 615   3                       lcd_wrcmd(0x80);
 616   3                       n=strlen(TL);
 617   3                       if(TL[2]>=0&&TL[2]<=9)
 618   3                       TLL=TL[0]*100+TL[1]*10+TL[2];
 619   3                      
 620   3                       break;
 621   3                  }
 622   2      
 623   2                   
 624   2                       
 625   2             
 626   2        }
 627   1      }
 628          
 629          
 630          inputth()
 631          {  
 632   1          uchar i,j,n,cnt=0;
 633   1          for(i=0;i<3;i++)   
 634   1            TL[i]=NULL;
*** WARNING C260 IN LINE 634 OF LCDKEY03.C: '=': pointer truncation
 635   1          lcd_wrcmd(0x80);
 636   1          lcd_wrdata('T');
 637   1          lcd_wrdata('H');
 638   1          lcd_wrdata('=');
 639   1          while(1)
 640   1          {i=table[getkey()];
 641   2                 if(i<10)
 642   2                 {        cnt++;
 643   3                       if(cnt<=3)

⌨️ 快捷键说明

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