找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1625|回復: 3
打印 上一主題 下一主題
收起左側

單片機獨立按鍵控制LED顯示二進制

[復制鏈接]
跳轉到指定樓層
樓主
ID:1046502 發(fā)表于 2022-10-2 22:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
在獨立按鍵控制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就顯示二進制了?




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:213173 發(fā)表于 2022-10-3 08:21 | 只看該作者
LEDNUM是字符型變量,數據范圍二進制表示:00000000-11111111,假設LEDNUM=5,二進制表示:00000101,取反成11111010,賦值給P2,P2接有8個LED,P2.0、P2.2低電平點亮LED。不就顯示二進制碼了。
回復

使用道具 舉報

板凳
ID:121859 發(fā)表于 2022-10-3 09:26 | 只看該作者
之所以這么處理,是與LED的接法有關的,在這里,點亮LED燈要送“低”電平,所以為了用點亮的LED燈來表示變量的“大小”狀態(tài),就需要取反了,比如,為1時,點亮第一個燈,那么需要送1111 1110,而數據時0000 0001。
回復

使用道具 舉報

地板
ID:123289 發(fā)表于 2022-10-8 10:40 | 只看該作者
取反是因為LED的接法是0亮1暗。而又想用1亮。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表