PIC單片機(jī)系列是美國微芯公司(MiCroShip)的產(chǎn)品,是當(dāng)前市場份額增長最快的單片機(jī)之一。CPU采用RISC結(jié)構(gòu),分別有33、35、58條指令(視單片機(jī)的級(jí)別而定),屬精簡指令集。而51系列有111條指令,AVR單片機(jī)有118條指令,都比前者復(fù)雜。采用Haryard雙總線結(jié)構(gòu),運(yùn)行速度快(指令周期約160~200nS),它能使程序存儲(chǔ)器的訪問和數(shù)據(jù)存儲(chǔ)器的訪問并行處理,這種指令流水線結(jié)構(gòu),在一個(gè)周期內(nèi)完成兩部分工作,一是執(zhí)行指令,二是從程序存儲(chǔ)器取出下一條指令,這樣總的看來每條指令只需一個(gè)周期(個(gè)別除外),這也是高效率運(yùn)行的原因之一。此外,它還具有低工作電壓、低功耗、驅(qū)動(dòng)能力強(qiáng)等特點(diǎn)。PIC系列單片機(jī)共分三個(gè)級(jí)別,即基本級(jí)、中級(jí)、高級(jí)。其中又以中級(jí)的PICl6F873(A)、PICl6F877(A)用的最多,本文以這兩種單片機(jī)為例進(jìn)行說明。這兩種芯片除了引出腳不同外(:PICl6F873(A)為28腳的PDIP或SOIC封裝PICl6F877(A)為40腳的PDIP或44腳的PICC/QFP封裝),其他的差別并不很大。
PIC系列單片機(jī)的:I/O口是雙向的,其輸出電路為CMOS互補(bǔ)推挽輸出電路。I/O腳增加了用于設(shè)置輸入或輸出狀態(tài)的方向寄存器(TRISn,其中n對應(yīng)各口,如A、B、C、D、E等),從而解決了51系列I/O腳為高電平時(shí)同為輸入和輸出的狀態(tài)。當(dāng)置位1時(shí)為輸入狀態(tài),且不管該腳呈高電平或低電平,對外均呈高阻狀態(tài);置位0時(shí)為輸出狀態(tài),不管該腳為何種電平,均呈低阻狀態(tài),有相當(dāng)?shù)尿?qū)動(dòng)能力,低電平吸人電流達(dá)25mA,高電平輸出電流可達(dá)20mA。相對于51系列而言,這是一個(gè)很大的優(yōu)點(diǎn),它可以直接驅(qū)動(dòng)數(shù)碼管顯示且外電路簡單。它的A/D為10位,能滿足精度要求。具有在線調(diào)試及編程(ISP)功能。
該系列單片機(jī)的專用寄存器(SFR)并不像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)。在編程過程中,少不了要與專用寄存器打交道,得反復(fù)地選擇對應(yīng)的存儲(chǔ)體,也即對狀態(tài)寄存器STATUS的第6位(RPl)和第5位(RPO)置位或清零。如:
例4:
CLRF STATUS ;清零RPl,RPO。選擇存儲(chǔ)體O BSF STAUS,RPO;置位RPO。選擇存儲(chǔ)體1 BCF STATUS,RPO;清零RPO。選擇存儲(chǔ)體O
這多少給編程帶來了一些麻煩。對于上述的單片機(jī),它的位指令操作通常限制在存儲(chǔ)體0區(qū)間(00~7FH)。