1、8bit MCU 通用I/O 結構圖
端口模塊如下圖(79系列圖):
2、相關設置寄存器及注意事項:
端口控制寄存器
PxCR寄存器控制I/O輸入輸出狀態設置。
當寄存器設置成輸入模式時,Px寄存器讀取的是端口電平狀態。
當寄存器設置成輸出模式時,Px寄存器讀取的是數據寄存器的值。
如有未使用到的I/O,需要設置輸出固定電平以免I/O浮動電平帶來的漏電流。
端口上拉電阻控制寄存器
端口數據寄存器
79系列單片機 Px 寄存器都在位尋址區(例如:80H,88H等),都可以進行位尋址操作。
在初始化設施PxCR(輸出狀態)前,請優先設置Px寄存器,避免WDT,,OVL等復位帶來的端口電平變化。
當PxCR寄存器設置成輸入狀態時,操作讀取對應Px,是讀取對應引腳電平狀態。
當PxCR寄存器設置成輸出狀態時,根據指令來分別對應 讀取的是寄存器還是引腳電平。
端口寄存器讀-改-寫指令舉例:
ANL P0, #立即數 ; P0->立即數 (與)P0->P0
ORL P0, A ; P0->A|(或)P0->P0
INC P0 ; P0->P0+1->P0
CPL P0.0 ; P0.0->P0.0~(取反)->P0.0
引腳電平讀取指令舉例:
MOV A,P0 ; P0->A
MOV R0, P0 ; P0->R0
不管端口是否共享為其它功能,對端口寫操作都是針對端口數據寄存器。
當第二功能有沖突時,按照端口共享表格中的優先級來決定輸出功能。
通常I/O的優先級是低于其他功能的。
以下圖為例,當P0.6引腳上BUZ功能和LED功能同時選中時,引腳輸出LED波形。
當允許端口復用為其它功能時,用戶可以修改PxCR﹑PxPCR,但在復用的其它功能被禁止前,這些操作不會影響端口狀態。
當允許端口復用為其它功能時,任何對端口的讀寫操作只會影響到數據寄存器的值,端口引腳值保持不變,直到復用的其它功能關閉。
3、 I/O開漏模式介紹:
在I/O章節有選擇N溝道開漏功能的寄存器時,可以實現I/O的N溝道開漏功能(注意上圖紅線處,IO管腳的電壓不得超過VDD+0.3V電壓)
如果I/O章節沒有該選項的寄存器,但是又有TWI通訊功能,那么在TWI功能開啟時,引腳自動切換成N溝道開溝。關閉TWI功能,自動切換回普通I/O。
芯片的電源輸入端建議加去耦電路,防止VDD端出現瞬間的高壓引入導致的電路損壞。
4、施密特及TTL功能介紹:
施密特功能介紹:
施密特輸入特性是輸入高電平閾值為0.8VDD,輸入低電平閾值為0.2VDD。
VDD=5V舉例,輸入高電平>=4V,端口讀取的電平為高,輸入低電平<=1V,端口讀取的電平為低。相對應的引腳是否具有施密特功能,請查詢電氣特性章節(輸入高電壓2和輸入低電壓2中注明有施密特功能的引腳,例如INT0-4,T3-T5等)。普通I/O不具有施密特功能。
TTL功能介紹:
TTL電平輸入特性是
1) 輸入高電平閾值為0.25VDD+0.8,輸入低電平閾值為0.15VDD(VDD=2.7V~4.5V)
以VDD=3.3V舉例,輸入高電平>=1.625V,端口讀取的電平為高,輸入低電平<=0.495V,端口讀取的電平為低。
2)輸入高電平閾值為2.0V,輸入低電平閾值為0.8V(VDD=4.5V~5.5V)
以VDD=5 V舉例,輸入高電平>=2V,端口讀取的電平為高,輸入低電平<=0.8V,端口讀取的電平為低。
選擇TTL電平功能可與VDD電壓為3.3V的WIFI模塊直接通過以Uart或者TWI的方式通訊,又或者直接接收外部中斷信號(INT0-4),不需要外加電平轉換電路。(芯片是否有TTL功能請查詢I/O章節及電氣特性章節)
端口輸入模式選擇寄存器如下(TTL和CMOS選擇)
*:CPU在任何情況下,讀取端口數據寄存器(P0,P1……),其輸入高電平閾值為0.7VDD,輸入低電平閾值為0.3VDD(CMOS邏輯,無施密特);該控制位控制的是其他功能輸入的邏輯電平狀態,例如:INT0 - 4,RXD,SDA等數字電平輸入。
注意:TTL電平特性,詳情請見規格書電氣特性章節。
來源:中穎電子
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理
審核編輯 黃宇
-
單片機
+關注
關注
6037文章
44561瀏覽量
635589
發布評論請先 登錄
相關推薦
評論