前面兩篇文章我鋪墊了IO輸出高低電平的方法:
sbit LED = P1^0;//給一個IO定義名字
LED = 1;//操作這個IO的高低電平
P1 = 0xFF;//直接修改一組IO寄存器的數(shù)據(jù)
我們知道,C51里一共有4組IO,分別是P0,P1,P2,P3
每一組有8位,分別是.0 ~ .7
單片機里面有特定的4個寄存器對應(yīng)這四組IO,分別是
對應(yīng)IO組 | P0 | P1 | P2 | P3 |
---|---|---|---|---|
寄存器地址 | 0x80 | 0x90 | 0xA0 | 0xB0 |
值得一提的是,在"reg52.h"中已經(jīng)對這些寄存器進行了定義
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;
這些寄存器都是可位尋址的,具體的各個IO的地址和上面各組寄存器的地址我們先不用記住(因為我們基本上用不上)
但是我們要記住每一組IO中,各個IO對應(yīng)的位:
IO | .7 | .6 | .5 | .4 | .3 | .2 | .1 | .0 |
---|---|---|---|---|---|---|---|---|
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
如果我們要讓7,5,4IO都是高電平,其他的都是低電平,對應(yīng)的二進制:1011 0000(高位在前)
因為是可位尋址,所以我們可以用sbit,對特定的一個IO定義一個名字
比如說我們的LED接在P0.0
sbit LED = P0^0;
這篇文章先寫到這里,接下來我們介紹單片機的IO的簡單結(jié)果,至于后事如何,且聽下回分解
-
單片機
+關(guān)注
關(guān)注
6067文章
44989瀏覽量
650357 -
寄存器
+關(guān)注
關(guān)注
31文章
5434瀏覽量
124443 -
C51單片機
+關(guān)注
關(guān)注
12文章
164瀏覽量
35433 -
IO口
+關(guān)注
關(guān)注
3文章
170瀏覽量
24986
發(fā)布評論請先 登錄
C51單片機并行口擴展設(shè)計及應(yīng)用

51單片機、AVR單片機和PIC單片機的IO口操作

51單片機如何讀寫AT29C040?51單片機讀寫AT29C040的c51程序免費下載

51單片機教程之80C51單片機的C語言程序設(shè)計資料概述

C51單片機與C52單片機內(nèi)部的資源區(qū)別

評論