找回密码
 立即注册
查看: 1234|回复: 2

触摸按键测试例程分享——基于STC8H4K64TL-TSSOP20的触摸功能

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-11-26 13:41:15

14

主题

87

回帖

669

积分

高级会员

积分
669
发表于 2023-6-23 09:21:57 | 显示全部楼层 |阅读模式
  最近闲来无事。浏览了一下STC8H的选型表,发现这个系列的芯片有不少特殊功能,其中就有我想玩的触摸按键功能。于是就买来芯片体验一下。毕竟对新人来讲,仅靠看技术手册和现成的例程,心里还是感觉没底。
      stc官方提供了这个功能的强大的应用例程,它是触摸按键和数码管的综合应用,我还没学到数码管,所以实验时就把程序修改了一上。用TFT屏做为输出,显示按键的结果,感觉程序更简单,也更容易移植,TFT屏还可以显示程序运行过程中的任意想显示的变量,方便对程序的理解和调试。
  程序仍然采用模块化编程,显示屏驱动采用旧的程序模块直接挂上来使用,主要做了触摸功能的程序模块,内含触摸功能初始化,触摸键检测,触摸中断服务及少量辅助函数。程序的构架尽量采用了stc官方例程的内容,尤其是核心算法方面。完全复制了stc官方例程的内容。修改的内容主要是为了与数码管功能脱钩。(同时适应tssop20这个引脚校少的芯片。)方便挂接其它应用程序。程序的功能就是在接触一个按键后。显示屏上显示出相应按键对就的端口数值。下面是主程序,完整程序还是放在附件里了。
#include "mcu_initial.h"
#include "tft089_driver.h"
#include "touch_drv.h"
#include "stdio.h"
#include "intrins.h"

void main(void)
{
mcu_initial();
lcd_initial();//1.8吋屏初始化
//TFT089_init() ;        
TFT_clear();
digit6_display(0,0,222);//随便显示一个数字表示屏初始化成功
touch_initial();//触摸功能初始化
while (1)
        {

        check_touch();//检查触摸键

        }
}
附图能看到实物结构,基本就是最小系统,触摸参考电容和限流电阻直接使用了stc官方技术手册推荐的数值。芯片焊接时采用了电子显微镜,焊接位置偏差大幅减小,触摸键懒得做了。直接用了一排针代替,缺点是相邻针靠的有点近。会有干扰,实用时不能这样玩。

触摸1.jpg
触摸2.jpg

touch_test.zip

246.43 KB, 下载次数: 139

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2023-6-23 09:55:12 | 显示全部楼层
感谢分享节日快乐
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-05-01 12:57:20

10

主题

41

回帖

618

积分

高级会员

积分
618
发表于 2023-6-23 10:20:53 | 显示全部楼层
下来学习学习,谢谢。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-3 00:44 , Processed in 0.124598 second(s), 63 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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