PIC單片機(jī)獨(dú)特的優(yōu)勢(shì)有哪些?
本人從事單片機(jī)應(yīng)用系統(tǒng)的開發(fā)已有多年,使用過(guò)多種型號(hào)的PIC單片機(jī),深感PIC單片機(jī)使用起來(lái)確實(shí)很方便:
1、 PIC單片機(jī)采用精簡(jiǎn)指令集,中檔產(chǎn)品僅需35條指令,入門門檻低,而在使用過(guò)程中絕不會(huì)感到不方便。
2、PIC單片機(jī)的數(shù)據(jù)線和指令線各自獨(dú)立,代碼效率高,是傳統(tǒng)51系列單片機(jī)的2-3倍,除幾個(gè)跳轉(zhuǎn)類指令外均為單周期指令,在計(jì)算延時(shí)時(shí)間時(shí)非常方便。
3、PIC單片機(jī)外圍接口十分豐富,能滿足絕大部分應(yīng)用系統(tǒng)的需求;比如PIC16F877A包含8路ADC,1個(gè)CCP、PWM、USART、SSP、I2C/SPI,3個(gè)定時(shí)/計(jì)數(shù)器,1個(gè)硬件WDT等接口,8K FLASH程序存儲(chǔ)器、256字節(jié)EEPROM,能滿足較復(fù)雜測(cè)控系統(tǒng)的要求;有的還集成了LCD驅(qū)動(dòng)器、CAN控制器和無(wú)線收發(fā)模塊,還有專門針對(duì)電機(jī)控制的芯片,內(nèi)含多路高精度PWM,非常適合對(duì)電機(jī)進(jìn)行調(diào)壓調(diào)頻控制。
4、PIC單片機(jī)產(chǎn)品型號(hào)非常豐富,引腳數(shù)從8-128,外圍接口配置合理,對(duì)應(yīng)不同用途可非常方便地找到匹配的型號(hào),絕不會(huì)造成資源浪費(fèi)。
PIC8位單片機(jī)具有指令少、執(zhí)行速度快等優(yōu)點(diǎn),其主要原因是PIC系列單片機(jī)在結(jié)構(gòu)上與其它單片機(jī)不同。該系列單片機(jī)引入了原用于小型計(jì)算機(jī)的雙總線和兩級(jí)指令流水結(jié)構(gòu)。這種結(jié)構(gòu)與一般采用CISC(復(fù)雜指令集計(jì)算機(jī))的單片機(jī)在結(jié)構(gòu)上是有不同的。指令總線為什么不用八位,而要增加位數(shù)呢?這是因?yàn)橹噶畹奈粩?shù)多,則每條指令包含的信息量就大,這種指令的功能就強(qiáng)。一條12位、14位或16位的指令可能會(huì)具有兩條八位指令的功能。因此PIC系列單片機(jī)的指令與CISC結(jié)構(gòu)的單片機(jī)指令相比,前者的指令總數(shù)要少得多(即RISC指令集)。
運(yùn)行速度快(指令周期約160~200nS),它能使程序存儲(chǔ)器的訪問(wèn)和數(shù)據(jù)存儲(chǔ)器的訪問(wèn)并行處理,這種指令流水線結(jié)構(gòu),在一個(gè)周期內(nèi)完成兩部分工作,一是執(zhí)行指令,二是從程序存儲(chǔ)器取出下一條指令,這樣總的看來(lái)每條指令只需一個(gè)周期(個(gè)別除外),這也是高效率運(yùn)行的原因之一。此外,它還具有低工作電壓、低功耗、驅(qū)動(dòng)能力強(qiáng)等特點(diǎn)。
PIC系列單片機(jī)的I/O口是雙向的,其輸出電路為CMOS互補(bǔ)推挽輸出電路。I/O腳增加了用于設(shè)置輸入或輸出狀態(tài)的方向寄存器,從而解決了51系列I/O腳為高電平時(shí)同為輸入和輸出的狀態(tài)。當(dāng)置位1時(shí)為輸入狀態(tài),且不管該腳呈高電平或低電平,對(duì)外均呈高阻狀態(tài);置位0時(shí)為輸出狀態(tài),不管該腳為何種電平,均呈低阻狀態(tài),有相當(dāng)?shù)尿?qū)動(dòng)能力,低電平吸人電流達(dá)25mA,高電平輸出電流可達(dá)20mA。相對(duì)于51系列而言,這是一個(gè)很大的優(yōu)點(diǎn),它可以直接驅(qū)動(dòng)數(shù)碼管顯示且外電路簡(jiǎn)單。它的A/D為10位,能滿足精度要求。具有在線調(diào)試及編程功能。
該系列單片機(jī)的專用寄存器)并不像51系列那樣都集中在一個(gè)固定的地址區(qū)間內(nèi)(80~FFH),而是分散在四個(gè)地址區(qū)間內(nèi),即存儲(chǔ)體0(Bank0:00-7FH)、存儲(chǔ)體1(Bankl:80-FFH)、存儲(chǔ)體2(Bank2:100-17FH)、存儲(chǔ)體3(Bank3:180-1FFH)。只有5個(gè)專用寄存器PCL、STATUS、FSR、PCLATH、INTCON在4個(gè)存儲(chǔ)體內(nèi)同時(shí)出現(xiàn)。在編程過(guò)程中,少不了要與專用寄存器打交道,得反復(fù)地選擇對(duì)應(yīng)的存儲(chǔ)體,也即對(duì)狀態(tài)寄存器STATUS的第6位(RPl)和第5位(RPO)置位或清零。這多少給編程帶來(lái)了一些麻煩。
對(duì)于上述的單片機(jī),它的位指令操作通常限制在存儲(chǔ)體0區(qū)間(00~7FH)。數(shù)據(jù)的傳送和邏輯運(yùn)算基本上都得通過(guò)工作寄存器w(相當(dāng)于5l系列的累加器A)來(lái)進(jìn)行,而51系列的還可以通過(guò)寄存器相互之間直接傳送(如:MOV30H,20H;將寄存器20H的內(nèi)容直接傳送至寄存器30H中),因而PIC單片機(jī)的瓶頸現(xiàn)象比51系列還要嚴(yán)重,這在編程中很有感受。





