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

📄 7843_tp_test.c

📁 基于单片机的测试触摸屏的程序
💻 C
字号:

//////////////TP TEST START///////////////
//Setting & enable external interrupt 0
    IT0=0;
    EX0=1;

EA=1;

  disp_Data(Black);
  disp_Data(White);
  disp_Data(Black);

   n=1;
   while(n==1)
 {
  if(!OTP_DEC)
  {n=0;
  }
 }

EA=0;

///////////////TP TEST END///////////





///////////// TP test function/////////////
void int1(void)  interrupt 0
{

     DelayX1us(700); 
     ADS7843_start(); 

     WriteCharTo7843(0x90); 

     DCLK=1;
     DCLK=0;
     YTP=ReadFromCharFrom7843();


     WriteCharTo7843(0xD0);  

     DCLK=1;
     DCLK=0;
     XTP=ReadFromCharFrom7843();

     ADS7843_CS=1;

/////////////////////////
     XTP1=  (XTP-250)*240;
     XLCD=  XTP1/3500;     //触摸点X坐标
     YTP1=  (YTP-100)*320;
     YLCD=  YTP1/3500-20;  //触摸点Y坐标

//////////////////////// //touch point address set
    writec(0x0020);	       // Set start address
    Location=XLCD;
	writer(Location);     // (P2) row address (MSB)
	writec(0x0021);	       // Set start address
    Location=YLCD;
	writer(Location);     // (P2) row address (MSB)
//////////////////////// //
writec(0x0022);
WR_DATA(Red);
}

//Functions of Touch panel
void ADS7843_start() //SPI开始
{ 
  DCLK=0;
  ADS7843_CS=1;
  DIN=1;
  DCLK=1;
  ADS7843_CS=0;
}

void WriteCharTo7843(BYTE num) //SPI写数据
{ 
  BYTE count=0;
    
  DCLK=0;
  for(count=0;count<8;count++)
   {
     num<<=1;
     DIN=CY;

     DCLK=0;
     DCLK=1;
   }
}

LONG ReadFromCharFrom7843() //SPI 读数据
{
  BYTE count=0;
  WORD Num=0;

  for(count=0;count<12;count++) //ADC BIT
   {
    Num<<=1;
    DCLK=1;
    DCLK=0;
    if(DOUT) Num++;    
   }
  return(Num);
}

⌨️ 快捷键说明

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