第二單片機(jī)設(shè)計(jì)系統(tǒng)基礎(chǔ)_第1頁
第二單片機(jī)設(shè)計(jì)系統(tǒng)基礎(chǔ)_第2頁
第二單片機(jī)設(shè)計(jì)系統(tǒng)基礎(chǔ)_第3頁
第二單片機(jī)設(shè)計(jì)系統(tǒng)基礎(chǔ)_第4頁
第二單片機(jī)設(shè)計(jì)系統(tǒng)基礎(chǔ)_第5頁
已閱讀5頁,還剩76頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第二章單片機(jī)系統(tǒng)設(shè)計(jì)基礎(chǔ)一、單片機(jī)與嵌入式計(jì)算機(jī)將CPU、存儲(chǔ)器、接口等部件集成在一塊芯片上的系統(tǒng)稱為單片機(jī)SCM (Single Chip Microcompute)。 從單片機(jī)誕生這天起,就與它的哥哥微型計(jì)算機(jī)系統(tǒng)分道揚(yáng)鑣。微型計(jì)算機(jī)系統(tǒng)走的是通用化的發(fā)展道路,也就是不斷增加自身的功能。而單片機(jī)走的是專用化的發(fā)展道路,即朝著控制器的方向發(fā)展,使計(jì)算機(jī)成為進(jìn)入人類社會(huì)全面智能化時(shí)代的有力工具。 1 1、關(guān)于嵌入式計(jì)算機(jī)嵌入式計(jì)算機(jī)就是“嵌入到對(duì)象體系中的專用計(jì)算機(jī)系統(tǒng)”。 由此可見,單片機(jī)是根據(jù)計(jì)算機(jī)的特殊結(jié)構(gòu)來命名的,而嵌入式計(jì)算機(jī)是根據(jù)計(jì)算機(jī)形態(tài)上來命名的。現(xiàn)在有一個(gè)趨勢(shì),就是將單片機(jī)統(tǒng)

2、一在嵌入式計(jì)算機(jī)名下。 2 2、單片機(jī)的歷史和發(fā)展在微型計(jì)算機(jī)系統(tǒng)跟著大型機(jī)、巨型機(jī)朝著通用性(多功能)方向狂奔的同時(shí),又開辟了另一條道路來發(fā)展。1976年Intel公司推出了世界上第一片單片機(jī)芯片8048。Intel 公司經(jīng)過不斷完善單片機(jī)產(chǎn)品,在1980年推出被業(yè)界公認(rèn)經(jīng)典產(chǎn)品MCS-51系列單片機(jī)。這是一款經(jīng)歷了近三十年,仍然是單片機(jī)領(lǐng)域內(nèi)的主流產(chǎn)品, 單片機(jī)的歷史和發(fā)展續(xù)又經(jīng)過4年的努力,1984年Intel公司研制出了高性能MCS-96系列單片機(jī)。 上世紀(jì)80年代和90年代是單片機(jī)迅速發(fā)展和應(yīng)用年代,各種單片機(jī)圍繞著應(yīng)用對(duì)象,不斷地在內(nèi)部添加外圍接口電路,如A/D轉(zhuǎn)換器 、D/A轉(zhuǎn)換

3、器 、PWM 、日歷時(shí)鐘、電源監(jiān)測(cè)、程序運(yùn)行監(jiān)測(cè)電路等。突出地顯示出單片機(jī)對(duì)其應(yīng)用對(duì)象的智能化控制能力。因此單片機(jī)的稱呼也逐漸從SCM變成微控制器MCU(Micro Controller Unit)。 單片機(jī)的歷史和發(fā)展續(xù)由于單片機(jī)或嵌入式計(jì)算機(jī)的應(yīng)用領(lǐng)域被不斷地拓展,應(yīng)用系統(tǒng)的外圍電路也不斷地被集成進(jìn)嵌入式計(jì)算機(jī)中,芯片最大化的趨勢(shì)十分明顯,由此,片上系統(tǒng)SoC (System on Chip) 的概念也應(yīng)運(yùn)而生。也就是將嵌入式應(yīng)用系統(tǒng)中的電路元器件盡可能地集成在一塊或幾塊芯片中,這樣做的好處是,應(yīng)用系統(tǒng)電路板非常簡(jiǎn)潔,減少體積和功耗,提高可靠性。 2 2、單片機(jī)產(chǎn)品的類型 1)51系列單片

