📄 key2.c
字号:
//功能:按一下KEY1(P1.24),L1灯亮
//按一下KEY2(P1.25),L2灯亮
//按一下KEY3(P1.26),L3灯亮
//按一下KEY4(P1.27),L4灯亮
#include<lpc23xx.h>
unsigned char key_value;
unsigned char key(void);
void delay(unsigned int z);
int main(void)
{
IODIR1&=0xf0ffffff; //P1.24-P1.27设置为输入
FIO2DIR|=0x000000ff; //P2.0-P2.7设置为输出
FIO2SET|=0x000000ff; //P2.0-P2.7置位(LED不显示)
FIO2MASK=0x00000000;//
while(1)
{
if(key())
{
switch(IOPIN1&0x0f000000)
{
case 0x0e000000:key_value=1;break;
case 0x0d000000:key_value=2;break;
case 0x0b000000:key_value=3;break;
case 0x07000000:key_value=4;break;
}
while((IOPIN1&0x0f000000)!=0x0f000000);//松手检测
}
if(key_value==1)
{
FIO2SET|=0x000000ff;
FIO2CLR|=0x00000001; //L1灯亮
}
if(key_value==2)
{
FIO2SET|=0x000000ff;
FIO2CLR|=0x00000002; //L2灯亮
}
if(key_value==3)
{
FIO2SET|=0x000000ff;
FIO2CLR|=0x00000004;//L3灯亮
}
if(key_value==4)
{
FIO2SET|=0x000000ff;
FIO2CLR|=0x00000008;//L4灯亮
}
}
}
unsigned char key(void) //判别是否有按键按下
{
if((IOPIN1&0x0f000000)!=0x0f000000)
{
delay(10); //延时去抖
if((IOPIN1&0x0f000000)!=0x0f000000)
{
return 1; //有按键按下返回1
}
}
return 0; //无按键按下返回0
}
void delay(unsigned int z) //延时
{
unsigned int i;
for(;z>0;z--)
for(i=0;i<125;i++);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -