//Logo Image
作者:蔡宗成(2001-11-19);推薦:徐業良(2001-11-19)

PIC16F877單晶片原理簡介

1.         PIC16F877原理簡介

1.1   PIC16F877特性

PIC16F877是由Microchip公司【1】所生產開發的新產品,屬於PICmicro系列單晶片微處理器,具有Flash program程式記憶體功能,可以重複燒錄程式,適合教學、開發新產品等用途;而其內建ICD(In Circuit Debug)功能,可以讓使用者直接在單晶片電路或產品上,進行如「暫停微處理器執行」、「觀看暫存器內容」等,讓使用者能快速地進行程式除錯與開發。

如圖1PIC16F87740根接腳圖,“PDIP”是指一般最常見的DIP(Dual In Line Package)包裝,而PIC單晶片也有PLCC(Plastic Leaded Chip Carrier)QFP(Quad Flat Package)兩種形式的包裝,依照不同的需求,尋找不同的包裝形式。如圖所示,每根接腳都有其特定功能,例如Pin11Pin32(VDD)為正電源接腳,Pin12Pin31(VSS)為地線接腳;而有些接腳有兩種甚至三種以上功能,例如Pin2(RA0/AN0)代表PORTA的第一支接腳,在系統重置(Reset)後,可自動成為類比輸入接腳,接收類比訊號,也可經由程式規劃為數位輸出輸入接腳。

