0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

节约单片机端口资源键盘电路的电路图和程序详细说明

Wildesbeast 来源:福星电子网 作者:佚名 2020-01-26 11:25 次阅读

1 新型键盘电路

键盘电路是单片机应用系统最常用的人机接口,往往要占用较多的I/O端口,利用本文介绍的电路,可以最大限度地减少键盘电路对I/O端口的点用。本电路特别适合一些引脚少、结构紧凑的单片机,可为其节省宝贵的I/O资源。

这里以3根I/O线为例,普通接法只能接3个键,即使是采用改进后的组合接法[1],最多也只能接7个链,本文介绍的电路是在组合接法的基础上增加了3个二极管,并采用了新的接法。其软件处理使用了端口访问和扫描检测两种方法,从而使按键数可达到16个,同时由于采用了组合逻辑来直接对端口进行读取,因此极大地简经了程序的处理过程,同时也节省了宝贵的存储器和CPU运算资源。图1是该电路的电路原理图。

2 软件过程和程序

该电路在程序处理时,由处理器首先向I/O1~I/O3写高电平,然后读入。如果非全“1”,说明,K0~K6中有键按下,此时可根据读入的端口状态判断键的状态,如果读入的结果为全“1”,则I/O1~I/O3轮流输出低电平,再读入,这样就可根据另外两根I/O线的状态来判别是K7~K15中的哪一个键被按下。重复调用键盘处理子程序可将读取的键值与上次的值进行比较,甚至两次读数相同为止,这样即可消除按键抖动所造成的误读。该电路选用的单片机为 AT89C2051,用C51语言编写的按键电路处理程序如下:

#include《c:eg51.h》

#define uchar unsigned char

uchar getkey(void);

uchar keyvol;

void main(void)

{

keyvol=getkey(); /*调用键处理函数,返回的数据等于16表示同有键按下,0至15对应k0至K15*/

}

以下为键盘处理子程序:

uchar getkey(void)

{

uchar x

P1=P1|0x07; /*I/O1至I/O3写“1”*/

xP1&0x07; /*读入I/O1至I/O3并屏蔽其它位*/

if(x= =10)

{

P1=P1|0x07;

P1=P1&0xfd; /*I/O2写“0”*/

x=P1&0x07;

x=(x+1)/2+10; /*屏蔽I/O2并转换K10至K12的键值*/

if(x = =13)

{

P1=P1|0x07;

P1=P1&0xfb; /*I/O3写“0”*/

x=P1&0x07;

x=x+13; /*屏蔽I/O3并转换K13至K15的键值*/

}

}

}

return x;

}

利用该键盘电路并根据逻辑组合原理可推断开n条I/O线可组合的按键数N为:

N=(2n-1)+(2 n-1 -1)n

表1给出了2至4条I/O线可组合的按键数。

表1 2~4条I/O线可组合的按键数

I/O线 可组合按键

2 5

3 16

4 43

3 结束语

这种新型键盘电路在使用时非常稳定可靠,节省大量的I/O端口,而且程序处理也很简洁,速率比4×4的扫描式电路还要快,因此,该电路特别适合一些引脚较少的单片机,如PIC12C508、Z86E03以及AT89C2051等。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620817
  • 存储器
    +关注

    关注

    38

    文章

    7148

    浏览量

    161978
  • 键盘电路
    +关注

    关注

    3

    文章

    29

    浏览量

    19798
