单片机实现触摸键盘技术
创意欣赏

概述
用普通89S52单片机加几个电容、电阻即可实现单片机触摸键盘功能。
此技术将使您对单片机有新的理解和认识。
此技术为本站原创,转载请注明 DoYoung.net。
可以到本站论坛发表您的想法。
技术原理
很久之前,我就曾希望可以用专用IC或是三极管放大的方法实现单片机的触摸键盘功能,也做过一些实验,但是效果并不理想。专用IC太贵且难买到,所以我就一直在打三态I/O口的主意。三态I/O口即是 高电平、低电平、高阻态输入 三种状态,在89C51系列单片机的P0接口就是一个常见的三态I/O口。一般的电子制作中都将P0接一组上拉电阻使它变成高低电平的双态I/O口,而我从没有见到有电子制作资料用到P0的高阻态输入。
这是一件有趣的事情,于是开始实验,用示波器和技术资料了解P0的特性。用段简单的程序将P0口变成高阻输入态,之后将P0口的数据原样的传给P2口。研究发现当P0口与电源(5V)或地之间接入一个0.01uF的电容时后P0据有了一个特殊性能,用手触摸P0时会有一套脉冲信号输入,P2口镜像也有对应的脉冲。这说明只要可以处理好脉冲信号即可以实现触摸键盘,我连夜调试触摸键盘的驱动程序,目前已经找到了一种稳定采集键值的方法,希望可以和大家交流。下一部准备将此技术应用在下一个作品上,并对其可靠性做进一步的测试。
单片机触摸键盘驱动程序 电路原理图见下文
左为普通89S52单片机,电线是ISP下载线 
上方有8个LED,下方有8个对应的触摸键 
轻触键盘,对应LED点亮 
可以2个键同时触发 
也可以8个键同时触发,如果应用时没有用到8个P0口,余下的可接10K上拉电阻 
用多个同时触发的组合可以扩展更多的键盘数量 
可用导电金属触发,和其它触摸开关一样 
所有外围元件只有 8只电容和8个电阻 
采用万用实验板,过锡走线,全局无飞线 
电路原理图(点击放大) 
手在触摸到触片时的波形分析,从而确定单片机程序的实现方法 


