一個完整的單片機應用系統由硬件和軟件共同構成,硬件使單片機具備了處理數據的可能,軟件使單片機自動工作。硬件與軟件相輔相成,缺一不可。
為了使單片機能自動完成某一特定任務,首先,必須把要解決的問題編成程序。程序是指單片機所能識別和執行的指令的有序集合。指令是把要求單片機執行的各種操作以命令的形式寫下來,一條指令對應著一種基本操作。
程序必須預先存放在程序存儲器中(單片機內部有程序存儲器)。存儲器由許多存儲單元組成,每個存儲單元可以存放8位二進制信息,指令就在存儲單元中存放。為了區分不同的存儲單元,需要對存儲單元進行編號,稱為存儲單元的地址,只要知道了存儲單元的地址.就可以找到存儲單元,其中存儲的指令就可以被取出,然后再被執行。程序通常是順序執行的,所以程序中的指令也是一條條存放的。
程序由CPU(在單片機內部)執行。CPU只有把指令逐條敢出才能加以執行,因此必須有一個部件能跟蹤指令所在地址.這一部件就是程序計數器(PC)。在開始程序時,給PC賦以程序中第一條指令所在地址,然后每取出一條指令,PC中的內容就會自動增加,增加量由率條指令的長度決定,可能是1,2或3個地址存放單元,以指向下一條指令的起始地址,保證指令順序執行。由此可見,程序計數器PC中存放的是指令地址,CPU通過PC的內容就可以取得指令的存放地址,進而取得要執行的指令。
CPU從程序存儲器中取來的指令先送人指令寄存器(包含在CPU中)寄存,然后由指令譯碼器(包含在CPU中)對指令寄存器巾的指令進行分析解釋,最終形成CPU的控制信息,以指揮相關硬件電路完成該指令所要求的功能,如數據傳送、數據運算,輸入或輸出信息等。當CPU將程序中的指令一條條取出并執行完時,也就完成了用戶賦予它的任務。