51單片機CPU的內(nèi)部結(jié)構(gòu)及工作原理
從上圖中我們可以看到,在虛線框內(nèi)的就是CPU的內(nèi)部結(jié)構(gòu)了,8位的MCS-51單片機的CPU內(nèi)部有數(shù)術(shù)邏輯單元ALU(Arithmetic Logic Unit)、累加器A(8位)、寄存器B(8位)、程序狀態(tài)字PSW(8位)、程序計數(shù)器PC(有時也稱為指令指針,即IP,16位)、地址寄存器AR(16位)、數(shù)據(jù)寄存器DR(8位)、指令寄存器IR(8位)、指令譯碼器ID、控制器等部件組成。
1、運算器(ALU)的主要功能
A)算術(shù)和邏輯運算,可對半字節(jié)(一個字節(jié)是8位,半個字節(jié)就是4位)和單字節(jié)數(shù)據(jù)進行操作。
B)加、減、乘、除、加1、減1、比較等算術(shù)運算。
C)與、或、異或、求補、循環(huán)等邏輯運算。
D)位處理功能(即布爾處理器)。
由于ALU內(nèi)部沒有寄存器,參加運算的操作數(shù),必須放在累加器A中。累加器A也用于存放運算結(jié)果。
例如:執(zhí)行指令 ADD A,B
執(zhí)行這條指令時,累加器A中的內(nèi)容通過輸入口In_1輸入ALU,寄存器B通過內(nèi)部數(shù)據(jù)總線經(jīng)輸入口In_2輸入ALU,A+B的結(jié)果通過ALU的輸出口Out、內(nèi)部數(shù)據(jù)總線,送回到累加器A。
2、程序計數(shù)器PC
PC的作用是用來存放將要執(zhí)行的指令地址,共16位,可對64K ROM直接尋址,PC低8位經(jīng)P0口輸出,高8位經(jīng)P2口輸出。也就是說,程序執(zhí)行到什么地方,程序計數(shù)器PC就指到哪里,它始終是跟躥著程序的執(zhí)行。我們知道,用戶程序是存放在內(nèi)部的ROM中的,我們要執(zhí)行程序就要從ROM中一個個字節(jié)的讀出來,然后到CPU中去執(zhí)行,那么ROM具體執(zhí)行到哪一條呢?這就需要我們的程序計數(shù)器PC來指示。
程序計數(shù)器PC具有自動加1的功能,即從存儲器中讀出一個字節(jié)的指令碼后,PC自動加1(指向下一個存儲單元)。
3、指令寄存器IR
指令寄存器的作用就是用來存放即將執(zhí)行的指令代碼。
在這里我們先簡單的了解下CPU執(zhí)行指令的過程,首先由程序存儲器(ROM)中讀取指令代碼送入到指令寄存器,經(jīng)譯碼器譯碼后再由定時與控制電路發(fā)出相應(yīng)的控制信號,從而完成指令的功能。關(guān)于指令在單片機內(nèi)部的執(zhí)行過程,我們在后面將會以另一節(jié)課來進行詳細的講解。
4、指令譯碼器ID
用于對送入指令寄存器中的指令進行譯碼,所謂譯碼就是把指令轉(zhuǎn)變成執(zhí)行此指令所需要的電信號。當指令送入譯碼器后,由譯碼器對該指令進行譯碼,根據(jù)譯碼器輸出的信號,CPU控制電路定時地產(chǎn)生執(zhí)行該指令所需的各種控制信號,使單片機正確的執(zhí)行程序所需要的各種操作。
5、地址寄存器AR(16位)
AR的作用是用來存放將要尋址的外部存儲器單元的地址信息,指令碼所在存儲單元的地址編碼,由程序計數(shù)器PC產(chǎn)生,而指令中操作數(shù)所在的存儲單元地址碼,由指令的操作數(shù)給定。從上圖中我們可以看到,地址寄存器AR通過地址總線AB與外部存儲器相連。
6、數(shù)據(jù)寄存器DR
用于存放寫入外部存儲器或I/O端口的數(shù)據(jù)信息?梢姡瑪(shù)據(jù)寄存器對輸出數(shù)據(jù)具有鎖存功能。數(shù)據(jù)寄存器與外部數(shù)據(jù)總線DB直接相連。
7、程序狀態(tài)字PSW
用于記錄運算過程中的狀態(tài),如是否溢出、進位等。
例如,累加器A的內(nèi)容83H,執(zhí)行:
ADD A,#8AH ;累加器A與立即數(shù)8AH相加,并把結(jié)果存放在A中。
指令后,將產(chǎn)生和的結(jié)果為[1]0DH,而累加器A只有8位,只能存放低8位,即0DH,元法存放結(jié)果中的最高位B8。為些,在CPU內(nèi)設(shè)置一個進位標志位C,當執(zhí)行加法運算出現(xiàn)進位時,進位標志位C為1。
8、時序部件
由時鐘電路和脈沖分配器組成,用于產(chǎn)生微操作控制部件所需的定時脈沖信號。
編輯:admin 最后修改時間:2018-05-08