独立按键识别(2种方法实现)

【要求】采用独立按键方式实现下述功能:开机时LED全熄,然后根据按键动作使相应灯亮,并将亮灯状态保持到按压其它键时为止。

方法1(一目了然版)

%%独立按键  代码1                                                                                         

#include<reg51.h>

sbit K1=P0^0;

sbit K2=P0^1;

sbit K3=P0^2;

sbit K4=P0^3;

sbit D1=P2^0;

sbit D2=P2^1;

sbit D3=P2^2;

sbit D4=P2^3;

void delay(unsigned int i){

unsigned int j=0;

for(;i>0;i--)

for(;j<125;j++);

}

void main(void){

D1=D2=D3=D3=1;

while(1){

if(K1==0){

delay(10);

if(K1==0){

D1=0;

D2=D3=D4=1;

while(K1==0);

}

}

if(K2==0){

delay(10);

if(K2==0){

D2=0;

D1=D3=D4=1;

while(K2==0);

}

}

if(K3==0){

delay(10);

if(K3==0){

D3=0;

D2=D1=D4=1;

while(K3==0);

}

}

if(K4==0){

delay(10);

if(K4==0){

D4=0;

D2=D3=D1=1;

while(K4==0);

}

}

}

方法2(简易版)

%%独立按键  代码2     

#include<reg51.h>

void main(){

char key=0;        //初始化key

while(1){

key=P0&0x0f; //送P0值,高四位清零

if(key!=0x0f)          //判断按下

P2=key;          //低电平时灯亮

}

}

效果图

纵览图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值