數字和模擬資源可以通過25個
i/o引腳(
c8051f320
)每個埠引腳都可以被定義為通用
i/o(
gpio
)或模擬輸入。
p0.0 ~ p2.3
可以被分配給內部數字資源
特點:所有埠
i/o都耐
5v電壓。 埠
i/o單元可以被配置為漏極開路或推挽方式。 1
.用埠輸入方式暫存器(
pnmdin
)選擇所有埠引腳的輸入方式(模擬或數字)。 2
.用埠輸出方式暫存器(
pnmdout
)選擇所有埠引腳的輸出方式(漏極開路或推挽)。 3
.用埠跳過暫存器(
pnskip
)選擇應被交叉開關跳過的那些引腳。 4
.將引腳分配給要使用的外設(
xbr0
、xbr1)。
5.使能交叉開關(
xbare = 『1』)。
下面以埠
p0為例
pnmdin:
埠輸入方式暫存器
對應的p0mdin[n] =0
模擬輸入
p0mdin[n]=1
數字輸入(預設)
pnmdout:
埠出方式暫存器
對應的p0mdout[n] =0
漏極開路(預設
) p0mdout[n] =1
推挽輸出
推挽輸出,
push-pull,不需要外加驅動電路,可以直接驅動外面的晶元。
推挽輸出的時候,埠輸出高電平,
nmos
截止,pmos
導通,把
io口拉高;埠輸出為低電平,
pmos
截止,nmos
導通,把
io口拉低,適合驅動一些
ttl負載,
led,或是通訊時用作資料或時鐘傳送;
漏極開路,
open-drain,需要外加電阻上拉到電源。
漏極開漏輸出時
pmos
被禁止,只有保留
nmos
,當埠輸出低電平時,
nmos
導通,把
io拉低;但輸出埠為高電平時,
nmos
截止,埠沒有輸出了高阻浮空狀態
),如果
加上外部上拉電阻
,輸出就變成了高電平
1,適合線與或是用作
i2c通訊。
模擬輸入,
analog in
模擬輸入被使能時,其它
io方式將被禁止,模擬訊號直接經過乙個
pass gate
送入mcu
內部的adc;
數字輸入,
digital in
當數字輸入時,
io口輸出禁止,數碼訊號經過
schmitt trigger
(施密特觸發器
)送入內部邏輯。
特別需要注意的是當
io口用作輸入埠時:
有兩種方法: 1
、禁止io輸出,配置為數字輸入。注意是所有的
io埠的輸出方式都被禁止 2
、配置為
od方式。這時外部的高電平會保持,低電平會把
io拉低。
通常中斷輸入,資料輸入時可以這樣配置
不管交叉開關是否將埠引腳分配給某個數字外設,都需要對埠驅動器的輸出方式進行設定。例外情況是
smbus
上的sda
和scl
及uart
的rxd
引腳,這些引腳被自動配置為漏極開路。
關於推免和漏極開漏可參考
1)c8051f微控制器中io的使用
2)漏級開路 vs 推挽方式
8051 p0口
p0skip:埠0
跳過暫存器
pnskip[n]=0
引腳不被交叉開關跳過;(預設)
pnskip[n]=0
引腳被交叉開關跳過。
xtal1(p0.2)
腳和xtal2(p0.3)
腳用作外部振盪器輸入管腳時,要跳過交叉開關優先權解碼表(
p0skip = 0x0c)。
xbr0:埠
i/o交叉開關暫存器0
xbr1:埠
i/o交叉開關暫存器1
交叉開關負責
smbus
、spi
、uart
、定時器捕捉模組、外部
pca輸入、比較器輸出、定時器外部輸入、
/sysclk
以及a/d
轉換啟動輸入的引腳分配。必須在訪問這些外設的
i/o之前配置和允許交叉開關
未指定的埠引腳作為通用
i/o 。
xbare=0
交叉開關禁止;
xbare=1
交叉開關使能。
在交叉開關被使能之前,外部引腳保持標準埠
i/o方式(輸入)。
沒有引腳被跳過的交叉開關優先權解碼表
可以通過
silicon labs ide
軟體的配置嚮導
(configuration wizard)配置
i/o管腳,如下圖,配置
uart0
和spi0
和smbus
。uart0
的tx0
、rx0
固定在p0.4
和p0.5
上,由於
spi0
的優先順序比
sysclk
高,所以
spi的
sck和
miso
依次配置到管腳
p0.0
、p0.1
、(p0.1
的優先順序比
p0.1
高,依次類推)。
p0.2
和p0.3
跳過交叉開關,用於外部振盪器輸入
(xtal1
和xtal2)
。由於p0.4
和p0.5
已佔,所以
spi剩下的
mosi
和nss
配置在p0.6
和p0.7
。sysclk
配置在p1.0。
void port_io_init()
要注意的是,首先要使能優先權交叉解碼器
(enable crossbar)。
1)為使埠p0、p1和p2.0 ~ p2.3工作在標準埠i/o輸入/輸出方式,交叉開關必須被使能。當交叉開關被禁止時,埠輸出驅動器被禁止。p2.4 ~ p2.7和p3.0總是作為標準gpio使用。 2
)未被交叉開關分配的埠引腳和未被模擬外設使用的埠引腳都可以作為通用
i/o。
C8051F環境搭建
usb偵錯程式 u ec6 支援jtag模式 c2模式 jtag介面定義 適用型號c8051f00x c8051f01x c8051f02x c8051f04x c8051f06x c8051f12x c8051f2xx c2介面定義 適用型號c8051f3xx c8051f41x c8051f5x...
c8051f 的IO配置方法及原則
c8051f i 0口 問 c8051f020 022的p4 p7口和p0 p3口有什麼不同?答 p0 p3口復位時為通用口,可通過crossbar 資料交叉開關 暫存器按優先順序設定成第二功能。而p4 p7口是通用口,另外p4 p7暫存器不能位定址。問 如果通過crossbar暫存器使能並分配為p...
C8051F微控制器定時器的定時
假設c8051f020微控制器的晶振是sysclk 22114800hz,即每秒計22114800個數 經過div 12分頻後得到定時器的計數頻率tclk sysclk 12,每秒計22114800 12 1842900個數 sysclk 12 1 s cout t s 則t秒 計數個數cout t...