PIC單片機從計算機外置、家用電器控制、電信通訊、智能儀器、汽車電子、金融電子等各方面得到了廣泛的應(yīng)用。PIC單片機以其可用性廣、成本低、用戶基礎(chǔ)廣、串行編程能力強等特點,深受廣大開發(fā)者和工程師的歡迎。以下是PIC單片機的架構(gòu)類型:
1、基線架構(gòu)
PIC10F系列 PIC單片機作為基線結(jié)構(gòu),除了PIC12和PIC16系列之外,還有一小部分。該 Gadget使用了一個12位的程序子結(jié)構(gòu)和6-28個插腳封裝方案。一組基線架構(gòu)屬性,使供應(yīng)商能夠從中獲利的產(chǎn)品解決方案。這個結(jié)構(gòu)非常適合用于電池供電的設(shè)備。PIC10F200系列8位 FLASH單片機又以6引腳封裝,價格合理。
2、中端架構(gòu)
PIC12和PIC16系列的中間成員增加了具有14位程序性子架構(gòu)的屬性。中間PIC16 Gadget可提供多種封裝選項(從8到64封裝),外設(shè)集成級別低到高。PIC16設(shè)備具有多種模擬、數(shù)字、串口等外設(shè)功能,如 SPI、 USART、I2C、 USB、 LCD和 A/D轉(zhuǎn)換器。中擋位PIC16單片機對8級硬件負(fù)載暫??刂?。
3、高性能架構(gòu)
高性能架構(gòu)包括PIC18系列設(shè)備。這些單片機采用16位程序子架構(gòu)和18至100引腳封裝替代方案。PIC18設(shè)備是集成模數(shù)轉(zhuǎn)換器的高性能單片機。所有PIC18單片機都集成了RISC架構(gòu),支持FLASH設(shè)備的高度發(fā)達。PIC18具有改進的基本屬性、32級深度加載和多個內(nèi)外中斷。
PIC的總線結(jié)構(gòu)是哈佛結(jié)構(gòu),指令和數(shù)據(jù)空間是完全分開的,一個用于指令,一個用于數(shù)據(jù)。由于可以對程序和數(shù)據(jù)同時進行訪問,所以提高了數(shù)據(jù)吞吐率。正因為在PIC系列單片機中采用了哈佛雙總線結(jié)構(gòu),所以與常見的微控制器不同的一點是:程序和數(shù)據(jù)總線可以采用不同的寬度。數(shù)據(jù)總線都是8位的,但指令總線位數(shù)分別位12、14、16位。
PIC的取指和執(zhí)行采用雙指令流水線結(jié)構(gòu),當(dāng)一條指令被執(zhí)行時,允許下一條指令同時被取出,這樣就實現(xiàn)了單周期指令。
PIC的所有寄存器,包括I/O口,定時器和程序計數(shù)器等都采用RAM結(jié)構(gòu)形式,而且都只需要一個指令周期就可以完成訪問和操作。
PIC中低檔單片機只有一個中斷入口,一些低檔單片機甚至沒有中斷。中斷發(fā)生后需要用軟件清除中斷標(biāo)志,并且需要用軟件來判斷中斷源。
PIC系列單片機采用硬件堆棧,堆棧只儲存程序跳轉(zhuǎn)前的程序地址,而且堆棧深度最多8級,不能支持程序的無限嵌套。
型號不同的PIC單片機,其數(shù)據(jù)存儲器的內(nèi)部資源僅僅是功能種類和多少的不同。如PIC16C71A型,其引腳為18腳,主要功能是帶有8位的A/D轉(zhuǎn)換部件,有4個A/D通道模擬輸入,所以在表1中與其A/D轉(zhuǎn)換部件有關(guān)的專用寄存器ADRES(用于存放A/D轉(zhuǎn)換的數(shù)值結(jié)果)、A/D控制寄存器ADCON0(用于控制A/D轉(zhuǎn)換器的操作)和A/D控制寄存器ADCON1(用于控制選擇A/D引腳的功能)等。對PIC16C65/65A型,其引腳是40腳的,其功能比PIC16C71A單片機強,因而數(shù)據(jù)存儲器表2中的專用寄存器的種類就比表1的增加了很多。
位于PIC單片機數(shù)據(jù)存儲器的最頂端、地址00單元(地址碼最小)的間接尋址寄存器INDF是一個空的寄存器。它只有地址碼,在物理上不是一個真正的寄存器。它的功能常常與寄存器FSR(又稱寄存器選擇寄存器)配合工作,實現(xiàn)間接尋址目的。初學(xué)專用寄存器INDF和FSR時,記住下述的邏輯關(guān)系對編程是有幫助的:使用寄存器INDF的任何指令,在邏輯上都是對寄存器FSR所指向的RAM進行訪問,即對INDF(本身)進行間接尋址(訪問),讀出的應(yīng)是FSR內(nèi)容。
PIC單片機的結(jié)構(gòu)特點還體現(xiàn)在寄存器組上,如寄存器I/O口、定時器和程序寄存器等都是采用了RAM結(jié)構(gòu)形式,而且都只需要一個周期就可以完成訪問和操作。而其它單片機常需要兩個或兩個以上的周期才能改變寄存器的內(nèi)容。上述各項,就是PIC單片機能做到指令總數(shù)少,且大都為單周期指令的重要原因。