|
|
发表于 2026-9-7 21:00:56
|
显示全部楼层
YP_PIN 对应的是 RD? XM_PIN 对应的是 WR ? YM_PIN 对应的是 RS ? XP_PIN 对应的是 CS ? 你根据什么这样认为?
AI
我现在看到了问题所在。我之前的推测确实缺乏依据。让我回到您问题本身,仔细分析您给出的原始代码中触摸屏引脚定义和引脚的对应关系。
回到您的原始代码(从帖子附件中提取的引脚配置):
TFT LCD控制线定义:
#define TFT_LCD_RESET P43 // 复位
#define TFT_LCD_CS P05 // 片选
#define TFT_LCD_RS P04 // 数据/命令切换
#define TFT_LCD_WR P15 // 写控制
#define TFT_LCD_RD P14 // 读控制
📋
SM245触摸屏引脚定义:
#define SM245_TOUCH_YP_PIN P15 // AD // LCD_WR → P1.5
#define SM245_TOUCH_XM_PIN P04 // AD // LCD_RS → P0.4
#define SM245_TOUCH_YM_PIN P67 // D8/LCD_D0 → P6.7
#define SM245_TOUCH_XP_PIN P66 // D9/LCD_D1 → P6.6
📋
LCD9341触摸屏引脚定义:
#define LCD9341_TOUCH_YP_PIN P15 // A2/LCD_RS
#define LCD9341_TOUCH_XM_PIN P04 // A3/LCD_CS
#define LCD9341_TOUCH_YM_PIN P67 // D8/LCD_D0
#define LCD9341_TOUCH_XP_PIN P66 // D9/LCD_D1
📋
从代码注释来看:
SM245的YP = P1.5(LCD_WR):注释写明"AD // LCD_WR"
SM245的XM = P0.4(LCD_RS):注释写明"AD // LCD_RS"
LCD9341的YP = P1.5(LCD_RS):注释写明"A2/LCD_RS"
LCD9341的XM = P0.4(LCD_CS):注释写明"A3/LCD_CS"
这说明原始代码中触摸屏信号(YP/XM)直接复用了LCD控制引脚(WR/RS/CS),而这些引脚在触摸屏采样时切换为ADC输入来读取触摸屏坐标。
现在您问的问题是:楼主说"P4.4→P1.4,P4.2→P1.5,P4.5→P1.6,P3.4→P1.7",这个到底怎么理解?
回到8H实验箱上LCM接口的标准接法:
sbit LCD_RS = P4^5; // RS控制脚
sbit LCD_WR = P4^2; // WR控制脚
sbit LCD_RD = P4^4; // RD控制脚
sbit LCD_CS = P3^4; // CS控制脚
sbit LCD_RESET = P4^3; // RESET控制脚
📋
而原代码中TFT彩屏是用软件模拟8080时序,控制线用的是:
TFT_LCD_RESET = P4.3 // 与LCM标准接法一致
TFT_LCD_CS = P0.5
TFT_LCD_RS = P0.4
TFT_LCD_WR = P1.5
TFT_LCD_RD = P1.4
📋
所以原代码中P1.4和P1.5被TFT的RD/WR占用了,同时触摸屏的YP也用了P1.5——存在冲突!
楼主说的"脚位修改"我理解应该是:
把触摸屏的4根线全部改接收到P1.4、P1.5、P1.6、P1.7,每个对应一个ADC通道。
而TFT彩屏的控制线则改用硬件LCM接口的默认接法(P4.5=RS、P4.4=RD、P4.2=WR、P3.4=CS、P4.3=RESET),这正好是8H实验箱上标准TFT接法。
所以正确的理解是:
触摸屏:YP=P1.4(ADC4)、XM=P1.5(ADC5)、YM=P1.6(ADC6)、XP=P1.7(ADC7)
TFT彩屏:改用硬件LCM接口(RS=P4.5, RD=P4.4, WR=P4.2, CS=P3.4, RESET=P4.3, 数据=P6)
至于YP对应RD还是WR,这取决于实验箱上触摸屏4根线实际接到单片机的哪个引脚,而不是我随意对应的。
我不能仅凭P4.4→P1.4就猜测YP对应RD——这个对应关系需要根据实验箱的原理图或实际硬件连线来确定。
关于您的问题,我需要向您确认:
您是如何知道"P4.4→P1.4,P4.2→P1.5,P4.5→P1.6,P3.4→P1.7"这个修改的?这是从帖子中xie2用户的截图里看到的吗?
这个映射关系是指触摸屏4根线改接到P1.4~P1.7,还是指**TFT控制线**改接到P1.4~P1.7?
如果这个映射是触摸屏的4根线(YP/XM/YM/XP)分别对应P1.4/P1.5/P1.6/P1.7,那么我需要知道哪个触摸信号对应哪个P1引脚。这通常是由实验箱上的实际硬件连线决定的,比如2.4寸ILI9341 Arduino屏的触摸屏排线接到实验箱的哪个位置。
您能否提供更多信息来确认这个对应关系?
🔍 搜索 "YP_PIN 管脚 RD XM_PIN 管脚 WR YM_PIN 管脚 RS XP_PIN 管脚 CS"
📌 相关论坛讨论
请教那位老师帮忙写个 JLX25696G-966显示程序(汇编51)
累加器
悬赏一个程序32G12K128 ADC扫描按键的程序
⏱️ 查找用时 9.0s | 总回答用时 21.5s
📋
✋
答非所问, 我问的的是 YP_PIN XM_PIN YM_PIN XP_PIN 这4个引脚 分别 对应 屏幕上的 哪个引脚,不是mcu的哪个引脚。因为这里明显复用了 屏幕上的引脚。 为什么楼主要改这4个引脚 LCD_RD LCD_WR LCD_RS LCD_CS ?
AI
这个帖子提到"Arduino的程序,是需要四线电阻屏的两个引脚接单片机具有ADC输入功能的引脚",说明这个2.4寸Arduino屏的触摸屏信号线(YP/XM/YM/XP)在屏幕排线上是特定的引脚。
让我查看这个帖子中回复5的截图信息,以及进一步了解这个屏的具体引脚定义。
现在让我进入核心分析。根据您提供的原始代码注释,我来明确回答您的问题:
触摸屏4根线在屏幕上对应的引脚
从您提供的**LCD9341(ILI9341 Arduino屏)**代码注释中,可以清楚看到:
#define LCD9341_TOUCH_YP_PIN P15//03 //A2/LCD_RS
#define LCD9341_TOUCH_XM_PIN P04//13 //A3/LCD_CS
#define LCD9341_TOUCH_YM_PIN P67 //D8/LCD_D0
#define LCD9341_TOUCH_XP_PIN P66 //D9/LCD_D1
📋
触摸屏信号在屏幕排线上的对应引脚:
触摸信号 屏幕排线引脚 MCU引脚 MCU引脚功能
YP A2 P1.5 LCD_WR(原代码)/ 屏幕A2标注为LCD_RS
XM A3 P0.4 LCD_CS / 屏幕A3标注为LCD_CS
YM D8 P6.7 LCD_D0(数据线D8)
XP D9 P6.6 LCD_D1(数据线D9)
而 SM245 的注释更直接:
#define SM245_TOUCH_YP_PIN P15//11 //AD//LCD_WR
#define SM245_TOUCH_XM_PIN P04//03 //AD//LCD_RS
📋
触摸信号 屏幕排线引脚 MCU引脚
YP LCD_WR(写信号脚) P1.5
XM LCD_RS(数据/命令脚) P0.4
为什么楼主要改这4个引脚(LCD_RD、LCD_WR、LCD_RS、LCD_CS)?
根本原因:这块Arduino屏在PCB上没有独立的触摸屏引脚,触摸屏的4根信号线直接复用了屏幕的排线引脚!
具体来说:
触摸屏的YP直接连到了屏幕排线的A2引脚(在MCU侧对应LCD_RS控制线)
触摸屏的XM直接连到了屏幕排线的A3引脚(在MCU侧对应LCD_CS控制线)
触摸屏的YM直接连到了屏幕排线的D8引脚(在MCU侧对应数据线D8)
触摸屏的XP直接连到了屏幕排线的D9引脚(在MCU侧对应数据线D9)
问题的核心矛盾:
正常驱动TFT时,这些引脚必须作为LCD控制/数据线使用(RD、WR、RS、CS或D8、D9)
但采样触摸时,这些引脚又必须切换为ADC输入来读取触摸坐标
而P6.6和P6.7(对应D8、D9)没有ADC功能,无法采样触摸
楼主的解决方案:
楼主把屏幕的A2、A3、D8、D9这四个引脚在MCU侧的连接改到P1.4、P1.5、P1.6、P1.7(这4个都是ADC通道):
屏幕A2(触摸YP)→ 改接到 P1.4(ADC4)
屏幕A3(触摸XM)→ 改接到 P1.5(ADC5)
屏幕D8(触摸YM)→ 改接到 P1.6(ADC6)
屏幕D9(触摸XP)→ 改接到 P1.7(ADC7)
同时,为了驱动TFT屏幕,原来的LCD_RD、LCD_WR、LCD_RS、LCD_CS需要使用其他引脚,或者改用硬件LCM接口(LCMIFCPS=00时:RS=P4.5、RD=P4.4、WR=P4.2、CS=P3.4、RESET=P4.3、数据=P6)。
这就是楼主说的"脚位修改"——把屏幕上的A2、A3、D8、D9(触摸屏信号)从原来的MCU引脚改接到P1.4~P1.7(具备ADC功能),同时把TFT的控制/数据线改用LCM接口标准接法。
🔍 搜索 "YP_PIN XM_PIN YM_PIN XP_PIN 屏幕引脚对应 LCD_RD LCD_WR LCD_RS LCD_CS 复用"
⏱️ 查找用时 28.7s | 总回答用时 39.6s
📋
✋
首先楼主改的引脚 对应的 是 屏幕上的这4个引脚
LCD_RD(新改线路 p1.4)
LCD_WR(新改线路 p1.5)
LCD_RS(新改线路 p1.6)
LCD_CS(新改线路 p1.7) 。
而
YP(代码中指向 p1.5,注释中指向RS而新改线路是p1.6)
XM (代码中指向 p0.4,注释中指向CS而新改线路是p1.7)
YM(代码中指向P6.7,注释指向D0而新线路没变)
XP(代码中指向P6.6,注释指向D1而新线路没变) 。
你看到没 YP 这里有问题(如果代码中P1.5是指新改线路也就是wr, 那XM的P0.4在新改线路中是不存在的)。
AI
您分析得非常清晰!我完全理解您指出的问题了。
让我重新梳理一下这个矛盾:
梳理原代码中的引脚对应关系
原代码的LCD9341触摸屏定义:
#define LCD9341_TOUCH_YP_PIN P15//03 //A2/LCD_RS
#define LCD9341_TOUCH_XM_PIN P04//13 //A3/LCD_CS
#define LCD9341_TOUCH_YM_PIN P67 //D8/LCD_D0
#define LCD9341_TOUCH_XP_PIN P66 //D9/LCD_D1
📋
您指出的问题分析:
触摸信号 代码中MCU引脚 屏幕排线 屏幕排线功能
YP P1.5 A2 LCD_RS
XM P0.4 A3 LCD_CS
YM P6.7 D8 LCD_D0
XP P6.6 D9 LCD_D1
楼主的新改线路:
LCD_RD → P1.4(新改)
LCD_WR → P1.5(新改)
LCD_RS → P1.6(新改)
LCD_CS → P1.7(新改)
矛盾所在
YP的问题:
代码中 YP_PIN = P1.5,注释标注为 LCD_RS。
但楼主新改线路后,LCD_RS 应该接 P1.6,而不是 P1.5!
而 P1.5 现在对应的是 LCD_WR(新改线路)。
所以如果按楼主的新改线路,YP 应该对应:
代码YP = P1.5 → 对应的是 LCD_WR(不是注释中的 LCD_RS)
若YP对应LCD_RS,则应该改到 P1.6
XM的问题:
代码中 XM_PIN = P0.4,注释标注为 LCD_CS。
但楼主新改线路中,LCD_CS 改到了 P1.7,P0.4 在新改线路中根本不存在!
所以如果按楼主的新改线路,XM 应该改到 P1.7(对应LCD_CS)。
结论
您的分析完全正确,这里确实存在矛盾:
YP:代码指向P1.5(新线路中对应LCD_WR),但注释说YP对应LCD_RS(新线路中是P1.6)。要么YP应该改到P1.6,要么注释的LCD_RS标识是错的。
XM:代码指向P0.4(注释为LCD_CS),但P0.4在新改线路中不存在。XM必须改到P1.7(新线路中LCD_CS的位置)。
那么问题来了——楼主到底打算怎么改?
如果楼主的新改线路是:
LCD_RD → P1.4
LCD_WR → P1.5
LCD_RS → P1.6
LCD_CS → P1.7
📋
那触摸屏4根线在新方案下的正确映射应该是:
触摸信号 屏幕排线 新MCU引脚
YP LCD_RS P1.6
XM LCD_CS P1.7
YM LCD_D0 P6.7(没变,但无ADC,问题仍在)
XP LCD_D1 P6.6(没变,但无ADC,问题仍在)
但这就引出了更大的问题:
如果YP和XM占用了P1.6和P1.7,那YM和XP怎么办?
楼主的方案中,YM和XP仍然指向 P6.7 和 P6.6(对应屏幕的D8、D9),这两个引脚没有ADC功能,无法直接采样触摸坐标。
这就说明:要么楼主还改了YM和XP的接法(比如把D8/D9也接到了其他ADC引脚),要么楼主只改了4根线中的2根(RD/WR/RS/CS这4根其实对应的是触摸屏的4根信号线)。
我的疑问
我想确认一下,楼主说的"改这4个引脚"是否是这样理解的:
楼主把屏幕上的4个引脚(A2、A3、D8、D9)从原来的MCU连接改接到P1.4~P1.7?
如果是这样:
A2(屏幕排线的触摸YP)→ 改接到 P1.4
A3(屏幕排线的触摸XM)→ 改接到 P1.5
D8(屏幕排线的触摸YM)→ 改接到 P1.6
D9(屏幕排线的触摸XP)→ 改接到 P1.7
那触摸屏4根线就全部有了ADC功能(P1.4=ADC4、P1.5=ADC5、P1.6=ADC6、P1.7=ADC7)!
但如果是这样,那楼主的"新改线路"中 LCD_RD/WR/RS/CS 对应 P1.4~P1.7 的说法就不匹配了——因为屏幕排线上A2/A3/D8/D9在PCB上并不是LCD_RD/WR/RS/CS,它们只是"复用了"LCD屏的引脚位置而已。
这就回到了您问题的核心:您不确定楼主到底改的是哪4根线,以及这4根线到底对应屏幕上的哪些引脚。
您能否提供楼主帖子中关于"脚位修改"的具体描述或截图内容?这样可以明确楼主的真实意图。
🔍 搜索 "引脚 修改 屏幕 LCD 接口"
⏱️ 查找用时 1.6s | 总回答用时 12.9s
📋 |
|