52單片機IO口輸出點亮你的LED[入門\詳解]
- 特殊功能暫存器SFR宣告
- 頭檔案
- 代碼參考
歡迎你的到來!這里是我的單片機學習筆記,希望我的筆記可以在你學習的道路上對你有所幫助!
特殊功能暫存器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,
參考內容鏈接: https://www.bilibili.com/video/BV1Kt411Q7aV?p=4.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/250634.html
標籤:其他
