找回密码
 立即注册
查看: 1200|回复: 9

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

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:440
  • 最近打卡:2025-05-01 08:46:19

45

主题

176

回帖

1721

积分

金牌会员

积分
1721
发表于 2024-9-20 10:02:35 | 显示全部楼层 |阅读模式

截图202411031502039805.jpg

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制板文件。
如有问题欢迎回帖交流,如有引用、转帖请注明出处及作者信息!

触屏LCD12896PCB图.jpg

002.jpg

003.jpg

001.jpg
XTP2046做触摸屏专用检测IC的应用是普遍采用的方案
===本开源案例,目的是省去这个RMB0.3的专用IC
8H8K64U单片机片内ADC 采集 LCD屏表面贴的触摸屏的坐标数据
屏幕为LCD12896,屏幕驱动为ST7571,屏幕14个引脚由SPI总线驱动,
触屏为4线电阻式触摸屏
C语言工程用keil uv3编译
ST7571工程.zip (190.35 KB, 下载次数: 94)
PCB制板图用力创EDA绘制
Gerber_LCD_ST7565_LCD_ST7571_2024-09-19.zip (43.33 KB, 下载次数: 75)










1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2024-9-20 10:50:31 | 显示全部楼层
用 DMA 来支持 ADC, 这样减少 CPU 的压力
===8H8K64U有DMA支持ADC
===32G12K128有DMA支持ADC
===AI8051U有DMA支持ADC

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2024-11-3 15:00:26 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-04-29 07:45:37

3

主题

74

回帖

358

积分

中级会员

积分
358
发表于 2025-2-6 00:24:11 | 显示全部楼层
楼主,你的屏幕是不是在淘宝老王那里买的呢?我用你的驱动点不亮。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:440
  • 最近打卡:2025-05-01 08:46:19

45

主题

176

回帖

1721

积分

金牌会员

积分
1721
发表于 2025-2-6 19:41:17 | 显示全部楼层
rayr*** 发表于 2025-2-6 00:24
楼主,你的屏幕是不是在淘宝老王那里买的呢?我用你的驱动点不亮。

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:440
  • 最近打卡:2025-05-01 08:46:19

45

主题

176

回帖

1721

积分

金牌会员

积分
1721
发表于 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
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-04-29 07:45:37

3

主题

74

回帖

358

积分

中级会员

积分
358
发表于 2025-2-7 00:06:48 | 显示全部楼层
谢谢楼主的解答,用你的编译好的HEX文件能够屏幕能够正常运行,但是你给的代码部分不能用。就是屏幕驱动部分。我现在就卡在屏幕驱动部分,跪求屏幕驱动,谢谢。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:440
  • 最近打卡:2025-05-01 08:46:19

45

主题

176

回帖

1721

积分

金牌会员

积分
1721
发表于 2025-2-7 09:40:06 | 显示全部楼层
rayr*** 发表于 2025-2-7 00:06
谢谢楼主的解答,用你的编译好的HEX文件能够屏幕能够正常运行,但是你给的代码部分不能用。就是屏幕驱动部 ...

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




回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-04-29 07:45:37

3

主题

74

回帖

358

积分

中级会员

积分
358
发表于 2025-2-7 12:24:54 | 显示全部楼层
好的,我在去看一下。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:98
  • 最近打卡:2025-04-29 07:45:37

3

主题

74

回帖

358

积分

中级会员

积分
358
发表于 2025-2-11 19:03:43 | 显示全部楼层
楼主,我今天又重新编译了你给的源代码,还是不行,PCB板我就是用的你那款板子。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 19:16 , Processed in 0.127366 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表