标题:
单片机独立按键控制LED显示二进制
[打印本页]
作者:
爱学习的小郎君
时间:
2022-10-2 22:23
标题:
单片机独立按键控制LED显示二进制
在独立按键控制LED显示二进制的程序中
#include <REGX52.H>
void Delay(unsigned int xms)
{
unsigned char i, j;
while(xms)
{
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
xms--;
}
}
void main()
{
unsigned char LEDNUM=0;
while(1)
{
if(P3_1==0)
{
Delay(20);
while(P3_1==0);
Delay(20);
LEDNUM++;
P2=~LEDNUM;
}
}
}
LEDNUM++;
P2=~LEDNUM;这是什么意思?LEDNUM是数字,P2可以是数字取反吗?
为什么LED就显示二进制了?
作者:
wulin
时间:
2022-10-3 08:21
LEDNUM是字符型变量,数据范围二进制表示:00000000-11111111,假设LEDNUM=5,二进制表示:00000101,取反成11111010,赋值给P2,P2接有8个LED,P2.0、P2.2低电平点亮LED。不就显示二进制码了。
作者:
zhxiufan
时间:
2022-10-3 09:26
之所以这么处理,是与LED的接法有关的,在这里,点亮LED灯要送“低”电平,所以为了用点亮的LED灯来表示变量的“大小”状态,就需要取反了,比如,为1时,点亮第一个灯,那么需要送1111 1110,而数据时0000 0001。
作者:
yzwzfyz
时间:
2022-10-8 10:40
取反是因为LED的接法是0亮1暗。而又想用1亮。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1