以服务于中国广大创业者为己任,立志于做最好的创业网站。

标签云创业博客联系我们

导航菜单

适合单片机创业的项目,单片机创业项目大全

  

     

  

  键盘是由几个按钮组成的开关矩阵。它是单片机系统中最常用的输入设备。用户可以通过键盘向计算机输入指令、地址和数据。通常,非编码键盘用于单片机系统。非编码键盘使用软件来识别键盘上关闭的按键。由于其结构简单,使用灵活,在单片机系统中得到广泛应用。   

  

  首先,根据单片机的管脚图,讨论了键盘的几个问题。   

  

     

  

  按钮开关的抖动问题   

  

  组成键盘的按钮有两种:接触式和非接触式。单片机中使用的按钮一般由机械触点组成。键盘结构图如下:   

  

     

  

  图1   

  

     

  

  图2   

  

  图中开关S未按下时,P1.0输入为高电平,开关S闭合后,P1.0输入为低电平。由于按钮是机械触点,当机械触点打开或关闭时,它会晃动。P1.0输入端的波形如图2所示。这种抖动是人感觉不到的,但完全可以被电脑感知到,因为电脑的处理速度是微秒级的,而机械抖动时间至少是毫秒级的,对于电脑来说已经是“很长”的时间了。前面讲到中断的时候,出现了一个问题,就是说按钮有时候工作,有时候不工作。其实这就是你只按了一次按钮的原因,但是电脑已经执行了多次中断的过程。如果执行次数只是奇数,那么结果就如你所料,如果执行次数是偶数,那就错了。   

  

  为了让中央处理器正确读取P1端口的状态,需要考虑如果只对每个按钮响应一次,如何消除抖动。消除抖动有两种常用方法:硬件和软件。单片机常用的是软件的方法,我们就不介绍硬件的方法了。软件其实很简单,就是在单片机中获取P1。0为低电平,而不是立即确定S1被按下,在10毫秒或更长时间的延迟后,再次检测到P1。0,如果还是低,则表示确实按下了S1,这实际上避免了按下按钮时的抖动时间。并且在检测到按钮的释放之后(P1。0为高),然后延迟5-10毫秒以消除后沿的抖动,然后处理键值。但是,一般情况下,我们往往不会处理按钮释放的后缘,实践证明,它可以满足一定的要求。当然,在实际应用中,对于按键的要求也有很大的不同,处理程序也要根据不同的需求来编制,但以上原则都是为了消除按键抖动。   

  

  键盘与单片机的连接   

  

  1、通过1/0口连接。   

  

  将每个按钮的一端连接到MCU的I/O端口,另一端接地,这是最简单的方法。如图3所示,实验板上的按钮连接,四个按钮分别连接到P3.2。   

  

  、P3.3、P3.4和p3.5 .对于这类键,每个程序都可以使用连续查询的方法。其功能是检测是否有按键关闭,如果有按键关闭,则去除按键抖动,判断按键编号并转移到相应的按键处理。   

  

     

  

  图3   

  

  这里有一个套路。它的功能非常简单。四个键的定义如下:   

  

  P3.2:启动,按此按钮启动灯的流动(从上到下)。   

  

  P3.3:停止,按下此按钮停止流动,所有灯关闭。   

  

  P3.4:向上,按此按钮使灯从上到下流动。   

  

  P3.5:向下,按此按钮使光线从下向上流动。   

  

     

  

     

  

     

  

  上述程序的功能很简单,但它演示了一个单片机键盘处理程序的基本思想。程序本身很简单,不太实用。实际工作中会有很多因素需要考虑,比如主回路每次都会调用灯的回路程序,会导致按钮响应“慢”,如果一直按键,直到松开手灯才会再次流动等等。每个人都可以仔细考虑这些问题,并思考任何好的解决方案。   

  

  2、采用中断方式   

  

     

  

  图4   

  

  如图4所示。每个按钮都连接到一个与非门。当按下任何按钮时,与门的输出将为低电平,这将导致单片机的中断。它的优点是不需要q   

  

  以上所有信息仅作为学习交流使用,不作为任何学习和商业标准。若您对文中任何信息有异议,欢迎随时提出,谢谢!   

  

  关于云创硬见   

  

  云创Hard View是国内最具特色的电子工程师社区,集行业资讯、社区互动、培训学习、活动交流、设计制造分包等服务于一体。以开放的硬件创新技术交流和培训服务为核心,连接30多万工程师和产业链上下游企业,聚焦电子行业技术创新,聚合最值得关注的产业链资源。   

  

  致力于为百万工程师和创新创业企业打造一站式公共设计制造服务平台。