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