1. PIC16F877接腳說明(圖片來源:Microchip PIC16F87X Data Sheet

PIC16F877屬於閃控式(Flash)單晶片,可以重複燒錄,其ROM的容量總共是8K words,以2K為一個page,區分為4pages;內部RAM總共有512個位元組(00f~1FFh),以128個位元組為一個Bank,共區分為4Bank,如圖2所示,每個Bank的前半段都有其特殊用途,分別連接到其特殊功能模組,例如I/OCCPTimerUSARTMSSP等。

2. PIC16F877RAM配置圖(圖片來源:Microchip PIC16F87X Data Sheet

1.2   特殊內嵌功能

PIC16F877屬於內嵌功能較多的單晶片,除了CPUPOMRAMI/O等基本構造外,還包括以下各種功能,簡介如下:

l          A/D converter:類比數位轉換器,最多可以讀取8組類比輸入訊號。

l          CCPCaptureComparePWM,用於控制直流馬達。

l          Timer,內部計時器,有Timer0Timer1Timer2等。

l          USARTUniversal Synchronous Asynchronous Receiver Transmitter,同步∕非同步串列傳輸,如RS232RS485等。

l          MSSPMaster Synchronous Serial Port,兩線式(I2C)與三線式(SPI)標準同步串列傳輸協定,常用於EEPROM記憶體資料的燒錄與讀取,或是與其他積體電路溝通與聯繫,形成多晶片網路。

2.   PIC16F877基本電路

2.1   PIC振盪時脈電路

單晶片振盪電路與整體系統工作速度有直接的關係,例如同步∕非同步串列傳輸、計時器等,都與“振盪頻率”有關,不同系列單晶片有不同振盪頻率,根據產品資料手冊,PIC16F877振盪頻率最高可到20MHz;在圖1中,振盪電路接於Pin13(OSC1/CLKIN)Pin14(OSC2/CLKOUT),而振盪電路有以下四種形式:

l          LP:使用低功率振盪晶體(Low Power Crystal)

l          XT:使用振盪器∕諧振器(Crystal/Resonator)

l          HS:使用高速振盪器(High Speed Crystal/Resonator)

l          RC:使用電阻∕電容(Resister/Capacitor)

一般常用振盪晶體或是諧振器作為單晶片振盪源,外接電路及PIC內部電路說明如圖3所示。圖中電容C1C2規格大小是根據CrystalResonator而有所不同,表1列出電容建議值,使用其他振盪源的電路說明請參考產品資料手冊。

3. 振盪源電路圖(圖片來源:Microchip PIC16F87X Data Sheet

1. 建議電容值(圖片來源:Microchip PIC16F87X Data Sheet

2.2   外加電源與重置電路

PIC16F877的工作電壓為5V,連接Pin11Pin32Pin12Pin31為地線接腳;重置電路連接Pin1,按下Reset後,內部指令重頭開始執行,系統重新運作。

4. 電源與重置電路

2.3   輸入輸出埠

PIC16F877除了上述基本電路所佔用的7支接腳外,其餘的33支接腳都可當成輸出、輸入接腳,輸入輸出埠是單晶片基本界面,可以與周邊電路進行電路控制和信號傳輸與檢測。PIC8位元的單晶片,以接腳特性分組,每組盡量湊滿8支接腳,並將I/O命名為PORTA(RA0~RA5)PORTB(RB0~RB7)PORTC(RC0~RC7)PORTD(RD0~RD7)PORTE(RE0~RE2)等,各分組埠特性說明如下:

l          PORTA

PIC16F877PORTA總共有6個位元(RA0~RA5)PORTA的接腳可作為數位輸出輸入埠,而系統重置後,PORTA自動成為類比輸入狀態,可讀取類比輸入訊號。

l          PORTB

PORTB總共有8個位元(RB0~RB7),可以撰寫程式規劃輸入輸出方向、狀態,其中,要進行燒錄時,使用到三支接腳,分別是Pin36(RB3/PGM)Pin39(RB6/PGC)Pin40(RB7/PGD)

l          PORTC

PORTC總共有8個位元(RC0~RC7),除了可作為數位I/O外,還和一些特殊功能的周邊電路共用接腳,例如CCP(直流馬達控制)、I2CSPI(同步串列通訊電路)、UART(非同步串列傳輸電路)等等。

l          PORTD

PORTD總共有8個位元(RD0~RD7),可作一般數位I/O,並與PSP(Parallel Slave Port)並列傳輸埠共用。當整體系統需要多單晶片時,彼此可以經由並列傳輸埠來快速傳輸資料。

l          PORTE

PORTE總共有3個位元(RE0~RE2)PORTEPin8910有三種功能,除了基本I/O功能,也有類比輸入功能,而上述PORTD的並列傳輸埠設定所需的控制接腳,如/RD/WR/CS等,也是屬於PORTE接腳。

3.   PIC16F877指令簡介

PIC16F877常用的語言有組合語言與C語言兩種,組合語言是將每一個機器碼使用一個文字代號代表,比較接近處理器真正動作模式;而C語言是比較符合人們的使用習慣,事先將組合語言組合成C語言形式,使用較為方便,但是C語言所組譯的機器碼程式通常比較大,且組譯軟體通常需要額外購買。以下簡介組合語言相關指令與一套C語言組譯軟體。

3.1   PIC16F877指令摘要

PIC是採用RISCReduced Instruction Set Computing,精簡指令集),與8051系列採用的CISCComplicated Instruction Set Computing,複雜指令集)不同,PIC16F877所有指令指有35個,8051高達111個指令;圖5PIC16F87X指令列表,由於組合語言不是本實驗室研究重點,詳細指令說明請參閱產品資料手冊。

5. 組合語言說明(圖片來源:Microchip PIC16F87X Data Sheet

3.2   C語言組譯軟體-CCS-C Compiler

CCS(Custom Computer Services)公司【2】開發一套PIC專用的C Compiler軟體,包含三個模組,分別為PCBPCMPCHPCW,其中,PCW是屬於PIC16F877用的組譯軟體,有Windows專業版、Windows學校學生F877專用版,本實驗室有兩套學生專用版版權;如圖6CCS組譯軟體外觀圖,可以直接在裡面撰寫C語言程式,也可以使用記事本程式撰寫後儲存成副檔名為“.C”的檔案,再由CCS直接開啟。程式撰寫完成後,按下compiler按鈕,經過組譯產生.HEX檔案,便可執行燒錄動作。

6. CCS組譯軟體介面

4.         元智皮可單板控制器

元智大學機械工程研究所吳昌暉教授針對單晶片廣泛的應用潛力,以PIC16F877為核心設計了一片「元智皮可單板控制器」,在10x5cm2的面積上加裝了四組全橋功率驅動晶片,可單向驅動8個直流1A以下的負載、或正反轉變速驅動4個小馬達或兩個步進馬達,並有許多空間供使用者自行加裝各式周邊電路。吳昌暉教授更開發了一套ICP(In-Chip-Programmer)軟體-內建於晶片且附加雙向RS232終端機功能的程式上下載及記憶體編輯軟體,換句話說,使用者不須專屬單晶片燒錄器,即可透過RS232進行程式燒錄動作。

參考資料

【1】    http://www.microchip.com PIC16F87X Data Sheet

【2】    http://www.ccsinfo.com/download.html

【3】    何信龍,李雪銀編著,PIC16F87X快速上手,全華科技,2000

【4】    盧春林編著,PIC16F87X微處理器技術精解,標高,2001

【5】    趙春棠編著,PIC單晶片學習祕笈,全威圖書,2001