4、機(jī)系列單片機(jī)Intel 公司在1980年推出被業(yè)界公認(rèn)經(jīng)典產(chǎn)品MCS-51系列單片機(jī)。這是一款經(jīng)歷了近三十年,仍然是單片機(jī)領(lǐng)域內(nèi)的主流產(chǎn)品,這不能不說是件了不起的事情。 單片機(jī)產(chǎn)品的類型續(xù)2、AVR系列單片機(jī)系列單片機(jī) AVR單片機(jī)是Atmel 公司推出的單片機(jī),其顯著的特點(diǎn)是高速度、低功耗。它取消機(jī)器周期以時(shí)鐘周期為指令周期實(shí)行作業(yè)。 單片機(jī)產(chǎn)品的類型續(xù)3、PIC系列單片機(jī)系列單片機(jī)PIC單片機(jī)系列是美國微芯公司(Microchip)的產(chǎn)品,是當(dāng)前市場(chǎng)份額增長(zhǎng)最快的單片機(jī)之一。 單片機(jī)產(chǎn)品的類型續(xù)4、ARM系列系列 ARM公司位于英國,由Acom、蘋果公司和VLSI公司聯(lián)合出資。ARM公司本

5、身不生產(chǎn)芯片,靠轉(zhuǎn)讓設(shè)計(jì)許可盈利,它設(shè)計(jì)的芯片由聯(lián)合伙伴公司生產(chǎn)各具特色的芯片。ARM公司專注于設(shè)計(jì),其內(nèi)核耗電少、成本低、功能強(qiáng),具有16位/32位雙指令集。ARM已成為移動(dòng)通訊、手持電腦、多媒體數(shù)字產(chǎn)品嵌入式解決方案的標(biāo)準(zhǔn)。80%的手機(jī)采用ARM核芯片。 二、嵌入式系統(tǒng)的應(yīng)用模式1、低端應(yīng)用模式、低端應(yīng)用模式以電子技術(shù)應(yīng)用工程師為主體,實(shí)現(xiàn)傳統(tǒng)電子系統(tǒng)的智能化。電子工程師在控制、儀器儀表、機(jī)械電子等方面的嵌入式應(yīng)用。嵌入式系統(tǒng)的嵌入式應(yīng)用特點(diǎn),決定了它的多學(xué)科交叉特點(diǎn)。嵌入式系統(tǒng)的應(yīng)用模式續(xù)2、高端應(yīng)用模式、高端應(yīng)用模式隨著后 PC時(shí)代的到來,網(wǎng)絡(luò)、通信技術(shù)得以發(fā)展;同時(shí),嵌入式系統(tǒng)軟、硬

6、件技術(shù)有了很大的提升,為計(jì)算機(jī)專業(yè)人士介入嵌入式系統(tǒng)應(yīng)用開辟了廣闊天地。計(jì)算機(jī)專業(yè)人士的介入,形成的計(jì)算機(jī)應(yīng)用模式帶有明顯的計(jì)算機(jī)的工程應(yīng)用特點(diǎn)。MCS-51MCS-51單片機(jī)結(jié)構(gòu)原理一.單片機(jī)內(nèi)部系統(tǒng)結(jié)構(gòu)和資源二. .外部引腳 1)P0口P3口:48 32根線 2)ALE,PSEN,EA:系統(tǒng)擴(kuò)展控制線 3根 3)XTAL1,XTAL2:時(shí)鐘電路接入線2根 4)RST:復(fù)位線5)VCC,VSS:工作電源線,接地線2根 三.CPU 51系列單片機(jī)中的CPU其結(jié)構(gòu)特性都是相同的,具體如下所述:1.CPU字長(zhǎng)8位,內(nèi)含布爾處理器、算術(shù)邏輯運(yùn)算部件ALU、控制器和工作寄存器組。 2.算術(shù)運(yùn)算包括:加

7、、減、乘、除,以及增量運(yùn)算(加1)和減量運(yùn)算(減1)。8421BCD碼調(diào)整。 3.邏輯運(yùn)算包括:與、或、非、異或運(yùn)算。 4.位操作包括:置“1”、清“0”、與、或、非。 5.指令系統(tǒng)有111條指令。 6.工作寄存器:共分4個(gè)區(qū),每一個(gè)區(qū)有8個(gè)寄存器(R0R7)。這些寄存器放在內(nèi)部數(shù)據(jù)存儲(chǔ)器區(qū)。 四. .存儲(chǔ)器組織 1.存儲(chǔ)器分類存儲(chǔ)器分類1)存儲(chǔ)器系統(tǒng)按功能分成兩部分(哈佛結(jié)構(gòu))存儲(chǔ)器系統(tǒng)按功能分成兩部分(哈佛結(jié)構(gòu)) 程序存儲(chǔ)器:64KB 數(shù)據(jù)存儲(chǔ)器:64K+128256字節(jié)2)存儲(chǔ)器系統(tǒng)按空間分成兩部分:)存儲(chǔ)器系統(tǒng)按空間分成兩部分: 片內(nèi)存儲(chǔ)器:程序存儲(chǔ)器032KB字節(jié),數(shù)據(jù)存儲(chǔ)器1282

