深入剖析PIC16F870/871微控制器:功能特性與應(yīng)用指南
在電子設(shè)計領(lǐng)域,微控制器是核心組件之一,它如同電子設(shè)備的“大腦”,掌控著設(shè)備的各種功能和運行邏輯。Microchip的PIC16F870/871微控制器以其豐富的功能和出色的性能,在眾多應(yīng)用場景中得到了廣泛應(yīng)用。今天,我們就來深入剖析這款微控制器,探討它的特性、應(yīng)用以及設(shè)計要點。
文件下載:PIC16LF870-I/SS.pdf
一、設(shè)備概述
PIC16F870/871微控制器有28引腳的PIC16F870和40引腳的PIC16F871兩種型號。它采用高性能RISC CPU,指令集簡潔,僅需學(xué)習(xí)35條單字指令,且除程序分支指令為雙周期外,其余均為單周期指令,運行速度快,操作頻率范圍為DC - 20 MHz,指令周期可達DC - 200 ns。
1.1 核心特性
- 高性能RISC CPU:具備強大的運算能力,能高效處理各種任務(wù)。
- 精簡指令集:35條單字指令,易于學(xué)習(xí)和使用,降低了開發(fā)難度。
- 豐富的內(nèi)存資源:擁有2K x 14 words的FLASH程序內(nèi)存、128 x 8 bytes的數(shù)據(jù)內(nèi)存(RAM)以及64 x 8 bytes的EEPROM數(shù)據(jù)內(nèi)存,滿足不同的數(shù)據(jù)存儲需求。
- 多中斷源:具備多達11個中斷源,可實現(xiàn)快速響應(yīng)外部事件,提高系統(tǒng)的實時性。
- 低功耗設(shè)計:采用低功耗、高速CMOS FLASH/EEPROM技術(shù),在不同工作模式下都能保持較低的功耗,如在5V、4 MHz典型工作條件下電流小于1.6 mA,3V、32 kHz時典型電流為20 μA,待機電流典型值小于1 μA。
- 多種工作模式:支持Power-on Reset(POR)、Power-up Timer(PWRT)、Oscillator Start-up Timer(OST)、Watchdog Timer(WDT)等功能,確保系統(tǒng)的穩(wěn)定性和可靠性;具備Power saving SLEEP模式,可在不需要工作時降低功耗;還支持In-Circuit Serial Programming(ICSP)和In-Circuit Debugging等功能,方便開發(fā)和調(diào)試。
1.2 外設(shè)特性
- 定時器模塊:
- Capture/Compare/PWM模塊:可實現(xiàn)16位捕獲、比較和PWM功能,捕獲分辨率最高可達12.5 ns,比較分辨率最高可達200 ns,PWM分辨率最高可達10位。
- 模擬-to-數(shù)字轉(zhuǎn)換器(ADC):28引腳設(shè)備有5個輸入通道,其他設(shè)備有8個輸入通道,可實現(xiàn)10位多通道模擬-to-數(shù)字轉(zhuǎn)換。
- 通用同步異步收發(fā)器(USART):可配置為全雙工異步系統(tǒng)或半雙工同步系統(tǒng),支持9位地址檢測,具備多處理器通信能力。
- 并行從端口(PSP):僅PIC16F871具備,可作為8位寬的微處理器端口,實現(xiàn)與外部設(shè)備的并行通信。
二、內(nèi)存組織
PIC16F870/871的內(nèi)存分為程序內(nèi)存和數(shù)據(jù)內(nèi)存,兩者擁有獨立的總線,可實現(xiàn)并發(fā)訪問。
2.1 程序內(nèi)存
程序內(nèi)存采用13位程序計數(shù)器,可尋址8K x 14的程序內(nèi)存空間,但實際只有2K x 14 words的FLASH程序內(nèi)存。RESET向量位于0000h,中斷向量位于0004h。
2.2 數(shù)據(jù)內(nèi)存
數(shù)據(jù)內(nèi)存被劃分為多個存儲體,包含通用寄存器和特殊功能寄存器。通過STATUS寄存器的RP1和RP0位進行存儲體選擇,每個存儲體最大擴展到7Fh(128字節(jié)),下部位置保留給特殊功能寄存器,上部為通用寄存器,采用靜態(tài)RAM實現(xiàn)。部分常用特殊功能寄存器會在不同存儲體中鏡像,以減少代碼量并加快訪問速度。
三、I/O端口
PIC16F870/871的I/O端口部分引腳與外設(shè)功能復(fù)用,當外設(shè)啟用時,這些引腳可能無法作為通用I/O引腳使用。
3.1 PORTA
6位寬雙向端口,對應(yīng)數(shù)據(jù)方向寄存器為TRISA。部分引腳可作為模擬輸入或VREF輸入,RA4引腳還可作為Timer0模塊的時鐘輸入,采用Schmitt Trigger輸入和開漏輸出。
3.2 PORTB
8位寬雙向端口,對應(yīng)數(shù)據(jù)方向寄存器為TRISB。部分引腳與低電壓編程功能復(fù)用,每個引腳都有內(nèi)部弱上拉電阻,可通過OPTION_REG寄存器的RBPU位統(tǒng)一控制。RB7:RB4引腳具備中斷變化功能,可用于按鍵喚醒等操作。
3.3 PORTC
8位寬雙向端口,對應(yīng)數(shù)據(jù)方向寄存器為TRISC。部分引腳與多個外設(shè)功能復(fù)用,采用Schmitt Trigger輸入緩沖器。在啟用外設(shè)功能時,需注意TRIS位的設(shè)置。
3.4 PORTD和PORTE(僅PIC16F871)
PORTD為8位端口,可配置為8位寬的微處理器端口(并行從端口),輸入緩沖器在I/O模式下為Schmitt Trigger,在并行從端口模式下為TTL。PORTE有三個引腳,可作為通用I/O引腳或并行從端口的控制輸入,輸入緩沖器同樣根據(jù)模式不同而變化。
四、定時器模塊
定時器模塊是PIC16F870/871的重要組成部分,可實現(xiàn)定時、計數(shù)等功能。
4.1 Timer0模塊
8位定時器/計數(shù)器,可讀可寫,帶有8位軟件可編程預(yù)分頻器,可選擇內(nèi)部或外部時鐘源,溢出時可產(chǎn)生中斷。在定時器模式下,每指令周期遞增;在計數(shù)器模式下,根據(jù)RA4/T0CKI引腳的邊沿變化遞增。
4.2 Timer1模塊
16位定時器/計數(shù)器,由TMR1H和TMR1L兩個8位寄存器組成,可讀可寫。可工作在定時器或計數(shù)器模式,可通過T1CON寄存器進行配置。在SLEEP模式下,若配置為異步計數(shù)器模式,可繼續(xù)運行并產(chǎn)生溢出中斷,喚醒處理器。
4.3 Timer2模塊
8位定時器,帶有預(yù)分頻器和后分頻器,可作為PWM時間基準。TMR2寄存器可讀可寫,在設(shè)備復(fù)位時清零。通過T2CON寄存器可配置預(yù)分頻器和后分頻器,以及定時器的開啟和關(guān)閉。
五、Capture/Compare/PWM模塊
該模塊包含一個16位寄存器,可作為16位捕獲寄存器、16位比較寄存器或PWM主/從占空比寄存器。
5.1 捕獲模式
在捕獲模式下,CCPR1H:CCPR1L可捕獲TMR1寄存器的16位值,根據(jù)不同的事件觸發(fā)條件進行捕獲,如每個下降沿、上升沿、第4個上升沿或第16個上升沿。捕獲發(fā)生時,中斷請求標志位CCP1IF會被置位,需在軟件中清除。
5.2 比較模式
在比較模式下,16位CCPR1寄存器的值會與TMR1寄存器的值進行比較,當匹配時,RC2/CCP1引腳會根據(jù)配置進行相應(yīng)操作,同時中斷標志位CCP1IF會被置位。
5.3 PWM模式
在PWM模式下,CCP1引腳可產(chǎn)生最高10位分辨率的PWM輸出。通過設(shè)置PR2寄存器可指定PWM周期,通過設(shè)置CCPR1L寄存器和CCP1CON<5:4>位可指定PWM占空比。
六、通用同步異步收發(fā)器(USART)
USART模塊可配置為異步(全雙工)、同步 - 主(半雙工)或同步 - 從(半雙工)模式,支持9位地址檢測,可與多種外設(shè)進行通信。
6.1 波特率發(fā)生器
BRG是一個專用的8位波特率發(fā)生器,可支持USART的異步和同步模式。通過SPBRG寄存器控制8位定時器的周期,在異步模式下,BRGH位也會影響波特率。
6.2 異步模式
在異步模式下,USART采用標準的非歸零(NRZ)格式,包括一個起始位、8或9個數(shù)據(jù)位和一個停止位。發(fā)送和接收功能相互獨立,但使用相同的數(shù)據(jù)格式和波特率。
6.3 同步主模式
在同步主模式下,數(shù)據(jù)以半雙工方式傳輸,處理器在CK線上發(fā)送主時鐘。發(fā)送和接收操作通過TXEN和CREN或SREN位進行控制。
6.4 同步從模式
同步從模式與主模式的操作基本相同,但移位時鐘由外部提供,可在SLEEP模式下進行數(shù)據(jù)傳輸。
七、模擬-to-數(shù)字轉(zhuǎn)換器(ADC)模塊
ADC模塊有5個輸入通道(28引腳設(shè)備)或8個輸入通道(其他設(shè)備),可將模擬輸入信號轉(zhuǎn)換為10位數(shù)字結(jié)果。
7.1 轉(zhuǎn)換過程
轉(zhuǎn)換過程包括配置A/D模塊、等待采樣時間、啟動轉(zhuǎn)換、等待轉(zhuǎn)換完成和讀取轉(zhuǎn)換結(jié)果等步驟。在轉(zhuǎn)換過程中,需注意采樣時間的計算和A/D轉(zhuǎn)換時鐘的選擇。
7.2 特殊功能
ADC模塊可在SLEEP模式下工作,但需將A/D時鐘源設(shè)置為內(nèi)部RC振蕩器。
八、特殊功能
PIC16F870/871具備多種特殊功能,可提高系統(tǒng)的可靠性和靈活性。
8.1 振蕩器選擇
支持LP低功耗晶體、XT晶體/諧振器、HS高速晶體/諧振器和RC電阻/電容四種振蕩器模式,可通過配置位進行選擇。
8.2 RESET功能
包括Power-on Reset(POR)、Power-up Timer(PWRT)、Oscillator Start-up Timer(OST)和Brown-out Reset(BOR)等,可確保系統(tǒng)在不同情況下的穩(wěn)定啟動。
8.3 中斷功能
最多有14個中斷源,通過INTCON寄存器記錄中斷請求標志位,可通過全局中斷使能位GIE和各個中斷使能位進行控制。
8.4 看門狗定時器(WDT)
WDT是一個獨立的RC振蕩器,可在正常運行時產(chǎn)生設(shè)備復(fù)位,在SLEEP模式下喚醒設(shè)備。可通過配置位永久禁用。
8.5 SLEEP模式
通過執(zhí)行SLEEP指令進入低功耗模式,WDT可繼續(xù)運行,I/O端口保持原有狀態(tài)??赏ㄟ^外部RESET、WDT喚醒或中斷喚醒。
8.6 代碼保護
具備代碼保護功能,可對EEPROM數(shù)據(jù)內(nèi)存和FLASH程序內(nèi)存進行保護,防止數(shù)據(jù)和代碼被非法讀取。
8.7 在線串行編程(ICSP)
支持在線串行編程,可在最終應(yīng)用電路中對微控制器進行編程,方便產(chǎn)品的生產(chǎn)和更新。
8.8 低電壓ICSP編程
通過配置字的LVP位可啟用低電壓ICSP編程,使用正常工作電壓的VDD源進行編程。
8.9 在線調(diào)試器
通過配置字的DEBUG位可啟用在線調(diào)試器功能,方便進行調(diào)試和開發(fā)。
九、開發(fā)支持
Microchip為PIC16F870/871提供了豐富的開發(fā)支持工具,包括集成開發(fā)環(huán)境、匯編器/編譯器/鏈接器、模擬器、仿真器、在線調(diào)試器、設(shè)備編程器、低成本演示板和評估套件等,可滿足不同開發(fā)階段的需求。
9.1 MPLAB集成開發(fā)環(huán)境軟件
提供了便捷的軟件開發(fā)環(huán)境,支持多種調(diào)試工具,可實現(xiàn)源代碼編輯、編譯、下載和調(diào)試等功能。
9.2 MPASM匯編器
全功能的通用宏匯編器,可生成可重定位目標文件、Intel標準HEX文件、MAP文件和絕對LST文件等,支持用戶自定義宏和條件匯編。
9.3 MPLAB C17和MPLAB C18 C編譯器
完整的ANSI C編譯器,提供強大的集成能力、優(yōu)秀的代碼優(yōu)化和易用性,可生成適用于PIC17CXXX和PIC18CXXX系列微控制器的代碼。
9.4 MPLINK對象鏈接器/MPLIB對象庫管理器
MPLINK可將MPASM匯編器和MPLAB C17、MPLAB C18 C編譯器生成的可重定位對象進行鏈接,MPLIB可管理預(yù)編譯代碼的庫文件。
9.5 MPLAB C30 C編譯器
全功能的ANSI兼容優(yōu)化編譯器,可將標準ANSI C程序轉(zhuǎn)換為dsPIC30F匯編語言源代碼,支持多種命令行選項和語言擴展。
9.6 MPLAB ASM30匯編器、鏈接器和庫管理器
可生成dsPIC30F設(shè)備的可重定位機器代碼,支持固定點和浮點數(shù)據(jù),具備豐富的指令集和靈活的宏語言。
9.7 MPLAB SIM軟件模擬器
可在PC環(huán)境中模擬PIC系列微控制器的指令級操作,支持符號調(diào)試,可進行單步執(zhí)行、執(zhí)行到斷點和跟蹤模式等操作。
9.8 MPLAB ICE 2000和MPLAB ICE 4000高性能通用在線仿真器
提供完整的微控制器設(shè)計工具集,具備高級的跟蹤、觸發(fā)和數(shù)據(jù)監(jiān)測功能,可進行實時仿真和調(diào)試。
9.9 MPLAB ICD 2在線調(diào)試器
低成本、強大的運行時開發(fā)工具,可通過RS-232或高速USB接口連接到主機PC,支持在線調(diào)試和編程功能。
9.10 設(shè)備編程器和演示板
包括PRO MATE II通用設(shè)備編程器、PICSTART Plus開發(fā)編程器和多種PICDEM演示板,可方便進行設(shè)備編程和功能演示。
十、總結(jié)
PIC16F870/871微控制器以其豐富的功能、低功耗設(shè)計和良好的開發(fā)支持,在電子設(shè)計領(lǐng)域具有廣泛的應(yīng)用前景。無論是工業(yè)控制、消費電子還是物聯(lián)網(wǎng)等領(lǐng)域,都能發(fā)揮其優(yōu)勢。在實際應(yīng)用中,我們需要根據(jù)具體需求合理選擇和配置微控制器的各種功能,充分發(fā)揮其性能。同時,借助Microchip提供的開發(fā)工具,可提高開發(fā)效率,縮短開發(fā)周期。希望本文能為電子工程師們在使用PIC16F870/871微控制器時提供一些幫助和參考。大家在實際設(shè)計過程中遇到過哪些問題呢?歡迎在評論區(qū)分享交流。
-
微控制器
+關(guān)注
關(guān)注
49文章
8671瀏覽量
165289 -
功能特性
+關(guān)注
關(guān)注
1文章
55瀏覽量
99
發(fā)布評論請先 登錄
深入剖析PIC16F870/871微控制器:功能特性與應(yīng)用指南
評論