当前位置:首页 > 技术心得 > 正文内容

两个IO 6按键

xjtudll14年前 (2012-12-15)技术心得14510

clip_image002

2IO6按键演示

分析

首先:IO1,IO2输出高电平

S1按下,IO2为低电平

S2按下,IO1为低电平

S3按下,IO1,IO2为0.7V(1N4148导通电压),还是低电平。

现在开始判别其他几个按键了:

1、IO1输出低电平,读IO2电平

① 如果IO2为低电平,此时应该是S4或者S6按下(S6按下时,IO2为0.7V,依旧是低电平)。

② 此时IO1输出高电平,IO2输出低电平,读IO1电平

当S4按下时,IO1为低电平。剩余的就只能是S6了。

2、IO1输出高电平,IO2输出低电平

读IO1,S5按下时,IO1为低电平。若IO1依旧为高电平,则是S6按下了。

按键扫描程序

unsigned char scan_key(void)

{

unsigned char keyval = 0;//无键,有键1~6

KEY_IO1 = 1;//释放总线

KEY_IO2 = 1;//释放总线

if (!KEY_IO1 && !KEY_IO2)

keyval = 3;//S3

else if (!KEY_IO1)

keyval = 2;//S2

else if (!KEY_IO2)

keyval = 1;//S1

else

{

//开始扫描,也要考虑小毛贼的问题~~~

KEY_IO1 = 0;//扫描

if (!KEY_IO2)

{

//这时不能立即判定S4/S6

KEY_IO1 = 1;//释放总线

KEY_IO2 = 0;//反向扫描

if (!KEY_IO1)

keyval = 4;//S4~~~

else

keyval = 6;//S6

}

else

{

//只能是S5了

KEY_IO1 = 1;//释放总线

KEY_IO2 = 0;//反向扫描

if (!KEY_IO1)

keyval = 5;//S5

//else keyval = 6;//S6//上面已判出了S6,这句是废话

}

KEY_IO1 = 1;//释放总线//已经释放~~~

KEY_IO2 = 1;//释放总线

}

return keyval;//返回键值0-无键,1~6-S1~S6键

}

流程图

clip_image003

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/253/

分享给朋友:

“两个IO 6按键” 的相关文章

再谈无线网络受限——无法获得IP地址

前面曾经写了一篇[无线网络连接受限]的解决办法(http://xjtudll.cn/Exp/66/),本次再谈一些这方面的内容。上次无线网络受限导致的结果就是:无线网卡无法获得IP地址,即便信号很好,也一直连不上。上次最后的解决办法是用WEP加密方式,后来在网上看到WPA2-PSK加密方式更为安全,...

浅谈单片机程序设计中的“分层思想”

    网络转载,出处未知,收藏甚久。     分层的思想,并不是什么神秘的东西,事实上很多做项目的工程师本身自己也会在用。看了不少帖子都发现没有提及这个东西,然而分层结构确是很有用的东西,参透后会有一种恍然大悟的感觉。如果说我不懂LCD...

Quartus II计数器仿真:31之后变成字符

Quartus II计数器仿真:31之后变成字符

计数器波形仿真,在执行到31时会突然变成[] ! 之类的符号。如图: 原因: 信号的显示格式选择成了ASCII码,当数值等于ASCII码符号区的时候就会显示为符号了。 解决办法: 1、选择要显示的信号,右键,属性(Properties) 2、将显示格式改成自己所需的,一般是Hexadecimal...

Protel99SE检查遗漏的封装

Protel99SE检查遗漏的封装

画原理图的时候,封装是要填写的。有的人习惯元件放置后立即填写,有的人习惯原理图画好后,再去填写所有的。但是不论哪种方式,都不可避免的会遗漏一些封装未填写,这样在导入到PCB的时候就会有些小麻烦。所以有必要在原理图完成后检查封装是否遗漏。检查封装的捷径方法就是利用导出电子表格命令将元件封装输出到电子表...

ESD及静电的特点

什么是ESD ESD是代表英文Electrostatic Discharge[1] 即“静电放电”的意思。ESD是本世纪中期以来形成的以研究静电的产生与衰减、静电放电模型、静电放电效应如电流热(火花)效应(如静电引起的着火与爆炸)和电磁效应(如电磁干扰)等的学科。近年来随着科学技术的飞速发展、微电...

Multisim交流分析显示光标值

Multisim交流分析显示光标值

multisim的交流分析本质是交流扫描分析,即扫描频率,输出节点电压等参量。 在分析窗口中设置输出变量,在频率参数标签中设置频率参数(起始频率、结束频率等) 这是默认的交流分析的结果图 是没有标注任何数值的。要是想知道扫描点的相关数值,必须开光标。 右键,选择【显示光标】 拖动光标(图中...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。