8、56個(gè)字節(jié)。 片外存儲(chǔ)器:程序存儲(chǔ)器,數(shù)據(jù)存儲(chǔ)器64K。 存儲(chǔ)器組織續(xù)位存儲(chǔ)器:256位 字節(jié)存儲(chǔ)器 3)按存放信息的位數(shù)來分按存放信息的位數(shù)來分2.2.程序存儲(chǔ)器 1)程序存儲(chǔ)器空間:片內(nèi),片外 2)編址:共64K,片內(nèi),片外統(tǒng)一編址,用16位二進(jìn)制編地址。3)控制線:EA,PSEN,ALE EA=1,表示片內(nèi)有程序存儲(chǔ)器,地址從0000H開始,如果有4K,則末地址為0FFFH;片外程序存儲(chǔ)器的地址從1000H開始。 EA=0,表示片內(nèi)無程序存儲(chǔ)器,程序存儲(chǔ)器全部在片外。 控制線說明續(xù)PSEN:是系統(tǒng)訪問外部程序存儲(chǔ)器的專線,低電平有效。 ALE:地址鎖存控制信號(hào),用于將訪問片外程序存儲(chǔ)器的

9、低8位地址打入地址鎖存器。 3. 3. 數(shù)據(jù)存儲(chǔ)器 (1)數(shù)據(jù)存儲(chǔ)器空間: 片內(nèi),128256 byte; 片外,064KB; (2)編址:片內(nèi)數(shù)據(jù)存儲(chǔ)器用8位二進(jìn)制編地址; 片外數(shù)據(jù)存儲(chǔ)器用16位二進(jìn)制編地址。 (3)(3)片內(nèi)數(shù)據(jù)存儲(chǔ)器89C52有256個(gè)字節(jié),按功能分 1)工作寄存器區(qū):01FH,分4個(gè)區(qū)。 2 2)位尋址區(qū)20H2FH,用于存放各種程序標(biāo)志,位控制變量。每一位有一個(gè)地址,位地址的表示法。例3.166H=(2CH).6。3)堆棧和數(shù)據(jù)緩沖器30H7FH,80HFFH。4.4.特殊功能寄存器 qACC:(Accumulator)累加器 qPSW (Program State

10、 Word)程序狀態(tài)字寄存器,用于保存指令執(zhí)行的結(jié)果,工作寄存器區(qū)的選擇。 D7D6D5D4D3D2D1D0CYACF0RS1 RS0 OVF1Pq工作寄存器區(qū)的選擇例3.2 PSW的D3、D4位用于設(shè)置工作寄存器區(qū)。 q特殊功能寄存器位地址例3.23.2 ACC中的D3位,可以表示為:E3、ACC.3; 例3.3 PSW中的D4位,可以表示為,RS1和PSW.4。 (4 4)控制線:2 2根RD:對(duì)片外數(shù)據(jù)存儲(chǔ)器進(jìn)行讀(取)操作。 WR:對(duì)片外數(shù)據(jù)存儲(chǔ)器進(jìn)行寫(存)操作。 五.I/O.I/O接口q有4個(gè)并行口P0P3,一個(gè)串行口。q每一個(gè)并行口都可以位尋址,即對(duì)每一位進(jìn)行輸入/輸出控制。1

11、1、P1P1口P1口有8位,即P1.0P1.7, P1.0P1.7具有準(zhǔn)雙向口功能,P1.0、P1.1還具有其它功能。換句話說P1.0、P1.1是多種功能復(fù)用的準(zhǔn)雙向口。P1.0、P1.1第二功能第二功能 P1.0、P1.1第二功能是用于定時(shí)器/計(jì)數(shù)器T2,其中P1.0用于引入外部計(jì)數(shù)信號(hào),P1.1用于捕捉外部控制信號(hào)。 2 2、P3P3口它是一個(gè)多功能端口,第一功能與P1口類似,第二功能如下所述:3 3、P0P0口它是一個(gè)多功能端口,第一功能與P1口類似,第二功能是當(dāng)單片機(jī)工作在擴(kuò)展方式時(shí)作為數(shù)據(jù)線/地址線的低8位。4、P2口口它是一個(gè)多功能端口,第一功能與P1口類似,第二功能是當(dāng)單片機(jī)工作

12、在擴(kuò)展方式時(shí)作為地址線的高8位。六. . 尋址方式 尋找操作數(shù)的方式,即尋找數(shù)據(jù)的方式和尋找尋找操作數(shù)的方式,即尋找數(shù)據(jù)的方式和尋找地址的方式。地址的方式。 (一一)立即尋址:立即尋址:指令中直接給出操作數(shù)本身指令中直接給出操作數(shù)本身。 例3.7MOV A,#70H 該指令是將常數(shù)該指令是將常數(shù)70H70H復(fù)制在累加器復(fù)制在累加器ACCACC中,中,70H70H就稱為立即數(shù)。指令代碼見圖就稱為立即數(shù)。指令代碼見圖3-43-4。 圖3-4 ACC程序存儲(chǔ)器PC+101110000立即數(shù)PC01110100操作碼( (二) )直接尋址指令中直接給出操作數(shù)地址,而不是數(shù)據(jù)。指令中直接給出操作數(shù)地址,

