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

📄 mra8806.lst

📁 ra8806触摸屏控制芯片完全c51底层驱动
💻 LST
📖 第 1 页 / 共 3 页
字号:
 291   1              Wrr_Addr(MAMR);
 292   1              temp = Read_Data();
 293   1              temp &= cClrb6;
 294   1              temp &= cClrb5;
 295   1              temp &= cClrb4;
 296   1              Wrr_Addr(MAMR);
 297   1              Wrr_Data(temp);
 298   1      }
 299          
 300          
 301          void COM_DIR_239_0(void)//扫描模式修改,从239行开始扫描
 302          {
 303   1              uchar temp;
C51 COMPILER V7.50   MRA8806                                                               02/21/2009 10:27:05 PAGE 6   

 304   1              
 305   1              Wrr_Addr(MISC);
 306   1              temp = Read_Data();
 307   1              temp |= cSetb0;
 308   1              Wrr_Addr(MISC);
 309   1              Wrr_Data(temp);
 310   1      }
 311          void LCD_Rotate90(void)//文字旋转90度
 312          {
 313   1              uchar temp;
 314   1      
 315   1              Wrr_Addr(WCCR);
 316   1              temp = Read_Data();
 317   1              temp |= cSetb3;
 318   1              Wrr_Addr(WCCR);
 319   1              Wrr_Data(temp);
 320   1      }
 321          void LCD_LineDist_Adjust(uchar dis)//文字之间的行间距0-16
 322          {
 323   1              uchar temp;
 324   1              Wrr_Addr(CHWI); // Line Distance
 325   1              temp = Read_Data();
 326   1              temp &= 0xf0;
 327   1              temp |= (dis & 0x0f);
 328   1              Wrr_Addr(CHWI); // Line Distance
 329   1              Wrr_Data(temp);
 330   1      }
 331          unsigned char ADC_X1_MSB(void)
 332          {
 333   1              uchar temp;
 334   1              Wrr_Addr(TPXR);
 335   1              temp = Read_Data();
 336   1              //delay1ms(2);
 337   1              return temp;
 338   1      }
 339          
 340          unsigned char ADC_Y1_MSB(void)
 341          {
 342   1              uchar temp;
 343   1              
 344   1              Wrr_Addr(TPYR);
 345   1              temp = Read_Data();
 346   1              //delay1ms(2);  
 347   1              return temp;
 348   1      }
 349          
 350          void Print_Hex(uchar buf)
 351          {
 352   1              uchar temp1,temp2;
 353   1              temp1=buf;
 354   1              temp1 = (temp1 >>4) & 0x0F;
 355   1              if(temp1 < 0x0A)
 356   1              {
 357   2                      temp1 |= 0x30;
 358   2              }
 359   1              else temp1 = temp1 + 0x37;
 360   1              //LCD_Text();
 361   1              //Access_Page1();
 362   1              //LCD_GotoXY(0x21,0x10);
 363   1              Wrr_Addr(0xb0);
 364   1              Wrr_Data(temp1);
 365   1              //delay1ms(1);
C51 COMPILER V7.50   MRA8806                                                               02/21/2009 10:27:05 PAGE 7   

 366   1              _nop_();
 367   1      
 368   1              temp2=buf;
 369   1              temp2 = temp2 & 0x0F;
 370   1              if(temp2 < 0x0A)
 371   1              {
 372   2                      temp2 |= 0x30;
 373   2              }
 374   1              else temp2 = temp2 + 0x37;
 375   1      
 376   1              //Wrr_Addr(0xb0);
 377   1              Wrr_Data(temp2);
 378   1              _nop_();
 379   1              
 380   1      }
 381          
 382          
 383          void Dis_Ratate_90(void)//文字纵向显示
 384          {
 385   1              LCD_Text();
 386   1              LCD_Rotate90();
 387   1              //COM_DIR_239_0();
 388   1              LCD_LineDist_Adjust(12);
 389   1      
 390   1              LCD_GotoXY(0,48);
 391   1              Wrr_Addr(0xb0);
 392   1              /*for(i=0;i<29;i++)
 393   1              {
 394   1                      Wrr_Data(sRAiO1[i]);
 395   1                      delay1ms(1);
 396   1              }*///因为srai01在vuse.h中,所以屏蔽此处。
 397   1      }
 398          void test(void)
 399          {
 400   1              int i;
 401   1              Lcd_Graphic();
 402   1              Gray_Mode();
 403   1              LCD_GotoXY(0x00,0x0);
 404   1              Wrr_Addr(0xb0);
 405   1              /*Mode2();
 406   1              Mode3();
 407   1              Mode4();*/
 408   1              for(i=0;i<4800;i++)
 409   1                      {
 410   2                              Wrr_Data(0);
 411   2                      }
 412   1              for(i=0;i<4800;i++)
 413   1                      {
 414   2                              Wrr_Data(0x55);
 415   2                      }
 416   1              for(i=0;i<4800;i++)
 417   1                      {
 418   2                              Wrr_Data(0xaa);
 419   2                      }
 420   1              for(i=0;i<4800;i++)
 421   1                      {
 422   2                              Wrr_Data(0xff);
 423   2                      }
 424   1      }
 425          /*====================================================  
 426          ;  绘点子程序 ,att为1时为描点,为0时为消点
 427           ====================================================*/ 
