近年來由於半導體技術發展快速,使得電子產品的制造成本大幅降低,電子產品的使用也逐漸成為日常生活之中人們不可或缺的壹部份,由於使用者的需求不同,電子產品也需不斷的求新求變。目前許多電子產品需利用單晶片微電腦(Single Chip Microcomputer) 作為控制核心,這壹類的產品特色在於,只要將寫好的控制程式寫入單晶片的記憶體中,而且在單晶片外接壹些周邊的電子元件,就可以形成壹個新的電子產品,這壹類電子產品在日常生活中隨處可見,例如生日卡片上的音樂IC、各式遙控器、行動電話,以及家電用品和汽車等其他產品均有單片機的運用,除此之外在個人電腦(PC)以及相關周邊也都需利用單片機,另外工業控制應用上更是少不了單片機。
繼學習和使用Intel MCS-51系列單片機之後,我們決定再研究Microchip PIC16F87X系列單片機,以PIC16F877為研究目標,來探討單片機微電腦的組成架構,程式開發及控制應用技術,以此作為基礎,再擴展於其他類型單晶片的運用與應用電路設計。
I簡 介
1.1單片機基本架構
單片機系指由中央處理單元(CPU),記憶體單元(Memory)及輸入/輸出單元三大部分所組成。其中CPU可分為兩部分,即算數邏輯(ALU)及控制單元(CU),CPU透過匯流排(BUS)執行程式碼的Fetch、Decode、算數邏輯運算及讀寫時序信號的控制。記憶體單元提供存放程式與資料之空間,包含唯讀記憶體(ROM)與隨機存取記憶體(RAM)。而輸入/輸出單元提供與外界周邊設備或元件溝通的管道。
1.1.1單片機微電腦
單片機微電腦(Single Chip Microcomputer)簡稱為單片機,而所謂單片機微電腦就是構成壹部微電腦系統所需的元件,如中央處理單元(CPU)、記憶體單元(Memory)、輸入/輸出(I/O)、時脈產生單元及相關周邊裝置制作在同壹晶片上,而成為壹能夠獨立運作的控制系統。
1.2 PIC16F877 單晶片微電腦
PIC 16F87X系列單晶片是Microchip 公司所推出的產品,它為壹顆RISC的八位元微電腦控制單晶片,搭配了高達8K的采用Flah型式的程式記憶體及5組的I/O PORT,和支援達14個中斷。
PIC16F877的特性說明如下:
●采用高性能的RISC CPU核心
●8位元微電腦控制晶片
●8Kx14程式記憶體(Flash)
●368Bytes資料記憶體及256Bytes的EEPROM資料記憶體
●5組I/O ports(A,B,C,D,E)
●2組8位元計時/計數器Timer0,Timer2,及1組16位元計時/計數器Timer1
●支援14個中斷處理
1.3 MPLAB
MPLAB是Microchip 公司對PIC系列單片機所發展的壹套整合發展環境(Integrated Development Environment , IDE) MPLAB包含下列工具:
☆MPLAB Editor—程式編輯器
☆MPASM Assembler—程式組譯器
☆MPLAB-SIM Software Simulator—軟體模擬器
☆MPLAB-ICEMULATOR—硬體模擬器
☆MPLAB-ICD—ICD元件的偵錯模擬環境
II 系統架構
2.1 PIC16F87X單片機核心架構
PIC系列單片機為RISC架構單片機,它所采用的Harvard結構和過去壹般單晶片所采用的Von Neumann架構最大的差異在於匯流排的改變。Von Neumann結構是傳統的單晶片結構,程式記憶體和資料記憶體是在同壹個記憶體區塊,記憶體與CPU之間只使用單壹匯流排,不論是要對程式記憶體或資料記憶體作存取都是使用此匯流排,因此要完成壹個指令通常必須依序使用匯流排,從指令的擷取、解碼、資料讀取、執行到資料的寫入,最後的結果是壹個指令大都需要等待好幾個周期才能完成。Harvard結構改善了這樣的缺點,主要是程式記憶體和資料記憶體使用不同的記憶體區塊,而且也有各自獨立的匯流排,這樣的做法大大的改善了指令執行的頻寬,兩個匯流排可以同時的工作,最大的優點是當壹個指令在執行時,已經可以去抓下壹個指令,因此對於運作的效率會有顯著的提升。
2.2內部結構圖
圖2.2為 PIC16F877單片機的內部功能架構圖,圖中說明匯流排和各個功能方塊之間的連接方式,利用架構圖可以讓我們對於整個系統更加的了解。
2.3接腳功能描述
下面列出PIC16F877單片機的接腳功能與說明。