S5PV210按键控制LED

原理图如图所示:

image

查询用户手册得到:

image

image

 

程序例子:(完整代码见“代码下载链接”)

1、轮询的方式查询按键事件
/*main.c*/
核心代码如下:
while(1)
{
dat = GPH2DAT;
if(dat & (1<<0)) // KEY1被按下,则LED1亮,否则LED1灭
GPJ2DAT |= 1<<0; // OFF
else
GPJ2DAT &= ~(1<<0); // ON
if(dat & (1<<1)) // KEY2被按下,则LED2亮,否则LED2灭
GPJ2DAT |= 1<<1;
else
GPJ2DAT &= ~(1<<1);
if(dat & (1<<2)) // KEY3被按下,则LED3亮,否则LED3灭
GPJ2DAT |= (1<<2);
else
GPJ2DAT &= ~(1<<2);
if(dat & (1<<3)) // KEY4被按下,则LED4亮,否则LED4灭
GPJ2DAT |= 1<<3;
else
GPJ2DAT &= ~(1<<3);
}
程序很简单,首先配置GPJ2_0/1/2/3引脚为输出功能以及配置GPH2_0/1/2/3引脚为输入功能,然后使用轮询的方式不断的读GPH2_0/1/2/3引脚的值,当检测到某个按键被按下时,即对应的引脚为低,此时我们点亮对应的LED,否者让LED保持熄灭的状态。
用查询的方式来检测按键太占CPU使用率了,除了检测按键,CPU无法进行其他工作,后面学习中断的知识后,我们将改用中断的方式来检测按键中断,这将大大降低CPU的使用率。

 

代码下载链接:http://download.csdn.net/detail/klcf0220/5635159

 

喜欢开源,乐意分享的大神们,欢迎加入QQ群:176507146,你值的拥有哦!

posted @ 2013-06-03 18:37  不止所见  阅读(688)  评论(0编辑  收藏  举报