单片机键盘接口原理与应用

单片机键盘接口原理与应用

ID:33588779

大小:259.58 KB

页数:15页

时间:2019-02-27

单片机键盘接口原理与应用_第1页
单片机键盘接口原理与应用_第2页
单片机键盘接口原理与应用_第3页
单片机键盘接口原理与应用_第4页
单片机键盘接口原理与应用_第5页
资源描述:

《单片机键盘接口原理与应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、MSC-51单片机C语言简单入门教程技术支持群:11313486键盘接口原理键盘在单片机应用系统中能实现向单片机输入数据、传送命令等功能,是人工干预单片机的主要手段。下面介绍键盘的工作原理,键盘按键的识别过程及识别方法及键盘与单片机的接口和编程。1、键盘输入的特点键盘实质上是一组按键开关的集合。通常,键盘所用开关为机械弹性开关,均利用了机械触点的合、断作用。一格电压信号通过机械触点的断开、闭合的过程如下图,其行线电压输出波形如下图所示。图中t1和t3分别为键的闭合和断开过程中的抖动期(呈现一串负脉冲),抖动时间长短和开关的机械特性有关,一般为5

2、—10ms,t2为稳定的闭合期,其时间由按键动作所确定,一般为十分之几秒到几秒,t0、t4为断开期。2、按键的确认键的闭合与否,反映在行线输出电压上就是呈现出高电平或低电平,如果高电平表示断开的话,那么低电平则表示键闭合,所以通过对行线电平的高低状态的检测,便可确认按键按下与否。为了确保CPU对一次按键动作只确认一次按键,必须消除抖动的影响。下面介绍如何消除抖动。分软件和硬件两种。硬件消除抖动一般采用双稳态消抖电路。如下图,图中用两个与非门构成一个RS触发器。当按键未按下时(开关位于a点),输出为1,当按下(开关打向b点)时,输出为0。此时即使

3、因按键的机械性能,使按键因弹性抖动而产生瞬时不闭合(抖动跳开b),只要按键不返回原始状态a,双稳态电路的状态不该变,输出保持为0,不会产生抖动的波形输出。就是说即使b点的电压波形时抖动的,但经双稳态电路之后,其输出为正常的矩形波,这一点很容易通过分析RS触发器的工作过程得到验证。http://www.hfmcu.cn红峰电子学习室MSC-51单片机C语言简单入门教程技术支持群:11313486如果按键较多,硬件消抖将无法胜任,因此采用软件的方法进行消抖。在第一次检测到有键按下时,执行一段延时10ms的子程序后再确认该键电平是否仍保持闭合状态电平

4、,如果保持闭合状态电平则确认为真正有键按下,从而消除了抖动的影响。2、键盘的分类1)独立式键盘是各按键相互独立,每个按键各接一根输入线,一根输入线上的按键工作状态不会影响到其他输入线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断那个键被按下了。独立式按键电路配置灵活,软件简单,但每个按键需要占用一根输入口线,在按键数量较多时,需要较多的输入口线且电路结构复杂,故此种键盘适用于按键较少或操作速度较高的场合。下面介绍几种独立式按键和单片机的接口。按键直接与单片机的I/O口线相接,通过读I/O口,判定I/O口线的电平状态,即可识别出按下的

5、按键。此外也可用扩展I/O口的独立式按键接口电路,如下图,采用8255A扩展I/O口,图为用三态缓冲器扩展I/O口。这两种联机方式,都是把按键当作外部RAM某一工作http://www.hfmcu.cn红峰电子学习室MSC-51单片机C语言简单入门教程技术支持群:11313486单元的位来对待,通过读外RAM的方法,识别按键的工作状态。以上两种独立式按键电路中,各按键开关采用了上拉电阻,这是为了保证在按键断开时,各I/O口线有确定的高电平,当然如果输入口线内部已有上拉电阻,则外部的上拉电阻可省去。本试验板的独立键盘电路如下:2)检测步骤:1)先

6、给P3.4,P3.5,P3.6,P3.7写“1”如果那个键被按下那个就是低电平。2)再读P3.4,P3.5,P3.6,P3.7如果那个等于“0”那个键就被按下了,试验板上的SA、SB、SC、SD分别对应P3.4、P3.5、P3.6、P3.73)消除抖动http://www.hfmcu.cn红峰电子学习室MSC-51单片机C语言简单入门教程技术支持群:113134863)编写释放按键程序。#include//定义头文件#defineuintunsignedint//宏定义#defineucharunsignedchar//宏定义

7、sbitd1=P1^0;//定义第一个发光二极管sbitdula=P2^6;//定义段选sbitwela=P2^7;//定义位选sbitkey1=P3^4;//定义按键SAucharcodetable[]={//定义字形码表0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};ucharnum;//定义变量voiddelay(uintz)//定义延时函数{uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--)

8、;}voidmain(){//主函数wela=1;//打开位选P0=0xfe;//让第一数码管显示wela=0;//关闭位选P3=0xFF;//向P3

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。