13、而不是數(shù)據(jù)。例3.9MOV A,70H; 70H直接地址E5H操作碼地址片內(nèi)數(shù)據(jù)存儲(chǔ)器70H39H該指令執(zhí)行后,累加器該指令執(zhí)行后,累加器ACCACC的內(nèi)容為的內(nèi)容為39H39H。ACC指令第一字節(jié)指令第二字節(jié)( (三) )寄存器尋址指令中給出操作數(shù)所在的寄存器地址,即操作指令中給出操作數(shù)所在的寄存器地址,即操作數(shù)在寄存器中。數(shù)在寄存器中。例3.11MOV A,R3; 指令代碼為, 11101rrr, 即11101011 若該指令執(zhí)行前,(A)=20H,(R3)=30H該指令執(zhí)行后,(A)=(R3)=30H( (四) )寄存器間接尋址指令中給出的寄存器,其內(nèi)容不是操作數(shù),而指令中給出的寄存器,

14、其內(nèi)容不是操作數(shù),而是操作數(shù)地址。是操作數(shù)地址。例3.12 MOV A,R1; 若執(zhí)行前R1的內(nèi)容為30H,30H的內(nèi)容為56H,ACC的內(nèi)容為78H。 則,執(zhí)行后ACC的內(nèi)容為56H。如下圖所示 例3.123.12圖示30H30H 56H56H 程序存儲(chǔ)器 PC11100111操作碼R1地址 存儲(chǔ)器ACC關(guān)于RAMRAM區(qū)80HFFH80HFFH和SFRSFR的尋址方式由于SFR的地址空間是80HFFH,恰好與RAM區(qū)80HFFH在地址上發(fā)生沖突,因此采用不同的尋址方式來區(qū)分對(duì)兩者的訪問!具體是:u對(duì)RAM區(qū)80HFFH采用寄存器間接尋址的方式,如MOV R0,#80HMOV R0, Au對(duì)

15、SFR采用直接尋址的方式,如MOV 80H, A或 MOVP0, A( (五) )基寄存器加變址寄存器間接尋址 這種尋址方式以這種尋址方式以PCPC程序計(jì)數(shù)器或程序計(jì)數(shù)器或DPTRDPTR數(shù)據(jù)指針為數(shù)據(jù)指針為基寄存器,以基寄存器,以ACCACC累加器為變址寄存器,兩者相加的結(jié)累加器為變址寄存器,兩者相加的結(jié)果就是操作數(shù)地址。果就是操作數(shù)地址。 1.基址寄存器:存放某數(shù)據(jù)區(qū)首地址的寄存器,有存放某數(shù)據(jù)區(qū)首地址的寄存器,有DPTRDPTR和和PCPC。2.變址寄存器:存放存儲(chǔ)器地址變值的寄存器,有存放存儲(chǔ)器地址變值的寄存器,有ACCACC。例3.14 MOVCA,A+PC;源操作數(shù)地址=(PC)+

16、(ACC) 該指令的功能使ACC(PC)+(ACC)例3.153.15MOVC A,A+DPTR;源操作數(shù)地址=(DPTR)+(ACC) 該指令的功能使ACC(DPTR)+(ACC)v其中變址寄存器其中變址寄存器ACCACC的內(nèi)容是一個(gè)正整數(shù)。的內(nèi)容是一個(gè)正整數(shù)。 ( (六) )相對(duì)尋址操作數(shù)是一個(gè)地址,其值為當(dāng)前操作數(shù)是一個(gè)地址,其值為當(dāng)前PCPC值加上一個(gè)偏移量值加上一個(gè)偏移量e e例3.16 SJMP 轉(zhuǎn)移地址;轉(zhuǎn)移地址=當(dāng)前PC值+e v當(dāng)前PC值:該指令進(jìn)入到執(zhí)行階段時(shí)PC的值,其值為該指令地址+該指令長(zhǎng)度。若該指令地址=12D4H,該指令長(zhǎng)度=2個(gè)字節(jié)。則當(dāng)前PC值=12D4H+2

