所在位置:首頁 > 新聞中心  > 行業新聞

卡卡湾厅筆記:單片機I/O口是什麽?有哪些種類

發表時間:2022-09-28
來源:網絡整理
瀏覽量: 50

前言:任何MCU單片機都具有一定數量的I/O口,沒有I/O口,MCU就失去了與外部溝通的渠道。

單片機I/O口是用來定義相對I/O口位的輸入、輸出的狀態和方式。其中I是input 輸入的意思,O是output輸出的意思,I/O讀寫就是輸入或輸出讀寫。

根據I/O口的可配置情況,可以分為如下幾種類型:
1、純輸入或純輸出口:此類I/O口由MCU硬件設計決定,隻能是輸入或輸出,需要切換到內核態對操作係統進行操作,不可用軟件來進行實時的設定。

例如程序要保存一個文件到硬盤,在程序執行的用戶態,是直接操作磁盤的。隻有切換到內核態才能真正去操作磁盤。在進行I/O操作時CPU會從用戶態切換為內核態,而操作結束後則需要從內核態切換為用戶態。
2、直接讀寫I/O口:如MCS-51的I/O口就屬於此類I/O口。當執行讀I/O口指令時,就是輸入口;當執行寫I/O口指令則自動為輸出口。read: 把數據從內核緩衝區複製到進程緩衝區。 write: 把數據從進程緩衝區複製到內核緩衝區。

因此,上層程序的IO操作、不是物理設備級別的讀寫,而是緩存的複製。設置緩衝區的目的就是為了減少頻繁地與設備之間的物理交換。

3、程序編程設定輸入輸出方向的:此類I/O口的輸入或輸出由程序根據實際的需要來進行設定,應用比較靈活,可以實現一些總線級的應用,如I2C總線,各種LCD、LED Driver的控製總線等。

對於I/O口的使用,重要的一點必須牢記的是:對於輸入口,必須有明確的電平信號,確保不能浮空(可以通過增加上拉或下拉電阻來實現);而對於輸出口,其輸出的狀態電平必須考慮其外部的連接情況,應保證在Standby或靜態狀態下不存在拉電流或灌電流。
最重要的一點是:必須設置寄存器對引腳進行初始化處理,才能使引腳具備有數字輸入和輸出輸出功能。每使用單片機的一個功能,就要對控製該功能的寄存器進行設置,這就是單片機編程的特點。