PIC單片機IO控制


PIC單片機IO口操作

設置IO為輸出步驟

  • IO口設置為輸出的步驟:

    1. 設置TRISn 確保I/O口的方向為輸出
    2. 通過PORTn 控制I/O的數值
  • 代碼示例

    #include <pic.h>
    __CONFIG(0xFF32); // 4M
    
    void main() {
    	TRISD = 0;          // 設置D區方向寄存器為輸出
    	PORTD = 0b00000001; // 第一個LED燈點亮
    
    	while(1);           // 防止程序跑到不可控區域
    }
    

I/O口注意事項

  • 端口驅動能力

  • 每個I/O口允許最大25mA的灌電流和20mA的拉電流, 可以直接驅動LED和繼電器。

  • 因各端口結構不同, RB口提供的總灌電流和總拉電流可達 150mA100mA , 其他端口為 80mA50mA

  • 五個端口驅動電流之和不大於200mA

  • TRISn始終控制着PORTn的輸入輸出方向

IO寄存器

  • TRISA 方向寄存器

    • 每一位是單片機輸入輸出時,每一位數值是0.
    • 輸出數值有PORTC寄存器來確定,POrtC數值全部為0
  • 輸入輸出區

    • PIC16F877 除了基本電路所占用的 7 根引腳外, 其余的 33 支引腳都可當成輸出、 輸入引腳, 輸入輸出端口, 可以與周邊電路進行電路控制和信號傳輸與檢測。
    • PIC 是 8位的單片機, 以引腳特性分組, 每組盡量湊滿 8 支引腳, 並將 I/O 命名為 PORTA(RA0~RA5)PORTB(RB0~RB7)PORTC(RC0~RC7)PORTD(RD0~RD7)PORTE(RE0~RE2)

各路IO說明

PORTA

  • PORTA :PIC16F877的PORTA 總共有6位(RA0~RA5)

    1. PORTA 的引腳可作為數據輸出輸入端口
    2. 系統重置后, PORTA 自動成為模擬輸入狀態, 可讀取模擬輸入信號。

PORTB

  • PORTB : PORTB 總共有8位(RB0~RB7)

    1. 可以編寫程序規划輸入輸出方向、 狀態.
    2. 需要進行燒錄時,使用到三個引腳, 分別是 36腳(RB3/PGM)、 39腳(RB6/PGC) 與 40腳(RB7/PGD).

PORTC

  • PORTC :PORTC 總共有8位(RC0~RC7)

    1. 可作為數據 I/O
    2. 有特殊功能的外圍電路共享引腳
      • CCP : 直流馬達控制
      • I2C : 同步串行通信電路
      • SPI : 串行外設接口
      • UART : 異步串行傳輸電路

PORTD

  • PORTD : PORTD 總共有8位(RD0~RD7)
    1. 可作一般數據 I/O
    2. 並與 PSP(Parallel Slave Port)並行傳輸區共享 , 當整體系統需要多機時, 彼此可以經由並行傳輸區來快速傳輸資料

PORTE

  • PORTE :PORTE 總共有3位(RE0~RE2)

    1. 基本 I/O 功能
    2. 模擬輸入功能: 上述的 PORTD 的並行傳輸區設定所需的控制引腳, 如/RD/WR /CS等, 也是屬於PORTE 引腳。

設置端口IO狀態

  • I/O端口的寄存器: 復位后, 默認為輸入( 輸出高阻態)
方向控制寄存器 TRISA~E
數據寄存器 PORTA~E

狀態設置

  • 方向控制寄存器與數據寄存器都是8位的, 方向控制寄存器中的每一位與數據寄
    存器中的每一位相對應, 如下:

    • TRISn 方向控制寄存器:
      • 相應位設置為1表示輸入
      • 相應位設置為0表示輸出
    • PORTn 端口控制寄存器:
      • 相應位設置為1表示輸出
      • 相應位設置為0表示輸入

單片機復位之后I/O口的初始狀態

  • 單片機啟動后,默認IO輸入模式

PIC單片機最小系統

  • PIC單片機運行必要條件

    1. 電源
    2. 晶振: 采用4M方便計算
    3. 復位: 采用低電平復位


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM