最近闲来无事。浏览了一下stc8单片机的选型表,发现这个系列的芯片有不少特殊功能,其中就有我想玩的触摸按键功能。于是就想买来芯片体验一下。毕竟对新人来讲,仅靠看技术手册和现成的例程,心里还是感觉没底。
       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官方技术手册推荐的数值。芯片焊接时采用了电子显微镜,焊接位置偏差大幅减小,触摸键懒得做了。直接用了一排针代替,缺点是相邻针靠的有点近。会有干扰,实用时不能这样玩。


    image.png

    image.png