乐此不疲 发表于 2024-9-20 10:02:35

8H8K64U单片机ADC检测LCD屏上贴的电阻式触摸屏坐标,含触屏中断源码分享




用 XTP2046 做 电阻式触摸屏 专用检测IC 的应用是普遍采用的方案,
用单片机直接检测触屏并非主流应用,
但随着STC单片机ADC性能的提高,在一些小制作中用STC片内的12位ADC来控制触屏会更
加简单方便,在此分享这个完整的小制作,用STC8H8K64U-20Pin单片机片内ADC采集LCD
触屏的坐标数据,屏幕为LCD12896、屏幕驱动为ST7571、屏幕14个引脚由SPI总线驱动,
触屏为4线电阻式触摸屏。
关于电阻式LCD触摸屏的工作原理百度资源很多可自行学习本文不做赘述。
关于方案的实用性问题本制作也只是进行了简单验证、也没有触屏校准功能,
这里也希望与其他感兴趣的朋友共同讨论完善。

关于控制原理与代码设计可见程序中的描述文件及代码注释在此也不细说了,
下面只是简单介绍一下:用4个I/O口分别连接4个触屏引脚,需要保证X、Y
两组引脚中各有一个引脚连接到单片机的两个ADC采样引脚上,
触屏的另外两个引脚分别连接一个I/O口,两个I/O口可以是具有中断功能的普通口、
也可以将某一个I/O连接到一个外部中断引脚上,当需要检测X坐标时就给
X+、X-引脚之间通电而后在连接ADC引脚的Y引脚上读取模拟信号数据,检测Y坐标的原理亦然。
制作中除单片机外的元件非常少,其元件参数都标注在PCB上了一目了然就不再画原理图了,
PCB对应屏幕宽x高=52x46,板子宽x高=64x46,屏线标号为G12864-08P,
图中LCD、触屏的引脚需要根据自己的屏幕修改,
下面展示本制作的实物图片、分享控制代码、PCB制板文件。
如有问题欢迎回帖交流,如有引用、转帖请注明出处及作者信息!







用XTP2046做触摸屏专用检测IC的应用是普遍采用的方案
===本开源案例,目的是省去这个RMB0.3的专用IC
用8H8K64U单片机片内ADC 采集 LCD屏表面贴的触摸屏的坐标数据,
屏幕为LCD12896,屏幕驱动为ST7571,屏幕14个引脚由SPI总线驱动,
触屏为4线电阻式触摸屏。
C语言工程用keil uv3编译

PCB制板图用力创EDA绘制











神农鼎 发表于 2024-9-20 10:50:31

用 DMA 来支持 ADC, 这样减少 CPU 的压力
===8H8K64U有DMA支持ADC
===32G12K128有DMA支持ADC
===AI8051U有DMA支持ADC

神农鼎 发表于 2024-11-3 15:00:26

延申阅读:


内置ADC采样电阻式触摸屏TFT彩屏例程@8H8K64U,效果对比 - TFT/LCD12864/LCD1602/红外遥控 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)

rayrakey 发表于 2025-2-6 00:24:11

楼主,你的屏幕是不是在淘宝老王那里买的呢?我用你的驱动点不亮。

乐此不疲 发表于 2025-2-6 19:41:17

rayrakey 发表于 2025-2-6 00:24
楼主,你的屏幕是不是在淘宝老王那里买的呢?我用你的驱动点不亮。

是的,入手好久了的东西,如果不能点亮的话就仔细检查一下程序中的端口定义和实物的对应关系,我这段代码仅就触摸检测方面分享了一种想法或方法,程序仅供参考不建议做固件应用,如果懂得编程的话对照实物应该能点亮的。

乐此不疲 发表于 2025-2-6 20:00:55

给你这个屏的接口定义:方向是一楼PCB图目视从左至右为1-14脚。
1:CS
2: RST
3: DC
4: SCK
5: SDA
6: VCC
7: GND
8~12: NC
13: 背光负极BL-
14: 背光正极BL+

引脚14pin+4pin
屏引脚间距:0.8mm
触屏引脚间距:1.0mm

rayrakey 发表于 2025-2-7 00:06:48

谢谢楼主的解答,用你的编译好的HEX文件能够屏幕能够正常运行,但是你给的代码部分不能用。就是屏幕驱动部分。我现在就卡在屏幕驱动部分,跪求屏幕驱动,谢谢。

乐此不疲 发表于 2025-2-7 09:40:06

rayrakey 发表于 2025-2-7 00:06
谢谢楼主的解答,用你的编译好的HEX文件能够屏幕能够正常运行,但是你给的代码部分不能用。就是屏幕驱动部 ...

我的代码是我编译通过后复制的文件,不知道你说的“不能用”是什么情况,我的工程文件是由keil uv3编译生成的,你测试时首先需要在你的电脑上要有编译软件keil uv3,如果你用的是keil uv5或其他编译软件的话就需要重新建立工程而后把我的各个.c文件添加到你的工程里才好编译,如果编译没有通过可以根据编译错误提示去查找原因。




rayrakey 发表于 2025-2-7 12:24:54

好的,我在去看一下。

rayrakey 发表于 2025-2-11 19:03:43

楼主,我今天又重新编译了你给的源代码,还是不行,PCB板我就是用的你那款板子。
页: [1] 2
查看完整版本: 8H8K64U单片机ADC检测LCD屏上贴的电阻式触摸屏坐标,含触屏中断源码分享