51单片机LED什么语句可以概括所有的LED灯?

目的:按下独立按键K1~K4,可分别上下控制连接在P0P2端口的LED移位显示。

void DelayMS(uint x)//延时函数不同的芯片由于频率不同而不同 //P1,按键引脚;P0:左流水灯;P2:右流水灯; //左边流水灯向上移动 //左边流水灯向下移动 //右边流水灯向上移动 //右边流水灯向下移动

按下K1或K2时LED1或2亮,松开熄灭按下K3或K4後释放时,LED3或4 亮再次按下并释放时熄灭。 

//LED12,由按键直接控制按键状态即是灯的状态 //LED3,4由按键间接控制,按键第一次按下 //保持当时燈的状态等待释放按键;释放按键后,执行下一条指令即是相反状态 //实现灯的相反状态,两次按键状态切换

—while(1)和while(1);(有分号)—

    while(1){……}:是让单片机LED一直执行{……}中内容**防止程序跑飞**,通常用于主程序主体确保程序持续执行

—按键的高低电平— 

很明显:我们是高电平有效,未按下时是高电平,为1;当K1=1时灯是灭的;从P0,P1的引脚初始化也可以看出

实验内容:在得出键号后分别对LED执行4種不同的操作。 

//由模式XXXX1111(X中有一位为0其他均为1) //变为模式0000XXXX(X中有一位为1,其他均为0) //检查1所在的位置累加获取按键号K //根据按键号K进行4種处理 //(当前情况是在循环体内,switch中的指令会多次判断并执行) //涉及知识点:共阴极还是阳极以及引脚对应问题

—引脚和值的对应关系(反序)—

P0口的8个引脚被赋值成,就是说只有P0^0口是低电平其余都是高电平!8个引脚与0xfe的2进制分别对应!

    即是的值对应P0的7,65,43,21,0號引脚不同于我们数数时从左到右的逻辑,这种现象在汇编语言和单片机LED里很常见

—循环移位和移位(CF的作用有无)—

循环移位:单片機LED中的移位运算不同于C语言中的移位之后补零而是分情况进行大循环和小循环(即是微机原理中的不带进位CF的CRL和带进位CF的ROR 循环移位)常使用_crol_()和_cror_()函数完成。

    本实验则是【未使用】循环移位故在switch语句中进行

//(原来是ff 变 ,亮一个-》亮两个3个,四个……八个循环,全灭也昰逐个,从下到上移动

—共阳极和共阴极(灯该怎么亮?)—

    灯亮取决于高电平还是低电平由共阳极和共阴极决定。

共阳极:低电平0亮(和电源形成电平差,点亮LED灯)

认真做了按键实验感觉单片机LED并不简单,需要自己好好努力认真对待才行,各位大朋友小朋友加油!(PS:markdown用的还有点无力,下次加油吧)

}

这个要看你程序的全貌才知道從这条语句来看,led8_one是一个字节型变量
}

我要回帖

更多关于 单片机LED 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信