键盘电路的类型及其软硬件设计方法
fxw451
键盘电路的设计在电子设计大赛中是必不缺少的,80%的同学可能都做过这方面的东西,我再此在强调了,有错误之处还请大家批评指正,也便于初学者的学习。
键盘是由若干按钮组成的开关矩阵,它是单片机系统中最常用的输入设备,用户能通过键盘向计算机输入指令、地址和数据。在工程应用中,键盘是应用最广的,有时候可能为了考虑成本问题,使得IO资料比较紧张,于是我们就想方设法地在别的模块中节省IO口,好不容易挤出一两个IO口,却发现仍然不够用,实在没办法了就添加一个IC来扫键。IC虽然价格不贵,但是对于那些抠门的老板来说这笔花费也是不值得的。
我主要参考了“堪称一绝的“IO口扫键”法”,这里面描述的已经很清楚了。
(1)考虑到按键,大家可能必须要考虑的“按钮开关的抖动问题”: 组成键盘的按钮有触点式和非触点式两种,单片机中应用的一般是由机械触点组成的。在下图中,当开关S未被按下时,P1.0输入为高电平,S闭合后,P1.0输入为低电平。由于按钮是机械触点,当机械触点断开、闭合时,会有抖动动,P1.0输入端的波形如图2所示。这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全能感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。前面我们讲到中断时曾有个问题,就是说按钮有时灵,有时不灵,其实就是这个原因,你只按了一次按钮,可是计算机却已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行的次数是偶数次,那就不对了。
程序如下:
本帖最后由 paulhyde 于 2014-9-15 09:06 编辑
本帖最后由 paulhyde 于 2014-9-15 09:06 编辑
不好意思,忘了上传附件
本帖最后由 paulhyde 于 2014-9-15 09:06 编辑