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

📄 lcd.lst

📁 电机驱动!四相五线的步进电机用C8051F020驱动
💻 LST
📖 第 1 页 / 共 4 页
字号:
 526   1        else lcd_busy=1; 
 527   1        
 528   1       
 529   1        LCDR=1;LCDCD=1; //LCDCE=0;
 530   1        xspdelay(1);
 531   1       
 532   1        P5=i;
 533   1        xspdelay(3);
 534   1        LCDW=0;
 535   1       
 536   1        LCDW=1;
 537   1        P5=0xaa;
 538   1        xspdelay(1);
 539   1        
 540   1        EA=1; 
 541   1        }
 542          
 543          
 544          void lcdint(void)
 545          {
C51 COMPILER V7.50   LCD                                                                   04/10/2009 16:27:31 PAGE 10  

 546   1        uchar i;
 547   1        LCD_PORT_Init();
 548   1        
 549   1        wlcdi(0x40);
 550   1        wlcdd(0x30);
 551   1        wlcdd(0x87);
 552   1        wlcdd(0x07);
 553   1        
 554   1        wlcdd(40);
 555   1        wlcdd(0x4c);
 556   1        wlcdd(240);
 557   1        wlcdd(40);
 558   1        wlcdd(0x00);
 559   1      
 560   1        wlcdi(0x44);
 561   1        wlcdd(0x0);
 562   1        wlcdd(0x0);
 563   1        wlcdd(240);
 564   1        wlcdd(0x80);wlcdd(0x25);wlcdd(240);
 565   1        wlcdd(0);wlcdd(0);wlcdd(0);wlcdd(0);
 566   1      
 567   1        wlcdi(0x59);
 568   1        wlcdd(0x14);//04
 569   1      
 570   1      
 571   1      
 572   1        wlcdi(0x5b);
 573   1        wlcdd(0x0d);//d
 574   1         
 575   1        wlcdi(0x46);
 576   1        wlcdd(0);
 577   1        wlcdd(0);
 578   1      
 579   1        wlcdi(0x5a);
 580   1        wlcdd(0);
 581   1      
 582   1        wlcdi(0x4c);
 583   1        wlcdi(0x42);
 584   1        while(0){
 585   2        wlcdi(0x46);
 586   2        wlcdd(0);
 587   2        wlcdd(0);
 588   2        wlcdi(0x42);
 589   2        wlcdd(0xaa);
 590   2      
 591   2        wlcdi(0x5a);
 592   2        wlcdd(0x4);
 593   2       
 594   2        wlcdi(0x46);
 595   2        wlcdd(0);
 596   2        wlcdd(0);
 597   2        wlcdi(0x43);
 598   2        i=rlcdd();
 599   2        }
 600   1        //STB=0; 
 601   1        //wlcdi(0x59);
 602   1        //wlcdd(0x54);
 603   1        
 604   1        
 605   1       // wlcdi(0x42);
 606   1       // wlcdd(65);
 607   1       // wlcdd(66);
C51 COMPILER V7.50   LCD                                                                   04/10/2009 16:27:31 PAGE 11  

 608   1       // wlcdd(67);
 609   1       
 610   1      }
 611          
 612          
 613          //0 关显示
 614          //1 1,2屏显示
 615          //2 1屏显示
 616          void lcdzt(uchar i)
 617          {
 618   1         if (i==0) {wlcdi(0x59);wlcdd(0x00);}
 619   1         if (i==1) {wlcdi(0x59);wlcdd(0x14);}
 620   1         if (i==2) {wlcdi(0x59);wlcdd(0x04);}
 621   1      }
 622          void lcdclr(void)
 623          {
 624   1        int i;
 625   1        uchar ii,bz;   
 626   1        lcdzt(0);
 627   1              //写入标志点
 628   1                  wlcdi(0x46);
 629   1                  wlcdd(0xff);
 630   1                  wlcdd(0x4a);
 631   1                  wlcdi(0x42);
 632   1                  wlcdd(2);  
 633   1      
 634   1      
 635   1        for(ii=0;ii<3;ii++)
 636   1        { 
 637   2                wlcdi(0x46);
 638   2                wlcdd(0x80);
 639   2                wlcdd(0x25);
 640   2                wlcdi(0x4c);
 641   2                wlcdi(0x42);
 642   2           
 643   2                for (i=1; i<= 9600;i++)
 644   2                {
 645   3               if(ii==0) wlcdd(0);
 646   3                   if(ii==1) bwlcdd(0);
 647   3                       if(ii==2) {bwlcdi(0x42);bwlcdd(0);}
 648   3               
 649   3                }
 650   2                
 651   2                wlcdi(0x46);
 652   2                wlcdd(0xff);
 653   2                wlcdd(0x4a);
 654   2                wlcdi(0x43);
 655   2                bz=rlcdd();  //读标志点
 656   2                if ((bz&0x02)!=0x02)
 657   2                {
 658   3                  wlcdi(0x46);
 659   3                  wlcdd(0xff);
 660   3                  wlcdd(0x4a);
 661   3                  wlcdi(0x42);
 662   3                  wlcdd(0);   //消除标志点,退出循环
 663   3                      ii=6;
 664   3      
 665   3                }
 666   2         }
 667   1            //写入标志点
 668   1                wlcdi(0x46);
 669   1                wlcdd(0x7f);
C51 COMPILER V7.50   LCD                                                                   04/10/2009 16:27:31 PAGE 12  

 670   1                wlcdd(0x25);
 671   1                wlcdi(0x42);
 672   1            wlcdd(1);  
 673   1        for(ii=0;ii<3;ii++)
 674   1        {
 675   2            wlcdi(0x46);
 676   2                wlcdd(0x00);
 677   2                wlcdd(0x00);
 678   2                wlcdi(0x4c);
 679   2                wlcdi(0x42);   
 680   2                for (i=1; i<= 9600;i++)//1920 3840
 681   2                {
 682   3               if(ii==0) wlcdd(0);
 683   3                   if(ii==1) bwlcdd(0);
 684   3                       if(ii==2) {bwlcdi(0x42);bwlcdd(0);}
 685   3                }
 686   2      
 687   2                wlcdi(0x46);
 688   2                wlcdd(0x7f);
 689   2                wlcdd(0x25);
 690   2                wlcdi(0x43);
 691   2                bz=rlcdd();  //读标志点
 692   2                if ((bz&0x01)!=0x01)
 693   2                {
 694   3                  wlcdi(0x46);
 695   3                  wlcdd(0x7f);
 696   3                  wlcdd(0x25);
 697   3                  wlcdi(0x42);
 698   3                  wlcdd(0);   //消除标志点,退出循环
 699   3                      ii=6;
 700   3      
 701   3                }
 702   2        }
 703   1        lcdzt(1);
 704   1      }
 705          void xspdelay(unsigned int x)
 706          {
 707   1      while(x--){}
 708   1      }
 709          
 710          void lcddw(uchar h,l)
 711          {
 712   1        
 713   1        lcdadd=h*800+l*2+40;//640
 714   1        wlcdi(0x46);
 715   1        wlcdd(lcdadd%256);
 716   1        wlcdd(lcdadd/256);
 717   1       
 718   1       
 719   1      }
 720          
 721          //input汉字
 722          void lcdhz(uchar i)
 723          {
 724   1        int ii;
 725   1        //if(i==0) lcdadd=lcdadd-40;
 726   1        for (ii=0;ii<=(15+(i==0)*4);ii++){
 727   2          wlcdi(0x42);
 728   2         if (i!=0){wlcdd(hzpm[i][ii*2]);wlcdd(hzpm[i][ii*2+1]);}
 729   2         else {wlcdd(0);wlcdd(0);}
 730   2           
 731   2         
C51 COMPILER V7.50   LCD                                                                   04/10/2009 16:27:31 PAGE 13  

 732   2              lcdadd=lcdadd+40;//30  
 733   2          wlcdi(0x46);    
 734   2              wlcdd(lcdadd%256);
 735   2          wlcdd(lcdadd/256);
 736   2        }
 737   1        lcdadd=lcdadd-638-(i==0)*160;//478
 738   1        wlcdi(0x46);    
 739   1        wlcdd(lcdadd%256);
 740   1        wlcdd(lcdadd/256);
 741   1      
 742   1      }  
 743          
 744          //数字输入键
 745          void lcdsz(uchar h,l,k)   //h>hang shu  l >lie shu  k>kuan du
 746          {
 747   1              
 748   1        uchar i,j,ii;  
 749   1        lcdadd=h*800+l;
 750   1        wlcdi(0x46);    
 751   1        wlcdd(lcdadd%256);
 752   1        wlcdd(lcdadd/256);
 753   1        
 754   1        for (i=0;i<k;i++)
 755   1        {
 756   2          if ((dispbuf[i]<24)||(dispbuf[i]>127)) dispbuf[i]=' ';//44
 757   2          j=dispbuf[i];
 758   2              for (ii=0;ii<16;ii++)
 759   2              {
 760   3            wlcdi(0x42);
 761   3            wlcdd(ascpm[j][ii]);
 762   3            
 763   3           
 764   3            lcdadd=lcdadd+40;  //30
 765   3            wlcdi(0x46);
 766   3                wlcdd(lcdadd%256);
 767   3            wlcdd(lcdadd/256);
 768   3          }
 769   2          lcdadd=lcdadd-639;
 770   2          wlcdi(0x46);
 771   2          wlcdd(lcdadd%256);
 772   2          wlcdd(lcdadd/256);
 773   2          
 774   2        }
 775   1      }  
 776          
 777          void lcdxsz(uchar h,l,k)   //h>hang shu  l >lie shu  k>kuan du
 778          {
 779   1              
 780   1        uchar i,j,ii;  
 781   1        lcdadd=h*320+l;//-((h%2)==1)*80+l;//320 400
 782   1        wlcdi(0x46);
 783   1        wlcdd(lcdadd%256);
 784   1        wlcdd(lcdadd/256);
 785   1        
 786   1        for (i=0;i<k;i++)
 787   1        {
 788   2        
 789   2          j=dispbuf[i]*(dispbuf[i]>39);
 790   2              for (ii=0;ii<8;ii++)
 791   2              {
 792   3            wlcdi(0x42);
 793   3            wlcdd(xascpm[j-39][ii]);//30
C51 COMPILER V7.50   LCD                                                                   04/10/2009 16:27:31 PAGE 14  

⌨️ 快捷键说明

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