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,你值的拥有哦!

作者:快乐出发0220 ;Android群:151319601 ; Linux群:96394158 ;转载请注明出处 http://klcf0220.cnblogs.com/ !!!
原文地址:https://www.cnblogs.com/klcf0220/p/3115950.html