單片機技術(shù)實驗指導書_第1頁
單片機技術(shù)實驗指導書_第2頁
單片機技術(shù)實驗指導書_第3頁
單片機技術(shù)實驗指導書_第4頁
單片機技術(shù)實驗指導書_第5頁
已閱讀5頁,還剩144頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單片機技術(shù)實驗指導書

目錄

第1章單片機的硬件基礎(chǔ)2

第2章C51單片機的內(nèi)部資源12

第3章C51單片機的系統(tǒng)擴展30

第4章串行通信接口35

第5章51單片機系統(tǒng)開發(fā)基礎(chǔ)48

第6章MCS51系列單片機實驗56

實驗?擴展存儲器讀寫實驗56

實驗二P1口輸入、輸出實驗58

實驗三P3口輸出控制繼電器實驗60

實驗四光電隔離實驗61

實驗五簡單I/O實驗(交通燈控制)62

實驗六外部中斷實驗(急救車與交通燈)64

實驗七定時器實驗66

實驗八計數(shù)器實驗68

實驗九8255輸入、輸出實驗70

實驗十8255掃描鍵盤、顯示實驗72

實驗H??一8155輸入、輸出實驗74

實驗十二8155掃描鍵盤、顯示實驗76

實驗十三8279顯示實驗78

實驗十四8279顯示電子鐘實驗80

實驗十五8279鍵盤顯示實驗(電子秒表)83

實驗十六串并轉(zhuǎn)換實驗86

實驗十七單片機串行口與PC機通訊實驗88

實驗十九D/A轉(zhuǎn)換實驗90

實驗二十A/D轉(zhuǎn)換實驗91

實驗二十二電子音調(diào)實驗93

實驗二十三語音芯片實驗96

實驗二十四LCD顯示實驗99

實驗二十五LED點陣顯示實驗101

實驗二十六直流電機轉(zhuǎn)速測量實驗104

實驗二十七步進電機控制實驗107

實驗二十八溫度測量與顯示實驗109

實驗二十九X25045讀寫及看門狗溢出實驗112

實驗三十時鐘顯示(HT1380)實驗118

實驗三H-—D/A(TLC5615)轉(zhuǎn)換實驗123

實驗三十二A/D(TLC1543)轉(zhuǎn)換實驗126

實驗三十三A/D/A綜合運用實驗130

實驗三十四CAT93c46讀寫實驗131

實驗三十六單片機系統(tǒng)中的紅外通信實驗134

實驗三十七PS2鍵盤掃描碼讀取顯示實驗142

EAT59851實驗指導W

第1章單片機的硬件基礎(chǔ)

重點內(nèi)容:

?單片機的內(nèi)部結(jié)構(gòu)

?單片機引腳功能

?單片機的工作時序

?單片機的工作方式

?單片機的最小系統(tǒng)

?本章小結(jié)

一、單片機的內(nèi)部結(jié)構(gòu)

1、中央處理器

51單片機內(nèi)部有一個8位的面向控制、功能強大的微處理器,其主要功能是運算和控制整個系統(tǒng)協(xié)

調(diào)工作。它由運算器和控制器兩部分組成。

1.運算器

運算器主要實現(xiàn)對操作數(shù)的算術(shù)運算、邏輯運算和位操作。主要包括算術(shù)邏輯運算部件(ALU)、

累加器A、寄存器B、程序狀態(tài)字PSW、暫存器、布爾外理器以及十進制調(diào)整電路等部件。

(1)算術(shù)與邏輯部件ALU(ArithmeticalLogicUnit)

算術(shù)邏輯單元ALU是計算機中必不可少的數(shù)據(jù)處理單元之一,主要對數(shù)據(jù)進行算術(shù)邏輯運算。從

結(jié)構(gòu)上看,該單元實質(zhì)是一個全加器,它的運算結(jié)果將對程序狀態(tài)字PSW產(chǎn)生影響。該單元主要

完成以下操作:

?力口、減、乘、除運算;

?增量(加1)減量(減1)運算;

?十進制數(shù)調(diào)整;

?位操作中的置位、復位和取反操作;

?與、或、異或等運算操作;

?數(shù)據(jù)傳送操作。

②累加器A

累加器A是CPU中最繁忙、使用頻度最高的一個特殊功能寄存器,簡稱為ACC或A寄存器,其作

用為:

?累加器A作為ALU的輸入數(shù)據(jù)源之一,也是ALU的輸出;

?CPU中的數(shù)據(jù)傳送大多數(shù)都通過累加器,累加器A是一個非常重要的數(shù)據(jù)中轉(zhuǎn)站。

③寄存器B

寄存器B是一個8位寄存器,是為ALU進行乘、除運算而設(shè)置的。在執(zhí)行乘法運算指令的時候,

寄存器B用于存放其中的一個乘數(shù)和乘積的高8位數(shù)。在執(zhí)行出發(fā)運算的時候,寄存器B用于存放

除數(shù)和余數(shù)。在其他情況下,B寄存器可以作為一個普通的寄存器使用。

④程序狀態(tài)字

程序狀態(tài)字PSW(ProgramStatusWords)是一個8位的專用寄存器,用于存儲程序運行中的各種狀

態(tài)信息。它被逐位定義,可以位尋址,

⑤暫存器

用以暫存進入運算器之前的數(shù)據(jù)。

⑥布爾處理器

2

MCS-51單片機技術(shù)實驗基礎(chǔ)

布爾處理器(位處理器)是51單片機ALU所具有的一種功能。單片機指令系統(tǒng)的位處理指令集(17

條位操作指令),存儲器中的位地址空間,以及借用程序狀態(tài)寄存器PSW中的進位標志CY做為位

