
32個I/O口分布如圖,單片機每個I/O口占一個小方格,小方格具備存儲電荷功能,滿電荷的時候,小方格的邏輯電平為1,對應的實際電壓是5V,沒有電荷的時候邏輯電平是0,對應實際電壓是0(確切來說是小于0.7V,其實0.7伏電壓做不了什么事情,就可以認為是0V啦).那我們編寫程序的時候,就是讓小方格要么是1(5V),要么是0(0V).
下面這些操作是假設你的編程軟件安裝成功,并且你會建立第一個工程文件的前提下進行.我就編一個小成程序讓下面圖的小燈亮起來.

程序代碼:
#inlcude
#define uint unsigned int---定義一個無符號整型數據類型變量
#define uchar unsigned char----定義一個無符號字符型數據變量
void main()--程序主函數,一定要記住程序的函數結構寫法,都是固定的.程序 執行都是從主函數開始執行.
{
P2=0Xfe;
while(1);
}
P2=0Xfe;把一個數0Xfe付給P2口,0X代表16進制,這時P2口的狀態如圖

P2=0Xfe這句話的目的就是讓P2.0口的邏輯電平為0,實際電壓為0,這樣LED兩端就會有電壓差,從而使其點亮.可能有人不知道16進制和2進制是怎么回事.好簡單的,0000-0,0001-1,0010-2,0011-3,0100-4,0101-5,0110-6,0111-7,1000-8,1001-9,1010-a,1011-b.1100-c,1101-d,1110-e,1111-f.16進制就是從0數到f,一共16個數,完了.細心的朋友可能會發現,讓P2.0發光,就是讓P2口最后一位為0,那只要P2口最后一位為0,LED就會發光,看上面的2進制數值,只要最后一位為0就達到目的,如P2=0X00,P2=0X02,P2=0Xdc....等等.
這種操做方法叫總線操作方法.讓P2.0的LED發光還可以用位操作的方法.
程序代碼如下:
#inlcude
#define uint unsigned int
#define uchar unsigned char
sbit D1=P2^0;
void main
{
D1=0;
while(1);
}
sbit D1=P2^0;這句話意思是把P2^0定義為一個變量D1,操作D1就可以操作P2.0.有的人會有疑問,這多麻煩了,直接P2.0=0,不就完了嗎?不可以,這樣寫編譯器不認識這種格式,所以大家一定要記得如何定義一個位變量,格式不能改了,一定是sbit D1=P2^0,當然D1可以是其他字母,A1,B2,C1都沒有問題.
總結一下,讓LED發光辦法2個,總線操作,位操作.學習懂得總結進步才快.(待續)