52單片機IO口輸出點亮你的LED

52單片機IO口輸出點亮你的LED[入門\詳解]

歡迎你的到來!這裏是我的單片機學習筆記,希望我的筆記可以在你學習的道路上對你有所幫助!

特殊功能寄存器SFR聲明

我們想要使用單片機的IO口就要先定義它的地址,我們可以從芯片資料上找到IO口對應的地址(也可以直接網上搜)
STC89C52

單片機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。成果

參考內容鏈接: https://www.bilibili.com/video/BV1Kt411Q7aV?p=4.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章