操作“累加器”,構(gòu)成了51單片機內(nèi)的布爾處理器。它可對直接尋址的位(bit)變量進行位處理,如

置位、清零、取反、測試轉(zhuǎn)移以及邏輯“與"、"或”等位操作,使用戶在編程時可以利用指令完成原

來單憑復雜的硬件邏輯鎖完成的功能,并可方便地設(shè)置標志等。

⑦十進制調(diào)整電路

顧名思義,用來進行十進制調(diào)整的電路。

2.控制器

控制器是控制計算機系統(tǒng)各種操作的部件,其功能是控制指令的讀取、譯碼和執(zhí)行,對指令的執(zhí)行

過程進行定時控制,并根據(jù)執(zhí)行結(jié)果決定其后的操作。它包括時鐘發(fā)生器、定時控制邏輯、復位電

路、指令寄存器IR、指令譯碼器ID、程序計數(shù)器PC、程序地址寄存器、數(shù)據(jù)指針DPTR、堆棧指

針SP等。

2、存儲器結(jié)構(gòu)

51系列單片機的存儲組織采用的是哈佛(Harvard)結(jié)構(gòu),即將程序存儲器和數(shù)據(jù)存儲器截然分開,

程序存儲器和數(shù)據(jù)存儲器具有各自獨立的尋址方式、尋址空間和控制系統(tǒng)。這種結(jié)構(gòu)對于單片機“面

向控制”的實際應(yīng)用極為方便。

在物理結(jié)構(gòu)上,51系統(tǒng)單片機有4個存儲器空間:

?程序存儲器:片內(nèi)程序存儲器和片外程序存儲器;

?數(shù)據(jù)存儲器:片內(nèi)數(shù)據(jù)存儲器和片外數(shù)據(jù)存儲器。

51單片機內(nèi)部有一個8位的面向控制、功能強大的微處理器,其主要功能是運算和控制整個系統(tǒng)協(xié)

調(diào)工作。它由運算器和控制器兩部分組成。

1.運算器

運算器主要實現(xiàn)對操作數(shù)的算術(shù)運算、邏輯運算和位操作。主要包括算術(shù)邏輯運算部件(ALU)、

累加器A、寄存器B、程序狀態(tài)字PSW、暫存器、布爾外理器以及十進制調(diào)整電路等部件。

2、存儲器結(jié)構(gòu)

1.存儲原理

為了探討計算機的存儲原理,先讓我們做一個實驗:這里有兩盞燈,我們知道燈只有亮和滅兩種狀

態(tài),我們能用'0'和來代替這兩種狀態(tài),規(guī)定亮為'1',滅為'0'?,F(xiàn)在這兩盞燈總共有兒種狀態(tài)呢?

我們列表來看一下,如圖所示:

存儲器是利用電平的高低來存放數(shù)據(jù)的。它是由大量寄存器組成的,其中每一個寄存器就稱為個

存儲單元。它可存放一個有獨立意義的二進制代碼。一個代碼由若干位(bit)組成,代碼的位數(shù)稱

為位長,習慣上也稱為字長。

2.內(nèi)部程序存儲器

51單片機程序存儲器是用來存放經(jīng)過調(diào)試正確的應(yīng)用程序和表格之類的固定數(shù)據(jù)的。

3.內(nèi)部數(shù)據(jù)存儲器

數(shù)據(jù)存儲器由隨機存儲器RAM組成,這種存儲器又叫讀寫存儲器。它不僅能讀取存放在存儲單元

中的數(shù)據(jù),還能隨時寫入新的數(shù)據(jù),寫入后原來的數(shù)據(jù)就丟失了。斷電后RAM中的信息全部丟失。

因此,RAM用來存放運算中的數(shù)據(jù)、中間結(jié)果及最終結(jié)果。

4.特殊功能寄存器

在51單片機內(nèi)部有一個CPU用來運算、控制,有四個并行I/O口,有程序存儲器,有數(shù)據(jù)存儲器,

此外還有定時/計數(shù)器,串行I/O口,中斷系統(tǒng),以及一個內(nèi)部的時鐘電路。對并行I/O口的讀寫只

要將數(shù)據(jù)送入到相應(yīng)I/O口的鎖存器就可以了,那么對于定時/計數(shù)器,串行I/O口等怎么用呢?在

單片機中有一些獨立的存儲單元是用來控制這些器件的,被稱之為特殊功能寄存器(SFR)。

3

EAT59851實驗指導W

5.存儲器結(jié)構(gòu)特點

單片機的存儲器結(jié)構(gòu)與微型計算機有很大的不同。它的兩個重要的特點是:一是把數(shù)據(jù)存儲器和程

序存儲器截然分開,二是存儲器有內(nèi)外之分。對于面向控制應(yīng)用且又不可能具有磁盤的單片機系統(tǒng)

來說,程序存儲器是至關(guān)重要的,但數(shù)據(jù)存儲器也不可少。為此單片機的存儲器分為數(shù)據(jù)存儲器和

程序存儲器,其地址空間、存取指令和控制信號各有一套。

3、I/O端口結(jié)構(gòu)

51系列單片機有1個8位雙向并行I/O端口P0和3個8位準雙向并行I/O端口P1?P3。每一位端口

都由口鎖存器、輸出鎖存器和輸入緩沖器組成。它們已被歸入專用寄存器之列,并且具有字節(jié)尋址

和位尋址功能。

1.P0端口

