[原创] 键盘扫描和中断程序的实现

fxw451   2010-11-17 21:15 楼主

第一部分是键盘扫描
用到8962的所有的按键,扩展了四个IO口,用于LED的显示。UP键按下时,四个灯都亮,液晶显示由OFF变为ON;DOWN按下时,前两个灯灭,后两个灯亮,液晶显示由OFF变为ON;LEFT按下时,后两个灯灭,液晶显示由OFF变为ON;RIGHT按下时,四个灯全灭,液晶显示由OFF变为ON;
 大家就可以按照这个程序稍微修改下就可以实现跑马灯。
扩展部分:这里我直接用的是GPIOPinWrite(GPIO_PORTF_BASE, LED0 | LED1, LED0 | LED1 );,大家可以改成按下键时亮,不按时灭,可以用GPIOPinWrite(GPIO_PORTF_BASE, LED0 | LED1, (b & LEFT)  ?  ~LED0 | ~LED1: LED0 | LED1) ,这样就可以实现按下亮,不按下不亮的功能了。大家还可以在按下按键时,让灯闪烁几下后一直亮,只要加一个延时,就应该可以实现了。

 

键盘扫描程序.rar (114.71 KB)
(下载次数: 170, 2010-11-17 21:15 上传)

 


第二部分是键盘中断
 利用中断实现不同按键下输出或者显示不同的按键,我在程序里,是通过灯的闪烁次数显示按键的不同。
扩展部分:在这里大家有没有考虑到arm的优点——嵌套中断,是不是可以用嵌套中断实现这个效果!!

 

键盘中断程序.rar (54.66 KB)
(下载次数: 116, 2010-11-17 21:15 上传)


欢迎大家讨论!程序程序可能很简单,但是我们把这个问题扩展开来应该能学到好多的东西!大家还有什么可扩展的想法,大家一起学习!!

对于中断必须在.s声明下,不然肯定不好使,这里已经有人发表中断这方面的文章了,大家可以去看看。具体我就不链接了。

回复评论 (6)

这帖就这样沉底了??

哎,大家讨论下如何用简介的编程方法实现灯的控制,灯只是一个小小的控制对象,可以应用到很多领域。大家多交流下

点赞  2010-11-19 20:18

hao

thank you very much
点赞  2011-3-22 10:10
thx for sharing...........
点赞  2011-7-9 17:20

顶》》》》》》》》》

点赞  2011-12-31 09:48

不错的,学习一下

 

关于键盘扫描的问题,最好的是那种方式?

点赞  2019-7-16 19:43

不错的分享,键盘扫描程序用处还是很大的。

点赞  2019-7-17 16:54
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复