您所在的位置:e-works首页 > 工业自动化控制 > 嵌入式系统

基于Proteus的单片机4*4键盘设计与仿真

发表时间:2011/7/20 刘涛 来源:e-works
本文首先介绍了键盘的分类方式与键盘的电路结果,设计了基于MCS-51控制的Proteus仿真电路,根据电路图编写了键盘扫描的汇编程序,最后给出了本系统的仿真结果。

一 引言
 
    键盘在单片机应用系统中,实现输入数据、传送命令的功能.是人工干预的主要手段,它的编制优劣直接影响系统的性能。键是一种常开型按钮开关,平时(常态)键的二个触点处于断开状态,按下键时它们才闭合(短路)。键盘分编码键盘和非编码键盘。

    编码键盘: 由硬件逻辑电路完成必要的键识别工作与可靠性措施。每按一次键, 键盘自动提供被按键的读数, 同时产生一选通脉冲通知微处理器, 一般还具有反弹跳和同时按键保护功能。这种键盘易于使用, 但硬件比较复杂, 对于主机任务繁重之情况, 采用8279 可编程键盘管理接口芯片构成编码式键盘系统是很实用的方案。

    非编码键盘:只简单地提供键盘的行列与矩阵, 其他操作如键的识别, 决定按键的读数等仅靠软件完成, 故硬件较为简单, 但占用CPU较多时间。有: 独立式按键结构、矩阵式按键结构。

二 键盘电路结构

    (一) 独立式按键接口设计

    独立式按键就是各按键相互独立, 每个按键单独占用一根I/O 口线, 每根I/O 口线的按键工作状态不会影响其他I/O 口 线上的工作状态。因此, 通过检测输入线的电平状态可以很容易判断哪个按键被按下了。

    优点: 电路配置灵活, 软件结构简单。

    缺点: 每个按键需占用一根I/O 口线, 在按键数量较多时,I/O 口浪费大, 电路结构显得复杂。

    因此, 此键盘是用于按键较少或操作速度较高的场合。

    (二) 矩阵式键盘接口设计

    矩阵式键盘适用于按键数量较多的场合, 由行线和列线组成, 按键位于行列的交叉点上。节省I/O 口。

    矩阵键盘工作原理: 行线通过上拉电阻接到+5V 上。无按键, 行线处于高电平状态, 有键按下, 行线电平状态将由与此行线相连的列线电平决定。列线电平为低, 则行线电平为低;列线电平为高, 则行线电平为高。

三 Proteus电路图设计

    图1为本系统的Proteus仿真电路图,用MCS-51的P3.0- P3.3作为行线,P3.4-P3.7作为列线,用P2口控制数码管显示按键。

四 程序设计

    本文采用扫描方式来判断按键并由MCU控制数码管显示按键。先从P3口的高四位输出低电平,低四位输出高电平,从P3口的低四位读取键盘状态。再从P3口的低四位输出低电平,高四位输出高电平,从P3口的高四位读取键盘状态。将两次读取结果组合起来就可以得到当前按键的特征编码。每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码,计算公式为键值=行号×行数+列号。
 

 
图1  Proteus电路图

 

图2 键盘扫描流程图 

本文为e-works原创投稿文章,未经e-works书面许可,任何人不得复制、转载、摘编等任何方式进行使用。如已是e-works授权合作伙伴,应在授权范围内使用。e-works内容合作伙伴申请热线:editor@e-works.net.cn tel:027-87592219/20/21。

责任编辑:王聪