深入解析Microchip PIC16F872微控制器
在電子工程師的日常工作中,微控制器的選擇和應(yīng)用至關(guān)重要。今天,我們就來(lái)深入探討一下Microchip的PIC16F872這款28引腳、8位CMOS閃存微控制器的各項(xiàng)特性與功能。
文件下載:PIC16F872T-I SO.pdf
一、芯片概述
PIC16F872微控制器具有高性能RISC CPU,僅需學(xué)習(xí)35條單字指令,除程序分支為雙周期指令外,其余均為單周期指令,運(yùn)行速度在直流 - 20 MHz時(shí)鐘輸入、直流 - 200 ns 指令周期范圍內(nèi)。它擁有2K x 14 字的閃存程序存儲(chǔ)器、128字節(jié)的數(shù)據(jù)存儲(chǔ)器(RAM)以及64字節(jié)的EEPROM數(shù)據(jù)存儲(chǔ)器。其引腳與PIC16C72A兼容,具備多達(dá)10個(gè)中斷源、八級(jí)硬件堆棧以及直接、間接和相對(duì)尋址模式。
這款芯片的外設(shè)功能也十分豐富,具有25 mA的高灌/拉電流能力,還集成了Timer0、Timer1、Timer2三個(gè)定時(shí)器,一個(gè)捕獲/比較/PWM模塊,一個(gè)帶SPI(主模式)和 (I^{2} C)(主/從模式)的同步串行端口,以及10位、5通道的模數(shù)轉(zhuǎn)換器(A/D)。
在CMOS技術(shù)方面,它采用低功耗、高速CMOS閃存/EEPROM技術(shù),工作電壓范圍寬,為2.0V至5.5V,采用完全靜態(tài)設(shè)計(jì),適用于商業(yè)、工業(yè)和擴(kuò)展溫度范圍,典型功耗低,待機(jī)電流小于1μA。
二、存儲(chǔ)器組織
程序存儲(chǔ)器
PIC16F872擁有13位程序計(jì)數(shù)器,可尋址8K字 x 14位的程序存儲(chǔ)器空間,但實(shí)際只有2K字的閃存程序存儲(chǔ)器。復(fù)位向量位于0000h,中斷向量位于0004h。當(dāng)訪問(wèn)超出物理實(shí)現(xiàn)地址的位置時(shí),會(huì)發(fā)生回繞。
數(shù)據(jù)存儲(chǔ)器
數(shù)據(jù)存儲(chǔ)器分為多個(gè)存儲(chǔ)體,由狀態(tài)寄存器的RP1和RP0位作為存儲(chǔ)體選擇位。每個(gè)存儲(chǔ)體最大擴(kuò)展到7Fh(128字節(jié)),低地址位置保留給特殊功能寄存器,之上是通用寄存器,采用靜態(tài)RAM實(shí)現(xiàn)。部分常用特殊功能寄存器會(huì)在不同存儲(chǔ)體中鏡像,以減少代碼量并加快訪問(wèn)速度。
特殊功能寄存器
這些寄存器由CPU和外設(shè)模塊用于控制設(shè)備的所需操作,分為核心(CPU)和外設(shè)兩類(lèi)。核心功能相關(guān)寄存器包括STATUS、OPTION_REG、INTCON等。例如,STATUS寄存器包含ALU的算術(shù)狀態(tài)、復(fù)位狀態(tài)和數(shù)據(jù)存儲(chǔ)器的存儲(chǔ)體選擇位;OPTION_REG寄存器包含各種控制位,用于配置TMR0預(yù)分頻器/WDT后分頻器、外部INT中斷、TMR0和PORTB上的弱上拉電阻;INTCON寄存器包含TMR0寄存器溢出、RB端口變化和外部RB0/INT引腳中斷的各種使能和標(biāo)志位。
三、外設(shè)模塊分析
定時(shí)器模塊
- Timer0:8位定時(shí)器/計(jì)數(shù)器,具備可讀可寫(xiě)功能、8位軟件可編程預(yù)分頻器、內(nèi)部或外部時(shí)鐘選擇、溢出中斷和外部時(shí)鐘邊沿選擇等特性。在定時(shí)器模式下,每指令周期遞增;在計(jì)數(shù)器模式下,根據(jù)RA4/T0CKI引腳的上升或下降沿遞增。預(yù)分頻器在Timer0模塊和看門(mén)狗定時(shí)器之間互斥共享。
- Timer1:16位定時(shí)器/計(jì)數(shù)器,由兩個(gè)8位寄存器(TMR1H和TMR1L)組成。可工作在定時(shí)器或計(jì)數(shù)器模式,由時(shí)鐘選擇位TMR1CS決定。在定時(shí)器模式下,每指令周期遞增;在計(jì)數(shù)器模式下,在外部時(shí)鐘輸入的上升沿遞增。此外,它還可在睡眠模式下通過(guò)外部晶體/時(shí)鐘遞增,并有內(nèi)部“復(fù)位輸入”,可由CCP模塊生成。
- Timer2:8位定時(shí)器,帶有預(yù)分頻器和后分頻器,可作為CCP模塊PWM模式的時(shí)基。TMR2寄存器可讀可寫(xiě),在設(shè)備復(fù)位時(shí)清零。輸入時(shí)鐘(FOSC/4)有1:1、1:4或1:16的預(yù)分頻選項(xiàng),后分頻器可提供1:1至1:16的縮放。
捕獲/比較/PWM模塊
該模塊包含一個(gè)16位寄存器,可作為16位捕獲寄存器、16位比較寄存器或PWM主/從占空比寄存器。在捕獲模式下,當(dāng)RC2/CCP1引腳發(fā)生特定事件時(shí),捕獲TMR1寄存器的16位值;在比較模式下,將16位CCPR1寄存器值與TMR1寄存器對(duì)的值進(jìn)行比較,根據(jù)比較結(jié)果對(duì)引腳進(jìn)行相應(yīng)操作;在PWM模式下,CCP1引腳可產(chǎn)生高達(dá)10位分辨率的PWM輸出。
主同步串行端口(MSSP)模塊
MSSP模塊可用于與其他外設(shè)或微控制器設(shè)備通信,可工作在SPI或 (I^{2} C) 模式。在SPI模式下,支持所有四種模式,可同步發(fā)送和接收8位數(shù)據(jù);在 (I^{2} C) 模式下,完全實(shí)現(xiàn)所有主和從功能,包括通用呼叫支持,并在硬件中提供START和STOP位的中斷,以確定總線空閑狀態(tài)。
模數(shù)轉(zhuǎn)換器(A/D)模塊
A/D轉(zhuǎn)換器模塊有五個(gè)輸入通道,可將模擬輸入信號(hào)轉(zhuǎn)換為相應(yīng)的10位數(shù)字?jǐn)?shù)。該模塊具有獨(dú)特的功能,可在設(shè)備處于睡眠模式下工作,但需將A/D時(shí)鐘源設(shè)置為內(nèi)部RC振蕩器。其四個(gè)寄存器(ADRESH、ADRESL、ADCON0和ADCON1)可控制模塊的操作和端口引腳的配置。
四、特殊功能特性
振蕩器選擇
PIC16F872可通過(guò)配置位FOSC1和FOSC0選擇四種不同的振蕩器模式,包括LP低功耗晶體、XT晶體/諧振器、HS高速晶體/諧振器和RC電阻/電容。這為不同應(yīng)用場(chǎng)景提供了靈活的選擇,例如,對(duì)于對(duì)功耗要求較高的應(yīng)用,可選擇LP模式;對(duì)于對(duì)速度要求較高的應(yīng)用,可選擇HS模式。
復(fù)位機(jī)制
芯片具有多種復(fù)位方式,如上電復(fù)位(POR)、掉電復(fù)位(BOR)、看門(mén)狗定時(shí)器復(fù)位(WDT)和外部MCLR復(fù)位等。上電定時(shí)器(PWRT)和振蕩器啟動(dòng)定時(shí)器(OST)可確保在電源和振蕩器穩(wěn)定后再開(kāi)始正常工作,減少外部復(fù)位電路的使用。
中斷系統(tǒng)
該芯片有10個(gè)中斷源,中斷控制寄存器(INTCON)記錄各個(gè)中斷請(qǐng)求的標(biāo)志位,并具有全局和個(gè)別中斷使能位。當(dāng)發(fā)生中斷時(shí),會(huì)將返回地址壓入堆棧,并將程序計(jì)數(shù)器加載為0004h。在處理中斷時(shí),需要注意清除相應(yīng)的中斷標(biāo)志位,以避免遞歸中斷。
看門(mén)狗定時(shí)器(WDT)
看門(mén)狗定時(shí)器是一個(gè)獨(dú)立的片上RC振蕩器,即使設(shè)備處于睡眠狀態(tài),WDT也會(huì)繼續(xù)運(yùn)行。在正常操作中,WDT超時(shí)會(huì)導(dǎo)致設(shè)備復(fù)位;在睡眠模式下,WDT超時(shí)會(huì)使設(shè)備喚醒并繼續(xù)正常操作。WDT可通過(guò)配置位WDTE永久禁用。
低功耗睡眠模式(SLEEP)
執(zhí)行SLEEP指令可進(jìn)入低功耗模式,此時(shí)看門(mén)狗定時(shí)器會(huì)被清除但繼續(xù)運(yùn)行,振蕩器驅(qū)動(dòng)關(guān)閉,I/O端口保持之前的狀態(tài)。設(shè)備可通過(guò)外部復(fù)位輸入、看門(mén)狗定時(shí)器喚醒或中斷從睡眠模式中喚醒。
代碼保護(hù)
PIC16F872具有代碼保護(hù)機(jī)制,包括EEPROM數(shù)據(jù)存儲(chǔ)器的一位和閃存程序存儲(chǔ)器的兩位。即使代碼保護(hù)啟用,也可對(duì)EEPROM數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)操作。但當(dāng)代碼保護(hù)啟用時(shí),通過(guò)ICSP的外部訪問(wèn)將被禁用,以防止EEPROM數(shù)據(jù)存儲(chǔ)器的內(nèi)容被讀出。
五、開(kāi)發(fā)與使用建議
開(kāi)發(fā)支持
Microchip為PIC16F872提供了豐富的開(kāi)發(fā)工具,包括集成開(kāi)發(fā)環(huán)境(MPLAB IDE)、匯編器/編譯器/鏈接器、模擬器、仿真器、在線調(diào)試器、設(shè)備編程器和低成本演示板等。這些工具為開(kāi)發(fā)者提供了便捷的開(kāi)發(fā)環(huán)境,可提高開(kāi)發(fā)效率和質(zhì)量。
寄存器操作注意事項(xiàng)
在操作特殊功能寄存器時(shí),需要仔細(xì)閱讀數(shù)據(jù)手冊(cè),了解每個(gè)寄存器的功能和位定義。例如,在操作STATUS寄存器時(shí),建議僅使用BCF、BSF、SWAPF和MOVWF指令,因?yàn)檫@些指令不會(huì)影響STATUS寄存器中的Z、C或DC位。
應(yīng)用場(chǎng)景選擇
根據(jù)PIC16F872的特性,它適用于多種應(yīng)用場(chǎng)景,如工業(yè)控制、消費(fèi)電子、傳感器接口等。在選擇應(yīng)用場(chǎng)景時(shí),需要考慮其性能、功耗、成本等因素。例如,在對(duì)功耗要求較高的應(yīng)用中,可充分利用其低功耗睡眠模式;在對(duì)數(shù)據(jù)處理速度要求較高的應(yīng)用中,可選擇合適的振蕩器模式和指令集優(yōu)化代碼。
六、總結(jié)
PIC16F872微控制器以其豐富的功能、低功耗、高速度等特性,為電子工程師提供了一個(gè)強(qiáng)大而靈活的解決方案。在實(shí)際應(yīng)用中,我們需要深入了解其各項(xiàng)特性和功能,合理選擇開(kāi)發(fā)工具和寄存器操作方法,以充分發(fā)揮其性能優(yōu)勢(shì)。同時(shí),也要注意代碼保護(hù)和功耗管理等方面的問(wèn)題,確保系統(tǒng)的穩(wěn)定性和可靠性。希望各位工程師在使用PIC16F872的過(guò)程中,能夠不斷探索和創(chuàng)新,開(kāi)發(fā)出更優(yōu)秀的電子產(chǎn)品。你在使用PIC16F872的過(guò)程中遇到過(guò)哪些問(wèn)題?又是如何解決的呢?歡迎在評(píng)論區(qū)分享你的經(jīng)驗(yàn)和見(jiàn)解。
-
微控制器
+關(guān)注
關(guān)注
48文章
8371瀏覽量
164503
發(fā)布評(píng)論請(qǐng)先 登錄
[分享]Microchip公司生產(chǎn)的微芯片PIC16F872單片機(jī)
8位微控制器 -MCU ?PIC16F1503-I/SL
Microchip PIC16F171 8位微控制器
PIC16F13145 Curiosity Nano評(píng)估套件技術(shù)解析
PIC16F13145微控制器技術(shù)解析:CLB架構(gòu)與低功耗設(shè)計(jì)
?PIC16F180XX微控制器技術(shù)解析與應(yīng)用指南
深入解析Microchip PIC16F872微控制器
評(píng)論