17、=12D6H例3.173.17續(xù)若該指令地址為若該指令地址為12D4H12D4H,e=05He=05H,則轉(zhuǎn)移地址則轉(zhuǎn)移地址= =當(dāng)前當(dāng)前PCPC值值+e=12D4H+2+05H=12DBH+e=12D4H+2+05H=12DBH七、指令系統(tǒng)1.指令按功能分類編排指令按功能分類編排一共分四類1. 數(shù)據(jù)傳送類2. 數(shù)據(jù)處理類3. 位操作類4. 控制轉(zhuǎn)移類指令是CPU控制系統(tǒng)各部件執(zhí)行相關(guān)操作的指示或命令。51系列單片機(jī)的指令系統(tǒng)共有111條指令,它們是程序設(shè)計(jì)的基礎(chǔ)。2 2、指令按時(shí)間分類u單機(jī)器周期指令u雙機(jī)器周期指令u四機(jī)器周期指令3 3、指令按長(zhǎng)短分類u單字節(jié)指令u雙字節(jié)指令u三字節(jié)指令不

18、同機(jī)器周期的指令04H例:MOVXDPTR,A1)1字節(jié)字節(jié)1周期指令周期指令 2)2字節(jié)字節(jié)1周期指令周期指令 例:ADDA,#30H 30H24HF0H例:INCA指令 3)1字節(jié)字節(jié)2周期指令周期指令 CPUCPU時(shí)序圖影響標(biāo)志位的指令u加法和減法指令影響4個(gè)標(biāo)志位(Cy、AC、OV、P)。u目的操作數(shù)是ACC的邏輯運(yùn)算指令影響P位。u目的操作數(shù)是ACC數(shù)據(jù)傳送指令影響P位。u目的操作數(shù)是ACC的加1和減1指令影響P位。u比較不相等指令影響Cy位。4 4、匯編語言中的偽指令 起始指令起始指令ORG nn;結(jié)束指令結(jié)束指令END定義字節(jié)數(shù)據(jù)指令定義字節(jié)數(shù)據(jù)指令標(biāo)號(hào):DB項(xiàng)或項(xiàng)表定義字?jǐn)?shù)據(jù)指

19、令定義字?jǐn)?shù)據(jù)指令標(biāo)號(hào):DW項(xiàng)或項(xiàng)表定義字節(jié)變量指令定義字節(jié)變量指令符號(hào)名 DATAaddr8定義位變量指令定義位變量指令符號(hào)名BIT addr8等值指令等值指令符號(hào)名EQU表達(dá)式定義字節(jié)變量指令定義字節(jié)變量指令符號(hào)名 XDATAaddr8八、MCS-51MCS-51中斷系統(tǒng)為了使計(jì)算機(jī)具有機(jī)變的處理事件的能力,在計(jì)算機(jī)內(nèi)部設(shè)置中斷系統(tǒng)。另外,在計(jì)算機(jī)與外圍設(shè)備傳遞數(shù)據(jù)時(shí),為了避免高速的CPU被低速的外圍設(shè)備拖住,中斷技術(shù)也能幫助CPU擺脫這一困境。1 1、中斷的概念首先一個(gè)問題是,什么是中斷?在人們的日常生活中有無中斷的事例呢?1.1、什么是中斷?一切均來自生活。在日常生活中,或者是在企事業(yè)單

20、位中,人們經(jīng)常會(huì)遇到這樣的事。當(dāng)一個(gè)經(jīng)理正在閱讀秘書堆在他(她)桌面上的文件時(shí),他(她)桌面上的幾個(gè)電話中的一個(gè)電話鈴響了。接電話打電話當(dāng)然是經(jīng)理的日常工作之一,這時(shí)經(jīng)理接了電話。打完電話后,經(jīng)理接著看文件。接電話雖然打斷了經(jīng)理看文件的工作,但是“只是中斷了一下”,他(她)還可以繼續(xù)看文件。所以“中斷”不是“停止”,而“只是中斷了一下”。中斷的定義在計(jì)算機(jī)中,中斷的含義是:CPU正在工作時(shí)(執(zhí)行某一段程序),突然要求CPU做另外一件工作(執(zhí)行另外一段程序),這時(shí)CPU就暫停了原程序的執(zhí)行,轉(zhuǎn)入另外一段程序(中斷服務(wù)子程序)。CPU執(zhí)行完另外一段程序后,又返回到原來被終止的那段程序中。CPU進(jìn)入

21、中斷過程是接收到中斷申請(qǐng)信號(hào)后進(jìn)行的,上個(gè)事例中的電話鈴就是“中斷申請(qǐng)信號(hào)”。2.1 2.1 中斷源(89C5289C52) 能發(fā)出中斷信號(hào)的部件就稱為中斷源。MCS-51系統(tǒng)的中斷源有如下系統(tǒng)的中斷源有如下6個(gè):個(gè):1. 外部中斷02. 定時(shí)器T03. 外部中斷14. 定時(shí)器T15. 串行口中斷6. 定時(shí)器T22.22.2、中斷優(yōu)先權(quán)當(dāng)經(jīng)理正在閱讀文件時(shí),桌面上有二個(gè)電話同時(shí)響起,這位經(jīng)理會(huì)選擇接哪一個(gè)電話呢?自然他(她)會(huì)接其中一個(gè)比較重要的電話。中斷系統(tǒng)也一樣,當(dāng)幾個(gè)中斷源同時(shí)向CPU發(fā)出中斷申請(qǐng)信號(hào),CPU也應(yīng)該先去響應(yīng)其中最重要的中斷源發(fā)出的中斷申請(qǐng)。在另外一種情形中,經(jīng)理正在閱讀文

