1. C8051F系列單片機,IO配置如下:
推挽輸出,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拉低。
通常中斷輸入,資料輸入時可以這樣配置
2. 通過C8051F的IO配置,可見,配置不同的IO模式時候,實際IC內部邏輯是變化的;同時,通過實際瞭解IC的IO內部邏輯,對IO操作的一些疑問,就會有答案:
(1) IO輸入的電平一般是有門限的,比如假設0-0.8V算低電平,1.8-3.3V算高電平,這個是誰規定的呢?如果2V輸入,是某部分電路不工作了還是怎麼樣了?
>> 如同上邊描述的,當作為數字輸入時候,數字訊號經過施密特觸發器進入內部邏輯,施密特觸發器的特點是,有兩個閥值,高和低,當輸入電平超過高閥值時候,觸發器輸出高(VCC),當輸入電平低過低閥值時候,觸發器輸出低(GND),當然這是簡單描述,不過是可以實現的,而且實現施密特觸發器方法很多,成本有高有底.
to be continued.