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

📄 mra8806.lst

📁 ra8806触摸屏控制芯片完全c51底层驱动
💻 LST
📖 第 1 页 / 共 3 页
字号:
 588          /********************************************/   
 589          // 参数类型有待修改    
 590          void Dis_Linexy(unsigned int x0,uchar y0,unsigned int xt,uchar yt,uchar att)   
 591          {   
 592   1          int t;   
 593   1          int xerr=0,yerr=0,delta_x,delta_y,distance;   
 594   1          int incx,incy;   
 595   1          unsigned int row,col; 
 596   1          Lcd_Graphic();
 597   1          delta_x = xt-x0;                            //计算坐标增量    
 598   1          delta_y = yt-y0;   
 599   1          col = x0;   
 600   1          row = y0;   
 601   1          if(delta_x>0) incx=1;                        //设置单步方向    
 602   1          else    
 603   1          {   
 604   2              if( delta_x==0  ) incx=0;               //垂直线    
 605   2              else {incx=-1;delta_x=-delta_x;}   
 606   2          }   
 607   1          if(delta_y>0) incy=1;   
 608   1          else   
 609   1          {   
 610   2              if( delta_y==0  ) incy=0;               //水平线    
 611   2              else {incy=-1;delta_y=-delta_y;}   
 612   2          }   
 613   1          if( delta_x > delta_y )  distance=delta_x;   //选取基本增量坐标轴    
C51 COMPILER V7.50   MRA8806                                                               02/21/2009 10:27:05 PAGE 11  

 614   1          else distance=delta_y;   
 615   1         
 616   1          for( t=0;t <= distance+1; t++ )   
 617   1          {                                           //画线输出    
 618   2              Dis_Point((unsigned int)col,row,att);               //画点    
 619   2              xerr += delta_x ;   
 620   2              yerr += delta_y ;   
 621   2                 
 622   2              if( xerr > distance  )   
 623   2              {   
 624   3                  xerr-=distance;   
 625   3                  col+=incx;   
 626   3              }   
 627   2              if( yerr > distance  )   
 628   2              {   
 629   3                  yerr-=distance;   
 630   3                  row+=incy;   
 631   3              }   
 632   2          }   
 633   1      }   
 634          void Dis_Text(uchar px,uchar py,uchar count,uchar scale,uchar *p)
 635          {
 636   1              uchar i;
 637   1              //Access_Page1();
 638   1              //Only_Show_Page1();
 639   1              LCD_Text();
 640   1              LCD_FontSize(scale);
 641   1              LCD_GotoXY(px,py);
 642   1              Wrr_Addr(0xb0);
 643   1      
 644   1              for(i=0;i<count;i++)
 645   1              {
 646   2                      Wrr_Data(p[i]);
 647   2                      delay1ms(5);
 648   2              }
 649   1              /*LCD_GotoXY(0,16);
 650   1              Wrr_Addr(0xb0);
 651   1              for(i=0;i<40;i++)
 652   1              {
 653   1                      Wrr_Data(sRAiO2[i]);
 654   1                      delay1ms(1);
 655   1              }
 656   1      
 657   1              LCD_Inv();
 658   1              Wrr_Addr(0xb0);
 659   1              for(i=0;i<21;i++)
 660   1              {
 661   1                      Wrr_Data(sRAiO3[i]);
 662   1                      delay1ms(1);
 663   1              }
 664   1              LCD_NoInv();
 665   1              LCD_GotoXY(0,64);
 666   1              Wrr_Addr(0xb0);
 667   1              for(i=0;i<40;i++)
 668   1              {
 669   1                      Wrr_Data(sRAiO2[i]);
 670   1                      delay1ms(1);
 671   1              }
 672   1      
 673   1              LCD_FontSize(15);
 674   1              LCD_GotoXY(0,80);
 675   1              Wrr_Addr(0xb0);
C51 COMPILER V7.50   MRA8806                                                               02/21/2009 10:27:05 PAGE 12  

 676   1              for(i=0;i<12;i++)
 677   1              {
 678   1                      Wrr_Data(sRAiO5[i]);
 679   1                      delay1ms(5);
 680   1              }
 681   1              LCD_FontSize(0);
 682   1      
 683   1              LCD_GotoXY(0,160);
 684   1              Wrr_Addr(0xb0);
 685   1              for(i=0;i<40;i++)
 686   1              {
 687   1                      Wrr_Data(i);
 688   1                      delay1ms(1);
 689   1              }
 690   1      
 691   1              LCD_Bold();
 692   1              Wrr_Addr(0xb0);
 693   1              for(i=40;i<80;i++)
 694   1              {
 695   1                      Wrr_Data(i);
 696   1                      delay1ms(1);
 697   1              }
 698   1              /*LCD_NoBold();
 699   1      
 700   1              Wrr_Addr(0xb0);
 701   1              for(i=40;i<120;i++)
 702   1              {
 703   1                      Wrr_Data(i);
 704   1                      delay1ms(1);
 705   1              }*/
 706   1      }
 707          void Dis_DDRAM1_Pic(void)
 708          {
 709   1              int i;
 710   1              Access_Page1();
 711   1              //Only_Show_Page1();
 712   1              Lcd_Graphic();
 713   1              LCD_GotoXY(0,0);
 714   1              Wrr_Addr(0xb0);
 715   1              for(i=0;i<1120;i++)
 716   1                      Wrr_Data(gImage_pic1[i]);               
 717   1              do{
 718   2                      _nop_();
 719   2                      _nop_();
 720   2                      }while(Read_Status()&0x80);     
 721   1      }
 722          void Dis_Pos_Pic(uchar px,uchar py,uint width,uchar height,uchar *p)
 723          {
 724   1              uchar i,j,count;
 725   1              count = width>>3;
 726   1              //Access_Page1();
 727   1              //Only_Show_Page1();
 728   1              Lcd_Graphic();
 729   1              for(i=0;i<height;i++)
 730   1                      {       
 731   2                              LCD_GotoXY(px,(py+i));
 732   2                              Wrr_Addr(0xb0);
 733   2                              for(j=0;j<count;j++)
 734   2                                              //Wrr_Data(gImage_pic1[(i*count+j)]);
 735   2                                      Wrr_Data(p[i*count+j]);
 736   2                      }
 737   1      }