圖表示了P0端口中某一位的電路結(jié)構(gòu)。由圖可見,電路中包含有一個數(shù)據(jù)輸出鎖存器、兩個

三態(tài)數(shù)據(jù)輸入緩沖器、一個數(shù)據(jù)輸出的驅(qū)動電路和一個輸出控制電路。當對P0口進行寫操作時,

由鎖存器和驅(qū)動電路構(gòu)成數(shù)據(jù)輸出通路。由于通路中已有輸出鎖存器,因此數(shù)據(jù)輸出時可以與外設(shè)

直接連接,而不需再加數(shù)據(jù)鎖存電路。

地址/數(shù)據(jù)VCC

P1端口某一位的電路結(jié)構(gòu)如圖2.7所示。因為P1口通常是作為通用I/O口使用的,所以在電路

結(jié)構(gòu)上與P0口有一些不同之處,主要表現(xiàn)為2點:首先它不再需要多路轉(zhuǎn)接電路MUX;其次是電

路的內(nèi)部有上拉電阻,與場效應(yīng)管共4同組成輸出驅(qū)動電路。為此,P1口作為輸出口使用時,已經(jīng)

能向外提供推拉電流負載,無需再外接上拉電阻。當P1口作為輸入口使用時,同樣也需先向其鎖

存器寫“1”,使輸出驅(qū)動電路的FET截止。

4

MCS-51單片機技術(shù)實驗基礎(chǔ)

P2端口的電路如圖2.8所示。P2口電路比Pl口電路多了一個多路轉(zhuǎn)接電路MUX,這又正好與

P0口一樣。P2口可以作為通用I/O口使用,這時多路轉(zhuǎn)接電路開關(guān)倒向鎖存器Q端。通常情況下,

P2口是作為高位地址線使用而不作為數(shù)據(jù)線使用,此時多路轉(zhuǎn)接電路開關(guān)應(yīng)倒向相反方向。

VCC

P3端口某一位的電路如圖2.9所示。P3口的特點在于,為適應(yīng)引腳信號第二功能的需要,增加

了第二功能控制邏輯。對于于第二功能信號有輸入和輸出兩類。

第二輸出功能VCC

第:輸入功能

4、定時器/計數(shù)器結(jié)構(gòu)

8051有兩個16位定時器/計數(shù)器T0和T1,分別與2個8位寄存器TOL、T0H及TIL、T1H對應(yīng)。

8051的定時器/計數(shù)器可以工作在定時方式或計數(shù)方式。

1.定時方式

定時方式實現(xiàn)對單片機內(nèi)部的時鐘脈沖或分頻后的脈沖進行計數(shù)。

2.計數(shù)方式

實現(xiàn)對外部脈沖的計數(shù),讀者將對定時器/計數(shù)器將在后續(xù)章節(jié)中進行具體學習。

5、中斷系統(tǒng)

在單片機系統(tǒng)設(shè)計設(shè)計中,中斷是一個必不可少的概念。

在程序的執(zhí)行過程中,有時候需要停下手頭的工作轉(zhuǎn)而執(zhí)行其他的一些重要工作,并在執(zhí)行完后返

回到原來的執(zhí)行的程序中,然后繼續(xù)執(zhí)行未完成的任務(wù)。這就是中斷的?般過程。

8051有5個中斷源,兩個中斷優(yōu)先級控制,可以實現(xiàn)兩個中斷服務(wù)嵌套。兩個外部中斷INTO、INT1,

5

EAT59851實驗指導W

兩個定時器中斷TO、T1,還有一個串行口中斷。

中斷的控制由中斷允許寄存器IE和中斷優(yōu)先級寄存器IP實現(xiàn)。關(guān)于中斷的設(shè)置和實現(xiàn)將在后續(xù)章

節(jié)進行具體講解學習。

二、單片機引腳功能

2、引腳及功能

1.供電引腳

供電引腳接入AT89s51的工作電源。

?VCC:電源正級,一般為+5V。

?GND:電源地。

2.I/O引腳

顧名思義,就是輸入/輸出引腳。

?P0:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。

對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位

地址/數(shù)據(jù)復用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時,P0口也用來接收指令字節(jié);

在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。

?Pl:P1口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,pl輸出緩沖器能驅(qū)動4個TTL邏輯

電平。對P1端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,

被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和PL2分別作定時器/計數(shù)

器T2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器T2的觸發(fā)輸入(P1.1"2EX),具體功能見表2.7。

在flash編程和校驗時,P1口接收低8位地址字節(jié)。

?P2:P2口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動4個TTL邏輯

電平。對P2端口寫力”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,

被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(HL)。在訪問外部程序存儲器或用16位地址

讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX@DPTR)時,P2口送出高八位地址。在這種應(yīng)用中,P2口

使用很強的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX@RI)訪問外部數(shù)據(jù)存儲器時,P2口輸

出P2鎖存器的內(nèi)容。在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。

?P3:P3口是一個具有內(nèi)部上拉電阻的8位雙向I/OU,p2輸出緩沖器能驅(qū)動4個TTL邏輯

電平。對P3端口寫T時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,

被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(HL)。P3口亦作為AT89s52特殊功能(第二

功能)使用,見表2.8。在flash編程和校驗時,P3口也接收一些控制信號。

3.控制引腳

控制引腳包括RST、ALE、、,此類引腳提供控制信號,有些引腳具有復用功能。

?RST:復位輸入。晶振工作時,RST腳持續(xù)2個機器周期高電平將使單片機復位。看門狗計時

完成后,RST腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以

使此功能無效。DISRTO默認狀態(tài)下,復位高電平有效。

?ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8位地址的輸出

脈沖。在flash編程時,此引腳也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定

頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調(diào),在每次訪問外部數(shù)據(jù)存儲器

時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位置“1”,ALE操作將無效。

這一位置“1”,ALE僅在執(zhí)行MOVX或MOVC指令時有效。否則,ALE將被微弱拉高。這個

ALE使能標志位(地址為8EH的SFR的第0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。

6

MCS-51單片機技術(shù)實驗基礎(chǔ)

?PSEN:外部程序存儲器選通信號。當AT89s52從外部程序存儲器執(zhí)行外部代碼時,PSEN在

每個機器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器時,PSEN將不被激活。

?EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀取

指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在flash編程期間,EA也接收

12伏VPP電壓。

外接晶振引腳

外接晶振引腳與片內(nèi)的反相放大器構(gòu)成一個振蕩器,他提供了單片機的時鐘控制信號,也可采用外

部晶體振蕩器。

?XTAL1:接外部晶體的一個引腳,在單片機內(nèi)部,它是一個反相放大器的輸入端。若采用外部

振蕩器,該引腳接收振蕩器的信號,即把此信號直接接到內(nèi)部時鐘發(fā)生器的輸入端。

?XTAL2:借外部晶體的另一端,在單片機內(nèi)部接到反相放大器的輸出端,當采用外接晶體振蕩

器時,此引腳可以不接。

三、單片機工作時序

1、時鐘電路

時鐘信號可以由兩種方式產(chǎn)生:一種是內(nèi)部方式,利用芯片內(nèi)部的振蕩電路產(chǎn)生時鐘信號;另一種

為外部方式,時鐘信號由外部引入。

51單片機有一個用于構(gòu)成內(nèi)部振蕩器的反相放大器,引腳XTAL1和XTAL2分別是放大器的輸入、

輸出端。外接石英晶體和陶瓷電容構(gòu)成自激振蕩器。這種方式稱為內(nèi)部時鐘方式。如果振蕩器已起

振,則在XTAL2引腳上輸出3V左右的正弦波。振蕩器的頻率取決于晶振的頻率。電容C1和C2

主要作用是幫助起振(諧振),其值的大小對振蕩頻率也有影響。因此常用調(diào)節(jié)C1或C2的容量大

小對頻率進行微調(diào),電容容量在通常在20pF~100pF之間選擇,當時鐘頻率為12MHz時典型值為

30Pf?

2、時序定時單位

(1)拍節(jié)與狀態(tài)

把振蕩脈沖的周期定義為拍節(jié)(用P表示)。振蕩脈沖經(jīng)過二分頻后,就是單片機的時鐘信號的周

期,其定義為狀態(tài)(用S表示)。這樣,?個狀態(tài)就包含兩個拍節(jié),具前半周期對應(yīng)的拍節(jié)叫拍節(jié)1

(P1),后半周期對應(yīng)的拍節(jié)叫拍節(jié)2(P2)。

(2)機器周期

51單片機采用定時控制方式,因此它有固定的機器周期。規(guī)定一個機器周期的寬度為6個狀態(tài),并

依次表示為S1?S6。由于一個狀態(tài)又包括兩個拍節(jié),因此一個機器周期總共有12個拍節(jié),分別記

作S1P1、S1P2S6P2。由于一個機器周期共有12個振蕩脈沖周期,因此機器周期就是振蕩脈

沖的十二分頻。當振蕩脈沖頻率為12MHz時,一個機器周期為ips;當振蕩脈沖頻率為6MHz時,

一個機器周期為2pSo

(3)指令周期

指令周期是最大的時序定時單位,執(zhí)行一條指令所需要的時間稱為指令周期。它一般由若干個機器

周期組成。不同的指令,所需要的機器周期數(shù)也不相同。通常,包含一個機器周期的指令稱為單周

期指令,包含兩個機器周期的指令稱為雙周期指令,等等指令的運算速度與指令所包含的機器周期

有關(guān),機器周期數(shù)越少的指令執(zhí)行速度越快。MCS-51單片機通常可以分為單周期指令、雙周期指

令和四周期指令等三種。四周期指令只有乘法和除法指令兩條,其余均為單周期和雙周期指令。

單片機執(zhí)行任何一條指令時都可以分為取指令階段和執(zhí)行指令階段,時序如圖2.13所示,(a)為單字

節(jié)單周期指令;(b)為雙字節(jié)單周期指令;(c)為單字節(jié)雙周期指令。

7

EAT59851實驗指導W

3、指令的執(zhí)行時序

圖(a),(b)所示分別給出了單字節(jié)單周期利雙字節(jié)單周期指令的時序。單周期指令的執(zhí)行始于

S1P2,這時操作碼被鎖存到指令寄存器內(nèi)?若是雙字節(jié),則在同一機器周期的S4讀第二字節(jié).若

是單字節(jié)指令,則在S4仍有讀操作,但被讀入的字節(jié)無效,且程序計數(shù)器PC并不增量。圖(c)

給出了單字節(jié)雙周期指令的時序,兩個機器周期內(nèi)進行4次讀操作碼操作。因為是單字節(jié)指令,所

以,后三次讀操作都是無效的。

f|T~

ALE」

????????(??)?7?7??

S1S2S3S4S5S6

(a)

7?7?7797??997?7

S1S2S3S4S5S6

(b)

7777?777(?7)

S1IS2IS3IS4IS5IS6IS1IS2IS3IS4IS5S6

(c)

四、單片機工作方式

1、復位方式

1.上電自動復位

上電復位電路只需在RST端接?個電容至VCC和?個電阻至VSS即可,如圖2.14所示。加電瞬間,

RST端出現(xiàn)一段時間的高電平,只要高電平保持至少2個機器周期,51單片機就會執(zhí)行復位操作,

然后把RST恢復為低電平?電路中,時間常數(shù)RC越大,上電時保持高電平的時間越長,當振蕩頻

率為12MHz時,典型值C=10|JF,R=8.2kC,當時鐘頻率選用6MHz時,C=22pF,R=1kC。上述

參數(shù)比實際要求的值大很多,但通常設(shè)計人員并不關(guān)心多出的復位時間。

8

MCS-51單片機技術(shù)實驗基礎(chǔ)

+5

T

MCS-51

圖2.14上電復位電路,

2人工復位

除了上電復位外,有時還需要人工復位。將一個按鈕開關(guān)并聯(lián)于上電自動復位電路,就是人工復位

電路,如圖2.15?

圖2.15人工復位電路,

2、程序執(zhí)行方式

程序的執(zhí)行方式是單片機的基本工作方式。由于復位后PC=OOOOH,因此程序執(zhí)行總是從地址0000H

開始。

1.連續(xù)執(zhí)行方式

連續(xù)執(zhí)行方式是單片機執(zhí)行的基本工作方式,所要執(zhí)行的代碼放在程序存儲器ROM中(可以是片內(nèi)

或片外),CPU不斷地從程序存儲器中取指令、分析并執(zhí)行。

2.單步執(zhí)行方式

程序的執(zhí)行處于外加脈沖(通常用一個按鍵產(chǎn)生)的控制下,一般利用中斷來實現(xiàn)程序的單步執(zhí)行。

9

EAT59851實驗指導W

3、低功耗方式

對于51單片機來說,有待機方式和掉電保護方式兩種低功耗方式。通過設(shè)置電源控制寄存器PCON

的相關(guān)位,可以指定當前的工作方式為低功耗方式。PCON寄存器格式如表2.10所示。

表2.1。PCON寄存器格式"

to序。B7KB6+B5PB4,B3。B2。日B5

位符號QSMO加仲23GF1-GF0-PD小IDL-

1.待機方式

如果使用指令使PCON寄存器IDL位置“1”,則進入待機方式。這時振蕩器仍然工作,并向邏輯中

斷、串行口和定時器/計數(shù)器電路提供時鐘,但向CPU提供時鐘的電路被阻,因此CPU不能工作,

與CPU相關(guān)的如SP、PC、PWS、ACC以及全部通用寄存器也被“凍結(jié)”在原狀態(tài)。

在待機方式下,中斷功能應(yīng)繼續(xù)保留,一便采用中斷方法退出待機方式。為此,應(yīng)該引入一個外中

斷請求信號,在單片機響應(yīng)中斷的同時,IDL位被硬件自動清“0”,單片機就退出待機模式而進入正

常工作方式。

2.掉電保護方式

PCON寄存器的PD位控制單片機進入掉電保護方式。因此對于51單片機,在檢測到電源故障時,

除進行信息保護外,還應(yīng)把PD位置“1”,使之進入掉電保護方式。此時單片機一切工作都停止,只

有內(nèi)部RAM單元的內(nèi)容被保存。

五、單片機最小系統(tǒng)

單片機最小系統(tǒng)包括單片機及其所需的必要的電源、時鐘、復位等部件,能使單片機處于正常的運

行狀態(tài)。電源、時鐘等電路是使單片機能運行的必備條件,可以將最小系統(tǒng)作為應(yīng)用系統(tǒng)的核心部

分,通過對其進行存儲器擴展、A/D擴展等,因此51單片機最小系統(tǒng)的功能主要如下:

?能夠運行用戶程序。

?用戶可以復位單片機。

?具有相對強大的外部擴展功能。

最小系統(tǒng)的結(jié)構(gòu)如圖2.16所示。

圖2.16單片機最小系統(tǒng)框圖,

六、本章小結(jié)

本章主要介紹了單片機的內(nèi)部結(jié)構(gòu)和基本組成,詳細介紹了MCS-51單片機的中央處理器、存儲器

10

MCS-51單片機技術(shù)實驗基礎(chǔ)

結(jié)構(gòu)、輸入輸出接口、弓I腳、中斷系統(tǒng)、定時器/計數(shù)器以及單片機工作方式和最小系統(tǒng)等內(nèi)容,為

以后的學習打下堅實的基礎(chǔ)。

通過本章的學習,讀者應(yīng)該掌握以下幾個知識點:

1.了解單片機單片機的基本結(jié)構(gòu)和組成。

2.理解單片機的運行基本原理。

3.知道單片機最小系統(tǒng)的組成。

11

EAT59851實驗指導W

第2章C51單片機的內(nèi)部資源

重點內(nèi)容:

?輸入'輸出控制

?中斷系統(tǒng)

?定時/計數(shù)器

?本章小結(jié)

一、輸入'輸出控制

單片機I/O口即輸入/輸出接口,它可對開關(guān)量進行檢測、判斷、處理,從而去控制開關(guān)量設(shè)備。單

片機I/O口是單片機與外界發(fā)生聯(lián)系的窗口,只有了解和掌握I/O口的特點、性能、原理,才能真

正發(fā)揮I/O口的功能,才能使單片機作為一種嵌入式微控制器,應(yīng)用到各種領(lǐng)域,發(fā)揮單片機的功

能。

下面是reg51.h和reg52.h中并行I/O口的定義。使用I/O口時,不用關(guān)心I/O口的具體地址,直接

使用P0、Pl、P2、P3這些變量名就可以了。

sfrP0=0x80;/*8位I/O□P0*/

sfrPl=0x90;/*8位I/O口P1*/

sfrP2=OxAO;/*8位I/O口P2*/

sfrP3=OxBO;/*8位I/O口P3*/

在I/O口直接用做輸入/輸出時,CPU既可以把它們看做數(shù)據(jù)口,也可以看做狀態(tài)口,這是由用戶決

定的。下面看是有關(guān)I/O應(yīng)用的例子。

【例2-1】I/O應(yīng)用

設(shè)計一電路,監(jiān)視某開關(guān)K,用發(fā)光二極管LED顯示開關(guān)狀態(tài),如果開關(guān)合上,LED燈亮;否則,

LED等滅。

分析:設(shè)計電路圖如圖7.1所示。開關(guān)接在P1.4口,LED燈接在P1.0口,當開關(guān)斷開時,P1.4為

Vcc,對應(yīng)數(shù)字量為“1”,開關(guān)合上時,P1.1電平為0,對應(yīng)數(shù)字量為"0"。根據(jù)LED的解法,當P1.0

輸出為“0”時,LED燈亮,反之輸出為“1”時,燈則熄滅。

程序清單如下:

用C語言編程如下:

#include<reg51.h>

sbitpl_O=PlAO;

sbitpl」=P『l;/*定義位變量*/

voidmain()

{

pl_0=0;/*使發(fā)光二極管滅*/

for(;;)

{

P1J=1;

if(pl_l=O)

pl_0=l;

elsepl0=0;}

12

MCS-51單片機技術(shù)實驗基礎(chǔ)

P1.0(ADO)PO.O

Pl.l(ADl)PO.l

Pl.2(AD2)P0.2

Pl.3(AD3)P0.3

Pl.4(AD4)P0.4

P1.5(M0SI)(AD5)P0.5

P1.6(MISO)(AD6)P0.6

P1.7(SCK)(AD7)P0.7

P3.3(INT1)(A8)P2.0

P3.2(INT0)(A9)P2.1

(A10)P2.2

P3.5(T1)(AU)P23

P3.4(T0)(A12)P2.4

(A13)P2J

EATVPP(A14)P2.6

8

(A15)P2.7vcc

XTAL1

1840T

XTAL2VCC

20_________

GND

9Io

RST(RXD)P3.0-辛

(TXD)P3.150-

P3.7(RD)ALEyPROG

/P3.6(WR)PSEN

RI

rAT89s51

\c=tl_

F

10K—

圖71例7」圖

二、中斷系統(tǒng)

1、中斷的基本概念

首先有關(guān)中斷的幾個基本概念。

1.中斷

所謂中斷,是指CPU在正常運行程序時,由于內(nèi)部/外部事件或由程序預先安排的事件,引起CPU

中斷正在運行的程序,而轉(zhuǎn)到為內(nèi)部/外部事件或為預先安排的事件服務(wù)的程序中去,服務(wù)完畢,再

返回去執(zhí)行波暫時中斷的程序。

2.中斷源

中斷源即引起中斷的原因,中斷申請的來源,中斷源可以是I/O設(shè)備、故障、時鐘、調(diào)試中人為設(shè)

置。

3.中斷優(yōu)先級和中斷的嵌套

當有多個中斷源同時向CPU申請中斷時,CPU優(yōu)先響應(yīng)最需緊急處理的中斷請求,處理完畢再響

應(yīng)優(yōu)先級別較低的,這種預先安排的響應(yīng)次序就叫做中斷優(yōu)先級。值得一提的是,在中斷系統(tǒng)中,

高優(yōu)先級的中斷請求能中斷正在進行的較低級的中斷源處理,我們把這叫做中斷的嵌套。

4.中斷系統(tǒng)

能實現(xiàn)中斷功能并能對中斷進行管理的硬件和軟件稱為中斷系統(tǒng)。

中斷請求是在執(zhí)行程序的過程中隨機發(fā)生的,中斷系統(tǒng)要解決的問題是:

13

EAT59851實驗指導W

(1)CPU在不斷地執(zhí)行指令中,是如何檢測到隨機發(fā)生的中斷請求的?

(2)如何使中斷的雙方(CPU方和中斷源方)均能人為控制——允許中斷或禁止中斷?

(3)由于中斷產(chǎn)生的隨機性,因此不可能在程序中使用調(diào)用子程序指令或轉(zhuǎn)移指令,那么如何在實

現(xiàn)正確的轉(zhuǎn)移,從而更好地為該中斷源服務(wù)呢?

(4)中斷源有多個,而CPU只有一個,當有多個中斷源同時有中斷請求時,用戶怎么控制CPU按

照自己的需要安排響應(yīng)次序?

(5)中斷服務(wù)完畢,如何正確地返回到原斷點處?

2、中斷源及其中斷的入口地址

51單片機有5個中斷源,3個在片內(nèi),2個在月?外,它們在程序存貯器中有固定的中斷入口地址,當

CPU響應(yīng)中斷時,硬件自動形成這些地址,由此進入中斷服務(wù)程序;5個中斷源有兩級中斷優(yōu)先級,

可形成中斷嵌套;這6個中斷源的符號、名稱、產(chǎn)生條件及中斷服務(wù)程序的入口地址如表7-1。

表7-151單片機的中斷源“

符號~名稱2中斷弓1起原因。中斷服務(wù)程序入口Q

INTO-1外部>P3.2引腳的<0003HQ

中斷。2低電平或下降沿信號2

INTlr外部,P3.3引腳的一0013H*3

中斷2低電平或下降沿信號2

T(P定時器。中斷?定時計數(shù)器0讓數(shù)早雪溢出“OOOBHP

T12定時器1中斷?定時計數(shù)器1讓教鼠零溢出OOIBH^

T2~定時器2中斷?定時計數(shù)器2中斷。002BHP

(TF2或T2EX信號)。

TI/RI丁串行口“串行通信完成一幀數(shù)據(jù),0023HQ

中斷。發(fā)送或接收引起中斷。

3、中斷控制相關(guān)的寄存器

1.中斷允許控制寄存器IE(地址0A8H)

每個中斷源都可以通過置位或清除中斷允許寄存器IE中的相關(guān)中斷允許控制位分別使得中斷源有

效或無效。1E還包括一個中斷允許總控制位EA,它能一次禁止所有中斷。中斷允許寄存器格式如

下表72

14

MCS-51單片機技術(shù)實驗基礎(chǔ)

表7-2中斷允許寄存器IE〉

符bi功能2

號。

?JT中斷鼠熊狂提皴EA=O,中斷總禁止;EA=1,各中斷由各

EAP7V自的控制值設(shè)定“

—6Q未定義。

ET2<5~定時褐2中斷允許控制值。

ESC串行口中斷允許控制值“

ETb3,,定時器1中斷允許控制位

EX1+2W外部中斷1允許控制位。

ETO+IQ定時器0中斷允許控制值。

EXCkOP外部中斷1允許控制值?

2.定時器/計數(shù)器控制寄存器(TCON)(地址88H)

該寄存器用于保存外部中斷請求以及定時器的計數(shù)溢出。寄存器的內(nèi)容及位地址表7-3如下:

表7-3定時/計數(shù)器控制寄存器TCON中與中斷有關(guān)的位,,

符號2bit*,功能Q

du定時/計數(shù)器1溢出中斷請求標志位.當定時器1計數(shù)溢出時,由硬件置位

TF27"(TF1=1),并且申語中斷.當CPU響應(yīng)中斷時,由硬件自動清零(TF1=Q).,

26Q?J

TF0<5d定時/計數(shù)器。溢出中斷請求標志位.其功能及操作情況同TF1.

*33

3外部中斷1請求標志位.當外部中斷1儂據(jù)觸發(fā)方式滿足條件產(chǎn)生中斷請求時,

IE1P3P由硬件置位(IE1=1),當CPU響應(yīng)中斷時,由硬件自動清零(IE1=O).Q

?J外部中斷1觸發(fā)方式選擇位.由軟件設(shè)置.為“1”時,中斷采用下降沿觸發(fā)方

u式,INT1引腳上高到低的嬲舞可引起中斷.為“0”時,中斷采用電平觸發(fā)

27方式,INT1引腳上低電平可引起中斷.?

IE0「1P外部中斷。請求標志位.其功能及操作情況同IE1.。

rroc外部中斷。觸發(fā)方式選擇位.其功能及操作情況同IT1.Q

3.串行口控制寄存器(SCON)(98H)

串行口控制寄存器與中斷有關(guān)的控制位共2位,如表7-4所示

15

EAT59851實驗指導W

表7-4串行口控制寄存器SCON中與中斷有關(guān)的位,

符號“bitQ功能,

?2-7^串口的其他位,見233串口寄存器.

TIP2串行口發(fā)送中斷諳求標志位.當串行口發(fā)送完一幀數(shù)據(jù)后請求中斷時,由硬件

置位(TI=1).必須由軟件清零.2

RI/g串行口接收中斷請求標志位.當串行口接收完一幀數(shù)據(jù)后諳求中斷時,由硬件

置位(RI=1)。必須由軟件清零.?

4.中斷優(yōu)先級寄存器IP(地址8BH)

單片機采用了自然優(yōu)先級和人工設(shè)置高、低優(yōu)先級的策略,即可以由程序員設(shè)定那些中斷是高優(yōu)先

級、哪些中斷是低優(yōu)先級。AT89s52可設(shè)置兩個中斷優(yōu)先級,必有一些中斷處于同一級別,處于同

一級別的,就由自然優(yōu)先級確定。六個中斷源的自然優(yōu)先級(由高到低排列)為:

外部中斷0一〉定時器0中斷一>外部中斷1一>定時器1中斷一》串口中斷一〉定時器2中斷。中

斷優(yōu)先級由中斷優(yōu)先級寄存器IP(見表7-5)來設(shè)置的,IP中某位設(shè)為1,相應(yīng)的中斷就是高優(yōu)先

級,否則就是低優(yōu)先級。

表7-5中斷優(yōu)先級寄存器IP-'

符號2bit3功能”

―7.6r未定義。

PT2c5-T2中斷優(yōu)先皴控制位.PT2=1設(shè)定定時器T2為高優(yōu)先級中斷;PT2=0

為低優(yōu)先級中斷.?

PSd42串行口中斷優(yōu)先級控制位.PS=1設(shè)定串行口為高優(yōu)先級中斷;PS=O

為低優(yōu)先級中斷.。

PT1^3PT1中斷優(yōu)先皴控制位.PT1=1設(shè)定定時器T1為高優(yōu)先級中斷;PT1=0

為低優(yōu)先級中斷."

PX1*2P外部中斷1優(yōu)先級控制位.PX1=1設(shè)定定時器外部中斷1為高優(yōu)先級

中斷;PX1=。為低優(yōu)先級中斷.2

PTO'P12T0中斷優(yōu)先級控制位.PTO=1設(shè)定定時器T0為高優(yōu)先級中斷;PTO=O

為低優(yōu)先皴中斷.。

PXO^0~外部中斷0優(yōu)先級控制位.PXO=1設(shè)定定時器外部中斷0為高優(yōu)先級

中斷;FXO=O為低優(yōu)先級中斷.」

4、中斷響應(yīng)過程

單片機在每個機器周期的S5P2期間,順序采樣每個中斷源,CPU在下一個機器周期S6期間按優(yōu)先

級順序查詢中斷標志,如查詢到某個中斷標志為1,將在再下一個機器周期S1期間按優(yōu)先級進行中

斷處理。中斷得到響應(yīng)后自動清除中斷標志,由硬件將程序計數(shù)器PC內(nèi)容壓入堆棧保護,然后將

對應(yīng)的中斷矢量裝入程序計數(shù)器PC,使程序轉(zhuǎn)向中斷矢量地址單元中去執(zhí)行相應(yīng)的中斷服務(wù)程序。

在下列三種情況之一時,CPU將封鎖對中斷的響應(yīng):

(1)CPU正在處理一個同級或更高級別的中斷請求。

(2)現(xiàn)行的機器周期不是當前正執(zhí)行指令的最后個周期。我們知道,單片機有單周期、雙周期、

三周期指令,當前執(zhí)行指令是單字節(jié)沒有關(guān)系,如果是雙字節(jié)或四字節(jié)的,就要等整條指令都執(zhí)行

16

MCS-51單片機技術(shù)實驗基礎(chǔ)

完了,才能響應(yīng)中斷(因為中斷查詢是在每個機器周期都可能查到的)。

(3)當前正執(zhí)行的指令是返回指令(RETD或訪問IP、IE寄存器的指令,則CPU至少再執(zhí)行一條

指令才應(yīng)中斷。這些都是與中斷有關(guān)的,如果正訪問IP、正則可能會開、關(guān)中斷或改變中斷的優(yōu)先

級,而中斷返回指令則說明本次中斷還沒有處理完,所以都要等本指令處理結(jié)束,再執(zhí)行一條指令

才可以響應(yīng)中斷。

具體地說,CPU響應(yīng)中斷的過程分為以下幾個步驟:

(1)保護斷點,即保存下一將要執(zhí)行的指令的地址,就是把這個地址送入堆棧。

(2)尋找中斷入口,根據(jù)6個不一樣的中斷源所產(chǎn)生的中斷,查找6個不一樣的入口地址。這6個

中斷源的編號和入口地址如表7-6所示各中斷服務(wù)程序入口地址僅間隔8字節(jié),編譯器在這些地址

放入無條件轉(zhuǎn)移指令,跳轉(zhuǎn)到服務(wù)程序的實際地址。。以上工作是由計算機自動完成的,與編程者無

關(guān)。

(3)執(zhí)行中斷處理程序。

(4)中斷返回:執(zhí)行完中斷指令后,

就從中斷處返回到主程序,繼續(xù)執(zhí)行。

表7-6中斷源鼐號及程序入口地址,

編號”中斷源,入口地址2

外部中斷0-0003H^

1P定時器/計數(shù)器0QOOOBH^

2"外部中斷"0。13H口

3r定時器/計數(shù)器U001BHP

串行口中斷二0U23HQ

定時器/計數(shù)器2-002BH<

5、C51中斷的程序設(shè)計

C51使用戶能編寫高效的中斷服務(wù)程序,編譯器在規(guī)定的中斷源的矢量地址中放入無條件轉(zhuǎn)移指令,

使CPU響應(yīng)中斷后自動地從矢量地址跳轉(zhuǎn)到中斷服務(wù)程序的實際地址,而無需用戶去安排。中斷服

務(wù)程序定義為函數(shù),函數(shù)的完整定義如下:

返回值函數(shù)名([參數(shù)])[模式][BA]interruptn[usingm]

下面分別介紹后面3個參數(shù):

再入:通過屬性關(guān)鍵字reentrant將函數(shù)定義為再入函數(shù),這樣函數(shù)才能才能遞歸調(diào)用。這是因為在

C51中,普通函數(shù)(非再入的)不能遞歸調(diào)用,只有再入函數(shù)才可被遞歸調(diào)用。

interruptn:表示將函數(shù)聲明為中斷服務(wù)函數(shù),n為中斷源編號,它可以是0?31間的整數(shù),不允

許為帶運算符的表達式。n通常取以下值:

0外部中斷0;

1定時器/計數(shù)器。溢出中斷

2外部中斷1;

3定時器/計數(shù)器1溢出中斷

4串行口發(fā)送與接收中斷

Usingm:定義函數(shù)所使用的工作寄存器組,m的取值范圍為0?3,可缺省,它對目標代碼有如下

作用:函數(shù)入口處將當前寄存器保存,使用m指定的寄存器組,函數(shù)退出時原寄存器組恢復。選不

同的工作寄存器組,可方便實現(xiàn)寄存器組的現(xiàn)場保護。

值得注意的是,中斷服務(wù)函數(shù)不允許用于外部函數(shù),因為它對目標代碼有下面這些影響:

17

EAT59851實驗指導W

①當調(diào)用函數(shù)時,SFR中的ACC、B、DPH、DPL和PSW實際需要時應(yīng)該入棧。

②如果不使用寄存器組切換,中斷函數(shù)所需的所有工作寄存器Rn都入棧。

③函數(shù)退出前,所有工作寄存器出棧。

溫馨提示

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

評論

0/150

提交評論