《匠人手记》推荐网上购书渠道:
互动出版网(china-pub)购书入口   >>>
当当网(dangdang)购书入口   >>>
卓越亚马逊网 购书入口   >>>
淘宝网(taobao)购书入口   >>>
更多购书渠道……   >>> 

设为首页加入收藏联系匠人管理入口21IC首页21IC博客21IC社区侃单片机回复的贴参与的贴

天气预报
百宝日历
载入中...

百宝专栏

载入中...
最新货色

载入中...

粉丝评论

载入中...

载入中...



百宝信息

载入中...

百宝流量

(2006-07-01开始)


匠人手记

 匠人观点: 好记性不如烂笔头  
 黑色幽默:三鹿门——后世畅想

一种用N+1个I/O口实现的N×N矩阵式键盘
程序匠人 发表于 2006-7-28 19:20:00  阅读全文 | 回复(1) | 引用通告 | 编辑

一种用N+1个I/O口实现的N×N矩阵式键盘


作 者:北京航空航天大学 张雪峰 李荣源 袁海文
  
摘 要:介绍一种用N+1个I/O端口实现N×N矩阵式键盘的一般方法,并用该方法设计一个5×5的矩阵式键盘作为例子,给出软件编制框图并对该方法进行探讨。
关键词:键盘 矩阵 接口电路

引 言
  
  随着微机系统应用领域的扩大,操作人员与微机系统需要交流的信息越来越多,用来交流的手段和途径也更为灵活多样;而键盘输入作为最常用的输入设备仍有其不可替代的作用。因此,探讨一些键盘的特殊结构,用尽可能少的输入输出端口实现较多数量的按键数仍具有重要的应用价值。

  有些特殊情况下,在组成一个最小的单片机系统的过程中,由于通用的I/O口有限,而又需要大量的按键输入,这就要求一种新的键盘结构,即用尽量少的I/O口实现尽可能多的键盘输入。

  本文将从硬件和软件两个方面介绍一种用N+1个I/O口实现N×N矩阵式键盘的方法(为了与传统键盘区分,以下简称新型键盘)。首先,对传统键盘作一个简单的介绍。

一、传统键盘的介绍

  键盘的结构通常有两种形式:线性键盘和矩阵键盘。在不同的场合下,这两种键盘均得到了广泛的应用。

  线性键盘由若干个独立的按键组成,每个按键的一端与微机的一个I/O口相连。有多少个键就要有多少根连线与微机的I/O口相连,因此,只适用于按键少的场合。

  矩阵键盘的按键按N行M列排列,每个按键占据行列的一个交点,需要的I/O口数目是N+M,容许的最大按键数是N×M。显然,矩阵键盘可以减少与微机接口的连线数,简化结构,是一般微机常用的键盘结构。根据矩阵键盘的识键和译键方法的不同,矩阵键盘又可以分为非编码键盘和编码键盘两种。

◇ 非编码键盘

  非编码键盘主要用软件的方法识键和译键。根据扫描方法的不同,可以分为行扫描法、列扫描法和反转法三种。

◇ 编码键盘

  编码键盘主要用硬件来实现键的扫描和识别,通常使用8279专用接口芯片,在硬件上要求较高。

二、新型键盘的硬件和软件实现原理

  经过分析,实际上用N+1个I/O口,辅以适当的接口电路,是可以实现N×N个按键的。现以6个端口实现5×5的按键为例来叙述。

1.硬件实现

  图1所示为用6个I/O口来实现25个按键的示意图。具体的物理实现电路如图2所示。

 

 由图1和图2可见,硬件部分分为两块:一块是普通键盘矩阵,另外一块是中断和接口电路,主要由相应数目的二极管和电阻组成。具体对6个I/O口的情况,实现5×5的按键矩阵的中断和接口电路(图2)共需要10只二极管、12只电阻和1只三极管。10只二极管按其在电路中所起的作用可分为两组:第一组包括D6、D7、D8、D9和D10,用于保证按键信息的单一流向;第二组包括D1、D2、D3、D4和D5,它们在电路上对NPN三极管的基极构成"或"的逻辑关系,对单片机进行初始化。除了PORT6(其要求具有中断功能)以外,其余

