51单片机之按键

51单片机之按键

注:K1对应的是P31(P3_1),K2对应的是P30(P3_0)

独立按键控制LED亮灭

#include <REGX52.H>

voidmain()

{

while(1)

{

if(P3_1==0)

{

P2_0=0;//亮

}

else

{

P2_0=1;//灭

}

}

}

结果:按下按键K1点亮,松下熄灭

C51数据运算

左移:0011 1100 <<1 -> 0111 1000

右移:0011 1100>>2 -> 0000 1111

C51 基本语句

独立按键控制LED 状态

按键的抖动

voidmain()

{

while(1)

{

if(P3_1==0)//按键K1按下

{

Delay(20);//按下消抖

while(P3_1==0);//检测松手

Delay(20);//松手消抖

P2_0=~P2_0;

}

}

}

独立按键控制LED显示二进制

P2口最默认值:1111 1111 0xFF

unsigned char LEDNum // 一般定义八位的寄存器

voidmain()

{

unsignedcharLEDNum=0;

while(1)

{

if(P3_1==0)

{

Delay(20);

while(P3_1==0);

Delay(20);

LEDNum++;

P2=~LEDNum;

}

}

}

独立按键控制LED移位

左移控制LED;

unsignedcharLEDNum=0;

voidmain ()

{

while(1)

{

if(P3_1==0)//K1控制左移

{

Delay(20);

while(P3_1==0);

Delay(20);

if(LEDNum==8);//等于8重置

{

LEDNum=0;

}

P2=~(0x01<<LEDNum);

LEDNum++;

}

if(P3_0==0)//K2控制右移(左移负位数)

{

Delay(20);

while(P3_0==0);

Delay(20);

if(LEDNum==0)

LEDNum=7;

else

LEDNum--;

P2=~(0x01<<LEDNum);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值