圖1說明mcs-51系列單片機(jī)的基本組成。
1、8051單片機(jī)內(nèi)部結(jié)構(gòu)和功能
1.中央處理器cpu
(1)運(yùn)算器
1) 算術(shù)邏輯單元alu(arithmetic logic unit)
2) 累加器acc (accumulator)
3) 寄存器b
4) 程序狀態(tài)字psw(programstatusword)
程序狀態(tài)字psw是一個(gè)8位特殊功能寄存器,它的各位包含了程序運(yùn)行的狀態(tài)信息,以供程序查詢和判斷。psw程序狀態(tài)字格式和含義如下:
①cy(psw.7) 進(jìn)位標(biāo)志位。cy是psw中最常用的標(biāo)志位。由硬件或軟件置位和清零。它表示運(yùn)算結(jié)果是否有進(jìn)位(或借位)。如果運(yùn)算結(jié)果在最高位有進(jìn)位輸出(加法時(shí))或有借位輸入(減法時(shí)),則cy由硬件置“1”,否則cy被清“0”。
②ac(psw.6) 輔助進(jìn)位(或稱半進(jìn)位)標(biāo)志。當(dāng)執(zhí)行加減運(yùn)算時(shí),運(yùn)算結(jié)果產(chǎn)生低四位向高四位進(jìn)位或借位時(shí),ac由硬件置“1”;否則ac位被自動(dòng)清“0”。
③f0(psw.5) 用戶標(biāo)志位。用戶可根據(jù)自己的需要對(duì)f0位賦予一定的含義,由用戶置位或復(fù)位,作為軟件標(biāo)志。
④rsl和rs0(psw.4,psw.3) 工作寄存器組選擇位。這兩位的值決定選擇哪一組工作寄存器為當(dāng)前工作寄存器組。由用戶通過軟件改變r(jià)sl和rs0值的組合,以切換當(dāng)前選用的工作寄存器組。其組合關(guān)系如表2-1所示
⑤ov(psw.2) 溢出標(biāo)志位。它反映運(yùn)算結(jié)果是否溢出,溢出時(shí)則由硬件將ov位置“1”,否則置“0”。
⑥f1(psw.1) 用戶標(biāo)志位,同f0(psw.5)。
⑦p(psw.0) 此位為奇偶標(biāo)志位。p標(biāo)志表明累加器acc中1的個(gè)數(shù)的奇偶性。在每條指令執(zhí)行完后,單片機(jī)根據(jù)acc的內(nèi)容對(duì)p位自動(dòng)置位或復(fù)位。若累加器acc中有奇數(shù)個(gè)“1”,則p=1;若累加器acc中有偶數(shù)個(gè)“1”,則p=0。
5) 布爾處理器
mcs-51的cpu是8位微處理器,它還具有1位微處理器的功能。布爾處理器具有較強(qiáng)的布爾變量處理能力,以位(bit)為單位進(jìn)行運(yùn)算和操作。它以進(jìn)位標(biāo)志(cy)作為累加位,以內(nèi)部ram中所有可位尋址的位作為操作位或存儲(chǔ)位,以p0~p3的各位作為i/o位,同時(shí)布爾處理器也有自己的指令系統(tǒng)。
(2)控制器
1) 程序計(jì)數(shù)器pc
2) 數(shù)據(jù)指針dptr
2.定時(shí)器/計(jì)數(shù)器
8051單片機(jī)內(nèi)有兩個(gè)16位的定時(shí)器/計(jì)數(shù)器:定時(shí)器/計(jì)數(shù)器0和定時(shí)器/計(jì)數(shù)器1。
3.串行口
單片機(jī)內(nèi)部有一個(gè)串行數(shù)據(jù)緩沖寄存器sbuf,它是可直接尋址的特殊功能寄存器,地址為99h。
4.中斷系統(tǒng)
2、存儲(chǔ)器結(jié)構(gòu)
8051單片機(jī)在系統(tǒng)結(jié)構(gòu)上采用哈佛型,其配置如圖2所示。
1.程序存儲(chǔ)器
程序存儲(chǔ)器用來存放程序代碼和常數(shù),分成片內(nèi)、片外兩大部分,即片內(nèi)rom和片外rom。其中,8051內(nèi)部有4kb的rom,地址范圍為0000h~0fffh,片外用16位地址線擴(kuò)充64kb的rom,兩者統(tǒng)一編址。
2.片內(nèi)數(shù)據(jù)存儲(chǔ)器
數(shù)據(jù)存儲(chǔ)器用來存放運(yùn)算的中間結(jié)果、標(biāo)志位,以及數(shù)據(jù)的暫存和緩沖等。它也分為片內(nèi)和片外兩大部分,即片內(nèi)ram和片外ram。8051片內(nèi)數(shù)據(jù)存儲(chǔ)器最大可尋址256個(gè)單元,通常把這256個(gè)單元按功能劃分為低128單元(單元地址00h~7fh)和高128單元(單元地址80h~0ffh),結(jié)構(gòu)如圖2-3。
3.片外數(shù)據(jù)存儲(chǔ)器
片外數(shù)據(jù)存儲(chǔ)器,即片外ram,一般由靜態(tài)ram芯片組成。用戶可根據(jù)需要確定擴(kuò)展存儲(chǔ)器的容量,mcs-51單片機(jī)訪問片外ram可用1個(gè)特殊功能寄存器——數(shù)據(jù)指針寄存器dptr尋址。由于dptr為16位,可尋址的范圍為0~64kb。因此,擴(kuò)展片外ram的最大容量是64kb。
4.堆棧及堆棧指針
堆棧是一種數(shù)據(jù)結(jié)構(gòu),所謂堆棧就是只允許在其一端進(jìn)行數(shù)據(jù)插入和數(shù)據(jù)刪除操作的線性表。