22、件,桌面上的一個(gè)電話鈴響了,他(她)去接這個(gè)電話。這個(gè)電話還未打完,桌面上的另一個(gè)電話又響了,這個(gè)經(jīng)理又會(huì)怎么辦呢?如果這個(gè)經(jīng)理是很理智的人,他(她)就會(huì)先判斷,第二個(gè)電話是否比第一個(gè)電話更重要,如果是的話,他(她)就會(huì)擱下第一個(gè)電話,去接第二個(gè)電話。打完第二個(gè)電話后在接第一個(gè)電話,打完第一個(gè)電話后再閱讀文件。計(jì)算機(jī)中斷系統(tǒng)也一樣,應(yīng)當(dāng)具有中斷的嵌套功能,以便處理類似情況的發(fā)生。5151系列單片機(jī)中斷級(jí)別在計(jì)算機(jī)系統(tǒng)中,當(dāng)有多個(gè)中斷源同時(shí)向CPU申請(qǐng)中斷時(shí),CPU就必須確定首先為哪一個(gè)中斷服務(wù),在系統(tǒng)中,各中斷源事先按輕重緩急設(shè)置好優(yōu)先權(quán),一旦發(fā)生中斷源競(jìng)爭(zhēng)時(shí),系統(tǒng)就根據(jù)中斷源的優(yōu)先權(quán)級(jí)別,確

23、定為一個(gè)優(yōu)先權(quán)級(jí)別高中斷源服務(wù)。在MCS-51系統(tǒng)中,中斷優(yōu)先級(jí)別分成二級(jí),即高級(jí)中斷和低級(jí)中斷。高級(jí)中斷可以中斷低級(jí)中斷,這就是中斷嵌套。同級(jí)中斷源優(yōu)先級(jí)別1.外部中斷02.定時(shí)器T03.外部中斷14.定時(shí)器T15.串行口中斷6.定時(shí)器T2中斷優(yōu)先級(jí)最高最低中斷源如果MCS-51系統(tǒng)中的所有中斷源都設(shè)置為同一級(jí)別,這些中斷源如果同時(shí)申請(qǐng)中斷時(shí),系統(tǒng)內(nèi)部對(duì)這些中斷源優(yōu)先權(quán)的順序?yàn)椋?.3 2.3 控制中斷的特殊功能寄存器51系列的單片機(jī)中斷系統(tǒng)主要是通過4個(gè)特殊功能寄存器SFR來管理整個(gè)中斷系統(tǒng)。這5個(gè)SFR是TCON、T2CON、SCON、IE和IP,定時(shí)器定時(shí)器/計(jì)數(shù)器控制寄存器計(jì)數(shù)器控制

24、寄存器TCON(Timer Control)TCON是一個(gè)8位SFR,它原本是用于控制定時(shí)器/計(jì)數(shù)器T0和T1的工作,由于控制定時(shí)器/計(jì)數(shù)器T0和T1用不了8位,只要4位就夠了。這樣剩下的4位就用于系統(tǒng)的中斷。TCONTCON中的中斷標(biāo)志位和控制位IE0:外部中斷源0申請(qǐng)中斷標(biāo)志位。當(dāng)外部中斷源0申請(qǐng)中斷時(shí),IE0=1。IE1:外部中斷源1申請(qǐng)中斷標(biāo)志位。當(dāng)外部中斷源1申請(qǐng)中斷時(shí),IE1=1。IT0:外部中斷源0中斷信號(hào)方式控制位。當(dāng)IT0=0時(shí),外部中斷源0的中斷信號(hào)是低電平;當(dāng)IT0=1時(shí),外部中斷源0的中斷信號(hào)是脈沖信號(hào)的下降沿。IT1:外部中斷源1中斷信號(hào)方式控制位。當(dāng)IT1=0時(shí),外

