//注意:51单片机是低电平驱动的
#include<REGX52.H> //包含P2
#include<INTRINS.H> //包含延时函数的_nop_
void main() //1.按键按下点亮一个led,松手熄灭。
{
while(1)
{
if(P3_1==0)//默认是高电平,P3_1是按键的寄存器位。
{
P2_0=0;//第一个led低电平点亮,一个寄存器占8位。这里只操作一个位。
}
else
{
P2_0=1;
}
}
}
/*按键的抖动:机械开关,在按键闭合或断开的瞬间会产生抖动,开始和结束各10ms左右,肉眼无法分辨。
单片机速度很快,可能会分辨出来产生误操作。
程序进行按键消抖(通过在抖动时间的10ms左右进行延时。延时过了再执行程序。)*/
void main() //2.按键按下熄灭led,松手点亮。1现象的取反。
{
while(1)
{
if(P3_1==0)//按下是低电平
{
Delay(20);//按键按下的抖动时间
P2_0=1;
Delay(20);//松手
}
else
{
Delay(20);
P2_0=0;
Delay(20);//松手
}
}
}
void main() //3.移位运算,很简单,<<左移 >>右移的。
{
}