前面兩篇文章我鋪墊了IO輸出高低電平的方法:
sbit LED = P1^0;//給一個(gè)IO定義名字
LED = 1;//操作這個(gè)IO的高低電平
P1 = 0xFF;//直接修改一組IO寄存器的數(shù)據(jù)
我們知道,C51里一共有4組IO,分別是P0,P1,P2,P3
每一組有8位,分別是.0 ~ .7
單片機(jī)里面有特定的4個(gè)寄存器對(duì)應(yīng)這四組IO,分別是
對(duì)應(yīng)IO組 | P0 | P1 | P2 | P3 |
---|---|---|---|---|
寄存器地址 | 0x80 | 0x90 | 0xA0 | 0xB0 |
值得一提的是,在"reg52.h"中已經(jīng)對(duì)這些寄存器進(jìn)行了定義
sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;
有了這些在reg52.h的頭文件里的定義,我們就能直接用P0,P1,P2,P3這些關(guān)鍵字修改寄存器的數(shù)值了
P0 = 0xDF;
P1 = 0x3F;
P2 = 0xDE;
P4 = 0x58;
這些寄存器都是可位尋址的,具體的各個(gè)IO的地址和上面各組寄存器的地址我們先不用記?。ㄒ?yàn)槲覀兓旧嫌貌簧希?/p>
但是我們要記住每一組IO中,各個(gè)IO對(duì)應(yīng)的位:
IO | .7 | .6 | .5 | .4 | .3 | .2 | .1 | .0 |
---|---|---|---|---|---|---|---|---|
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
如果我們要讓7,5,4IO都是高電平,其他的都是低電平,對(duì)應(yīng)的二進(jìn)制:1011 0000(高位在前)
因?yàn)槭强晌粚ぶ?,所以我們可以用sbit,對(duì)特定的一個(gè)IO定義一個(gè)名字
比如說(shuō)我們的LED接在P0.0
sbit LED = P0^0;
這篇文章先寫到這里,接下來(lái)我們介紹單片機(jī)的IO的簡(jiǎn)單結(jié)果,至于后事如何,且聽下回分解
-
單片機(jī)
+關(guān)注
關(guān)注
6026文章
44455瀏覽量
630946 -
寄存器
+關(guān)注
關(guān)注
31文章
5271瀏覽量
119655 -
C51單片機(jī)
+關(guān)注
關(guān)注
12文章
164瀏覽量
34687 -
IO口
+關(guān)注
關(guān)注
3文章
169瀏覽量
23948
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論