25、部中斷源1的中斷信號(hào)是低電平;當(dāng)IT1=1時(shí),外部中斷源1的中斷信號(hào)是脈沖信號(hào)的下降沿。定時(shí)器/ /計(jì)數(shù)器T2T2控制寄存器T2CONT2CONT2CON(Timer2 Control)是一個(gè)8位SFR,它主要是用于控制定時(shí)器/計(jì)數(shù)器T2的工作,T2CON中各位如下所示:TF2:T2的計(jì)數(shù)滿的中斷標(biāo)志。EXF2:T2外部中斷標(biāo)志。串行口控制寄存器SCONSCONSCON(Serial Control)是一個(gè)8位SFR,它主要是用于單片機(jī)中串行口的控制,SCON中各位如下所示:TI:串行口發(fā)送完一個(gè)數(shù)據(jù)的中斷標(biāo)志,當(dāng)串行口發(fā)送完一個(gè)數(shù)據(jù),則TI=1。RI:串行口接收完一個(gè)數(shù)據(jù)的中斷標(biāo)志,當(dāng)串行口

26、接收完一個(gè)數(shù)據(jù),則RI=1。中斷允許寄存器IEIEIE (Interrupt Enable)(Interrupt Enable)是一個(gè)控制中斷系統(tǒng)是否開放、各中斷源是否開放的SRF,一共有8位,其中7位有含義,各位的含義如下:EA:CPU中斷系統(tǒng)允許開關(guān)。EA=0,中斷系統(tǒng)關(guān)閉,CPU不能響應(yīng)任何中斷申請(qǐng);EA=1,中斷系統(tǒng)開放。其余各位是各中斷源中斷允許控制位,“1”是開放中斷,“0”則關(guān)閉中斷。中斷優(yōu)先級(jí)寄存器IPIPIP(Interrupt Priority)(Interrupt Priority)是一個(gè)控制中斷系統(tǒng)優(yōu)先級(jí)別的SRF,一共有8位,其中6位有含義,各位的含義如下:各中斷源優(yōu)

27、先級(jí)別控制位如果為“1”則為高級(jí)中斷;如果為“0”則為低級(jí)中斷。單片機(jī)中斷和中斷嵌套的情形中斷系統(tǒng)結(jié)構(gòu)圖2 2、 中斷處理過程中斷處理過程是一個(gè)比較復(fù)雜的過程,處理復(fù)雜的事情最好的辦法是將一個(gè)復(fù)雜的過程分解成一系列比較簡(jiǎn)單的過程,然后按程序進(jìn)行處理。首先一個(gè)問題是CPU在執(zhí)行程序時(shí)是如何發(fā)現(xiàn)中斷源的中斷申請(qǐng)?為了能既及時(shí)地發(fā)現(xiàn)中斷源的中斷申請(qǐng),又能保證程序和指令執(zhí)行的安全,CPU就在每一個(gè)機(jī)器周期的最后一個(gè)狀態(tài)(即S6)去檢測(cè)系統(tǒng)是否有中斷請(qǐng)求。檢測(cè)的地方就是中斷系統(tǒng)內(nèi)部的兩個(gè)指令不可訪問中斷申請(qǐng)標(biāo)志寄存器(高級(jí)中斷標(biāo)志寄存器、低級(jí)中斷標(biāo)志寄存器,在中斷系統(tǒng)結(jié)構(gòu)圖中最右邊的兩個(gè)框)。2.1 2

28、.1 中斷申請(qǐng)系統(tǒng)中的中斷源是如何將中斷申請(qǐng)信號(hào)傳遞到這兩個(gè)內(nèi)部寄存器中的呢?系統(tǒng)中的中斷源要將中斷申請(qǐng)信號(hào)傳遞至兩個(gè)內(nèi)部寄存器,必須要同時(shí)滿足以下條件:。1. 中斷系統(tǒng)開放,即IE中EA位被置1。2. 相關(guān)中斷源開放,即IE中各個(gè)中斷源允許位被置1。2.2 2.2 中斷響應(yīng)條件當(dāng)CPU檢測(cè)到系統(tǒng)中有中斷申請(qǐng)后,是否立馬響應(yīng)該中斷申請(qǐng)呢?不!CPU還要判斷以下條件是否滿足:1. 沒有同級(jí)或高級(jí)中斷申請(qǐng)被服務(wù)。2. CPU執(zhí)行完RETI或訪問IE或IP的指令后,又執(zhí)行了一條指令。條件1表明,中斷響應(yīng)必須符合中斷優(yōu)先級(jí)排隊(duì)的原則。條件2表明,CPU不能在執(zhí)行某些指令時(shí)響應(yīng)中斷。2.3 2.3 中斷