收藏 人收藏

    评论

    相关推荐

    单片机遥控车电路图

    单片机遥控车电路图,要安卓手机控制程序电路图都要
    发表于 03-10 11:52

    哪个老师详细说明一下这个电路图?

    那个老师详细说明一下,这个电路图,越详细越好。谢谢
    发表于 04-07 19:41

    节约单片机端口资源键盘电路

    键盘电路单片机应用系统最常用的人机接口,往往要占用较多的I/O端口,利用本文介绍的电路,可以最大限度地减少
    发表于 09-28 17:55 2145次阅读
    <b class='flag-5'>节约</b><b class='flag-5'>单片机</b><b class='flag-5'>端口</b><b class='flag-5'>资源</b>的<b class='flag-5'>键盘</b><b class='flag-5'>电路</b>

    节约端口线及器件的新型键盘

    键盘电路单片机应用系统最常用的人机接口,往往要占用较多的I/O端口, 现在有些很节约I/O资源
    发表于 10-10 11:27 1189次阅读
    <b class='flag-5'>节约</b><b class='flag-5'>端口</b>线及器件的新型<b class='flag-5'>键盘</b>

    PIC单片机键盘电路四例源程序

    PIC单片机键盘电路四例源程序,需要的看看,免积分
    发表于 11-02 10:46 22次下载

    节约单片机端口资源键盘电路

    I/0 端 口是单片机实现对目标控制的端口,一般小型单片机的 I/0 端口都十分宝贵。文中介绍了一种可节省单片机I/O
    发表于 03-29 10:21 12次下载

    51单片机矩阵键盘的原理说明和实验程序电路图免费下载

    本文档的主要内容详细介绍的是51单片机矩阵键盘的原理说明和实验程序电路图免费下载。
    发表于 04-18 17:27 7次下载

    使用51单片机设计4X4矩阵键盘电子琴的电路图程序免费下载

    本文档的主要内容详细介绍的是使用51单片机设计4X4矩阵键盘电子琴的电路图程序免费下载。
    发表于 08-23 17:30 14次下载
    使用51<b class='flag-5'>单片机</b>设计4X4矩阵<b class='flag-5'>键盘</b>电子琴的<b class='flag-5'>电路图</b>和<b class='flag-5'>程序</b>免费下载

    51单片机的C程序基本架构详细说明

    本文档的主要内容详细介绍的是51单片机的C程序基本架构详细说明
    发表于 08-15 17:32 7次下载
    51<b class='flag-5'>单片机</b>的C<b class='flag-5'>程序</b>基本架构<b class='flag-5'>详细说明</b>

    卡尔曼滤波在单片机上的使用资料和程序详细说明

    本文档的主要内容详细介绍的是卡尔曼滤波在单片机上的使用资料和程序详细说明
    发表于 07-10 17:40 40次下载
    卡尔曼滤波在<b class='flag-5'>单片机</b>上的使用资料和<b class='flag-5'>程序</b><b class='flag-5'>详细说明</b>

    设计一个节约端口线器件的新型键盘详细资料概述

    键盘电路单片机应用系统最常用的人机接口,往往要占用较多的I/O端口, 现在有些很节约I/O资源
    的头像 发表于 11-09 11:00 3816次阅读
    设计一个<b class='flag-5'>节约</b><b class='flag-5'>端口</b>线器件的新型<b class='flag-5'>键盘</b>的<b class='flag-5'>详细</b>资料概述

    单片机的并行IO口应用实验电路图程序详细说明

    本文档的主要内容详细介绍的是单片机的并行IO口应用实验电路图程序详细说明
    发表于 12-26 11:39 25次下载
    <b class='flag-5'>单片机</b>的并行IO口应用实验<b class='flag-5'>电路图</b>和<b class='flag-5'>程序</b><b class='flag-5'>详细说明</b>

    如何设计一个节约单片机端口资源键盘电路

    键盘电路单片机应用系统最常用的人机接口,往往要占用较多的I/O端口,利用本文介绍的电路,可以最大限度地减少
    的头像 发表于 05-05 12:08 3827次阅读
    如何设计一个<b class='flag-5'>节约</b><b class='flag-5'>单片机</b><b class='flag-5'>端口</b><b class='flag-5'>资源</b>的<b class='flag-5'>键盘</b><b class='flag-5'>电路</b>

    使用单片机制作密码锁的电路图程序与流程图的详细说明

    本文档的主要内容详细介绍的是使用单片机制作密码锁的电路图程序与流程图的详细说明
    发表于 09-09 16:08 47次下载
    使用<b class='flag-5'>单片机</b>制作密码锁的<b class='flag-5'>电路图</b>和<b class='flag-5'>程序</b>与流程图的<b class='flag-5'>详细说明</b>

    PIC单片机键盘电路四例源程序免费下载

    本文档的主要内容详细介绍的是PIC单片机键盘电路四例源程序免费下载。
    发表于 03-16 16:57 23次下载