一、感应按键通道选择和灵敏度设置 void TK_SET(unsigned char NUM,unsigned charSENSITIVITY) TK_SET是感应按键通道设定函数 NUM是通道值,HR7P201有14个通道分别是TK0到TK13。NUM的值范围为0到13.0代表TK0,13代表TK13. SENSITIVITY是灵敏度,建议赋值为(5-80) 比如选用感应按键0,灵敏度为20;感应键9,灵敏度为25; TK_SET(0,20); TK_SET(9,25); 二、感应按键基线更新速度设置 void TK_BASELINE_SPEED(unsigned charTK_BASE_UP_SPEED,unsigned charTK_BASE_DOWN_SPEED,unsigned charTK_BASE_OK_SPEED); TK_BASELINE_SPEED是基线更新速度函数 TK_BASE_UP_SPEED是向上更新速度,一般取值为(5-40);默认为20; 在满足缓慢按下手感情况下,值越小越好。便于环境自适应。 TK_BASE_DOWN_SPEED向下更新速度,一般取值为(5-40);默认为20; 在满足手按住按键上电后再次按下手感情况下,值越大越好。 TK_BASE_OK_SPEED相等更新速度,一般取值为(5-40);默认为20; 在满足上电后马上操作情况下,值越大越好。 三、感应按键系统初始化 void TK_SYS_CONFIG(unsigned char TK_single_ack_SPEED,unsigned char TK_strongest_ack_SPEED,unsigned char TK_AP,unsigned char TK_CLK); TK_SYS_CONFIG是系统选项 TK_single_ack_SPEED是多键相应速度,一般取值(1-20)默认为4; 多键按下相应速度,相当于普通按键的滤波次数。在满足手感情况下,值越大越好。 TK_strongest_ack_SPEED是最强键相应速度,一般取值(1-20)默认为4; 最强键按下相应速度,相当于普通按键的滤波次数。在满足手感情况下,值越大越好。最强键是在感应按键潮湿情况下,单个输出的有效键 TK_AP是感应按键的放大倍数,取值范围是(1-255);默认为20; TK_CLK是最多按键有效数和感应模块频率,高四位为感应按键最多按键有效数(默认值为14),低四位为感应模块频率默认值为1 高四位设定(2-14): 1、 在调试阶段设定为14 2、 没有组合键高四位设定为2 3、 有组合键设定为组合键数加1.比如是两个键的组合键设定为3. 低四位的设定(0-3): 1、 用示波器看感应按键的波形,在波形不变形的情况下数值越小越好 2、 查看按键结果,在数值不变情况下,数值越小越好。查看按键结果使用函数unsigned intTK_RETUN_RAWDATA(unsigned char NUM); 四、感应按键转换结果读出函数 void TK_READ_DATA(); 感应按键转换完利用本函数保存转换结果 五、感应按键通道启动函数 void TK_START(); 启动感应按键工作 六、感应按键处理函数 void TK_MANAGE(); 感应按键处理函数。建议1毫秒调用一次。 七、感应按键软复位函数 voidTK_REST(void); 调用本函数,感应按键自动复位学习环境参数。 八、调试函数 unsigned char TK_RETUN_DELTA(unsigned char NUM); 感应按键变化量读出函数,NUM的值范围为0到13.0代表TK0,13代表TK13. 14为最大变化量。 本函数是为了设定感应按键灵敏度,在实际系统调试时按下按键读出相应按键变化量取本值的1/2作为感应按键的灵敏度值。 unsigned int TK_RETUN_RAWDATA(unsigned char NUM); 感应按键原始值读出函数。NUM的值范围为0到13.0代表TK0,13代表TK13. 九、输出函数 unsigned char TK_RETUN_strongest(); 感应按键最强值读出结果。单键有效的时候建议使用本函数输出的结果。TK0有效输出为1,TK2有效输出为3. unsigned int TK_RETUN_SINGLE(); 感应按键多键输出结果。TK0输出在BIT0,TK1输出在BIT1,TK13输出在BIT13. 有组合键时利用本输出结果。建议在有组合键时加上长按有效。 void isr(void) interrupt { if(T8P1IF)//中断周期125uS { T8P1IF=0; } if(!TKGO) //感应按键转换完 { TK_READ_DATA();//读感应按键结果 TK_START();//启动感应按键 } } //*****************************************************// //主函数 //*****************************************************// void main() { clr_ram();//清内存 TK_SET(0,25);//开启感应按键通道0,灵敏度为25 TK_SET(6,,25);//开启感应按键通道6,灵敏度为25 TK_SET(7,15);//开启感应按键通道7,灵敏度为25 TK_BASELINE_SPEED(10,10,10);// //TK_BASELINE_SPEED是基线更新速度函数 //TK_BASE_UP_SPEED是向上更新速度,一般取值为(5-40); //TK_BASE_DOWN_SPEED向下更新速度,一般取值为(5-40); //TK_BASE_OK_SPEED相等更新速度,一般取值为(5-40); //建议本函数放主循环里 TK_SYS_CONFIG(4,4,20,0x21);//TK_SYS_CONFIG(4,4,20,0xf1); //TK_SYS_CONFIG是系统选项 //TK_single_ack_SPEED是多键相应速度,一般取值(1-20) //TK_strongest_ack_SPEED是最强键相应速度,一般取值(1-20) //TK_AP是感应按键的放大倍数,取值范围是(1-255); //TK_CLK是感应模块频率,0xf`1(最多支持15键), while(1) { CLR_WDT() TK_MANAGE();//感应按键处理函数,每1MS调用一次 // TK_RETUN_DELTA(9);//感应按键变化量读出函数,NUM是通道 // TK_RETUN_DELTA(10);//感应按键变化量读出函数,NUM是通道 //TK_RETUN_DELTA(11);//感应按键变化量读出函数,NUM是通道 //TK_RETUN_SINGLE();//感应按键所有键读出结果 i=TK_RETUN_strongest();//感应按键最强值读出结果 } }
TK_LIB.rar
(1.32 MB)
|