C51 COMPILER V7.50   MRA8806                                                               02/21/2009 10:27:05 PAGE 8   

 428          void Dis_Point(unsigned int px, uchar py,uchar att)
 429          {
 430   1              uchar x_msb,value,ex_value;
 431   1              //value = 0x80;
 432   1              //Lcd_Graphic();
 433   1              //Access_Page1();
 434   1              //Only_Show_Page1();
 435   1              x_msb = px>>3;//等于px除以8
 436   1              //x_lsb = px & 0x07;//等于py对8求余数
 437   1              //value = value>>x_lsb;
 438   1              value = 1<<(7-px & 0x0007);
 439   1              LCD_GotoXY(x_msb,py);
 440   1      
 441   1              Wrr_Addr(0xb1);
 442   1              ex_value = Read_Data();
 443   1              if(att) 
 444   1                      ex_value |= value; 
 445   1              else
 446   1      
 447   1                              
 448   1                              //value = (~value);
 449   1                              ex_value &= ~value;
 450   1      
 451   1              LCD_GotoXY(x_msb,py);
 452   1      
 453   1              Wrr_Addr(0xb0);
 454   1              Wrr_Data(ex_value);
 455   1      }
 456          /*void Dis_Black_Rec(uchar a,uchar b,uchar c,uchar d,uchar att)
 457          {
 458                  uchar i,j,length,height;
 459                  length = c-a;
 460                  height = d-b;
 461                  Access_Page1();
 462                  Only_Show_Page1();
 463                  //LCD_Text();
 464                  Lcd_Graphic();
 465                  LCD_GotoXY(a,b);
 466                  for(i=0;i<height;i++)
 467                  {
 468                          LCD_GotoXY(a,(b+i));
 469                          Wrr_Addr(0xb0);
 470                          for(j=0;j<length;j++)
 471                                  Wrr_Data(0xff);
 472              }
 473          }
 474          void Dis_Black_Rec(uchar a,uchar b,uchar c,uchar d,uchar att)
 475          {
 476                  uchar i,j,length,height;
 477                  length = c-a;
 478                  height = d-b;
 479                  Access_Page1();
 480                  Only_Show_Page1();
 481                  //LCD_Text();
 482                  Lcd_Graphic();
 483                  for(i=0;i<height;i++)   
 484                  {
 485                                  for(j=0;j<length;j++)
 486                                  Dis_Point((a+i),(b+j),att);
 487              }
 488          }*/
 489          void Dis_Blank_Rec(uchar a,uchar b,uchar c,uchar d)
