版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、普通高等教育“十一五”國家級規(guī)劃教材單片微型計(jì)算機(jī)原理與接口技術(shù)單片微型計(jì)算機(jī)原理與接口技術(shù)(第二版)(第二版)高鋒高鋒 編著編著科學(xué)出版社科學(xué)出版社北京北京第二章第二章 80C51單片微機(jī)單片微機(jī)的基本結(jié)構(gòu)的基本結(jié)構(gòu) 微型計(jì)算機(jī)的基本組成有三部分,即微型計(jì)算機(jī)的基本組成有三部分,即CPU +存儲器存儲器+ I/O 接口。接口。 80C51內(nèi)部結(jié)構(gòu)如內(nèi)部結(jié)構(gòu)如圖圖21所示。所示。CPU(算術(shù)邏輯單元算術(shù)邏輯單元ALU、控制器、控制器)存儲器存儲器-程序存儲器程序存儲器ROM、數(shù)據(jù)存儲器數(shù)據(jù)存儲器 RAM定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器并行并行 I/O口口 P0P3串行口串行口中斷系統(tǒng)中斷系統(tǒng)定時(shí)控制
2、邏輯電路等定時(shí)控制邏輯電路等 2.1 80C51單片微機(jī)的內(nèi)部結(jié)構(gòu)單片微機(jī)的內(nèi)部結(jié)構(gòu) 微型計(jì)算機(jī)的基本組成有三部分,即微型計(jì)算機(jī)的基本組成有三部分,即CPU +存儲器存儲器+ I/O 接口。接口。 80C51內(nèi)部結(jié)構(gòu)如內(nèi)部結(jié)構(gòu)如圖圖21所示。所示。CPU(算術(shù)邏輯單元算術(shù)邏輯單元ALU、控制器、控制器)存儲器存儲器-程序存儲器程序存儲器ROM、數(shù)據(jù)存儲器數(shù)據(jù)存儲器 RAM定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器并行并行 I/O口口 P0P3串行口串行口中斷系統(tǒng)中斷系統(tǒng)定時(shí)控制邏輯電路等定時(shí)控制邏輯電路等 這些部件通過內(nèi)部總線連接起來,基本結(jié)構(gòu)仍然是通用這些部件通過內(nèi)部總線連接起來,基本結(jié)構(gòu)仍然是通用CPU加
3、上外圍芯片的結(jié)構(gòu)模式,但采用了特殊功能寄存器加上外圍芯片的結(jié)構(gòu)模式,但采用了特殊功能寄存器(SFR) 進(jìn)行進(jìn)行集中控制的方法。集中控制的方法。1.中央處理器中央處理器 單片微機(jī)的核心,主要完成運(yùn)算和控制功能,又增設(shè)了單片微機(jī)的核心,主要完成運(yùn)算和控制功能,又增設(shè)了“面面向控制向控制”的處理功能,增強(qiáng)了實(shí)時(shí)性。的處理功能,增強(qiáng)了實(shí)時(shí)性。 2. 程序存儲器程序存儲器 80C31:內(nèi)部沒有程序存儲器:內(nèi)部沒有程序存儲器 80C51:內(nèi)部帶:內(nèi)部帶ROM 87C51:內(nèi)部帶:內(nèi)部帶EPROM單片微機(jī)的程序存儲器有以下幾種結(jié)構(gòu)形式:單片微機(jī)的程序存儲器有以下幾種結(jié)構(gòu)形式: 片內(nèi)只讀存儲器片內(nèi)只讀存儲器
4、程序必須在制作單片微機(jī)時(shí)寫入,一次性固化。程序必須在制作單片微機(jī)時(shí)寫入,一次性固化。這種結(jié)構(gòu)形式只適用于程序已成熟、定型,且批量很大的場這種結(jié)構(gòu)形式只適用于程序已成熟、定型,且批量很大的場合。并且只能在廠家定制完成。合。并且只能在廠家定制完成。 片內(nèi)可編程的片內(nèi)可編程的ROM 片內(nèi)可編程的片內(nèi)可編程的ROM可直接由用戶進(jìn)行編程。可直接由用戶進(jìn)行編程。 紫外線可擦除型紫外線可擦除型ROMEPROM型單片微機(jī)型單片微機(jī) (如如87C51)。EPROM需用紫外線擦除,必須脫機(jī)固化,不能在線改寫。需用紫外線擦除,必須脫機(jī)固化,不能在線改寫。 電可擦除型電可擦除型ROMEEPROM,稱為,稱為Flash
5、單片微機(jī)單片微機(jī) (如如89C51)。應(yīng)用系統(tǒng)的現(xiàn)場調(diào)試。應(yīng)用系統(tǒng)的現(xiàn)場調(diào)試。EPROM和和EEPROM都是可以多次擦除和編程的,或稱都是可以多次擦除和編程的,或稱MTP的的ROM。OTP的的 ROM,僅允許用戶一次編程。,僅允許用戶一次編程。 片外只讀存儲器片外只讀存儲器 由于受芯片集成度的限制,片內(nèi)只讀存儲器一般存儲容量由于受芯片集成度的限制,片內(nèi)只讀存儲器一般存儲容量較小。較小。 利用單片微機(jī)的并行擴(kuò)展技術(shù)可以外擴(kuò)片外只讀存儲器。利用單片微機(jī)的并行擴(kuò)展技術(shù)可以外擴(kuò)片外只讀存儲器。 3. 數(shù)據(jù)存儲器(數(shù)據(jù)存儲器(RAM) 在單片微機(jī)中,用在單片微機(jī)中,用RAMRAM來存儲程序在運(yùn)行期間的工
6、作變量來存儲程序在運(yùn)行期間的工作變量和數(shù)據(jù),所以稱為數(shù)據(jù)存儲器。一般在單片微機(jī)內(nèi)部設(shè)置一定和數(shù)據(jù),所以稱為數(shù)據(jù)存儲器。一般在單片微機(jī)內(nèi)部設(shè)置一定容量(容量(64B64B384B384B或更大容量或更大容量 )的的RAMRAM,以加快單片微機(jī)運(yùn)行,以加快單片微機(jī)運(yùn)行的速度的速度,還可以使存儲器的功耗下降很多。還可以使存儲器的功耗下降很多。在單片微機(jī)中,常把寄存器(如工作寄存器、特殊功能在單片微機(jī)中,常把寄存器(如工作寄存器、特殊功能寄存器、堆棧等)在邏輯上劃分在片內(nèi)寄存器、堆棧等)在邏輯上劃分在片內(nèi)RAMRAM空間中,所以可將空間中,所以可將單片微機(jī)內(nèi)部單片微機(jī)內(nèi)部RAMRAM看成是寄存器堆,有
7、利于提高運(yùn)行速度。看成是寄存器堆,有利于提高運(yùn)行速度。 4. 并行并行I/O口口 單片微機(jī)往往提供了許多功能強(qiáng)、使用靈活的并行輸入單片微機(jī)往往提供了許多功能強(qiáng)、使用靈活的并行輸入/輸出引腳,用于檢測與控制。輸出引腳,用于檢測與控制。有些有些I/O引腳還具有多種功能,比如可以作為數(shù)據(jù)總線的數(shù)據(jù)引腳還具有多種功能,比如可以作為數(shù)據(jù)總線的數(shù)據(jù)線、地址總線的地址線、控制總線的控制線等。線、地址總線的地址線、控制總線的控制線等。單片微機(jī)單片微機(jī)I/O引腳的驅(qū)動(dòng)能力也逐漸增大,甚至可以直接驅(qū)動(dòng)引腳的驅(qū)動(dòng)能力也逐漸增大,甚至可以直接驅(qū)動(dòng)外擴(kuò)的外擴(kuò)的LED顯示器。顯示器。 5. 串行串行I/O口口 實(shí)現(xiàn)與某些
8、終端設(shè)備進(jìn)行串行通信,或者和一些特殊功實(shí)現(xiàn)與某些終端設(shè)備進(jìn)行串行通信,或者和一些特殊功能的器件相連的能力,甚至用多個(gè)單片微機(jī)相連構(gòu)成多機(jī)系能的器件相連的能力,甚至用多個(gè)單片微機(jī)相連構(gòu)成多機(jī)系統(tǒng)。統(tǒng)。 6. 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 用于精確的定時(shí),或者需對外部事件進(jìn)行計(jì)數(shù)用于精確的定時(shí),或者需對外部事件進(jìn)行計(jì)數(shù)80C51有兩個(gè)有兩個(gè)16位的定時(shí)器位的定時(shí)器/計(jì)數(shù)器,計(jì)數(shù)器,80C52有三個(gè)有三個(gè)16位的定時(shí)器位的定時(shí)器/計(jì)數(shù)器。計(jì)數(shù)器。 7. 中斷系統(tǒng)中斷系統(tǒng) 具有內(nèi)、外共五個(gè)中斷源,兩個(gè)中斷優(yōu)先級。具有內(nèi)、外共五個(gè)中斷源,兩個(gè)中斷優(yōu)先級。 8定時(shí)電路及元件定時(shí)電路及元件 計(jì)算機(jī)的整個(gè)工作是
9、在時(shí)鐘信號的驅(qū)動(dòng)下,按照嚴(yán)格的時(shí)計(jì)算機(jī)的整個(gè)工作是在時(shí)鐘信號的驅(qū)動(dòng)下,按照嚴(yán)格的時(shí)序有規(guī)律地一個(gè)節(jié)拍一個(gè)節(jié)拍地執(zhí)行各種操作。序有規(guī)律地一個(gè)節(jié)拍一個(gè)節(jié)拍地執(zhí)行各種操作。單片微機(jī)內(nèi)部設(shè)有定時(shí)電路,只需外接振蕩元件即可工作。單片微機(jī)內(nèi)部設(shè)有定時(shí)電路,只需外接振蕩元件即可工作。 外接振蕩元件一般選用晶體振蕩器,或用價(jià)廉的外接振蕩元件一般選用晶體振蕩器,或用價(jià)廉的RC振蕩振蕩器,也可用外部時(shí)鐘源,作為振蕩元件。器,也可用外部時(shí)鐘源,作為振蕩元件。 有的單片微機(jī)將振蕩元件也集成在芯片內(nèi)部,有的單片微機(jī)將振蕩元件也集成在芯片內(nèi)部, 80C5180C52的封裝及邏輯圖如的封裝及邏輯圖如圖圖22所示。所示。若不
10、需要通過并行總線擴(kuò)展芯片,常采用若不需要通過并行總線擴(kuò)展芯片,常采用20引腳甚引腳甚至 僅至 僅 1 4 引 腳 的 單 片 微 機(jī) , 如引 腳 的 單 片 微 機(jī) , 如 A T M E L 公 司 的公 司 的89C1051/2051/4051,或,或PHILIPS公司的公司的P87LPC764。它。它們的封裝及引腳見們的封裝及引腳見圖圖23。2.2 80C51單片微機(jī)的引腳及其功能單片微機(jī)的引腳及其功能按引腳的功能可分為三部分按引腳的功能可分為三部分 : 1. 電源和晶振電源和晶振Vcc運(yùn)行和程序校驗(yàn)時(shí)接電源正端。運(yùn)行和程序校驗(yàn)時(shí)接電源正端。 Vss接地。接地。 XTAL1輸入到單片微
11、機(jī)內(nèi)部振蕩器的反相放大器。當(dāng)輸入到單片微機(jī)內(nèi)部振蕩器的反相放大器。當(dāng)采用外部振蕩器時(shí),對采用外部振蕩器時(shí),對HMOS單片微機(jī)單片微機(jī), 此引腳應(yīng)接地;對此引腳應(yīng)接地;對CHMOS單片微機(jī),此引腳作驅(qū)動(dòng)端。單片微機(jī),此引腳作驅(qū)動(dòng)端。XTAL2反相放大器的輸出,輸入到內(nèi)部時(shí)鐘發(fā)生器。反相放大器的輸出,輸入到內(nèi)部時(shí)鐘發(fā)生器。當(dāng)采用外部振蕩器時(shí),當(dāng)采用外部振蕩器時(shí),XTAL2接收振蕩器信號接收振蕩器信號,對,對CHMOS,此引,此引腳應(yīng)懸浮。腳應(yīng)懸浮。 2. I/O P08位、漏極開路的雙向位、漏極開路的雙向I/O口???。當(dāng)使用片外存儲器(當(dāng)使用片外存儲器(ROM及及RAM)時(shí),作低)時(shí),作低8位地址
12、和位地址和8位位數(shù)據(jù)總線分時(shí)復(fù)用。數(shù)據(jù)總線分時(shí)復(fù)用。P18位、準(zhǔn)雙向位、準(zhǔn)雙向I/O 口??凇?對于對于80C52,P1.0T2,是定時(shí)器,是定時(shí)器2的計(jì)數(shù)輸入端;的計(jì)數(shù)輸入端; P1.1T2EX,是定時(shí)器,是定時(shí)器2的外部輸入端。的外部輸入端。P28位、準(zhǔn)雙向位、準(zhǔn)雙向I/O口。口。 當(dāng)使用片外存儲器(當(dāng)使用片外存儲器(ROM及及RAM)時(shí),輸出)時(shí),輸出高高8位地址。位地址。P38位、準(zhǔn)雙向位、準(zhǔn)雙向I/O口,具有內(nèi)部上拉電路。口,具有內(nèi)部上拉電路。 P3提供各種替代功能。在提供這些功能時(shí),其輸提供各種替代功能。在提供這些功能時(shí),其輸出鎖存器應(yīng)由程序置出鎖存器應(yīng)由程序置 1。 串行口:串行
13、口: P30RXD 串行輸入口。串行輸入口。 P31TXD 串行輸出口。串行輸出口。 中斷:中斷: P32 INT0 外部中斷外部中斷0輸入。輸入。 P33 INT1外部中斷外部中斷1輸入。輸入。 定時(shí)器計(jì)數(shù)器:定時(shí)器計(jì)數(shù)器: P34T0 的外部輸入。的外部輸入。 P35T1的外部輸入。的外部輸入。 數(shù)據(jù)存儲器選通:數(shù)據(jù)存儲器選通: P36WR ,片外數(shù)據(jù)存儲器或,片外數(shù)據(jù)存儲器或I/O端口寫選通。端口寫選通。 P37 RD ,片外數(shù)據(jù)存儲器或,片外數(shù)據(jù)存儲器或I/O端口讀選通。端口讀選通。3. 控制線控制線 RST復(fù)位輸入信號。復(fù)位輸入信號。 在振蕩器工作時(shí),在在振蕩器工作時(shí),在RST上作用
14、兩個(gè)機(jī)器周期以上的上作用兩個(gè)機(jī)器周期以上的高電平,將單片微機(jī)復(fù)位。高電平,將單片微機(jī)復(fù)位。 EA /Vpp片外程序存儲器訪問允許信號。片外程序存儲器訪問允許信號。EA=1,選擇片內(nèi)程序存儲器,選擇片內(nèi)程序存儲器EA=0,則程序存儲器全部在片外。,則程序存儲器全部在片外。使用使用80C31時(shí),時(shí),EA必須接地,使用必須接地,使用8751編程時(shí),編程時(shí), EA施加施加 21V的編程電壓。的編程電壓。ALE/PROG地址鎖存允許信號。地址鎖存允許信號。在訪問片外存儲器或在訪問片外存儲器或I/O時(shí),用于鎖存低時(shí),用于鎖存低8位地址,位地址,以實(shí)現(xiàn)低地址與以實(shí)現(xiàn)低地址與8位數(shù)據(jù)的隔離。位數(shù)據(jù)的隔離。 A
15、LE以以 1/6的振蕩頻率固定速率輸出,可作為對外的振蕩頻率固定速率輸出,可作為對外輸出的時(shí)鐘或用作外部定時(shí)脈沖。輸出的時(shí)鐘或用作外部定時(shí)脈沖。PSEN片外程序存儲器讀選通信號。片外程序存儲器讀選通信號。在從片外程序存儲器取指期間,在每個(gè)機(jī)器周期中,在從片外程序存儲器取指期間,在每個(gè)機(jī)器周期中,當(dāng)當(dāng)PSEN有效時(shí),程序存儲器的內(nèi)容被送上有效時(shí),程序存儲器的內(nèi)容被送上 P0口(數(shù)據(jù)總口(數(shù)據(jù)總線)。線)。 2.3 80C51 CPU的結(jié)構(gòu)和特點(diǎn)的結(jié)構(gòu)和特點(diǎn) 中央處理器中央處理器CPU是單片微機(jī)內(nèi)部的核心是單片微機(jī)內(nèi)部的核心部件,主要包括控制器、運(yùn)算器和工作寄存部件,主要包括控制器、運(yùn)算器和工作寄
16、存器及時(shí)序電路。器及時(shí)序電路。2.3.1中央控制器中央控制器 識別指令,并根據(jù)指令性質(zhì)控制計(jì)算機(jī)各組成部件進(jìn)識別指令,并根據(jù)指令性質(zhì)控制計(jì)算機(jī)各組成部件進(jìn)行工作的部件,與運(yùn)算器一起構(gòu)成中央處理器。行工作的部件,與運(yùn)算器一起構(gòu)成中央處理器。 在在80C51中,控制器包括程序計(jì)數(shù)器中,控制器包括程序計(jì)數(shù)器PC、程序地、程序地址寄存器、指令寄存器址寄存器、指令寄存器IR、指令譯碼器、條件轉(zhuǎn)移邏輯、指令譯碼器、條件轉(zhuǎn)移邏輯電路及定時(shí)控制邏輯電路。電路及定時(shí)控制邏輯電路。 其功能是控制指令的讀出、譯碼和執(zhí)行,對指令的其功能是控制指令的讀出、譯碼和執(zhí)行,對指令的執(zhí)行過程進(jìn)行定時(shí)控制,并根據(jù)執(zhí)行結(jié)果決定是否
17、分支執(zhí)行過程進(jìn)行定時(shí)控制,并根據(jù)執(zhí)行結(jié)果決定是否分支轉(zhuǎn)移。轉(zhuǎn)移。 1. 程序計(jì)數(shù)器程序計(jì)數(shù)器PC(Program Counter)一個(gè)獨(dú)立的計(jì)數(shù)器,不屬于內(nèi)部的特殊功能寄存器。一個(gè)獨(dú)立的計(jì)數(shù)器,不屬于內(nèi)部的特殊功能寄存器。 PC中存放的是中存放的是下一條下一條將要從程序存儲器中取出的將要從程序存儲器中取出的指令的地址。指令的地址。PC基本的工作過程是:讀指令時(shí),基本的工作過程是:讀指令時(shí),PC將其中的數(shù)將其中的數(shù)作為所取指令的地址輸出給程序存儲器,然后程序存作為所取指令的地址輸出給程序存儲器,然后程序存儲器按此地址輸出指令字節(jié),同時(shí)儲器按此地址輸出指令字節(jié),同時(shí)PC本身自動(dòng)加本身自動(dòng)加1,指向
18、下一條指令地址。指向下一條指令地址。 PC變化的軌跡決定程序的流程。變化的軌跡決定程序的流程。 在執(zhí)行條件轉(zhuǎn)移或無條件轉(zhuǎn)移指令時(shí),程在執(zhí)行條件轉(zhuǎn)移或無條件轉(zhuǎn)移指令時(shí),程序計(jì)數(shù)器將被置入轉(zhuǎn)移的目的地址,程序的流向序計(jì)數(shù)器將被置入轉(zhuǎn)移的目的地址,程序的流向發(fā)生變化。發(fā)生變化。在執(zhí)行調(diào)用指令或響應(yīng)中斷時(shí),將子程序在執(zhí)行調(diào)用指令或響應(yīng)中斷時(shí),將子程序的入口地址或者中斷矢量地址送入的入口地址或者中斷矢量地址送入PC,程序流向,程序流向發(fā)生變化。發(fā)生變化。2. 數(shù)據(jù)指針數(shù)據(jù)指針 DPTR 16位特殊功能寄存器,主要功能是作為片外數(shù)據(jù)存位特殊功能寄存器,主要功能是作為片外數(shù)據(jù)存儲器或儲器或I/O尋址用的地址
19、寄存器。尋址用的地址寄存器。 既可以作為一個(gè)既可以作為一個(gè)16位寄存器處理,也可以作為兩位寄存器處理,也可以作為兩個(gè)個(gè)8位寄存器處理,其高位寄存器處理,其高8位用位用DPH表示,低表示,低8位用位用DPL表示表示。訪問片外數(shù)據(jù)存儲器或訪問片外數(shù)據(jù)存儲器或I/O的指令為:的指令為: MOVX A,DPTR 讀讀 MOVX DPTR,A 寫寫作為訪問程序存儲器時(shí)的基址寄存器。尋址程序存儲器作為訪問程序存儲器時(shí)的基址寄存器。尋址程序存儲器中的表格、常數(shù)等單元,而不是尋址指令。中的表格、常數(shù)等單元,而不是尋址指令。 MOVCA,ADPTR JMPADPTRPC與與DPTR: 都是與地址有關(guān)的都是與地址
20、有關(guān)的16位的寄存器。位的寄存器。PC與程序存與程序存儲器的地址有關(guān),儲器的地址有關(guān), DPTR與數(shù)據(jù)存儲器的地址有關(guān)。作為與數(shù)據(jù)存儲器的地址有關(guān)。作為地址寄存器使用時(shí),地址寄存器使用時(shí),PC與與DPTR都是通過都是通過P0和和P2口輸出口輸出的。的。PC的輸出與的輸出與ALE及及PSEN信號有關(guān);信號有關(guān);DPTR的輸出,的輸出,則與則與ALE、WR、RD信號有關(guān)。信號有關(guān)。 PC只能作為只能作為16位寄存器對待,是不可以訪問的位寄存器對待,是不可以訪問的。DPTR可以作為可以作為16位寄存器,也可以作為兩個(gè)位寄存器,也可以作為兩個(gè)8位特位特殊功能寄存器,殊功能寄存器,DPTR是可以訪問的是
21、可以訪問的。 3. 指令寄存器指令寄存器IR、指令譯碼器及控制邏輯、指令譯碼器及控制邏輯 IR是用來存放指令操作碼的專用寄存器。執(zhí)行程是用來存放指令操作碼的專用寄存器。執(zhí)行程序時(shí),首先進(jìn)行程序存儲器的讀操作,也就是根據(jù)程序時(shí),首先進(jìn)行程序存儲器的讀操作,也就是根據(jù)程序計(jì)數(shù)器給出的地址從程序存儲器中取出指令,送指序計(jì)數(shù)器給出的地址從程序存儲器中取出指令,送指令寄存器令寄存器IR,IR的輸出送指令譯碼器;的輸出送指令譯碼器;指令譯碼器對該指令進(jìn)行譯碼,譯碼結(jié)果送定時(shí)控指令譯碼器對該指令進(jìn)行譯碼,譯碼結(jié)果送定時(shí)控制邏輯電路,如制邏輯電路,如圖圖24所示。所示。 定時(shí)控制邏輯電路則根據(jù)指令的性質(zhì)發(fā)出一
22、系列定時(shí)定時(shí)控制邏輯電路則根據(jù)指令的性質(zhì)發(fā)出一系列定時(shí)控制信號,控制計(jì)算機(jī)的各組成部件進(jìn)行相應(yīng)的工作,執(zhí)控制信號,控制計(jì)算機(jī)的各組成部件進(jìn)行相應(yīng)的工作,執(zhí)行指令。行指令。條件轉(zhuǎn)移邏輯電路主要用來控制程序的分支轉(zhuǎn)移。條件轉(zhuǎn)移邏輯電路主要用來控制程序的分支轉(zhuǎn)移。轉(zhuǎn)移條件分為兩部分:轉(zhuǎn)移條件分為兩部分:內(nèi)部條件,程序狀態(tài)標(biāo)志位(內(nèi)部條件,程序狀態(tài)標(biāo)志位(PSW)和累加器的零狀態(tài);)和累加器的零狀態(tài); 外部條件,外部條件,F(xiàn)0和所有位尋址空間的狀態(tài)。和所有位尋址空間的狀態(tài)。 2.3.2 運(yùn)算器運(yùn)算器運(yùn)算器主要用來實(shí)現(xiàn)對操作數(shù)的算術(shù)邏輯運(yùn)算和位操作的。運(yùn)算器主要用來實(shí)現(xiàn)對操作數(shù)的算術(shù)邏輯運(yùn)算和位操作的。
23、對傳送到對傳送到CPU的數(shù)據(jù)進(jìn)行加、減、乘、除、比較、的數(shù)據(jù)進(jìn)行加、減、乘、除、比較、BCD碼校碼校正等算術(shù)運(yùn)算。正等算術(shù)運(yùn)算?!芭c與”、“或或”、“異或異或”等邏輯操作;移位、置位、清零、等邏輯操作;移位、置位、清零、取反、加取反、加1、減、減1等操作。等操作。80C51的的ALU還具有極強(qiáng)的位處理功能,如位置還具有極強(qiáng)的位處理功能,如位置1、位清零、位清零、位位“與與”、位、位“或或”等操作,對等操作,對“面向控制面向控制”特別有用。特別有用。 運(yùn)算器主要包括算術(shù)邏輯運(yùn)算單元運(yùn)算器主要包括算術(shù)邏輯運(yùn)算單元ALUALU、累加器、累加器A A、暫存寄、暫存寄存器、存器、B B寄存器、程序狀態(tài)標(biāo)
24、志寄存器寄存器、程序狀態(tài)標(biāo)志寄存器PSWPSW以及以及BCDBCD碼運(yùn)算修正電碼運(yùn)算修正電路等。路等。ALU有兩個(gè)輸入:有兩個(gè)輸入: 通過暫存器通過暫存器1的輸入:輸入數(shù)據(jù)來自寄存器、直接尋的輸入:輸入數(shù)據(jù)來自寄存器、直接尋址單元(含址單元(含I/O口)、內(nèi)部口)、內(nèi)部RAM、寄存器、寄存器B或是立即數(shù)。或是立即數(shù)。 通過暫存器通過暫存器 2或累加器或累加器 的輸入:通過暫存器的輸入:通過暫存器 2的運(yùn)算的運(yùn)算的指令有的指令有 ANL direct, data ORL direct, data XRL direct,data其它的運(yùn)算,其輸入之一大多數(shù)也要通過累加器其它的運(yùn)算,其輸入之一大多數(shù)
25、也要通過累加器。 ALU有兩個(gè)輸出有兩個(gè)輸出: 數(shù)據(jù)經(jīng)過運(yùn)算后,其結(jié)果又通過內(nèi)部總數(shù)據(jù)經(jīng)過運(yùn)算后,其結(jié)果又通過內(nèi)部總線送回到累加器中;線送回到累加器中; 數(shù)據(jù)運(yùn)算后產(chǎn)生的標(biāo)志位輸出至程序狀數(shù)據(jù)運(yùn)算后產(chǎn)生的標(biāo)志位輸出至程序狀態(tài)字態(tài)字 PSW。2. 累加器累加器A簡稱簡稱ACC或或A寄存器。寄存器。主要功能:累加器主要功能:累加器A存放操作數(shù),是存放操作數(shù),是ALU單元單元的輸入之一,也是的輸入之一,也是ALU運(yùn)算結(jié)果的暫存單元。運(yùn)算結(jié)果的暫存單元。單片微機(jī)中大部分?jǐn)?shù)據(jù)操作都要通過累加器單片微機(jī)中大部分?jǐn)?shù)據(jù)操作都要通過累加器A進(jìn)行,容易產(chǎn)生進(jìn)行,容易產(chǎn)生“瓶頸瓶頸”現(xiàn)象。現(xiàn)象。 3B寄存器寄存器
26、乘法中,乘法中,ALU的兩個(gè)輸入分別為的兩個(gè)輸入分別為A、B,運(yùn)算結(jié)果,運(yùn)算結(jié)果,A中放積的低中放積的低8位,位,B中放積的高中放積的高8位。位。 除法中,被除數(shù)取自除法中,被除數(shù)取自A,除數(shù)取自,除數(shù)取自B,商數(shù)存放于,商數(shù)存放于A,余,余數(shù)存放于數(shù)存放于B。 在其它情況下,在其它情況下,B寄存器可以作為內(nèi)部寄存器可以作為內(nèi)部RAM中的一個(gè)單中的一個(gè)單元來使用。元來使用。 4. 程序狀態(tài)字程序狀態(tài)字PSW (Program Status Word) 主要部分是算術(shù)邏輯運(yùn)算單元(主要部分是算術(shù)邏輯運(yùn)算單元(ALU)的輸出。其)的輸出。其中有些位中有些位(如如F0)狀態(tài)可用軟件方法設(shè)定。狀態(tài)可用
27、軟件方法設(shè)定。 奇偶校驗(yàn)位奇偶校驗(yàn)位P、溢出標(biāo)志位、溢出標(biāo)志位OV、輔助進(jìn)位標(biāo)志位、輔助進(jìn)位標(biāo)志位AC及進(jìn)及進(jìn)位標(biāo)志位位標(biāo)志位CY都是都是ALU運(yùn)算結(jié)果的直接輸出。運(yùn)算結(jié)果的直接輸出。 CYAC F0 RS1RS0OVP (1) P 奇偶標(biāo)志位奇偶標(biāo)志位 每個(gè)指令周期都由硬件來置位或清除。每個(gè)指令周期都由硬件來置位或清除。 用以表示累加器用以表示累加器A中值為中值為1的個(gè)數(shù)的奇偶性:若累的個(gè)數(shù)的奇偶性:若累加器值為加器值為1的位數(shù)是奇數(shù),的位數(shù)是奇數(shù),P置位(奇校驗(yàn));否則置位(奇校驗(yàn));否則P清清除除(偶校驗(yàn)偶校驗(yàn)) 。如如(A)=00001010,則,則P=0。在串行通信中,常以傳送奇偶校
28、驗(yàn)位來檢驗(yàn)傳輸數(shù)據(jù)的在串行通信中,常以傳送奇偶校驗(yàn)位來檢驗(yàn)傳輸數(shù)據(jù)的可靠性??煽啃?。 (2) OV 溢出標(biāo)志位溢出標(biāo)志位 當(dāng)執(zhí)行運(yùn)算指令時(shí),由硬件置位或清除,當(dāng)執(zhí)行運(yùn)算指令時(shí),由硬件置位或清除,OV置位置位表示運(yùn)算結(jié)果超出了目的寄存器表示運(yùn)算結(jié)果超出了目的寄存器A所能表示的帶符號數(shù)所能表示的帶符號數(shù)的范圍(一的范圍(一128127)。)。 若以若以Ci表示位表示位 i向位向位il有進(jìn)位,則有進(jìn)位,則OV=C6 C7;當(dāng)位當(dāng)位6向位向位7有進(jìn)位有進(jìn)位(借位借位)而位而位7不向不向CY進(jìn)位進(jìn)位(借位借位)時(shí);或時(shí);或當(dāng)位當(dāng)位7向向C進(jìn)位進(jìn)位(借位借位)而位而位6不向位不向位7進(jìn)位進(jìn)位(借位借位)時(shí)
29、,時(shí),OV標(biāo)標(biāo)志置位,表示帶符號數(shù)運(yùn)算時(shí)運(yùn)算結(jié)果是錯(cuò)誤的;否則,志置位,表示帶符號數(shù)運(yùn)算時(shí)運(yùn)算結(jié)果是錯(cuò)誤的;否則,清除清除OV標(biāo)志,運(yùn)算結(jié)果正確。標(biāo)志,運(yùn)算結(jié)果正確。 對于對于MUL乘法,當(dāng)乘法,當(dāng)A、B兩個(gè)乘數(shù)的積超過兩個(gè)乘數(shù)的積超過255時(shí)時(shí)OV置位;否則,置位;否則,OV0。若。若OV0時(shí),只需從時(shí),只需從A寄存器中取積。寄存器中取積。 對于對于DIV除法,若除數(shù)為除法,若除數(shù)為0時(shí),時(shí),OV=1;否則,;否則,OV=0。 (3) RS1、RS0 工作寄存器組選擇位工作寄存器組選擇位用于設(shè)定當(dāng)前工作寄存器的組號。工作寄存器用于設(shè)定當(dāng)前工作寄存器的組號。工作寄存器共有共有4組,其對應(yīng)關(guān)系見
30、組,其對應(yīng)關(guān)系見表表21 (4)AC 輔助進(jìn)位標(biāo)志位輔助進(jìn)位標(biāo)志位 當(dāng)進(jìn)行加法或減法運(yùn)算時(shí),若低當(dāng)進(jìn)行加法或減法運(yùn)算時(shí),若低4位向高位向高4位數(shù)位數(shù)發(fā)生進(jìn)位或借位時(shí),發(fā)生進(jìn)位或借位時(shí),AC將被硬件置位;否則,被清將被硬件置位;否則,被清除。除。 在十進(jìn)制調(diào)整指令在十進(jìn)制調(diào)整指令DA中要用到中要用到AC標(biāo)志位狀態(tài)。標(biāo)志位狀態(tài)。 (5) CY 進(jìn)位標(biāo)志位。進(jìn)位標(biāo)志位。在進(jìn)行算術(shù)運(yùn)算時(shí),可以被硬件置位或清除,以表在進(jìn)行算術(shù)運(yùn)算時(shí),可以被硬件置位或清除,以表示運(yùn)算結(jié)果中高位是否有進(jìn)位或借位。示運(yùn)算結(jié)果中高位是否有進(jìn)位或借位。在布爾處理機(jī)中在布爾處理機(jī)中CY被認(rèn)為是位累加器。被認(rèn)為是位累加器。 (6)F
31、0 用戶標(biāo)志位。用戶標(biāo)志位。開機(jī)時(shí)該位為開機(jī)時(shí)該位為“0”。用戶可根據(jù)需要,通過位操作指令置用戶可根據(jù)需要,通過位操作指令置“l(fā)”或者清或者清“0”。 2.3.3 時(shí)鐘電路及時(shí)鐘電路及CPU的工作時(shí)序的工作時(shí)序時(shí)鐘電路用于產(chǎn)生單片微機(jī)工作所需要的時(shí)時(shí)鐘電路用于產(chǎn)生單片微機(jī)工作所需要的時(shí)鐘信號,而時(shí)序所研究的是指令執(zhí)行中各信號之間鐘信號,而時(shí)序所研究的是指令執(zhí)行中各信號之間的相互關(guān)系。的相互關(guān)系。單片微機(jī)本身就如一個(gè)復(fù)雜的同步時(shí)序電路,單片微機(jī)本身就如一個(gè)復(fù)雜的同步時(shí)序電路,為了保證同步工作方式的實(shí)現(xiàn),電路應(yīng)在唯一的時(shí)為了保證同步工作方式的實(shí)現(xiàn),電路應(yīng)在唯一的時(shí)鐘信號控制下嚴(yán)格地按時(shí)序進(jìn)行工作。
32、鐘信號控制下嚴(yán)格地按時(shí)序進(jìn)行工作。 1. 時(shí)鐘電路時(shí)鐘電路 在在80C51內(nèi)帶有時(shí)鐘電路,只需要在片外通過內(nèi)帶有時(shí)鐘電路,只需要在片外通過XTALI和和XTAL2引腳接入定時(shí)控制元件(晶體振蕩器和電容),即引腳接入定時(shí)控制元件(晶體振蕩器和電容),即可構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。在可構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。在80C51芯片內(nèi)部有一個(gè)高芯片內(nèi)部有一個(gè)高增益反相放大器,而在芯片的外部,增益反相放大器,而在芯片的外部,XTAL1和和XTAL2之間之間跨接晶體振蕩器和微調(diào)電容??缃泳w振蕩器和微調(diào)電容。80C51的時(shí)鐘電路如的時(shí)鐘電路如圖圖26所示。所示。 時(shí)鐘電路由下列幾部分組成:振蕩器及定時(shí)控制時(shí)
33、鐘電路由下列幾部分組成:振蕩器及定時(shí)控制元件、時(shí)鐘發(fā)生器、地址鎖存允許信號元件、時(shí)鐘發(fā)生器、地址鎖存允許信號 ALE。 (1) 振蕩器及定時(shí)控制元件振蕩器及定時(shí)控制元件 在在80C51芯片內(nèi)部有一個(gè)高增益反相放大器,其輸入端為引芯片內(nèi)部有一個(gè)高增益反相放大器,其輸入端為引腳腳XTAL1,其輸出端為引腳,其輸出端為引腳XTAL2。 需要在片外通過需要在片外通過XTAL1和和XTAL2引腳跨接晶體振蕩器和微引腳跨接晶體振蕩器和微調(diào)電容,形成反饋電路,振蕩器即可工作。振蕩器的結(jié)構(gòu)和調(diào)電容,形成反饋電路,振蕩器即可工作。振蕩器的結(jié)構(gòu)和振蕩電路原理如振蕩電路原理如圖圖27所示。所示。振蕩器的工作可以由振
34、蕩器的工作可以由PD位(特殊功能寄存器位(特殊功能寄存器PCON中的一位)控制。當(dāng)中的一位)控制。當(dāng)PD置置1時(shí),振蕩器停止工作,系統(tǒng)進(jìn)入時(shí),振蕩器停止工作,系統(tǒng)進(jìn)入低功耗工作狀態(tài)。低功耗工作狀態(tài)。 振蕩器的工作頻率一般在振蕩器的工作頻率一般在1.212 MHz之間,之間,有些單片微機(jī)的頻率范圍高端可達(dá)有些單片微機(jī)的頻率范圍高端可達(dá)40 MHz,低,低端可達(dá)端可達(dá)0Hz。在由多片單片微機(jī)組成的系統(tǒng)中,為了各單片在由多片單片微機(jī)組成的系統(tǒng)中,為了各單片微機(jī)之間時(shí)鐘信號的同步,應(yīng)當(dāng)引入唯一的公微機(jī)之間時(shí)鐘信號的同步,應(yīng)當(dāng)引入唯一的公用外部脈沖信號作為各單片微機(jī)的振蕩脈沖。用外部脈沖信號作為各單片微
35、機(jī)的振蕩脈沖。 (2) 內(nèi)部時(shí)鐘發(fā)生器內(nèi)部時(shí)鐘發(fā)生器內(nèi)部時(shí)鐘發(fā)生器實(shí)質(zhì)上是一個(gè)內(nèi)部時(shí)鐘發(fā)生器實(shí)質(zhì)上是一個(gè)2分頻的觸發(fā)器。其輸入分頻的觸發(fā)器。其輸入由振蕩器引入的,輸出為兩個(gè)節(jié)拍的時(shí)鐘信號。輸出的前半由振蕩器引入的,輸出為兩個(gè)節(jié)拍的時(shí)鐘信號。輸出的前半周期,節(jié)拍周期,節(jié)拍1(P1)信號有效;后半周期,節(jié)拍)信號有效;后半周期,節(jié)拍2(P2)信號)信號有效。每個(gè)輸出周期為一個(gè)計(jì)算機(jī)有效。每個(gè)輸出周期為一個(gè)計(jì)算機(jī)CPU的狀態(tài)周期,即時(shí)鐘的狀態(tài)周期,即時(shí)鐘發(fā)生器的輸出為狀態(tài)時(shí)鐘。每個(gè)狀態(tài)周期內(nèi)包括一個(gè)發(fā)生器的輸出為狀態(tài)時(shí)鐘。每個(gè)狀態(tài)周期內(nèi)包括一個(gè)P1節(jié)拍節(jié)拍和一個(gè)和一個(gè)P2節(jié)拍,形成節(jié)拍,形成CPU內(nèi)
36、的基本定時(shí)時(shí)鐘。內(nèi)的基本定時(shí)時(shí)鐘。 (3) ALE信號信號狀態(tài)時(shí)鐘經(jīng)過狀態(tài)時(shí)鐘經(jīng)過3分頻之后,產(chǎn)生分頻之后,產(chǎn)生ALE引腳上的信號輸出。引腳上的信號輸出。 2時(shí)序定時(shí)單位時(shí)序定時(shí)單位 時(shí)序是用定時(shí)單位來說明的。時(shí)序是用定時(shí)單位來說明的。80C51的時(shí)序定時(shí)單的時(shí)序定時(shí)單位共有位共有4個(gè):節(jié)拍、狀態(tài)、機(jī)器周期和指令周期。個(gè):節(jié)拍、狀態(tài)、機(jī)器周期和指令周期。(1)節(jié)拍節(jié)拍P 振蕩脈沖的周期稱為節(jié)拍振蕩脈沖的周期稱為節(jié)拍。(2) 狀態(tài)狀態(tài)S 一個(gè)狀態(tài)一個(gè)狀態(tài)S包含兩個(gè)節(jié)拍,其前半周期對應(yīng)的節(jié)拍包含兩個(gè)節(jié)拍,其前半周期對應(yīng)的節(jié)拍叫叫P1,后半周期對應(yīng)的節(jié)拍叫,后半周期對應(yīng)的節(jié)拍叫P2 。(3) 機(jī)器周
37、期機(jī)器周期80C51采用定時(shí)控制方式,有固定的機(jī)器周期。采用定時(shí)控制方式,有固定的機(jī)器周期。規(guī)定一個(gè)機(jī)器周期的寬度為規(guī)定一個(gè)機(jī)器周期的寬度為6個(gè)狀態(tài),并依次表示為個(gè)狀態(tài),并依次表示為S1S6。一個(gè)機(jī)器周期共有。一個(gè)機(jī)器周期共有12個(gè)振蕩脈沖周期,是振個(gè)振蕩脈沖周期,是振蕩脈沖的蕩脈沖的12分頻。分頻。 機(jī)器周期是單片微機(jī)的最小時(shí)間單位。機(jī)器周期是單片微機(jī)的最小時(shí)間單位。(4) 指令周期指令周期執(zhí)行一條指令所需要的時(shí)間稱為指令周期。執(zhí)行一條指令所需要的時(shí)間稱為指令周期。它是最大的時(shí)序定時(shí)單位。它是最大的時(shí)序定時(shí)單位。80C51的指令周期的指令周期根據(jù)指令的不同,可包含有根據(jù)指令的不同,可包含有1
38、、2、3、4個(gè)機(jī)器個(gè)機(jī)器周期。周期。3. 80C51指令時(shí)序指令時(shí)序 80C51共有共有111條指令,全部指令按其長度可分條指令,全部指令按其長度可分為單字節(jié)指令、雙字節(jié)指令和三字節(jié)指令。為單字節(jié)指令、雙字節(jié)指令和三字節(jié)指令。 圖圖28所表示的是幾種典型單機(jī)器周期和雙機(jī)器所表示的是幾種典型單機(jī)器周期和雙機(jī)器周期指令的時(shí)序。周期指令的時(shí)序。 (1) 單機(jī)器周期指令,如單機(jī)器周期指令,如圖圖28(a)、()、(b)所示。)所示。 雙字節(jié)時(shí),執(zhí)行在雙字節(jié)時(shí),執(zhí)行在S1P2開始,操作碼被讀入指令寄開始,操作碼被讀入指令寄存器;在存器;在S4P2時(shí),再讀入第二個(gè)字節(jié)。單字節(jié)時(shí),執(zhí)時(shí),再讀入第二個(gè)字節(jié)。單
39、字節(jié)時(shí),執(zhí)行在行在S1P2開始,操作碼被讀入指令寄存器;在開始,操作碼被讀入指令寄存器;在S4P2時(shí)仍有讀操作,但被讀入的字節(jié)(即下一操作碼)被時(shí)仍有讀操作,但被讀入的字節(jié)(即下一操作碼)被忽略,且此時(shí)忽略,且此時(shí)PC并不增量。并不增量。 以上兩種情況均在以上兩種情況均在S6P2時(shí)結(jié)束操作。時(shí)結(jié)束操作。 (2) 雙機(jī)器周期指令,如雙機(jī)器周期指令,如圖圖28(c)、()、(d)所示。)所示。雙字節(jié)時(shí),執(zhí)行在雙字節(jié)時(shí),執(zhí)行在S1P2開始,操作碼被讀入指令寄存器;開始,操作碼被讀入指令寄存器;在在S4P2時(shí),再讀入的字節(jié)被忽略。由時(shí),再讀入的字節(jié)被忽略。由S5開始送出外部數(shù)據(jù)存儲器開始送出外部數(shù)據(jù)存
40、儲器的地址,隨后是讀或?qū)懙牟僮?。在讀、寫期間,的地址,隨后是讀或?qū)懙牟僮?。在讀、寫期間,ALE不輸出有效不輸出有效信號。信號。 在第二個(gè)機(jī)器周期,片外數(shù)據(jù)存儲器也尋址和選通,但不產(chǎn)生在第二個(gè)機(jī)器周期,片外數(shù)據(jù)存儲器也尋址和選通,但不產(chǎn)生取指操作。取指操作。 單字節(jié)時(shí),執(zhí)行在單字節(jié)時(shí),執(zhí)行在S1P2開始,在整個(gè)兩個(gè)機(jī)器周期中,共發(fā)生開始,在整個(gè)兩個(gè)機(jī)器周期中,共發(fā)生4次讀操作,但是后次讀操作,但是后3次操作都無效。次操作都無效。 一般,算術(shù)一般,算術(shù)/邏輯操作發(fā)生在節(jié)拍邏輯操作發(fā)生在節(jié)拍1期間,內(nèi)部寄存器對寄存器期間,內(nèi)部寄存器對寄存器的傳送發(fā)生在節(jié)拍的傳送發(fā)生在節(jié)拍2期間。期間。 圖中的圖中的
41、ALE信號是為地址鎖存而定義的,該信號每信號是為地址鎖存而定義的,該信號每有效一次對應(yīng)單片微機(jī)進(jìn)行一次讀指令操作。有效一次對應(yīng)單片微機(jī)進(jìn)行一次讀指令操作。在一個(gè)機(jī)器周期中,在一個(gè)機(jī)器周期中,ALE信號兩次有效,第一次在信號兩次有效,第一次在S1P2和和S2P1期間,第二次在期間,第二次在S4P2和和S5P1期間,有效期間,有效寬度為一個(gè)狀態(tài)周期寬度為一個(gè)狀態(tài)周期S。(1)單字節(jié)單周期指令單字節(jié)單周期指令(例如(例如 INC A) 只需進(jìn)行一次讀指令操作。當(dāng)?shù)诙€(gè)只需進(jìn)行一次讀指令操作。當(dāng)?shù)诙€(gè)ALE有效時(shí),由于有效時(shí),由于PC沒有加沒有加1,所以讀出的還是原指令。,所以讀出的還是原指令。(2)
42、雙字節(jié)單周期指令雙字節(jié)單周期指令(例如(例如 ADD A,data) ALE的兩次讀操作都是有效的,第一次是讀指令操作碼,的兩次讀操作都是有效的,第一次是讀指令操作碼,第二次是讀指令第二字節(jié)。第二次是讀指令第二字節(jié)。(3)單字節(jié)雙周期指令單字節(jié)雙周期指令(例如(例如 INC DPTR) 兩個(gè)機(jī)器周期共進(jìn)行兩個(gè)機(jī)器周期共進(jìn)行4次讀指令的操作,但其中后次讀指令的操作,但其中后3次的讀操作次的讀操作全是無效的。全是無效的。 (4) 單字節(jié)雙周期指令單字節(jié)雙周期指令(例如(例如MOVX類指令)類指令)執(zhí)行執(zhí)行MOVX類指令時(shí),先在類指令時(shí),先在ROM讀取指令,然后對外部讀取指令,然后對外部RAM進(jìn)行讀
43、進(jìn)行讀/寫操作。寫操作。第一機(jī)器周期時(shí),與其它指令一樣,第一次讀指令(操作碼)有第一機(jī)器周期時(shí),與其它指令一樣,第一次讀指令(操作碼)有效,第二次讀指令操作無效。效,第二次讀指令操作無效。第二周期時(shí),進(jìn)行外部第二周期時(shí),進(jìn)行外部RAM訪問,此時(shí)與訪問,此時(shí)與ALE信號無關(guān),不產(chǎn)生信號無關(guān),不產(chǎn)生讀指令操作。讀指令操作。2.4 存儲器結(jié)構(gòu)和地址空間存儲器結(jié)構(gòu)和地址空間單片微機(jī)的存儲器有兩種基本結(jié)構(gòu):單片微機(jī)的存儲器有兩種基本結(jié)構(gòu):普林斯頓(普林斯頓(Princeton)結(jié)構(gòu):程序和數(shù)據(jù)合用一個(gè)存)結(jié)構(gòu):程序和數(shù)據(jù)合用一個(gè)存儲器空間的結(jié)構(gòu);儲器空間的結(jié)構(gòu); 哈佛(哈佛(Haryard)結(jié)構(gòu):程序存
44、儲器和數(shù)據(jù)存儲器)結(jié)構(gòu):程序存儲器和數(shù)據(jù)存儲器截然分開,分別尋址的結(jié)構(gòu)。截然分開,分別尋址的結(jié)構(gòu)。80C51系列采用哈佛結(jié)構(gòu)。系列采用哈佛結(jié)構(gòu)。圖圖29為為80C51存儲器映象圖。存儲器映象圖。在物理上設(shè)有在物理上設(shè)有4個(gè)存儲器空間個(gè)存儲器空間 程序存儲器:程序存儲器:片內(nèi)程序存儲器;片內(nèi)程序存儲器;片外程序存儲器。片外程序存儲器。 數(shù)據(jù)存儲器:數(shù)據(jù)存儲器:片內(nèi)數(shù)據(jù)存儲器;片內(nèi)數(shù)據(jù)存儲器; 片外數(shù)據(jù)存儲器。片外數(shù)據(jù)存儲器。 在邏輯上設(shè)有在邏輯上設(shè)有3個(gè)存儲器地址空間個(gè)存儲器地址空間 片內(nèi)、片外統(tǒng)一的片內(nèi)、片外統(tǒng)一的 64 KB程序存儲器地址空間;程序存儲器地址空間; 片內(nèi)片內(nèi)256(80C52
45、 為為384)B數(shù)據(jù)存儲器地址空間;數(shù)據(jù)存儲器地址空間; 片外片外64 KB的數(shù)據(jù)存儲器地址空間。的數(shù)據(jù)存儲器地址空間。 片內(nèi)數(shù)據(jù)存儲器空間,在物理上又包含兩部分:片內(nèi)數(shù)據(jù)存儲器空間,在物理上又包含兩部分: 80C51:0127B為片內(nèi)數(shù)據(jù)存儲器空間;為片內(nèi)數(shù)據(jù)存儲器空間; 128255B為特殊功能寄存器空間。為特殊功能寄存器空間。 80C52:0127 B為片內(nèi)數(shù)據(jù)存儲器空間;為片內(nèi)數(shù)據(jù)存儲器空間; 128255B共共128個(gè)字節(jié)是數(shù)據(jù)存儲器和特殊個(gè)字節(jié)是數(shù)據(jù)存儲器和特殊 功能寄存器地址重疊空間。功能寄存器地址重疊空間。80C51有三種基本的尋址空間:有三種基本的尋址空間: 64 KB的片內(nèi)
46、、外程序存儲器尋址空間;的片內(nèi)、外程序存儲器尋址空間; 64 KB的片外數(shù)據(jù)存儲器尋址空間;的片外數(shù)據(jù)存儲器尋址空間; 256(或(或384)B的片內(nèi)數(shù)據(jù)存儲器尋址空間,的片內(nèi)數(shù)據(jù)存儲器尋址空間,其中包括特殊功能寄存器尋址空間。其中包括特殊功能寄存器尋址空間。 2.4.l 程序存儲器程序存儲器用于存放經(jīng)調(diào)試正確的應(yīng)用程序和表格之類的固定常數(shù)。用于存放經(jīng)調(diào)試正確的應(yīng)用程序和表格之類的固定常數(shù)。采用采用16位的程序計(jì)數(shù)器位的程序計(jì)數(shù)器 PC和和16位的地址總線,可擴(kuò)展的地址空位的地址總線,可擴(kuò)展的地址空間為間為64 KB。 程序存儲器分為片內(nèi)和片外兩部分。程序存儲器分為片內(nèi)和片外兩部分。EA引腳接
47、高電平時(shí),程序從片內(nèi)程序存儲器引腳接高電平時(shí),程序從片內(nèi)程序存儲器0000H開始執(zhí)行;開始執(zhí)行;當(dāng)當(dāng)PC值超出片內(nèi)值超出片內(nèi)程序存儲器程序存儲器容量時(shí),會自動(dòng)轉(zhuǎn)向片外程序存儲容量時(shí),會自動(dòng)轉(zhuǎn)向片外程序存儲器空間執(zhí)行。器空間執(zhí)行。 EA引腳接低電平時(shí),迫使系統(tǒng)全部執(zhí)行片外程序存儲器引腳接低電平時(shí),迫使系統(tǒng)全部執(zhí)行片外程序存儲器0000H開始存放的程序。開始存放的程序。 對于片內(nèi)無對于片內(nèi)無ROM的的80C31/80C32,應(yīng)將,應(yīng)將EA引腳固定接低電平,引腳固定接低電平,以迫使系統(tǒng)全部執(zhí)行片外程序存儲器程序。以迫使系統(tǒng)全部執(zhí)行片外程序存儲器程序。 程序存儲器的特定的程序入口地址程序存儲器的特定的
48、程序入口地址 由于系統(tǒng)復(fù)位后的由于系統(tǒng)復(fù)位后的PC地址為地址為0000H,故系統(tǒng)從,故系統(tǒng)從0000H單元開始取指,執(zhí)行程序。從單元開始取指,執(zhí)行程序。從0003H002DH單元被保留用于單元被保留用于6個(gè)中斷源的中斷服務(wù)程序個(gè)中斷源的中斷服務(wù)程序的入口地址。的入口地址。 復(fù)位復(fù)位0000H 外部中斷外部中斷0 0003H 計(jì)時(shí)器計(jì)時(shí)器T0溢出溢出 000BH 外部中斷外部中斷1 0013H 計(jì)時(shí)器計(jì)時(shí)器T1溢出溢出 001BH 串行口中斷串行口中斷 0023H 計(jì)時(shí)器計(jì)時(shí)器 T2/T2EX002BH(80C52) 片內(nèi)程序存儲器片內(nèi)程序存儲器 類型有:掩膜類型有:掩膜ROM、OTPROM和和
49、MTPROM(包(包括括EPROM及及E2PROM等)。等)。 87C51中為中為4KB的可編程、可改寫的只讀存儲器的可編程、可改寫的只讀存儲器EPROM;89C51中為中為4KB的可編程、可改寫的只讀存儲器的可編程、可改寫的只讀存儲器EEPROM;80C31片內(nèi)沒有程序存儲器,使用時(shí)必須由片外進(jìn)行擴(kuò)展。片內(nèi)沒有程序存儲器,使用時(shí)必須由片外進(jìn)行擴(kuò)展。片內(nèi)程序存儲器的容量目前已達(dá)到片內(nèi)程序存儲器的容量目前已達(dá)到 62KB。數(shù)據(jù)存儲器由數(shù)據(jù)存儲器由RAM構(gòu)成,用來存放隨機(jī)數(shù)據(jù)。構(gòu)成,用來存放隨機(jī)數(shù)據(jù)。 片內(nèi)數(shù)據(jù)存儲器地址只有片內(nèi)數(shù)據(jù)存儲器地址只有8位,最大尋址范圍為位,最大尋址范圍為256個(gè)字節(jié)。
50、個(gè)字節(jié)。片外數(shù)據(jù)存儲器有片外數(shù)據(jù)存儲器有16位數(shù)據(jù)指針位數(shù)據(jù)指針DPTR,用于訪,用于訪問。問。80C51具有具有64KB的數(shù)據(jù)存儲器擴(kuò)展能力。的數(shù)據(jù)存儲器擴(kuò)展能力。2.4.2 內(nèi)部數(shù)據(jù)存儲器內(nèi)部數(shù)據(jù)存儲器片內(nèi)數(shù)據(jù)存儲器在物理上又分成兩個(gè)獨(dú)立的功能不同的區(qū)。片內(nèi)數(shù)據(jù)存儲器在物理上又分成兩個(gè)獨(dú)立的功能不同的區(qū)。 片內(nèi)數(shù)據(jù)片內(nèi)數(shù)據(jù)RAM區(qū):對區(qū):對80C51,為,為0 127B; 對對80C52,為,為0255B。 特殊功能寄存器特殊功能寄存器SFR區(qū):地址空間的高區(qū):地址空間的高 128 B。對于對于80C52,高,高128B的的RAM區(qū)和區(qū)和SFR區(qū)的地址空間區(qū)的地址空間是重疊的。訪問高是重疊
51、的。訪問高 128B RAM區(qū)時(shí),選用間接尋址方式;區(qū)時(shí),選用間接尋址方式;訪問訪問SFR區(qū),則應(yīng)選用直接尋址方式。區(qū),則應(yīng)選用直接尋址方式。圖圖2-10為片內(nèi)數(shù)據(jù)存儲器的地址空間分布圖。為片內(nèi)數(shù)據(jù)存儲器的地址空間分布圖。 片內(nèi)數(shù)據(jù)片內(nèi)數(shù)據(jù)RAM區(qū)區(qū) 工作寄存器區(qū)工作寄存器區(qū)用寄存器直接尋址的區(qū)域,用寄存器直接尋址的區(qū)域, 從從圖圖 210中可知,其中片內(nèi)數(shù)據(jù)中可知,其中片內(nèi)數(shù)據(jù) RAM區(qū)的區(qū)的 031(00H1FH),共),共 32個(gè)單元,是個(gè)單元,是 4個(gè)通用工作寄存器個(gè)通用工作寄存器組(組(表表2l),每個(gè)組包含),每個(gè)組包含 8個(gè)個(gè) 8位寄存器,編號為位寄存器,編號為 R0R7。 在某
52、一時(shí)刻,只能選用一個(gè)寄存器組使用。其選擇是通在某一時(shí)刻,只能選用一個(gè)寄存器組使用。其選擇是通過軟件對程序狀態(tài)字(過軟件對程序狀態(tài)字(PSW)中的)中的RS0、RS1兩位的設(shè)置兩位的設(shè)置來實(shí)現(xiàn)的。若來實(shí)現(xiàn)的。若RS0、RS1均為均為0,則選用工作寄存器,則選用工作寄存器0組為組為當(dāng)前工作寄存器。當(dāng)前工作寄存器。累加器累加器ACC、B、DPTR及及CY(布爾處理器的累加器)一(布爾處理器的累加器)一般也作為寄存器對待。般也作為寄存器對待。寄存器寄存器R0、R1 通常用做間接尋址時(shí)的地址指針。通常用做間接尋址時(shí)的地址指針。 位尋址區(qū)位尋址區(qū) 從片內(nèi)數(shù)據(jù)從片內(nèi)數(shù)據(jù)RAM區(qū)的區(qū)的3247(20H2FH)
53、的)的16個(gè)字節(jié)單元,共包含個(gè)字節(jié)單元,共包含128位,是可位尋址的位,是可位尋址的RAM區(qū)。區(qū)。這這16個(gè)字節(jié)單元,既可進(jìn)行字節(jié)尋址,又可位尋址。個(gè)字節(jié)單元,既可進(jìn)行字節(jié)尋址,又可位尋址。字節(jié)地址與位地址之間的關(guān)系見字節(jié)地址與位地址之間的關(guān)系見表表22。 可位尋址的特殊功能寄存器??晌粚ぶ返奶厥夤δ芗拇嫫鳌T谶@一存儲器空間所有位都具有位地址。在這一存儲器空間所有位都具有位地址。 字節(jié)尋址區(qū)字節(jié)尋址區(qū) 從片內(nèi)數(shù)據(jù)從片內(nèi)數(shù)據(jù)RAM區(qū)的區(qū)的48127(30H7FH),),共共80個(gè)字節(jié)單元,可以采用直接字節(jié)尋址的方法訪問。個(gè)字節(jié)單元,可以采用直接字節(jié)尋址的方法訪問。 對于對于 80C52,還有高,
54、還有高 128B的數(shù)據(jù)的數(shù)據(jù) RAM區(qū)。這一區(qū)。這一區(qū)域只能采用間接字節(jié)尋址的方法訪問。區(qū)域只能采用間接字節(jié)尋址的方法訪問。 堆棧區(qū)及堆棧區(qū)及堆棧指示器堆棧指示器SP (stack pointer) : 堆棧是在片內(nèi)數(shù)據(jù)堆棧是在片內(nèi)數(shù)據(jù)RAM區(qū)中,數(shù)據(jù)先進(jìn)后出或后進(jìn)區(qū)中,數(shù)據(jù)先進(jìn)后出或后進(jìn)先出的區(qū)域。先出的區(qū)域。 SP在在80C51中存放當(dāng)前的堆棧棧頂所指存儲單元地中存放當(dāng)前的堆棧棧頂所指存儲單元地址的一個(gè)址的一個(gè)8位寄存器。位寄存器。 堆棧有兩種形式,一是向上生成,二是向下生成。堆棧有兩種形式,一是向上生成,二是向下生成。80C51的堆棧是向上生成的:即進(jìn)棧時(shí)的堆棧是向上生成的:即進(jìn)棧時(shí)SP
55、的內(nèi)容是增加的內(nèi)容是增加的;出棧時(shí)的;出棧時(shí)SP的內(nèi)容是減少的。的內(nèi)容是減少的。系統(tǒng)復(fù)位后,系統(tǒng)復(fù)位后,SP內(nèi)容為內(nèi)容為07H,以,以07H為棧底,壓棧的內(nèi)為棧底,壓棧的內(nèi)容從容從08H單元開始存放。單元開始存放。堆棧是為子程序調(diào)用和中斷操作而設(shè)立的,具體功能:堆棧是為子程序調(diào)用和中斷操作而設(shè)立的,具體功能:保護(hù)斷點(diǎn)和保護(hù)現(xiàn)場。在保護(hù)斷點(diǎn)和保護(hù)現(xiàn)場。在80C51中,堆棧在子程序調(diào)用和中,堆棧在子程序調(diào)用和中斷時(shí)會把斷點(diǎn)地址自動(dòng)進(jìn)棧和出棧,還有對堆棧的進(jìn)棧中斷時(shí)會把斷點(diǎn)地址自動(dòng)進(jìn)棧和出棧,還有對堆棧的進(jìn)棧和出棧的指令(和出棧的指令(PUSH、POP)操作,用于保護(hù)現(xiàn)場和恢)操作,用于保護(hù)現(xiàn)場和恢
56、復(fù)現(xiàn)場。復(fù)現(xiàn)場。 子程序調(diào)用和中斷都允許嵌套,并可以多級嵌套,而現(xiàn)子程序調(diào)用和中斷都允許嵌套,并可以多級嵌套,而現(xiàn)場的保護(hù)也往往使用堆棧,要注意給堆棧以一定的深度。場的保護(hù)也往往使用堆棧,要注意給堆棧以一定的深度。 特殊功能寄存器特殊功能寄存器 SFR (Special Function Register)區(qū))區(qū) SFR是是80C51中各功能部件所對應(yīng)的寄存器,用以存中各功能部件所對應(yīng)的寄存器,用以存放相應(yīng)功能部件的控制命令、狀態(tài)或數(shù)據(jù)的區(qū)域。放相應(yīng)功能部件的控制命令、狀態(tài)或數(shù)據(jù)的區(qū)域。 80C51設(shè)有設(shè)有128B片內(nèi)數(shù)據(jù)片內(nèi)數(shù)據(jù)RAM結(jié)構(gòu)的特殊功能寄存器結(jié)構(gòu)的特殊功能寄存器空間區(qū)。除程序計(jì)數(shù)
57、器空間區(qū)。除程序計(jì)數(shù)器PC和和4個(gè)通用工作寄存器組外,其個(gè)通用工作寄存器組外,其余所有的寄存器都在這個(gè)地址空間之內(nèi)。余所有的寄存器都在這個(gè)地址空間之內(nèi)。80C51共定義了共定義了21個(gè)特殊功能寄存器,其名稱和個(gè)特殊功能寄存器,其名稱和字節(jié)地址列于字節(jié)地址列于表表23中。在中。在80C52中,除上述中,除上述80C51的的21個(gè)之外,還增加了個(gè)之外,還增加了5個(gè)特殊功能寄存器,共計(jì)個(gè)特殊功能寄存器,共計(jì)26個(gè)。個(gè)。在在80C51的的21個(gè)(個(gè)(80C52的的26個(gè))特殊功能寄存?zhèn)€)特殊功能寄存器中,字節(jié)地址中低位地址為器中,字節(jié)地址中低位地址為0H或或8H的特殊功能寄的特殊功能寄存器,除有字節(jié)尋
58、址能力外,還有位尋址能力。這些存器,除有字節(jié)尋址能力外,還有位尋址能力。這些特殊功能寄存器與位地址的對應(yīng)關(guān)系見特殊功能寄存器與位地址的對應(yīng)關(guān)系見表表24。2.4.3 片外數(shù)據(jù)存儲區(qū)片外數(shù)據(jù)存儲區(qū)在外部存放數(shù)據(jù)的區(qū)域,這一區(qū)域只能用寄存器在外部存放數(shù)據(jù)的區(qū)域,這一區(qū)域只能用寄存器間接尋址的方法訪問。指令助記符為間接尋址的方法訪問。指令助記符為MOVX。 當(dāng)用當(dāng)用R0、R1尋址時(shí),由于尋址時(shí),由于R0、R1為為8位寄存位寄存器,最大尋址范圍為器,最大尋址范圍為256B; 當(dāng)用當(dāng)用DPTR尋址時(shí),由于尋址時(shí),由于DPTR為為16位寄存器,位寄存器,最大尋址范圍為最大尋址范圍為64KB。2.5 并行輸
59、入并行輸入/輸出端口輸出端口80C51共有共有4個(gè)個(gè) 8位的并行雙向口,計(jì)有位的并行雙向口,計(jì)有 32根輸入根輸入輸出(輸出(I/O)口線。各口的每一位均由鎖存器、)口線。各口的每一位均由鎖存器、輸出驅(qū)動(dòng)器和輸入緩沖器所組成。由于它們在結(jié)構(gòu)輸出驅(qū)動(dòng)器和輸入緩沖器所組成。由于它們在結(jié)構(gòu)上的一些差異,故各口的性質(zhì)和功能也就有了差異。上的一些差異,故各口的性質(zhì)和功能也就有了差異。它們之間的異同列于它們之間的異同列于表表25。2.5.1 P0口口 多功能的多功能的8位口,字節(jié)訪問地址為位口,字節(jié)訪問地址為80H,位訪問地址,位訪問地址為為80H87H。 位結(jié)構(gòu)位結(jié)構(gòu) P0口位結(jié)構(gòu)原理圖見口位結(jié)構(gòu)原理圖
60、見圖圖211。 P0口中一個(gè)多路開關(guān):多路開關(guān)的輸入有兩個(gè),口中一個(gè)多路開關(guān):多路開關(guān)的輸入有兩個(gè),地址數(shù)據(jù)輸出;輸出鎖存器的輸出地址數(shù)據(jù)輸出;輸出鎖存器的輸出/Q。多路開關(guān)的。多路開關(guān)的輸出用于控制輸出輸出用于控制輸出FET Q0的導(dǎo)通和截止。多路開關(guān)的的導(dǎo)通和截止。多路開關(guān)的切換由內(nèi)部控制信號控制。切換由內(nèi)部控制信號控制。 P0口的輸出上拉電路導(dǎo)通和截止受內(nèi)部控制信號口的輸出上拉電路導(dǎo)通和截止受內(nèi)部控制信號和地址數(shù)據(jù)信號共同(相和地址數(shù)據(jù)信號共同(相“與與”)來控制。)來控制。 當(dāng)內(nèi)部信號置當(dāng)內(nèi)部信號置1時(shí),多路開關(guān)接通地址數(shù)據(jù)輸時(shí),多路開關(guān)接通地址數(shù)據(jù)輸出端。出端。當(dāng)?shù)刂窋?shù)據(jù)輸出線置當(dāng)?shù)?/p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手注塑機(jī)2024年度購銷合同范本2篇帶眉腳
- 2025版冷鏈物流貨車承包經(jīng)營合同范本3篇
- 2025年高端裝備制造業(yè)貨物采購運(yùn)輸合同3篇
- 二零二五年度2025場現(xiàn)代農(nóng)業(yè)科技應(yīng)用推廣合同3篇
- 二零二五年度城市綠化項(xiàng)目承包經(jīng)營合同賠償細(xì)則3篇
- 2025版建筑工程施工安全管理技術(shù)咨詢合同示范文本
- 二零二五年度彩鋼板房拆除工程廢棄物處置與資源化利用協(xié)議2篇
- 二零二五年度隧道工程安裝施工合同6篇
- 二零二五年度人工智能倫理與隱私保護(hù)合同法解讀
- 2025年度新型木材加工鋼材買賣居間服務(wù)與技術(shù)支持合同4篇
- 2024年國家焊工職業(yè)技能理論考試題庫(含答案)
- 特魯索綜合征
- 《向心力》 教學(xué)課件
- 結(jié)構(gòu)力學(xué)數(shù)值方法:邊界元法(BEM):邊界元法的基本原理與步驟
- 2024年山東省泰安市高考語文一模試卷
- 工程建設(shè)行業(yè)標(biāo)準(zhǔn)內(nèi)置保溫現(xiàn)澆混凝土復(fù)合剪力墻技術(shù)規(guī)程
- 北師大版物理九年級全一冊課件
- 2024年第三師圖木舒克市市場監(jiān)督管理局招錄2人《行政職業(yè)能力測驗(yàn)》高頻考點(diǎn)、難點(diǎn)(含詳細(xì)答案)
- RFJ 006-2021 RFP型人防過濾吸收器制造與驗(yàn)收規(guī)范(暫行)
- 盆腔炎教學(xué)查房課件
- 新概念英語課件NCE3-lesson15(共34張)
評論
0/150
提交評論