標題:
單片機獨立按鍵控制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是數(shù)字,P2可以是數(shù)字取反嗎?
為什么LED就顯示二進制了?
作者:
wulin
時間:
2022-10-3 08:21
LEDNUM是字符型變量,數(shù)據(jù)范圍二進制表示:00000000-11111111,假設LEDNUM=5,二進制表示:00000101,取反成11111010,賦值給P2,P2接有8個LED,P2.0、P2.2低電平點亮LED。不就顯示二進制碼了。
作者:
zhxiufan
時間:
2022-10-3 09:26
之所以這么處理,是與LED的接法有關的,在這里,點亮LED燈要送“低”電平,所以為了用點亮的LED燈來表示變量的“大小”狀態(tài),就需要取反了,比如,為1時,點亮第一個燈,那么需要送1111 1110,而數(shù)據(jù)時0000 0001。
作者:
yzwzfyz
時間:
2022-10-8 10:40
取反是因為LED的接法是0亮1暗。而又想用1亮。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1