PIC單片機(jī)有哪些優(yōu)勢(shì)和不足?如何設(shè)置PIC單片機(jī)端口?
從家電控制到工業(yè)自動(dòng)化,PIC單片機(jī)在各類場(chǎng)景中發(fā)揮著重要作用,由此可見PIC單片機(jī)的重要性。為增進(jìn)大家對(duì)PIC單片機(jī)的認(rèn)識(shí),本文將對(duì)PIC單片機(jī)的優(yōu)勢(shì)和不足以及PIC單片機(jī)的端口設(shè)置方法予以介紹。如果你對(duì)PIC單片機(jī)具有興趣,不妨繼續(xù)往下閱讀哦。
一、PIC單片機(jī)的優(yōu)勢(shì)和不足
PIC單片機(jī)系列,作為美國(guó)微芯公司的杰出產(chǎn)品,憑借其卓越的性能和廣泛的應(yīng)用領(lǐng)域,在單片機(jī)市場(chǎng)上占據(jù)了舉足輕重的地位。該系列分為基本級(jí)、中級(jí)和高級(jí)三個(gè)級(jí)別,旨在滿足不同層次的應(yīng)用需求。
PIC單片機(jī)的核心優(yōu)勢(shì)在于其CPU采用的RISC結(jié)構(gòu),這一結(jié)構(gòu)精簡(jiǎn)而高效,分別包含33、35、58條指令,構(gòu)成了精簡(jiǎn)指令集。這種設(shè)計(jì)不僅減少了指令的數(shù)量,還提高了指令的執(zhí)行效率。
同時(shí),PIC單片機(jī)采用了Harvard雙總線結(jié)構(gòu),使得程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的訪問(wèn)能夠并行處理,極大地提升了運(yùn)行速度。
在指令流水線結(jié)構(gòu)方面,PIC單片機(jī)更是展現(xiàn)出了其獨(dú)特的優(yōu)勢(shì)。在一個(gè)周期內(nèi),它能夠完成兩部分工作:一是執(zhí)行當(dāng)前指令,二是從程序存儲(chǔ)器中取出下一條指令。這種設(shè)計(jì)使得每條指令只需一個(gè)周期即可完成,從而大大提高了整體運(yùn)行效率。
首先,它具有低工作電壓和低功耗的特點(diǎn),這使得它在節(jié)能和環(huán)保方面具有顯著優(yōu)勢(shì)。其次,PIC單片機(jī)的驅(qū)動(dòng)能力強(qiáng),其I/O口采用CMOS互補(bǔ)推挽輸出電路,能夠輕松驅(qū)動(dòng)各種外設(shè)。此外,PIC單片機(jī)還支持在線調(diào)試及編程(ISP)功能,為開發(fā)者提供了極大的便利。
然而,PIC單片機(jī)也存在一些不足之處。例如,其專用寄存器(SFR)并不像某些其他系列的單片機(jī)那樣都集中在一個(gè)固定的地址區(qū)間內(nèi),而是分散在四個(gè)地址區(qū)間內(nèi)。這在編程過(guò)程中可能會(huì)增加一定的難度,需要開發(fā)者反復(fù)選擇對(duì)應(yīng)的存儲(chǔ)體。
另外,PIC單片機(jī)的數(shù)據(jù)傳送和邏輯運(yùn)算基本上都得通過(guò)工作寄存器W來(lái)進(jìn)行,而不像某些其他系列的單片機(jī)那樣可以通過(guò)寄存器相互之間直接傳送,這也在一定程度上限制了其性能的發(fā)揮。
二、如何設(shè)置PIC單片機(jī)端口
以PIC16F616為例,PIC16F616有12個(gè)IO口,但是有一個(gè)引腳(RA3)只能作為輸入引腳用,不能用作輸出,另外,A口具有電平變化間斷的功能,而C口沒(méi)有,在設(shè)計(jì)的時(shí)候要留意。
在設(shè)置的時(shí)候,一般要進(jìn)行以下幾項(xiàng)設(shè)置:
(1)設(shè)置端口是模擬端口仍是數(shù)字端口,可以通過(guò)寄存器ANSEL來(lái)設(shè)置。例如你想用AD,就要將相應(yīng)的引腳設(shè)置為模擬輸入端口。
(2)假如你選擇的是數(shù)字端口,接下來(lái)就要設(shè)置端口的方向,是輸入仍是輸出(RA3除外),可通過(guò)寄存器TRISA(A口)或TRISC(C口)來(lái)設(shè)置。
(3)設(shè)置端口的輸出電平,可以通過(guò)寄存器PORTA(A口)或PORTC(C口)來(lái)設(shè)置。
這是對(duì)IO口的通用設(shè)置,但是這不是全部的設(shè)置,接下來(lái)的設(shè)置要看時(shí)A口仍是C口了。對(duì)于A口,它有幾個(gè)特殊的功能:內(nèi)部弱上拉、電平變化間斷、RA2/INT引腳的沿間斷。假如想要這些功能,就要對(duì)相應(yīng)的寄存器進(jìn)行設(shè)置。
弱上拉的設(shè)置:只有當(dāng)引腳為輸出的時(shí)候弱上拉才有效,可以通過(guò)寄存器WPUA來(lái)設(shè)置相應(yīng)引腳的弱上拉,值得一提的假如開啟了弱上拉,會(huì)有多余的電流鋪張, 這樣對(duì)于低功耗的設(shè)計(jì)是不可取的,但是假如在進(jìn)行一些例如鍵盤電路設(shè)計(jì)的候,可以開啟弱上拉功能,這樣就不需要在鍵盤電路中加上拉電阻了。
電平變化間斷的設(shè)置:可以通過(guò)寄存器IOCA來(lái)設(shè)置,但是首先要將相應(yīng)引腳設(shè)置為數(shù)字端口且為輸入狀態(tài)。同時(shí)要將寄存器INTCON的REIE位設(shè)置為1,總間斷要答應(yīng)(置寄存器INTCON的GIE位),假如設(shè)置相應(yīng)引腳有這個(gè)功能,當(dāng)此引腳電平發(fā)生的時(shí)候,就會(huì)產(chǎn)生一個(gè)間斷,同時(shí)一些間斷標(biāo)志位被置上(INTCON的RAIF位被置1),且總間斷GIE被置為0.在間斷服務(wù)程序中,要軟件清除RAIF位和重新置GIE位才能繼承開啟此間斷。
RA2/INT腳的沿間斷設(shè)置:同樣首先要將相應(yīng)引腳設(shè)置為數(shù)字端口且為輸入狀態(tài),設(shè)置INTCON的INTF位為1,表示答應(yīng)int引腳外部間斷,寄存器 OPTION_REG的INTEGD位可以設(shè)置是上升沿間斷仍是下降沿間斷。當(dāng)發(fā)生間斷時(shí),INTCON的INTF位被置為1,GIE被清零,在間斷服務(wù)程序中,要軟件清除INTF位和重新置GIE位才能繼承開啟此間斷。
以上便是此次帶來(lái)的PIC單片機(jī)相關(guān)內(nèi)容,通過(guò)本文,希望大家對(duì)PIC單片機(jī)已經(jīng)具備一定的了解。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,將于后期帶來(lái)更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!