- 單片機開發從入門到精通(第2版)
- 白林鋒 曲培新等編著
- 1515字
- 2024-06-26 16:45:06
1.2.2 CPU
CPU(中央處理器)是單片機的核心,主要功能是產生各種控制信號,根據程序中每一條指令的具體功能,控制寄存器和I/O口的數據傳送,進行數據的算術運算、邏輯運算以及位操作等處理。MCS-51系列單片機的CPU字長是8位,能處理8位二進制數,也可處理1位二進制數。單片機的CPU從功能上一般分為控制器和運算器兩部分。
1.控制器
控制器由程序計數器(PC)、指令寄存器(IR)、指令譯碼器(ID)、定時控制與條件轉移邏輯電路等組成,其功能是對來自ROM中的指令進行譯碼,通過定時電路,在規定的時刻發出各種操作所需的內部和外部控制信號,使各部分協調工作,完成指令所規定的功能。
(1)程序計數器
程序計數器(PC)是一個16位的專用寄存器,用來存放下一條指令的地址,具有自動加1的功能。CPU在取指令時,將PC中的地址信息送到地址總線上,從ROM中取出一個指令碼后,PC內容自動加1,指向ROM的下一個單元,從而實現指令的順序執行。
PC用來指示程序的執行位置。在順序執行程序時,單片機每執行一條指令,PC自動加1,指向下一條待取指令的存儲單元的16位地址,即CPU總是把PC的內容作為地址,根據該地址從ROM中取出指令碼或包含在指令中的操作數。每取完一個字節后,PC的內容自動加1,為讀取下一個字節做好準備。MCS-51系列單片機的尋址范圍為64KB,對應于PC中的數據范圍是0000H~FFFFH。單片機復位時,PC自動清0,即裝入地址0000H,使單片機在復位后,程序從ROM的0000H單元開始執行。
(2)指令寄存器
指令寄存器(IR)是一個8位寄存器,用于暫存待執行的指令,等待譯碼。
(3)暫存器
暫存器(TMP)用來暫存由數據總線(DB)或通用寄存器送來的操作數,并把它作為另一個操作數。
(4)指令譯碼器
指令譯碼器(ID)是CPU的一部分,用于對指令寄存器中的指令進行譯碼,將存儲在指令寄存器或微程序指令中的二進制代碼轉換為能控制CPU其他部分的控制信號。指令譯碼器的輸出信號經定時電路產生完成該指令操作所需要的各種控制信號。
(5)數據指針
數據指針(DPTR)是一個16位的專用地址指針寄存器,主要用來存放16位地址,作為間址寄存器訪問64KB的數據存儲器和I/O口及程序存儲器,由DPH(高8位)和DPL(低8位)兩個獨立的特殊功能寄存器組成,地址分別是83H和82H。
DPTR與PC不同,DPTR有自己的地址,可以進行讀寫操作,而PC沒有地址,不能對它進行讀寫操作,但可以通過轉移、調用、返回指令改變其內容,從而實現程序的轉移。
2.運算器
運算器主要進行算術和邏輯運算。運算器由算術邏輯單元(ALU)、累加器(ACC)、程序狀態字(PSW)、BCD碼運算電路、通用B寄存器和一些專用寄存器及位處理邏輯電路等組成。
(1)算術邏輯單元
算術邏輯單元(ALU)由加法器和其他邏輯電路等組成,完成數據的算術邏輯運算、循環移位、位操作等,參加運算的兩個操作數,一個由A通過暫存器2提供,另外一個由暫存器1提供,運算結果送回A,狀態送PSW。
(2)累加器
累加器(ACC)是一個8位特殊功能寄存器,簡稱A,通過暫存器與ALU相互傳送信息,運算前提供一個操作數,運算后存放運算結果。
(3)程序狀態字
程序狀態字(PSW)也是一個8位的特殊功能寄存器,用于存儲指令執行后的相關狀態信息,如進位、溢出等情況。
(4)其他部件
暫存器用來存放中間結果,B寄存器在乘法和除法指令中提供一個操作數,在其他指令中可用作通用寄存器。
(5)位處理器
位處理器是單片機的一個特殊組成部分,具有相應的指令系統,可提供17條位操作指令。硬件上有自己的“位累加器”和位尋址RAM、I/O口空間,方便了控制系統中開關量的處理。
單片機能處理布爾操作數,能對位地址空間中的位直接尋址,并進行清零、取反等操作。這種功能提供了把邏輯式(隨機組合邏輯)直接變為軟件的簡單方法,不需要過多的數據傳送、字節屏蔽和測試分支,就能實現復雜的組合邏輯功能。