吽吽吽 发表于 2023-9-16 16:03:24

求助:STC8H4K64TL触摸数值太小 | 已解决

先上数据


电路板



有关程序(32MHZ,参考电容33NF )
void TK_ON(void)
{
TSCFG1=0x77;            
TSCFG2=0x10;            //触摸按键内部参考电压
TSWUTC=255;      //低压触摸唤醒频率。大于扫描时间。
TSRT=0x00;      //关闭LED分时复用
IE2&=0x7F;
}

void TK_GO(void)
{

unsigned char i;
for(i=1;i<6;i++)
      {
            switch(i)
                         {
               case 1:TSCHEN1=0x08;TSCHEN2=0x00;break; //TK3触摸
               case 2:TSCHEN1=0x20;TSCHEN2=0x00;break; //TK5触摸 0000 1000 并开始扫描
               case 3:TSCHEN1=0x02;TSCHEN2=0x00;break; //TK1触摸 0000 0010 并开始扫描
               case 4:TSCHEN1=0x01;TSCHEN2=0x00;break; //TK0触摸 0010 0000
               case 5:TSCHEN1=0x00;TSCHEN2=0x04;break; //TK10触摸 0010 0000
       }
    TSCTRL=0x80;       //1000 00007:触摸开始扫描 6:单次扫描5:扫描完成后暂停,4:低功耗时钟 3:关闭内部比较器 2:关闭低功耗 重复1次                        
    while(TSIF==0){TSIF=TSSTA2;TSIF=TSIF>>7;}   //TSIF变1,扫描完成否则等待扫描完成
    TSCTRL=0x00;      //关闭触摸
    TSSTA2|=0X80;   //触摸中断清零      
    TSIF=0;         //扫描完成标志清零      
    switch(i)                   //通过i判断扫描的是哪个触摸按键
                {
/***************************************************************************************************************************/                                 
                        case 1:{TK_DAT=TSDAT;TK_DATNH=TSDATH;TK_DATNL=TSDATL;
                                       AURT_1(0XFA);AURT_1(TK_DATNH);AURT_1(TK_DATNL);      //串口分别输出高低数据
               TSTH03=TK_DAT;      
                                 TK_DAT=0x0000;break;}
                        case 2:{TK_DAT=TSDAT;TK_DATNH=TSDATH;TK_DATNL=TSDATL;
                                       AURT_1(0XFB);AURT_1(TK_DATNH);AURT_1(TK_DATNL);
               TSTH05=TK_DAT;      
                                 TK_DAT=0x0000;break;}
                        case 3:{TK_DAT=TSDAT;TK_DATNH=TSDATH;TK_DATNL=TSDATL;
                                       AURT_1(0XFC);AURT_1(TK_DATNH);AURT_1(TK_DATNL);
               TSTH01=TK_DAT;      
                                 TK_DAT=0x0000;break;}
                        case 4:{TK_DAT=TSDAT;TK_DATNH=TSDATH;TK_DATNL=TSDATL;
                                       AURT_1(0XFD);AURT_1(TK_DATNH);AURT_1(TK_DATNL);
               TSTH00=TK_DAT;      
                                 TK_DAT=0x0000;break;}
                        case 5:{TK_DAT=TSDAT;TK_DATNH=TSDATH;TK_DATNL=TSDATL;
                                       AURT_1(0XFE);AURT_1(TK_DATNH);AURT_1(TK_DATNL);
               TSTH10=TK_DAT;      
                                 TK_DAT=0x0000;break;}               
                        
                        }
                           
                }
      
      }      

电子DIY小家 发表于 2023-9-18 08:37:12

手指直接触摸弹簧的话,不按下和按下的数值差多少呢?

吽吽吽 发表于 2023-9-18 19:42:57

电子DIY小家 发表于 2023-9-18 08:37
手指直接触摸弹簧的话,不按下和按下的数值差多少呢?

TK03: 触摸前00 0B 触摸后00 07
TK05: 触摸前00 0D 触摸后00 0A
TK01: 触摸前00 0C 触摸后00 09
TK00: 触摸前00 0C 触摸后00 09
TK05: 触摸前00 0D 触摸后00 0A
TK10:触摸前00 0D 触摸后00 0B

zgrfox110 发表于 2023-9-18 23:06:06

电子DIY小家 发表于 2023-9-18 08:37
手指直接触摸弹簧的话,不按下和按下的数值差多少呢?

我的直接触摸差一万多,但是隔3mm就差1000,加了电容,10-20-30nf都试了,没有明显的变大。

电子DIY小家 发表于 2023-9-19 08:02:18

zgrfox110 发表于 2023-9-18 23:06
我的直接触摸差一万多,但是隔3mm就差1000,加了电容,10-20-30nf都试了,没有明显的变大。 ...

隔3mm?这个是弹簧上面加了个3mm的面板吗?这种需要弹簧的顶面增大呀,你这个顶面太小了

吽吽吽 发表于 2023-9-21 23:07:42

问题解决了,是Tcap虚焊

神农鼎 发表于 2023-9-21 23:17:13

感谢分享心路历程

STCWORM 发表于 2024-6-14 17:11:21

请问一下 触摸可以探测到3毫米的塑料面板吗?TAP电容如何选择?

神农鼎 发表于 2024-6-14 17:17:47


5mm厚有机玻璃



触摸按键效果演示-功能演示-STC单片机教学视频 国芯技术交流网站 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)

页: [1]
查看完整版本: 求助:STC8H4K64TL触摸数值太小 | 已解决