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

📄 il9325.c

📁 一个测试TP的程序,适合模组厂作为生产测试用!
💻 C
📖 第 1 页 / 共 3 页
字号:
#include<ABSACC.H>
#include<stdio.h>
#include<reg51.h>
#include<intrins.h>
#define X_add 240
#define Y_add 320
#define H_data P0
#define L_data P1
#define NOP _nop_()
#define DisplayCol  320
#define DisplayRow  240
#define COLOR 0xf800    //0x001f
typedef unsigned char uchar;
typedef unsigned int uint;
sbit CS1=P2^4;
sbit RS=P2^2;
sbit WRB=P2^1;
sbit RDB=P2^0;
sbit RST=P2^3;
sbit KEY=P1^4;
/*----------------TP DEFINE--------*/
sbit TP_CLK=P3^5;
sbit TP_CS=P3^4;
sbit TP_DIN=P3^3;
sbit TP_BUSY=P3^6;
sbit TP_DOUT=P3^2;
sbit PENIRQ=P3^7;
/*-------------------------------*/
uchar code bmp[];
void display_bmp(uint *griphic);
void delay(uint time);
void write_data(uint indata,bit dc);
void address_set(uint hsa,uint hea,uint vsa,uint vea,uint ramaddl,uint ramaddh);
void initial(void);
void init_data(uint index,uint cdata);
void waite_key(void);
void display_bmp2(void);
void display_griphic(uchar page);
void test_patten(uint patten,col,row);
void gray(uint color);
void put_pixel(uint y,uint x) ;
uint TP_read(uchar a);
uint X,Y,X1,Y1,inta=0;
/*------------------------------------------------------------------*/
void main(void)
     {
      unsigned char i,j;
     initial();

          //{
            //init_data(0x0001, 0x0000);
            //address_set(0,79,0,320,0,0);
            //gray(0xf800);
	    //address_set(80,159,0,320,80,0);
           //gray(0x07e0);
           //address_set (160,239,0,320,160,0);
           //gray(0x001f);
           //waite_key();
             // display_griphic(0);waite_key();
         //display_griphic(4);
        //waite_key();
                   //test_patten(0x0000,240,320);waite_key(); // black
          //test_patten(0xf800,240,320);waite_key(); //red patten
          //test_patten(0x07e0,240,320);waite_key(); //green patten
          //test_patten(0x001f,240,320);waite_key();// blue patten

          //test touch panel
          test_patten(0x0000,240,320); // write clear panel
           init_data(0x0001, 0x0000);
           test_patten(0xffff,240,320); // write clear panel
           init_data(0x0001, 0x0000);
           //display_bmp(bmp);
           display_bmp2();
           init_data(0x0001, 0x0100);

            //TCON=0x00;
            //IE=0x83;
            //IP=0x01;
              X=50;
   while(1)
   {
          // X=TP_read(2);
           //Y=TP_read(1);
           //X1=TP_read(2);
           //Y1=TP_read(1);
           //delay(5);
               if(X<80)
               {
                  address_set(66,194,100,228,30,5);
                  write_data(0x0022,0);
                  for(i=0;i<128;i++)
                  for(j=0;j<128;j++)
                  write_data(0x001f,1);
                  while(PENIRQ);
                  X=TP_read(2);
                  delay(5);
                  X1=TP_read(2);
                  if(X!=X1)
                  {
                      X=TP_read(2);
                      delay(5);
                      X1=TP_read(2);
                  }
               }

               if(81<X)
               {
                  if(X<161)
                  {
                  address_set(66,194,100,228,30,5);
                  write_data(0x0022,0);
                  for(i=0;i<128;i++)
                  for(j=0;j<128;j++)
                  write_data(0x07e0,1);
                  while(PENIRQ);
                   X=TP_read(2);
                   delay(5);
                  X1=TP_read(2);
                  if(X!=X1)
                  {
                      X=TP_read(2);
                       delay(5);
                      X1=TP_read(2);
                  }
                  }
               }

               if(161<X)
               {
                  address_set(66,194,100,228,30,5);
                  write_data(0x0022,0);
                  for(i=0;i<128;i++)
                  for(j=0;j<128;j++)
                  write_data(0xF800,1);
                  while(PENIRQ);
                   X=TP_read(2);
                   delay(5);
                  X1=TP_read(2);
                  if(X!=X1)
                  {
                      X=TP_read(2);
                      delay(5);
                      X1=TP_read(2);
                  }
           }
    }
}
void delay(uint time)
     {
     uint i;
     while(time--)
     for(i=0;i<16;i++){;}
     }
/*----------------------------------------------------*/
void waite_key(void)
     {
     KEY=1;

  while(KEY);
     delay(60);
     while(!KEY);
     delay(100);
    }
/*---------display bmp---------*/
void display_bmp(uint *griphic)
     {
      uint i,j;
     address_set(60,179,5,20,64,5);
      write_data(0x0022,0);
       for(i=0;i<16;i++)
          for(j=0;j<120;j++)
             // for(k=0;k<2;k++)
                  write_data(*griphic++,1);
     }


void display_bmp2()
     {
      uint i,j;
     address_set(30,50,5,25,30,5);
      write_data(0x0022,0);
       for(i=0;i<20;i++)
       for(j=0;j<20;j++)
       write_data(0xf800,1);

       address_set(110,130,5,25,110,5);
       write_data(0x0022,0);
       for(i=0;i<20;i++)
       for(j=0;j<20;j++)
       write_data(0x07e0,1);

       address_set(180,200,5,25,180,5);
       write_data(0x0022,0);
       for(i=0;i<20;i++)
       for(j=0;j<20;j++)
       write_data(0x001f,1);
     }

/*-------------------------display griphic----------------------------*/
void display_griphic(uchar page)
     {
      uint col, row,Ramadd=0;
      uchar p=1;
         P1=0xf8|page;
         address_set(0,239,0,319,0,0);
         write_data(0x0022,0);
      for(col=0;col<DisplayCol;col++)//320
          for(row=0;row<DisplayRow;row++)//240
        	{
		   write_data(XWORD[Ramadd],1);
		     if(Ramadd>=0x8000)
	  	{
                     P1=(page+p)|0xf8;
                     p++;
                     Ramadd=0;
		}
		else Ramadd++;
             }
     }

/*-----------------------------------------------------*/
void write_data(uint indata,bit dc)
     {
      //uchar tmp;
      //CS1=0;
      RS=dc;
      L_data=indata;
      H_data=indata>>8;
      WRB=0;
      WRB=1;
      //CS1=1;
     }
/*-----------------------------------------------------*/
void init_data(uint index,uint cdata)
     {
     write_data(index,0);
     write_data(cdata,1);
     }
/*-----------------------------------------------------*/
void initial(void)
     {

⌨️ 快捷键说明

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