【程序】stc12 硬件 SPI 驱动触摸芯片 xpt2046,同时挂载 SD 卡
触摸控制 IC xpt2046 使用的是 spi 协议进行通信,使用 stc12 系列的单片机进行驱动
时,网上找的程序都是 IO 模拟 spi 与 2046 进行通信,这让用有 spi 总线单片机的感觉不爽,
于是决定将程序改为硬件 spi。 (适用于同类的四线电阻触摸芯片)
网上流传较多的模拟 spi 驱动程序:
void WriteCharTo7843(unsigned char num) //SPI 写数据
{
unsigned char count=0;
DCLK=0;
for(count=0;count<8;count++)
{
num<<=1;
DIN=CY;
DCLK=0; _nop_();_nop_();_nop_(); //上升沿有效
DCLK=1; _nop_();_nop_();_nop_();
}
}
//**********************************************************
unsigned int ReadFromCharFrom7843() //SPI 读数据
{
unsigned char count=0;
unsigned int Num=0;
for(count=0;count<12;count++)
{
Num<<=1;
DCLK=1; _nop_();_nop_();_nop_(); //下降沿有效
DCLK=0; _nop_();_nop_();_nop_();
if(DOUT) Num++;
}
return(Num);
}
//***************************************************************
void AD7843(void) //外部中断 0 用来接受键盘发来的数据
{
CS=0;
WriteCharTo7843(0x90); //送控制字 10010000 即用差分方式读 X 坐标