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