这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 哪位知道国产89位单片机STC8H触摸按键的原理和用法?

共4条 1/1 1 跳转至

哪位知道国产89位单片机STC8H触摸按键的原理和用法?

工程师
2021-03-04 09:53:41     打赏

按例程,我写了一个调试的程序,但TSSTA2 返会的数值一值是  0x47,TSDOV 一直为溢出状态。
想请教下:怎么调整参数?
按键的扫描数跟 TSCFG1的 开关电容工作频率有什么关系?

还有放电时间的关系?参考电压的关系?

先谢过了!


我的电路和代码分别如下:


  1. #include "touch_key.h"


  2. void intTouch_key()

  3. {

  4.         P_SW2|=0x80;

  5.         TSRT = 0x00;//ûÓзÖʱLED

  6.         TSCHEN1=0x0f; //ͨµÀΪ TK0---TK3

  7.         TSCFG1  = (0<<7) + 3;        // ƵÂÊF_key=fosc/(2*(TSCFG1[6:4]+1)),·Åµçʱ¼ä 0(125) 1(250) 2(500) 3(1000) 4(2000) 5(2500) 6(5000) 7(7500) ×îС3

  8.         TSCFG2  = 2;                        //        //ÅäÖô¥Ãþ°´¼ü¿ØÖÆÆ÷µÄÄÚ²¿²Î¿¼µçѹ(AVCCµÄ·Öѹ±È), 0(1/4)  1(1/2)  2(5/8)  3(3/4)

  9.   TSCTRL = (1<<7)+ 0<<6+0;                        //¿ªÊ¼×Ô¶¯É¨Ãè, ÎÞƽ¾ù, B7: TSGO,  B6: SINGLE,  B5: TSWAIT, B4: TSWUCS, B3: TSDCEN, B2: TSWUEN, B1 B0: TSSAMP


  10. }



  11. unsigned int  readkey()

  12. {


  13.         unsigned char keydat;

  14.         unsigned int keycnt;


  15.         keydat=TSSTA2;


  16.         if(keydat&0x40)//TSDOV ÖÃ1  ÓÐÒç³ö

  17.         {

  18.                 TSSTA2|=0x40;

  19.         }

  20.   

  21.         if(keydat&0x80)//¶ÁÈ¡Íê³É

  22.         {

  23.                 TSSTA2|=0x80;

  24.                

  25.                 switch (keydat&0x0f)

  26.                 {

  27.                         case 0:{keycnt=TSDATH<<8|TSDATL;

  28.                                      

  29.                                

  30.                                 }break;

  31.                         case 1:{}break;

  32.                         case 2:{}break;

  33.                         case 3:{}break;

  34.                         default:break;

  35.                 }

  36.                

  37.         }

  38.        

  39.         return keycnt;



  40. }





关键词: 国产MCU          STC8H     触摸按键    

工程师
2021-03-04 21:25:14     打赏
2楼

开关电容工作频率:公用的电路,不管是一路还是多路按键,都一样。
放电时间:就是检测完毕,将参考电容的电放掉,公用的电路,不管是一路还是多路按键,都一样。
参考电压:比较器的参考电压,参考电容充电到这个电压就完成检测,一般建议取1/2、5/8或3/4。
按键的扫描数多少,以上设置都一样,公用的。


工程师
2021-03-04 21:38:43     打赏
3楼

都是充放电的原理,或者检测频率是否变化来判断电容按键是否有效。


工程师
2021-03-04 21:41:44     打赏
4楼

现在自带触摸功能的MCU不少,这个功能挺方便和实用.


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]