C51 COMPILER V7.50   MRA8806                                                               02/21/2009 10:27:05 PAGE 9   

 490          {
 491   1              uchar i,length,height;
 492   1              length = c-a;
 493   1              height = d-b;
 494   1              //Access_Page1();
 495   1              //Only_Show_Page1();
 496   1              //LCD_Text();
 497   1              Lcd_Graphic();
 498   1              LCD_GotoXY(a,b);
 499   1              Wrr_Addr(0xb0);
 500   1              for(i=0;i<length;i++)
 501   1              {
 502   2                      Wrr_Data(0xff);         
 503   2              }
 504   1      
 505   1              LCD_GotoXY(a,(b+height));
 506   1              Wrr_Addr(0xb0);
 507   1              for(i=0;i<length;i++)
 508   1              {
 509   2                      Wrr_Data(0xff);         
 510   2              }
 511   1      
 512   1              for(i=1;i<height;i++)
 513   1              {
 514   2                      LCD_GotoXY((c-1),(b+i));
 515   2                      Wrr_Addr(0xb0);
 516   2                      Wrr_Data(0x01);
 517   2              }
 518   1              
 519   1              for(i=1;i<height;i++)
 520   1              {
 521   2                      LCD_GotoXY(a,(b+i));
 522   2                      Wrr_Addr(0xb0);
 523   2                      Wrr_Data(0x80);
 524   2              }
 525   1      }
 526          
 527          /*void Dis_Blank_Rec(uchar a,uchar b,uchar c,uchar d,uchar att)
 528          {
 529                  uchar i,j,length,height;
 530                  length = c-a;
 531                  height = d-b;
 532                  Access_Page1();
 533                  Only_Show_Page1();
 534                  //LCD_Text();
 535                  Lcd_Graphic();
 536                  for(i=0;i<height;i++)
 537                  {
 538                          for(j=0;j<length;j++)
 539                                  {
 540                                          Dis_Point((a+j),b,att);
 541          
 542                                          Dis_Point(a,(b+i),att);
 543                                          Dis_Point((c-1),(b+i),att);
 544                                          Dis_Point((a+j),d,att);
 545                                  }
 546              }
 547          }*/
 548          
 549          
 550          /************************************************/   
 551          /*画圆。数学方程(X-Ox)^2+(Y-Oy)^2=Rx^2     */   
C51 COMPILER V7.50   MRA8806                                                               02/21/2009 10:27:05 PAGE 10  

 552          /************************************************/
 553          void Dis_Circle(unsigned int Ox,uchar Oy,uchar Rx,uchar att)
 554          {
 555   1              unsigned int xx,rr,xt,yt,rs,col,row;   
 556   1          yt=Rx;   
 557   1          rr=Rx*Rx+1;         //补偿 1 修正方形    
 558   1          rs=(yt+(yt>>1))>>1;     //(*0.75)分开1/8圆弧来画    
 559   1          for (xt=0;xt<=rs;xt++)   
 560   1          {   
 561   2              xx=xt*xt;   
 562   2              while ((yt*yt)>(rr-xx))yt--;   
 563   2              col=Ox+xt;      //第一象限    
 564   2              row=Oy-yt;   
 565   2              Dis_Point(col,row,att);   
 566   2              col=Ox-xt;      //第二象限    
 567   2              Dis_Point(col,row,att);   
 568   2              row=Oy+yt;      //第三象限    
 569   2              Dis_Point(col,row,att);   
 570   2              col=Ox+xt;      //第四象限    
 571   2              Dis_Point(col,row,att);   
 572   2         
 573   2      /***************45度镜象画另一半***************/   
 574   2         
 575   2              col=Ox+yt;      //第一象限    
 576   2              row=Oy-xt;   
 577   2              Dis_Point(col,row,1);   
 578   2              col=Ox-yt;      //第二象限    
 579   2              Dis_Point(col,row,1);   
 580   2              row=Oy+xt;      //第三象限    
 581   2              Dis_Point(col,row,att);   
 582   2              col=Ox+yt;      //第四象限    
 583   2              Dis_Point(col,row,att);   
 584   2          }   
 585   1      }
 586          /********************************************/   
 587          /*画线。任意方向的斜线,直线数学方程 aX+bY=1 */   

⌨️ 快捷键说明

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