的I/O口均被置成高电平,这样当有键按下时,三极管的基极由低变高,三极管导通;集电极由高电平跳变成低电平,向单片机发出中断信号,从而启动键盘扫描程序。

 

2.软件实现

  按键的识别主要靠软件来实现,需要编写键盘扫描程序。

(1)键盘扫描原理

  为了更好地说明键盘扫描的过程,假设编号为S12的键(见图2)被按下,扫描程序已经启动,扫描的具体过程如表1所列。
 


(2)键盘扫描程序的流程

  在启动键盘扫描程序以前首先要对CPU进行初始化(主要是对所使用的中断进行初始化)。假设已经有键按下,并引发了相应的中断服务程序(即键盘扫描程序),其流程图如图3所示。

结束语

  ◇ 在I/O口数量有限的情况下,用该方法可以实现尽可能多的按键输入;

  ◇ 该方法还可以用于需要大量开关量测量的场合。


 
 

看《匠人手记》,与匠人同行!北航出版,正在热卖!

回复:一种用N+1个I/O口实现的N×N矩阵式键盘
精灵之暗夜(游客)发表评论于2006-8-8 10:54:00  个人主页 | 引用 | 返回 | 删除 | 回复

精灵之暗夜(游客)设计不错,借鉴一下下

看《匠人手记》,与匠人同行!北航出版,正在热卖!

发表评论:
载入中...

芯片专题

器件专题

软件专题

硬件专题

综合专题

项目专题

原创专题

器件检测
LCD LED
按键 触摸键
E2PROM
电池 电机
电阻 电容 电感

指令系统
软件算法
编程规范
滤波算法
串行通讯

PCB设计
I2C PWM
红外遥控
充电技术
中断 ADC 

匠人手记
匠人夜话
网络心路
一周热点串烧
从零开始玩PIC
DIY旋转时钟

广告5号位 [投放]


学习板、开发板、编程器、下载器、仿真器(查看详情……)

广告3号位 [投放]

站内搜索


站外搜索


百度  google
mp3  歌词 
图片  FLASH 
知道  文档
新闻  词典 
地图  mp3 
软件  天网 
雅虎  爱问 
搜狗  讯雷 
网讯  华军 
天空 

21IC器件搜索
百宝箱分站
  • 《匠人的百宝箱》21IC站
  • 《匠人的百宝箱》21IC笔记团队
  • 《匠人手记》21IC书友会
  • 《匠人的百宝箱》MCUBLOG站
  • 《匠人的百宝箱》MCUBLOG笔记团队
  • 《匠人的百宝箱》EDN站
  • 《匠人手记》EDN书友会
  • 《匠人的百宝箱》与非网站
  • 《匠人的百宝箱》新浪站
  • 《匠人的百宝箱》百度站
  • 《匠人的百宝箱》网易126站
  • 《匠人的百宝箱》网易163站
  • 《匠人的百宝箱》互动出版网站
  • 广告4号位 [投放]

     
     

    匠人原创

    往日酷贴

     
     
     

    大千八卦

    友情连接

    新浪新闻:
    新浪财经:
    AK58新闻:
    新浪股票:
    新浪股票:
    证券之星:

     [更多酷站连接]

     

     

    [欢迎交换连接]

    [百宝箱之与非门分舵]

    [电脑圈圈的家当]

    [IC921的博客]

    [柔月阁]

    [八楼的呼吸]

    [hotpower 的水潭]

    [xwj的文君阁]

    [所长的BLOG]

    [阿摆手记]

    [电子伙伴]

    [unaided的笔记]

    [小飞的笔记]

    [单片机开发联盟]

    [网址之家]

    [好东西网址大全]

    [美萍中文精选]

    [数字电视之家]

    [SMARTCODE电子书斋]

    [软件开发之窗]

    [Armoric]

    [我爱研发网]

    [infernal的笔记]

    [雄鹰的空中加油站]

    [SunK]

    [逍遥电子]

    [ningpanda的博客]

    [C-Design]

    [一网见天下]

    [海边淘沙]

    [嵌入式365]

    [水牛的仓库]

    [股剩是怎样炼成的]

    [PIC论坛]

    [ICC AVR开发网]

    [中国高校自动化网]

     

     

     

    MCU博客-中国电子工程师博客网 

    大学生电子网 

     

     

     

     

     

    !!! 《匠人的百宝箱》 !!!