52單片機IO口輸出點亮你的LED[入門\詳解]
歡迎你的到來!這裏是我的單片機學習筆記,希望我的筆記可以在你學習的道路上對你有所幫助!
特殊功能寄存器SFR聲明
我們想要使用單片機的IO口就要先定義它的地址,我們可以從芯片資料上找到IO口對應的地址(也可以直接網上搜)
單片機C語言SFR聲明:
sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;//定義P0~P3
定義好以後,通過控制P0~P1,我們可以同時控制他們對應的8個IO口,當然這次我們只需要點亮一兩個LED,只需要用到一兩個IO口,所以可以用下面的方法單獨定義一個IO口。
sbit LED0 = P1 ^ 0;
sbit LED1 = P1 ^ 1;
sbit LED2 = P1 ^ 2;
sbit LED3 = P1 ^ 3;
sbit LED4 = P1 ^ 4;
sbit LED5 = P1 ^ 5;
sbit LED6 = P1 ^ 6;
sbit LED7 = P1 ^ 7;//分別定義P1的8個IO口
注意:定義IO口要大寫
頭文件
前面我們使用sfr來定義IO口,如果每次都要一條一條的輸入sfr來定義會非常麻煩,這時我們可以用頭文件的方法來代替剛纔的方法,52單片機C語言的頭文件是 <reg52.h>。
這個頭文件裏就包含了大部分定義,方便快捷。那爲什麼還要講sfr聲明呢?其實就是爲了更好的理解頭文件的核心內容。
代碼參考
給led0賦值0可以讓其對應的IO口發出低電平的信號,從而點亮led。
#include<reg52.h>
//sfr P1 = 0x90;//定義P1寄存器地址
sbit led0 = P1^0;//led0 第1個led
sbit led7 = P1^7;//led7 第8個led
void main()
{
// led0 = 0;//低電平 點亮led0
// while(1);//使程序停在這(死循環)
while(1)
{
led0 = 0;
led7 = 0;
}
}
下面就是最終成果圖,黑色框框裏就是我們點亮的第1個和第8個led。