小白跟做江科大51单片机之AD/DA

1.看原理图找接口

2.看时序图编写读取数据代码

XPT2046.c代码

#include <REGX52.H>

//引脚定义

sbit XPY2046_DIN=P3^4;

sbit XPY2046_CS=P3^5;

sbit XPY2046_DCLK=P3^6;

sbit XPY2046_DOUT=P3^7;

unsigned int XPT2046_ReadAD(unsigned char Command)

{

unsigned char i;

unsigned int Data=0;

XPY2046_DCLK=0; //确保其为低位

XPY2046_CS=0; //拉低

for(i=0;i<8;i++)

{

XPY2046_DIN=Command&(0x80>>i); //给第i位数据

XPY2046_DCLK=1; //上升发送数据

XPY2046_DCLK=0; //下降

}

for(i=0;i<16;i++)

{

XPY2046_DCLK=1;

XPY2046_DCLK=0;

if(XPY2046_DOUT){Data|=(0x8000>>i);}

}

XPY2046_CS=1;

return Data>>8;

}

3.根据XPT2046原理图定义命令

S选为1,A2-A0自己选择,MODE选择分辨率第一个例子选1,SER根号DFR选1(单端模式),PD1-PD0选0

测量X+,根据单端模式输入配置图,A2-A0可以为001,也可以为011,以001为例,故命令码为1001 1100即0x9C,以此类推在XPT2046.h下定义一下命令

#define XPT2046_VBAT 0xAC

#define XPT2046_AUX 0xEC

#define XPT2046_XP 0x9C //0xBC

#define XPT2046_YP 0xDC

4.编写main代码

#include <REGX52.H>

#include "Delay.h"

#include "LCD1602.h"

#include "XPT2046.h"

unsigned int ADValue;

void main(void)

{

LCD_Init();

LCD_ShowString(1,1,"ADJ NTC GR");

while(1)

{

ADValue=XPT2046_ReadAD(XPT2046_XP); //读取AIN0,可调电阻

LCD_ShowNum(2,1,ADValue,3); //显示AIN0

ADValue=XPT2046_ReadAD(XPT2046_YP); //读取AIN1,热敏电阻

LCD_ShowNum(2,6,ADValue,3); //显示AIN1

ADValue=XPT2046_ReadAD(XPT2046_VBAT); //读取AIN2,光敏电阻

LCD_ShowNum(2,11,ADValue,3); //显示AIN2

Delay(100);

}

}

5.实现结果

XPT2046效果展示

相关推荐
Zevalin爱灰灰31 分钟前
编程技巧(基于STM32)第一章 定时器实现非阻塞式程序——按键控制LED灯闪烁模式
stm32·单片机·嵌入式硬件
红花与香菇2____2 小时前
【学习笔记】Cadence电子设计全流程(二)原理图库的创建与设计(上)
笔记·嵌入式硬件·学习·pcb设计·cadence·pcb工艺
Jerry.yl2 小时前
关于 BK3633 上电时受串口 UART2 影响而无法启动的问题说明
嵌入式硬件·物联网·bk3633
苏慕TRYACE4 小时前
RT-Thread+STM32L475VET6实现红外遥控实验
stm32·单片机·嵌入式硬件·rt-thread
小幽余生不加糖5 小时前
deepseek帮我设计物理量采集单片机口保护电路方案
单片机·嵌入式硬件
Ronin-Lotus6 小时前
蓝桥杯篇---IAP15F2K61S2串口
单片机·嵌入式硬件·职场和发展·蓝桥杯·c·iap15f2k61s2
xiaohai@Linux7 小时前
ESP32 在IDF_V5.3.1版本下实现AP无线热点模式!(带WIFI事件处理)
c语言·嵌入式硬件·tcp/ip·wifi·esp32
yyqzjw8 小时前
【STM32】外部时钟|红外反射光电开关
stm32·单片机·嵌入式硬件
charlie1145141918 小时前
(萌新入门)如何从起步阶段开始学习STM32 —— 0.碎碎念
c语言·stm32·单片机·嵌入式硬件·学习·教程
苏慕TRYACE8 小时前
RT-Thread+STM32L475VET6——ADC采集电压
stm32·单片机·嵌入式硬件·rt-thread