MCS-51的CPU和存儲器CPU結(jié)構(gòu)單片機8051的CPU由運算器和控制器組成。一、運算器運算器以完成二進制的算術(shù)/邏輯運算部件ALU為核心,再加上暫存器TMP、累加器ACC、寄存器B、程序狀態(tài)標(biāo)志寄存器PSW及布爾處理器。累加器ACC是一個八位寄存器,它是CPU中工作最頻繁的寄存器。在進行算術(shù)、邏輯運算時,累加器ACC往往在運算前暫存一個操作數(shù)(如被加數(shù)),而運算后又保存其結(jié)果(如代數(shù)和)。寄存器B主要用于乘法和除法操作。標(biāo)志寄存器PSW
MCS-51的CPU和存儲器
CPU結(jié)構(gòu)
單片機8051的CPU由運算器和控制器組成。
一、運算器
運算器以完成二進制的算術(shù)/邏輯運算部件ALU為核心,再加上暫存器TMP、累加器ACC、寄存器B、程序狀態(tài)標(biāo)志寄存器PSW及布爾處理器。累加器ACC是一個八位寄存器,它是CPU中工作最頻繁的寄存器。在進行算術(shù)、邏輯運算時,累加器ACC往往在運算前暫存一個操作數(shù)(如被加數(shù)),而運算后又保存其結(jié)果(如代數(shù)和)。寄存器B主要用于乘法和除法操作。標(biāo)志寄存器PSW也是一個八位寄存器,用來存放運算結(jié)果的一些特征,如有無進位、借位等。其每位的具體含意如下所示。PSW
CY AC FO RS1 RS0 OV - P對用戶來講,最關(guān)心的是以下四位。
1進位標(biāo)志CY(PSW7)。它表示了運算是否有進位(或借位)。如果操作結(jié)果在最高位有進位(加法)或者借位(減法),則該位為1,否則為0。
2輔助進位標(biāo)志AC。又稱半進位標(biāo)志,它反映了兩個八位數(shù)運算低四位是否有半進位,即低四位相加(或減)有否進位(或借位),如有則AC為1狀態(tài),否則為0。
3溢出標(biāo)志位OV。MCS-51反映帶符號數(shù)的運算結(jié)果是否有溢出,有溢出時,此位為1,否則為0。
4奇偶標(biāo)志P。反映累加器ACC內(nèi)容的奇偶性,如果ACC中的運算結(jié)果有偶數(shù)個1(如11001100B,其中有4個1),則P為0,否則,P=1。
PSW的
其它位,將在以后再介紹。由于PSW存放程序執(zhí)行中的狀態(tài),故又叫程序狀態(tài)字?運算器中還有一個按位(bit)進行邏輯運算的邏輯處理機(又稱布爾處理機)。其功能在介紹位指令時再說明。
二、控制器
控制器是CPU的神經(jīng)中樞,它包括定時控制邏輯電路、指令寄存器、譯碼器、地址指針DPTR及程序
計數(shù)器PC、堆棧指針SP等。這里程序計數(shù)器PC是由16位寄存器構(gòu)成的計數(shù)器。要單片機執(zhí)行一個程序,就必須把該程序按順序預(yù)先裝入存儲器ROM的某個區(qū)域。單片機動作時應(yīng)按順序一條條取出指令來加以執(zhí)行。因此,必須有一個電路能找出指令所在的單元地址,該電路就是程序計數(shù)器PC。當(dāng)單片機開始執(zhí)行程序時,給PC裝入第一條指令所在地址,它每取出一條指令(如為多字節(jié)指令,則每取出一個指令字節(jié)),PC的內(nèi)容就自動加1,以指向下一條指令的地址,使指令能順序執(zhí)行。只有當(dāng)程序遇到轉(zhuǎn)移指令、子程序調(diào)用指令,或遇到中斷時(后面將介紹),PC才轉(zhuǎn)到所需要的地方去。8051
CPU碢C指定的地址,從ROM相應(yīng)單元中取出指令字節(jié)放在指令寄存器中寄存,然后,指令寄存器中的指令代碼被譯碼器譯成各種形式的控制信號,這些信號與單片機時鐘振蕩器產(chǎn)生的時鐘脈沖在定時與控制電路中相結(jié)合,形成按一定時間節(jié)拍變化的電平和時鐘,即所謂控制信息,在CPU內(nèi)部協(xié)調(diào)寄存器之間的
數(shù)據(jù)傳輸、運算等操作。