深度剖析Microchip PIC16F870/871微控制器:硬件特性與應用指南
在嵌入式系統設計領域,選擇一款合適的微控制器對于項目的成功至關重要。Microchip的PIC16F870/871微控制器以其豐富的功能和出色的性能,成為眾多工程師的首選之一。今天,我們就來深入探討這款微控制器的各項特性、功能模塊以及實際應用中的注意事項。
文件下載:PIC16LF870T-I SO.pdf
一、器件概述
PIC16F870和PIC16F871是Microchip推出的兩款8位CMOS FLASH微控制器,分別采用28引腳和40引腳封裝。它們具有高性能RISC CPU,指令集簡潔,僅需學習35條單字指令,除程序分支指令為雙周期外,其余均為單周期指令,運行速度快,時鐘輸入范圍為DC - 20 MHz,指令周期可達200 ns。
核心特性
- 高性能RISC CPU:提供高效的指令執行能力,減少程序執行時間。
- 大容量存儲:擁有2K x 14的FLASH程序存儲器、128 x 8字節的數據存儲器(RAM)和64 x 8字節的EEPROM數據存儲器,滿足不同應用的數據存儲需求。
- 豐富的中斷能力:PIC16F870有10個中斷源,PIC16F871則多達11個,可及時響應外部事件。
- 低功耗設計:在不同工作模式下都能保持較低的功耗,如在5V、4 MHz典型條件下電流小于1.6 mA,3V、32 kHz典型條件下為20 μA,待機電流小于1 μA。
- 靈活的振蕩器選項:支持RC、HS、LP、XT等多種振蕩器模式,可根據不同應用場景選擇合適的時鐘源。
- 強大的編程與調試功能:支持在線串行編程(ICSP)和在線調試,可通過兩根引腳實現,還具備單5V在線串行編程能力。
二、存儲器組織
程序存儲器
PIC16F870/871的程序存儲器為13位程序計數器可尋址的8K x 14空間,但實際只有2K x 14的FLASH程序存儲器。復位向量位于0000h,中斷向量位于0004h。當訪問超出物理實現地址時,會發生回繞。
數據存儲器
數據存儲器分為多個存儲體,由STATUS寄存器的RP1和RP0位選擇。每個存儲體最大為7Fh(128字節),低位用于特殊功能寄存器,高位為通用寄存器。特殊功能寄存器又分為核心(CPU)和外設兩類,控制著設備的各種操作。
三、I/O端口
PORTA
6位雙向端口,對應數據方向寄存器為TRISA。部分引腳復用為模擬輸入和VREF輸入,RA4/T0CKI引腳為施密特觸發輸入和開漏輸出。使用時需注意,上電復位時這些引腳配置為模擬輸入,讀取為'0',使用模擬輸入時需確保TRISA寄存器相應位為1。
PORTB
8位雙向端口,對應數據方向寄存器為TRISB。部分引腳復用為低壓編程功能,每個引腳有弱上拉電阻,可通過OPTION_REG寄存器的RBPU位控制。RB7:RB4引腳具有電平變化中斷功能,可用于喚醒設備。
PORTC
8位雙向端口,對應數據方向寄存器為TRISC。部分引腳復用為多個外設功能,引腳具有施密特觸發輸入緩沖器。啟用外設功能時,需注意TRIS位的設置,避免影響引腳功能。
PORTD和PORTE(僅PIC16F871)
PORTD為8位端口,可配置為并行從端口;PORTE有三個引腳,可配置為輸入或輸出,也可作為并行從端口的控制輸入。
并行從端口(PSP,僅PIC16F871)
當TRISE寄存器的PSPMODE位設置時,PORTD可作為8位并行從端口,通過RE0/RD、RE1/WR和RE2/CS控制輸入,可直接與8位微處理器數據總線接口。
四、定時器模塊
Timer0
8位定時器/計數器,具有8位可編程預分頻器,可選擇內部或外部時鐘源,溢出時產生中斷。預分頻器與看門狗定時器共享,可通過OPTION_REG寄存器配置。
Timer1
16位定時器/計數器,由TMR1H和TMR1L兩個8位寄存器組成。可工作在定時器或計數器模式,通過T1CON寄存器控制。在異步計數器模式下可在睡眠模式下運行并產生中斷喚醒處理器。
Timer2
8位定時器,帶有預分頻器和后分頻器,可作為CCP模塊PWM模式的時基。TMR2寄存器可讀可寫,復位時清零。
五、捕獲/比較/PWM模塊(CCP)
每個CCP模塊包含一個16位寄存器,可作為16位捕獲寄存器、16位比較寄存器或PWM主/從占空比寄存器。
捕獲模式
在捕獲模式下,CCPR1H:CCPR1L捕獲TMR1寄存器的16位值,根據CCP1CON寄存器的配置,可在不同的邊沿觸發捕獲操作。
比較模式
將16位CCPR1寄存器的值與TMR1寄存器對的值進行比較,根據CCP1CON寄存器的配置,在匹配時對RC2/CCP1引腳進行相應操作,并設置中斷標志位CCP1IF。
PWM模式
在PWM模式下,CCP1引腳可產生最高10位分辨率的PWM輸出。PWM周期由PR2寄存器指定,占空比由CCPR1L寄存器和CCP1CON<5:4>位指定。
六、通用同步異步收發器(USART)
USART模塊可配置為全雙工異步系統或半雙工同步系統,支持9位地址檢測的多處理器通信。
異步模式
使用標準NRZ格式,通過波特率發生器產生時鐘,可選擇高速或低速模式。發送和接收功能獨立,支持8位或9位數據傳輸。
同步主模式
數據半雙工傳輸,由處理器在CK線發送主時鐘。發送和接收操作通過TXEN和CREN、SREN控制。
同步從模式
移位時鐘由外部提供,可在睡眠模式下傳輸或接收數據。
七、模數轉換器(A/D)模塊
A/D轉換器模塊具有5個(28引腳設備)或8個(其他設備)模擬輸入通道,可產生10位數字結果。通過ADCON0和ADCON1寄存器控制操作和配置端口引腳。支持在睡眠模式下操作,但需將A/D時鐘源設置為內部RC振蕩器。
八、特殊特性
振蕩器選擇
支持LP、XT、HS、RC四種振蕩器模式,可通過配置位FOSC1和FOSC0選擇。不同模式適用于不同的應用場景,如RC模式適用于對時序要求不高的應用,可節省成本;LP模式則可節省功耗。
復位機制
包括上電復位(POR)、MCLR復位、看門狗定時器復位(WDT)和欠壓復位(BOR)。不同的復位情況會對寄存器產生不同的影響,可通過STATUS寄存器的(overline{TO})和(overline{PD})位判斷復位類型。
中斷系統
具有多達14個中斷源,通過INTCON、PIR1和PIR2寄存器記錄中斷請求,通過GIE、PEIE和各中斷使能位控制中斷。中斷發生時,GIE位清零,返回地址壓入堆棧,PC加載為0004h。
看門狗定時器(WDT)
獨立的片上RC振蕩器,可在時鐘停止時運行。正常運行時超時產生復位,睡眠模式下超時喚醒設備。可通過配置位WDTEN永久禁用。
睡眠模式
執行SLEEP指令進入睡眠模式,此時看門狗定時器清零但繼續運行,振蕩器驅動關閉,I/O端口保持狀態。可通過外部復位、看門狗定時器喚醒或中斷喚醒。
代碼保護
具有EEPROM數據存儲器和FLASH程序存儲器的代碼保護機制,可通過配置位控制。代碼保護啟用后,只有全擦除設備才能禁用。
在線串行編程(ICSP)和低壓ICSP編程
支持在線串行編程,可在最終應用電路中對微控制器進行編程。低壓ICSP編程模式允許使用正常工作電壓的VDD源進行編程。
九、開發支持
Microchip為PIC16F870/871提供了豐富的開發工具,包括集成開發環境(MPLAB IDE)、匯編器(MPASM)、編譯器(MPLAB C17、MPLAB C18、MPLAB C30)、模擬器(MPLAB SIM、MPLAB SIM30)、仿真器(MPLAB ICE 2000、MPLAB ICE 4000)、在線調試器(MPLAB ICD 2)和設備編程器(PRO MATE II、PICSTART Plus)等,方便工程師進行開發和調試。
十、總結
PIC16F870/871微控制器以其豐富的功能、低功耗和靈活的配置選項,適用于各種嵌入式應用場景。在實際設計中,工程師需要根據具體需求合理選擇振蕩器模式、配置寄存器、處理中斷和進行編程調試。同時,要注意各項電氣特性和時序要求,確保系統的穩定性和可靠性。希望本文能為電子工程師在使用PIC16F870/871微控制器時提供有價值的參考。
-
微控制器
+關注
關注
48文章
8427瀏覽量
164871
發布評論請先 登錄
8位微控制器 -MCU ?PIC16F1503-I/SL
PIC18F16Q20 Curiosity Nano開發板技術解析與應用指南
深度剖析Microchip PIC16F870/871微控制器:硬件特性與應用指南
評論