SPT2046芯片
简单介绍:
要读入的数据
控制位命令
- 控制字节由 DIN输入的控制字如表 5 所示,它用来启动转换,寻址,设置 ADC 分辨率,配置和对 XPT2046 进行掉电控制。图 12、表 5 和表 6 给出控制字的各控制位的详细说明。
- 起始位——第一位,即 S 位。控制字的首位必须是 1,即 S=1。在 XPT2046 的 DIN 引脚检测到起始位前,所有的输入将被忽略。
- 地址——接下来的 3 位(A2、A1 和 A0)选择多路选择器的现行通道(见表 3、表 4 和图 6),触摸屏驱动和参考源输入。
- MODE——模式选择位,用于设置 ADC的分辨率。MODE=0,下一次的转换将是 12 位模式;MODE=1,下一次的转换将是 8 位模式。
补:
- PD0 和 PD1——表 5 展示了掉电和内部参考电压配置的关系。ADC 的内部参考电压可以单独关闭或者打开,但是,在转换前,需要额外的时间让内部参考电压稳定到最终稳定值;如果内部参考源处于掉电状态,还要确保有足够的唤醒时间。ADC 要求是即时使用,无唤醒时间的。另外还得注意,当 BUSY 是 高电平的时候,内部参考源禁止进入掉电模式。XPT2046 的通道改变后,如果要关闭参考源,则要重新对 XPT2046 写入命令。
所以: - 如果要检测转换电位器模拟信号,控制字命令寄存器值为0X94或者0XB4.
- 如果要检测转换热敏电阻模拟信号,控制字命令寄存器值为0XD4.
- 如果要检测转换光敏电阻模拟信号,控制字命令寄存器值为0XA4.
- 如果要检测转换AIN3通道上模拟信号,控制字命令寄存器值为0XE4.
这个狗屎代码找了我2小时bug,最可气的是虽然最后bug解决了但是莫名其妙消失的,我根本不知道为什么
代码如下:
//#include <REGX52.H>
#include<XPT2046.H>
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
uchar disp[4];
uchar code smgduan[10]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uint i)
{
while