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

两个IO 6按键

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

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按键” 的相关文章

密勒定理及密勒效应

密勒定理及密勒效应

1、密勒定理 如图1所示的二端口网络(two-port network)中,Vin为输入电压,Vout为输出电压,Zf为Vin与Vout之间的桥接阻抗,A为Vin与Vout之间的闭环增益(A>0,正相放大;A<0,反相放大),且A的输入阻抗为无穷大,输出阻抗为零,则图1电路与图2电...

Android手机Google服务耗电过多

手机:三星I9000 操作系统:Android 2.3.3 (Lida ROM) 现象:电池使用时间很短,经常莫名其妙就没电了。查看电量消耗,60%(甚至更多)为“Google框架服务”占用。 病因: 通过网络搜索,发现是因为曾经禁止了“Google框架服务&rd...

Itunes搜索——找正版免费软件的利器

Itunes搜索——找正版免费软件的利器

一直以为ipad不越狱没啥游戏可玩的,其实不然,itunes store大把的免费正版软件   打开iTunes,选择菜单上的 Store ,再选择“搜索”:  然后,先选择“应用软件”,例如,想找所有免费的游戏,而且是IP...

Altium打印设置

Altium打印设置

Altium Designer打印有两种方法,一种是利用打印机或者虚拟打印机,将原理图或PCB打印出来;一种是利用其自带的Smart PDF功能将原理图或PCB打印成PDF文档。本文旨在讲述这两种方法。 一、利用打印机打印 首先,设置文档的打印信息。【File】->【Page Setup】...

TVS主要技术参数

1、最小击穿电压VBR和击穿电流IR VBR:Reverse Break Down Voltage,反向击穿电压 IR:Reverse Current,击穿电流(有的datasheet上称为IT) VBR是TVS最小的击穿电压,在25℃时,低于这个电压TVS是不会产生雪崩的。当TVS流过规定的1mA...

VS2010:此项目与Visual Studio的当前版本不兼容

VS2010:此项目与Visual Studio的当前版本不兼容

问题: 网上下载了一个C#工程,是用VS2013开发的,但是本地只有VS2010。打开后提示:此项目与Visual Studio的当前版本不兼容 解决办法: 1、用记事本打开解决方案文件“解决方案名.sln”,然后修改最上面两行为如下代码: Microsoft...

发表评论

访客

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