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

📄 my.c

📁 ad7843的驱动
💻 C
字号:
#include<at89x52.h>
#include<intrins.h>

#define uchar unsigned char 
#define dclk P1_0
#define	cs	 P1_1
#define	din	  P1_2
#define	busy	P1_3
#define	dout   P1_4
#define	pen	   P1_5
uchar resultx[12]={0,0,0,0,0,0,0,0,0,0,0,0},resulty[12]={0,0,0,0,0,0,0,0,0,0,0,0};


void delay(unsigned int a)
{while(a--);
}






void converse(uchar xy,uchar *p)	      //xy为1时,选择Y转换,为0时为X转换;P数组为存转换结果
{ uchar control=0x94,i;
 
 if(xy==1) control=0xd4;

 			//写命令
 for(i=0;i<8;i++)
      { din=(bit)(control&0x80);
	    control<<=1;
		dclk=1;_nop_(); 
		dclk=0;
	  
	  }
_nop_(); 


 while(busy==1);	 //等待转换结束
 dclk=1;_nop_(); 			  //给1个时钟
 dclk=0;


 for(i=0;i<12;i++)		 //读结果,从高为到低位读
    { dclk=1;_nop_();  
      if(dout==1) p[i]=1;
      dclk=0;
	  
	}


   /*  dclk=1;_nop_();		 //最后给3个时钟
     dclk=0;dclk=1;_nop_();    
      dclk=0;dclk=1;_nop_(); 
      dclk=0;         */     



}






void ad7843()
{ cs=1;
 while(pen==1);
delay(1000);    //去抖动
 dclk=0;
 cs=0;
 converse(1,resulty);	   //Y转换
 converse(0,resultx);	   //X转换
 cs=1;
}	



void main()
{  uchar i;

   SCON=0x40;   //工作在通讯模式1,波特率9600
      PCON=0x00;
      TMOD=0x20;
      TCON=0x00;
      TH1=0xfd;
      TL1=0xfd;
      TR1=1;

 

  while(1)
  {
  ad7843();

  for(i=0;i<12;i++)
			  {SBUF=resultx[i];while(TI==0);TI=0;
			  }

  SBUF=0x0f;while(TI==0);TI=0;

   for(i=0;i<12;i++)
			  {SBUF=resulty[i];while(TI==0);TI=0;
			  }
   SBUF=0xff;while(TI==0);TI=0;
   }
}
		  							 

⌨️ 快捷键说明

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