29、處理過程中斷處理過程也稱為中斷響應(yīng)過程,也就是說,當(dāng)CPU確定為某個(gè)中斷申請(qǐng)服務(wù)后怎樣操作?一般要分三步走,即中斷響應(yīng)、中斷處理和中斷返回。中斷響應(yīng)中斷響應(yīng)中斷響應(yīng)是指,CPU確定為某個(gè)中斷申請(qǐng)服務(wù)后,先保護(hù)被中斷程序的斷點(diǎn),即把斷點(diǎn)壓入堆棧;然后將程序轉(zhuǎn)入某中斷源特定的中斷入口,中斷入口是程序存儲(chǔ)器中的某個(gè)單元。中斷入口地址89C52單片機(jī)有6個(gè)中斷源,對(duì)應(yīng)的6個(gè)中斷入口地址如下:中斷源外部中斷0定時(shí)器T0中斷外部中斷1定時(shí)器T1中斷串行口中斷定時(shí)器T2中斷中斷入口地址0003H000BH0013H001BH0023H002BHv通常在中斷入口處的存儲(chǔ)器中安排一條跳轉(zhuǎn)指令,跳到一個(gè)中斷服務(wù)子

30、程序中。中斷處理u中斷處理是指執(zhí)行中斷服務(wù)子程序。u設(shè)計(jì)單片機(jī)應(yīng)用程序時(shí),預(yù)先設(shè)計(jì)好某些中斷源的中斷服務(wù)子程序。u中斷源不同,相應(yīng)的中斷服務(wù)子程序自然也就不同,有的程序較短,有的程序較長(zhǎng)。u如果中斷服務(wù)子程序的長(zhǎng)度不長(zhǎng)于8個(gè)字節(jié),那么中斷服務(wù)子程序的代碼就可以放在它中斷入口處開始的程序存儲(chǔ)器中。u如果中斷服務(wù)子程序的長(zhǎng)度長(zhǎng)于8個(gè)字節(jié),就不能把程序放在它中斷入口處開始的程序存儲(chǔ)器中,否則會(huì)破壞其他中斷源的中斷響應(yīng),這時(shí),可以在中斷入口處安排一條跳轉(zhuǎn)指令,將中斷服務(wù)子程序引向程序存儲(chǔ)器其他的空間。中斷返回中斷處理結(jié)束時(shí),也就是中斷服務(wù)子程序結(jié)束時(shí),在中斷服務(wù)子程序的末尾安排一條中斷返回指令RETI

31、。執(zhí)行了指令RETI時(shí),就會(huì)把原來在中斷響應(yīng)時(shí)壓入堆棧的斷點(diǎn)彈入PC,使程序返回至原來被中斷的程序的斷點(diǎn)處。這時(shí)表示一個(gè)中斷過程的結(jié)束。2.4 2.4 中斷請(qǐng)求信號(hào)的撤消CPU在進(jìn)入某中斷服務(wù)子程序時(shí),該中斷申請(qǐng)的標(biāo)志應(yīng)及時(shí)撤消。如果不及時(shí)撤消,CPU在執(zhí)行每一條指令時(shí)會(huì)重復(fù)檢測(cè)到這一中斷申請(qǐng)標(biāo)志,就會(huì)引起另一次中斷。只有及時(shí)撤消應(yīng)該撤消的中斷申請(qǐng)標(biāo)志,才能保證中斷系統(tǒng)的正常運(yùn)行。在6個(gè)中斷源中,有的中斷申請(qǐng)標(biāo)志可以由硬件自動(dòng)撤消,有的必須用指令撤消。具體方法如下:中斷請(qǐng)求信號(hào)的撤消續(xù)1. 對(duì)于T0和T1產(chǎn)生的中斷申請(qǐng)標(biāo)志TF0和TF1,CPU在響應(yīng)中斷過程中自動(dòng)用硬件消除其中斷申請(qǐng)標(biāo)志。2.

32、 對(duì)于邊沿觸發(fā)的外部中斷申請(qǐng)標(biāo)志IE0和IE1,CPU在響應(yīng)中斷過程中也自動(dòng)用硬件消除其中斷申請(qǐng)標(biāo)志。3. 對(duì)于電平觸發(fā)的外部中斷申請(qǐng)標(biāo)志IE0和IE1,CPU在響應(yīng)中斷過程中不能用硬件消除有關(guān)中斷申請(qǐng)標(biāo)志,也不能用指令消除有關(guān)中斷申請(qǐng)標(biāo)志,因?yàn)檫@些信號(hào)示由外部器件控制的,只能采用措施,通過外部器件來撤消引腳P3.2或P3.3上的低電平信號(hào)。4. 對(duì)于串行口和T2產(chǎn)生的中斷申請(qǐng)標(biāo)志(TI、RI、TF2和EXF2),必須用指令來撤消這些中斷申請(qǐng)標(biāo)志。3 3、 中斷程序的編制根據(jù)中斷理念以及單片機(jī)中斷處理過程,從中斷源發(fā)出的中斷申請(qǐng)信號(hào)被CPU接收、CPU響應(yīng)中斷、CPU執(zhí)行中斷服務(wù)子程序、一直到CPU返回中斷,每一環(huán)節(jié)絲絲

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論