C51 COMPILER V7.50   MRA8806                                                               02/21/2009 10:27:05 PAGE 13  

 738          /*void Dis_DDRAM2_Pic(void)
 739          {
 740                  int i;
 741                  Access_Page2();
 742                  //Only_Show_Page2();
 743                  Lcd_Graphic();
 744                  LCD_GotoXY(0,0);
 745                  Wrr_Addr(0xb0);
 746                  for(i=0;i<9600;i++)
 747                          Wrr_Data(gImage_pic2[i]);
 748                  do{
 749                          _nop_();
 750                          _nop_();
 751                          }while(Read_Status()&0x80);
 752          }*/
 753          
 754          void Initiate(void)
 755          {
 756   1          Wr_Data(0,0); 
 757   1              _nop_();
 758   1      
 759   1          Wr_Data(1,4); 
 760   1              _nop_();
 761   1      
 762   1          Wr_Data(3,0); 
 763   1              _nop_();
 764   1      
 765   1              Wr_Data(0x0f,0);
 766   1      
 767   1              _nop_();
 768   1           Wr_Data(0x10,0); 
 769   1              _nop_();
 770   1      
 771   1      
 772   1          Wr_Data(0x11,0); 
 773   1              _nop_();
 774   1      
 775   1           Wr_Data(0x12,0x11); 
 776   1              _nop_();
 777   1      
 778   1           Wr_Data(0x20,0x27);  
 779   1              _nop_();
 780   1      
 781   1          Wr_Data(0x21,0x27); 
 782   1              _nop_();
 783   1              Wr_Data(0x30,0xef);  
 784   1              _nop_();
 785   1      
 786   1              Wr_Data(0x31,0xef);  
 787   1              _nop_();
 788   1      
 789   1              Wr_Data(0x40,0);  
 790   1              _nop_();
 791   1      
 792   1              Wr_Data(0x50,0); 
 793   1              _nop_();
 794   1      
 795   1      
 796   1              Wr_Data(0x60,0);  
 797   1              _nop_();
 798   1      
 799   1              Wr_Data(0x61,0);  
C51 COMPILER V7.50   MRA8806                                                               02/21/2009 10:27:05 PAGE 14  

 800   1              _nop_();
 801   1              Wr_Data(0x62,0);  
 802   1              _nop_();
 803   1      
 804   1              Wr_Data(0x70,0);  
 805   1              _nop_();
 806   1      
 807   1              Wr_Data(0x71,0);  
 808   1              _nop_();
 809   1      
 810   1              Wr_Data(0x72,0);  
 811   1              _nop_();        
 812   1      
 813   1              Wr_Data(0x80,0); 
 814   1              _nop_();
 815   1              Wr_Data(0x90,0);  
 816   1              _nop_();        
 817   1      
 818   1              Wr_Data(0xa0,0);  
 819   1              _nop_();
 820   1      
 821   1              Wr_Data(0xa1,0);  
 822   1              _nop_();
 823   1      
 824   1              Wr_Data(0xa2,0);  
 825   1              _nop_();
 826   1      
 827   1              Wr_Data(0xa3,0);  
 828   1              _nop_();
 829   1      
 830   1              Wr_Data(0xa4,0);  
 831   1              _nop_();
 832   1      
 833   1              Wr_Data(0xc0,0); 
 834   1              _nop_();
 835   1      
 836   1      
 837   1              Wr_Data(0xc1,0);  
 838   1      
 839   1              _nop_();        
 840   1              Wr_Data(0xc2,0); 
 841   1              _nop_();
 842   1      
 843   1              Wr_Data(0xc3,0);  
 844   1              _nop_();
 845   1      
 846   1              Wr_Data(0xc4,0);  
 847   1              _nop_();
 848   1      
 849   1              Wr_Data(0xd0,0);  
 850   1      
 851   1      
 852   1              Wr_Data(0xd1,0); 
 853   1              _nop_();
 854   1      
 855   1      
 856   1              Wr_Data(0xe0,0);  
 857   1              _nop_();
 858   1      
 859   1              Wr_Data(0xf0,0);  
 860   1              
 861   1              _nop_();
C51 COMPILER V7.50   MRA8806                                                               02/21/2009 10:27:05 PAGE 15  

 862   1      
 863   1              Wr_Data(0xf1,0); 
 864   1              _nop_();
 865   1      
 866   1      
 867   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2114    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      65
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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