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