單片機(jī)原理及應(yīng)用(第二版) 課件 第2章 單片機(jī)基礎(chǔ)知識(shí)_第1頁(yè)
單片機(jī)原理及應(yīng)用(第二版) 課件 第2章 單片機(jī)基礎(chǔ)知識(shí)_第2頁(yè)
單片機(jī)原理及應(yīng)用(第二版) 課件 第2章 單片機(jī)基礎(chǔ)知識(shí)_第3頁(yè)
單片機(jī)原理及應(yīng)用(第二版) 課件 第2章 單片機(jī)基礎(chǔ)知識(shí)_第4頁(yè)
單片機(jī)原理及應(yīng)用(第二版) 課件 第2章 單片機(jī)基礎(chǔ)知識(shí)_第5頁(yè)
已閱讀5頁(yè),還剩98頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第2章單片機(jī)基礎(chǔ)知識(shí)2.1MCS-51系列單片機(jī)的基本結(jié)構(gòu)2.2中央處理器(CPU)2.3存儲(chǔ)器及存儲(chǔ)空間2.4并行I/O口及其結(jié)構(gòu)2.5時(shí)鐘電路與CPU時(shí)序2.6單片機(jī)的工作方式習(xí)題2

2.1MCS-51系列單片機(jī)的基本結(jié)構(gòu)

2.1.1MCS-51單片機(jī)系列MCS-51系列單片機(jī)分為51子系列和52子系列。51子系列為基本型,主要有8031、8051、8751三種類(lèi)型;52子系列為增強(qiáng)型,主要有8032、8052、8752三種類(lèi)型。這兩大系列單片機(jī)的主要硬件配置如表2.1所示。

AT89系列單片機(jī)分為低檔型、標(biāo)準(zhǔn)型和高檔型三種。各種不同型號(hào)的單片機(jī),其主要差別在于片內(nèi)的Flash程序存儲(chǔ)器的容量大小、片內(nèi)數(shù)據(jù)存儲(chǔ)器的容量大小、并行I/O端口線以及中斷源個(gè)數(shù)不同。其常用產(chǎn)品特性如表2.2所示。

其中,“AT”是前綴,“89CXXXX”是型號(hào),型號(hào)之后的“XXXX”是后綴。各部分含義如下所示。

(1)前綴:“AT”表示該器件是Atmel公司的產(chǎn)品。

(2)型號(hào):可能是“89C2051”、“89LV51”、“89S52”等。

(3)后綴:由“XXXX”四個(gè)參數(shù)組成,每個(gè)參數(shù)所表示的意義不同。

2.1.2MCS-51系列單片機(jī)內(nèi)部結(jié)構(gòu)及功能部件

1.MCS-51系列單片機(jī)內(nèi)部結(jié)構(gòu)

MCS-51系列單片機(jī)內(nèi)部由中央處理器(CPU)、存儲(chǔ)器、輸入/輸出端口、定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)以及系統(tǒng)總線等構(gòu)成,通過(guò)系統(tǒng)總線把各個(gè)部分連接起來(lái)。AT89系列單片機(jī)和MCS-51系列單片機(jī)的內(nèi)部結(jié)構(gòu)類(lèi)似,AT89S51的內(nèi)部結(jié)構(gòu)框圖如圖2.1所示。圖2.1AT89S51內(nèi)部結(jié)構(gòu)框圖

2.MCS-51系列單片機(jī)功能部件

1)中央處理器(CPU)

CPU是單片機(jī)的核心部件,是一個(gè)8位二進(jìn)制數(shù)的中央處理單元,主要負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單片機(jī)系統(tǒng)協(xié)調(diào)工作,完成運(yùn)算功能并控制輸入/輸出等操作。

2)程序存儲(chǔ)器(ROM)

程序存儲(chǔ)器主要用于存放用戶程序、原始數(shù)據(jù)或表格等。

3)數(shù)據(jù)存儲(chǔ)器(RAM)

數(shù)據(jù)存儲(chǔ)器主要用于存放運(yùn)算的中間結(jié)果,進(jìn)行數(shù)據(jù)暫存及數(shù)據(jù)緩沖等。

4)定時(shí)/計(jì)數(shù)器

MCS-51系列單片機(jī)有兩個(gè)16位可編程定時(shí)/計(jì)數(shù)器,通過(guò)編程可作為定時(shí)器或計(jì)數(shù)器使用,并有四種不同的工作模式。

5)并行輸入/輸出(I/O)接口

單片機(jī)對(duì)外部電路進(jìn)行控制或交換信息是通過(guò)輸入/輸出(I/O)接口完成的,MCS-51系列單片機(jī)有四組8位的并行輸入/輸出(I/O)接口,分別為P0口、P1口、P2口和P3口,它們都是8位準(zhǔn)雙向口,每次可以并行輸入或輸出8位二進(jìn)制信息,也可以按位進(jìn)行輸入或輸出信息操作。

6)全雙工串行接口

MCS-51系列單片機(jī)有一個(gè)全雙工串行通信接口,用于與外部設(shè)備進(jìn)行串行信息傳送。該串行口可編程,有四種不同的工作模式,既可以作為異步通信收發(fā)器以與其他外部設(shè)備完成信息交換,也可以作為同步移位寄存器來(lái)擴(kuò)展I/O接口電路。

7)中斷系統(tǒng)

中斷是指CPU暫停正在執(zhí)行的程序轉(zhuǎn)而處理中斷服務(wù)程序,在執(zhí)行完中斷服務(wù)程序之后再回到原來(lái)正在執(zhí)行的程序繼續(xù)執(zhí)行。

8)時(shí)鐘電路

單片機(jī)各部件之間有條不紊地協(xié)調(diào)工作,其控制信號(hào)是在一種基本節(jié)拍的指揮下按一定的時(shí)間順序發(fā)出的,這些控制信號(hào)在時(shí)間上的相互關(guān)系就是CPU時(shí)序。而產(chǎn)生這種時(shí)序的電路就是振蕩器和時(shí)鐘電路。

9)內(nèi)部總線

總線是用于傳送信息的公共途徑。根據(jù)總線上傳送的信息的不同,MCS-51系列單片機(jī)的內(nèi)部總線可分為數(shù)據(jù)總線、地址總線和控制總線。

2.1.3單片機(jī)外部引腳說(shuō)明

使用HMOS制造工藝的MCS-51系列單片機(jī)大部分采用40引腳雙列直插式封裝(DIP)。CHMOS制造工藝的單片機(jī)有兩種封裝形式:雙列直插式和方形PLCC封裝,MCS-51系列單片機(jī)引腳圖如圖2.2所示。

圖2.2MCS-51系列單片機(jī)引腳圖

1.主電源線

VCC(40引腳):接+5V電源正端,正常操作和對(duì)EPROM編程及驗(yàn)證時(shí)均接+5V電源。

GND(20引腳):接電源地端。

2.外接晶體線

XTAL1(19引腳):接外部晶體振蕩器的一端。

3.I/O端口線

MCS-51系列單片機(jī)共有四組并行I/O端口P0~P3,每個(gè)端口都有8條端口線,共有32條I/O端口線,每個(gè)接口的功能和用途有一定的差別。

(1)?P0口(32~39引腳):P0.0~P0.7統(tǒng)稱(chēng)為P0口,是一個(gè)8位漏極開(kāi)路型雙向I/O端口,其中P0.7為最高位。

(2)?P1口(1~8引腳):P1.0~P1.7統(tǒng)稱(chēng)為P1口,是一個(gè)帶內(nèi)部上拉電阻的8位準(zhǔn)雙向口,P1.7為最高位。

(3)?P2口(21~28引腳):P2.0~P2.7統(tǒng)稱(chēng)為P2口,也是一個(gè)帶內(nèi)部上拉電阻的8位準(zhǔn)雙向口,P2.7為最高位。

(4)?P3口(10~17引腳):P3.0~P3.7統(tǒng)稱(chēng)為P3口,也是一個(gè)帶內(nèi)部上拉電阻的8位準(zhǔn)雙向口,P3.7為最高位。

4.控制線

RST/VPD(9引腳):?jiǎn)纹瑱C(jī)復(fù)位/備用電源引腳。該引腳為單片機(jī)的上電復(fù)位或掉電保護(hù)端,該引腳上出現(xiàn)持續(xù)兩個(gè)機(jī)器周期的高電平就可實(shí)現(xiàn)復(fù)位操作,使單片機(jī)恢復(fù)到初始狀態(tài)。

MCS-51系列單片機(jī)功能多但引腳少。許多引腳具有雙重功能。這種雙重功能的設(shè)置為單片機(jī)系統(tǒng)擴(kuò)展奠定了基礎(chǔ)。MCS-51系列單片機(jī)對(duì)外呈現(xiàn)三總線的形式,由P0口分時(shí)復(fù)用為8位數(shù)據(jù)總線,P0、P2構(gòu)成16位地址總線,由ALE、RST、、、

(P3.6)、(P3.7)等信號(hào)組成控制總線,MCS-51系列單片機(jī)總線結(jié)構(gòu)框圖如圖2.3所示。

圖2.3MCS-51系列單片機(jī)總線結(jié)構(gòu)框圖

2.2中央處理器(CPU)

2.2.1運(yùn)算器運(yùn)算器以算術(shù)邏輯單元(ALU)為核心,包括布爾處理器、累加器(ACC)、寄存器B、暫存器(TMP1、TMP2)、程序狀態(tài)字寄存器(PSW)等部件(見(jiàn)圖2.1),用來(lái)完成數(shù)據(jù)的算術(shù)邏輯運(yùn)算、位變量處理和數(shù)據(jù)傳輸操作。

1.算術(shù)邏輯單元

ALU是由加法器和其他邏輯電路等組成的,是運(yùn)算器的核心部件,可對(duì)數(shù)據(jù)進(jìn)行算術(shù)四則運(yùn)算和邏輯運(yùn)算、移位操作、位操作等。

2.累加器

ACC是一個(gè)8位寄存器,簡(jiǎn)稱(chēng)A,用來(lái)存放參與算術(shù)運(yùn)算和邏輯運(yùn)算的一個(gè)操作數(shù)或運(yùn)算結(jié)果,是CPU執(zhí)行指令時(shí)使用最頻繁的寄存器。

3.寄存器B

寄存器B是一個(gè)8位寄存器,是為ALU進(jìn)行乘、除法運(yùn)算而設(shè)置的。

4.暫存器

TMP1、TMP2用于為ALU暫存兩個(gè)8位的二進(jìn)制操作數(shù),對(duì)用戶不開(kāi)放。

5.程序狀態(tài)字寄存器

PSW是一個(gè)8位標(biāo)志寄存器,用來(lái)存放程序運(yùn)行中的各種狀態(tài)信息,以供程序查詢和判斷。PSW中各位的狀態(tài)通常是在操作過(guò)程中自動(dòng)形成的,也可以由用戶根據(jù)需要按位進(jìn)行操作。其各位的定義如下(PSW字節(jié)地址為D0H):

其各位的定義如下(PSW字節(jié)地址為D0H):

RS1、RS0狀態(tài)與工作寄存器組的對(duì)應(yīng)關(guān)系如表2.4所示。

6.布爾處理器(位處理器)

布爾處理器是MCS-51單片機(jī)ALU具有的一種功能。單片機(jī)指令系統(tǒng)中的17條位處理指令、存儲(chǔ)器中的位地址空間以及借用程序狀態(tài)寄存器中的進(jìn)位標(biāo)志位Cy作為位操作累加器,構(gòu)成了單片機(jī)的布爾處理器。它可對(duì)直接尋址的位變量進(jìn)行位處理,如置位、清零、取反以及邏輯與、或等操作,并可以方便地設(shè)置標(biāo)志等。

2.2.2控制器

控制器是對(duì)來(lái)自存儲(chǔ)器中的指令進(jìn)行譯碼,通過(guò)定時(shí)控制電路,在規(guī)定的時(shí)刻發(fā)出各種操作所需的全部?jī)?nèi)部和外部的控制信號(hào),使各部分協(xié)調(diào)工作,完成指令所規(guī)定的功能的器件??刂破髦饕沙绦蛴?jì)數(shù)器(PC)、指令寄存器(IR)、指令譯碼器(ID)和定時(shí)控制邏輯電路等組成。

1.程序計(jì)數(shù)器

PC是一個(gè)16位的、具有自動(dòng)加1功能的寄存器,用來(lái)存放下一條將要執(zhí)行指令的ROM地址值。

2.指令寄存器

IR是一個(gè)8位的寄存器,用于存放CPU根據(jù)PC地址從ROM中讀出的指令操作碼,等待譯碼。

3.指令譯碼器

ID用于對(duì)指令寄存器中的指令進(jìn)行譯碼,將指令轉(zhuǎn)變?yōu)閳?zhí)行此指令所需要的電信號(hào)。

4.定時(shí)控制邏輯電路

定時(shí)部件用于產(chǎn)生脈沖序列和多種節(jié)拍脈沖;控制邏輯根據(jù)指令譯碼器產(chǎn)生的操作信號(hào),按一定時(shí)間順序發(fā)出一系列節(jié)拍脈沖控制信號(hào)來(lái)完成指令所規(guī)定的全部操作。

2.2.3專(zhuān)用寄存器組

專(zhuān)用寄存器也稱(chēng)為特殊功能寄存器(SFR),主要用來(lái)指示當(dāng)前要執(zhí)行指令的內(nèi)存地址,存放特定的操作數(shù),指示指令的運(yùn)行狀態(tài)等。MCS-51系列單片機(jī)共有21個(gè)特殊功能寄存器,離散地分布在片內(nèi)RAM的高128B地址中。前面介紹的A、B、PSW等都是特殊功能寄存器,但程序計(jì)數(shù)器不是特殊功能寄存器,不可訪問(wèn)。

2.3存儲(chǔ)器及存儲(chǔ)空間

2.3.1存儲(chǔ)器空間MCS-51單片機(jī)的存儲(chǔ)器結(jié)構(gòu)框圖如圖2.4所示。

圖2.4MCS-51單片機(jī)存儲(chǔ)器結(jié)構(gòu)框圖

在物理結(jié)構(gòu)上,MCS-51系列單片機(jī)有四個(gè)存儲(chǔ)空間,分別為

(1)片內(nèi)程序存儲(chǔ)器。

(2)片外程序存儲(chǔ)器。

(3)片內(nèi)數(shù)據(jù)存儲(chǔ)器。

(4)片外數(shù)據(jù)存儲(chǔ)器(包括I/O地址空間)。

從用戶使用角度,即從邏輯上看,MCS-51系列單片機(jī)有三個(gè)存儲(chǔ)空間,分別為

(1)片內(nèi)、外統(tǒng)一編址的64KB程序存儲(chǔ)器(0000H~0FFFFH)。

(2)片內(nèi)數(shù)據(jù)存儲(chǔ)器(包含128B的SFR空間80H~0FFH)。

(3)?64KB的片外數(shù)據(jù)存儲(chǔ)器(包括I/O地址空間)。

2.3.2程序存儲(chǔ)器

程序存儲(chǔ)器一般用于存放程序、表格和常數(shù)。MCS-51單片機(jī)的程序存儲(chǔ)器空間最大為64KB(0000H~0FFFFH),其地址指針為16位的程序計(jì)數(shù)器PC,程序存儲(chǔ)器的地址是連續(xù)、統(tǒng)一的。

2.程序存儲(chǔ)器中的特殊單元

MCS-51單片機(jī)的程序存儲(chǔ)器中有一些特殊的存儲(chǔ)單元,這些存儲(chǔ)單元具有固定的用途,在使用中應(yīng)加以注意。這些存儲(chǔ)單元分別為

?0000H:?jiǎn)纹瑱C(jī)上電或復(fù)位后PC的值,即程序必須從該地址開(kāi)始執(zhí)行。

?0003H:外部中斷0入口地址。

?000BH:定時(shí)/計(jì)數(shù)器0溢出中斷入口地址。

?0013H:外部中斷1入口地址。

?001BH:定時(shí)/計(jì)數(shù)器1溢出中斷入口地址。

?0023H:串行口中斷入口地址。

?002BH:定時(shí)/計(jì)數(shù)器2溢出或T2EX(P1.1)端負(fù)跳變時(shí)的入口地址(僅52子系列有)。

2.3.3內(nèi)部數(shù)據(jù)存儲(chǔ)器

數(shù)據(jù)存儲(chǔ)器用于存放運(yùn)算中間結(jié)果、數(shù)據(jù)暫存和緩沖、標(biāo)志位等。MCS-51單片機(jī)片內(nèi)數(shù)據(jù)存儲(chǔ)器在物理上可分為兩個(gè)不同的區(qū),即為片內(nèi)RAM區(qū)和特殊功能寄存器區(qū)(SFR)。

1.片內(nèi)RAM

片內(nèi)RAM區(qū)從功能用途上又可分為三個(gè)不同的區(qū)域:工作寄存器區(qū)、位尋址區(qū)、通用RAM區(qū),如表2.5所示。

1)工作寄存器區(qū)

片內(nèi)RAM的00H~1FH區(qū)域設(shè)置為工作寄存器區(qū),該區(qū)域共有32個(gè)存儲(chǔ)單元,均勻地劃分為4組,每組由8個(gè)工作寄存器R0~R7構(gòu)成。工作寄存器組和RAM地址的對(duì)應(yīng)關(guān)系如表2.6所示。

2)位尋址區(qū)

片內(nèi)RAM的20H~2FH的16個(gè)字節(jié)為位尋址區(qū)。這16個(gè)地址單元共有128位,每一位都有一個(gè)位地址,即為00H~7FH,每一位可以視為一個(gè)軟件觸發(fā)器,由程序直接進(jìn)行位處理,通常用于存放各種程序的運(yùn)行標(biāo)志、位變量的狀態(tài)等。字節(jié)地址與位地址之間的關(guān)系如表2.7所示。

3)通用RAM區(qū)

片內(nèi)RAM的30H~7FH為通用RAM區(qū),用做堆棧或數(shù)據(jù)緩沖,只能按字節(jié)存取。在單片機(jī)的實(shí)際應(yīng)用中,往往需要有一個(gè)連續(xù)的先進(jìn)后出的RAM緩沖區(qū),用于保護(hù)臨時(shí)數(shù)據(jù),這種以先進(jìn)后出原則存取數(shù)據(jù)的RAM緩沖區(qū)稱(chēng)為堆棧。

向堆棧中存放(壓入)數(shù)據(jù)稱(chēng)為入棧,從堆棧中取出(彈出)數(shù)據(jù)稱(chēng)為出棧,堆棧只有這兩種操作。不論數(shù)據(jù)是入棧還是出棧,都是對(duì)棧頂?shù)膯卧M(jìn)行操作,堆棧是向上生成的。

2.特殊功能寄存器(SFR)

所謂特殊功能寄存器,是區(qū)別于通用寄存器的寄存器。特殊功能寄存器的功能和用途有專(zhuān)門(mén)的規(guī)定,主要包括用于對(duì)片內(nèi)各功能模塊進(jìn)行管理、控制、監(jiān)視的控制寄存器和狀態(tài)寄存器。

MCS-51子系列單片機(jī)共有21個(gè)SFR,其名稱(chēng)和字節(jié)地址如表2.8所示。

52子系列中除了具有51子系列所有的21個(gè)SFR之外,還增加了5個(gè),如表2.9所示。

AT89S51單片機(jī)除了具有51子系列的21個(gè)特殊功能寄存器以外,還增加了5個(gè)特殊功能寄存器,分別為AUXR、WDTRST、AUXR1、DP1L和DP1H。

(1)?AUXR輔助寄存器字節(jié)地址為8EH,其各位的定義如下:

(2)?AUXR1輔助寄存器用來(lái)選擇雙數(shù)據(jù)指針寄存器,其字節(jié)地址為A2H,各位定義如下:

(3)看門(mén)狗復(fù)位寄存器WDTRST的字節(jié)地址為A6H,該寄存器為只寫(xiě)寄存器。當(dāng)要打開(kāi)WDT時(shí),用戶必須按順序給該寄存器寫(xiě)入1EH和0E1H。

(4)?DP1L和DP1H為16位數(shù)據(jù)指針寄存器DPTR1的低字節(jié)和高字節(jié)。

2.3.4外部數(shù)據(jù)存儲(chǔ)器

MCS-51單片機(jī)可通過(guò)外部擴(kuò)展電路將RAM芯片和CPU相接,片外最大可以擴(kuò)展64KB的數(shù)據(jù)存儲(chǔ)器。對(duì)片外RAM進(jìn)行讀、寫(xiě)時(shí),由P0、P2口提供地址信號(hào),只能采用寄存器間接尋址方式。間接尋址寄存器可使用的寄存器有通用寄存器R0、R1以及數(shù)據(jù)指針寄存器DPTR,當(dāng)R0或R1作為間接尋址寄存器時(shí),P0將R0或R1的內(nèi)容(8位)作為地址輸出,因此最大尋址空間為256B,地址范圍為00H~0FFH,與片內(nèi)RAM地址重疊,但由于訪問(wèn)片內(nèi)和片外數(shù)據(jù)存儲(chǔ)器采用的尋址方式和指令不同,因此不會(huì)引起混亂。

MCS-51單片機(jī)對(duì)片外RAM和擴(kuò)展的I/O端口進(jìn)行統(tǒng)一編址,即外部擴(kuò)展的任何I/O接口和外圍設(shè)備地址均占用片外RAM的地址,因此使用時(shí)要合理安排地址范圍。CPU對(duì)片外RAM和I/O端口操作使用相同的訪問(wèn)指令和控制線。有關(guān)外部數(shù)據(jù)存儲(chǔ)器和I/O端口的擴(kuò)展請(qǐng)參閱本書(shū)第5章。

2.4并行I/O口及其結(jié)構(gòu)2.4.1P0口的結(jié)構(gòu)與功能1.P0口的結(jié)構(gòu)P0口是一個(gè)三態(tài)雙向口,在系統(tǒng)擴(kuò)展時(shí),作為低8位地址線和數(shù)據(jù)總線的分時(shí)復(fù)用口;在其他狀態(tài)下可作為通用I/O接口。P0口一位的結(jié)構(gòu)框圖如圖2.5所示,它由一個(gè)輸出鎖存器、兩個(gè)三態(tài)輸入緩沖器、一個(gè)輸出驅(qū)動(dòng)電路和一個(gè)輸出控制電路組成。輸出驅(qū)動(dòng)電路由一對(duì)FET(場(chǎng)效應(yīng)管)VT1和VT2組成,其工作狀態(tài)受輸出控制電路的控制;輸出控制電路由一個(gè)與門(mén)電路、一個(gè)反相器和一個(gè)多路開(kāi)關(guān)MUX組成。

圖2.5P0口一位的結(jié)構(gòu)框圖

2.P0口的功能

1)?P0口作為一般I/O口使用時(shí)

圖2.5中的多路開(kāi)關(guān)MUX的位置由CPU發(fā)出的控制信號(hào)決定。當(dāng)MCS-51片外無(wú)擴(kuò)展存儲(chǔ)器系統(tǒng)時(shí),P0口作為通用I/O口使用,此時(shí)CPU內(nèi)部發(fā)出控制電平“0”封鎖與門(mén),使輸出上拉場(chǎng)效應(yīng)管VT1截止,同時(shí)多路開(kāi)關(guān)把輸出鎖存器端與輸出場(chǎng)效應(yīng)管VT2的柵極接通。此時(shí)P0即作為一般的I/O口使用。

2)?P0口作為地址/數(shù)據(jù)總線使用時(shí)

當(dāng)MCS-51片外擴(kuò)展有RAM、I/O接口、ROM時(shí),P0端口作為地址/數(shù)據(jù)總線使用,此時(shí)可分為兩種情況。一種是以P0口引腳輸出地址/數(shù)據(jù)信息,這時(shí)CPU內(nèi)部發(fā)出高電平的控制信號(hào),打開(kāi)與門(mén),同時(shí)使多路開(kāi)關(guān)MUX把CPU內(nèi)部地址/數(shù)據(jù)總線反相后與輸出驅(qū)動(dòng)場(chǎng)效應(yīng)管VT2的柵極接通。

2.4.2P1口的結(jié)構(gòu)與功能

P1口是一個(gè)準(zhǔn)雙向口,用作通用I/O口,P1口一位的結(jié)構(gòu)框圖如圖2.6所示。Pl口通常作為通用I/O口使用,所以在電路結(jié)構(gòu)上與P0口有一些不同。首先它不再需要多路轉(zhuǎn)換開(kāi)關(guān)MUX和控制電路部分;其次是輸出驅(qū)動(dòng)電路部分只有一個(gè)FET,同時(shí)內(nèi)部有上拉電阻,此電阻直接與電源相連。當(dāng)Pl口作為輸出口使用時(shí),能向外部提供拉電流負(fù)載,無(wú)需再外接上拉電阻。

圖2.6P1口一位的結(jié)構(gòu)框圖

2.4.3P2口的結(jié)構(gòu)與功能

P2口也是一個(gè)準(zhǔn)雙向I/O口,P2口一位的結(jié)構(gòu)框圖如圖2.7所示。P2口的電路結(jié)構(gòu)與P1口類(lèi)似,驅(qū)動(dòng)部分與P1口相同,但P2口具有通用I/O接口或高8位地址總線輸出兩種功能,因此其輸出驅(qū)動(dòng)結(jié)構(gòu)相比P1口多了一個(gè)輸出轉(zhuǎn)換開(kāi)關(guān)MUX和反相器。

圖2.7P2口一位的結(jié)構(gòu)框圖

2.4.4P3口的結(jié)構(gòu)與功能

P3口也是一個(gè)準(zhǔn)雙向I/O口,P3口一位的結(jié)構(gòu)框圖如圖2.8所示。由圖可知,P3口每一位的輸出驅(qū)動(dòng)由與非門(mén)、場(chǎng)效應(yīng)管組成,比P0、P1、P2多了一個(gè)緩沖器。除了作為通用的I/O端口外,P3口的每一位均具有第二功能。

圖2.8P3口一位的結(jié)構(gòu)框圖

2.4.5I/O口的應(yīng)用特性

1.使用原則

MCS-51單片機(jī)中的四個(gè)I/O接口在實(shí)際使用中一般遵循以下用法:P0口一般作為系統(tǒng)擴(kuò)展地址低8位/數(shù)據(jù)口分時(shí)復(fù)用;P1口一般作為I/O口使用;P2口作為系統(tǒng)擴(kuò)展地址高8位和I/O接口擴(kuò)展用的地址譯碼器的輸入;P3口作為中斷輸入、串行口、定時(shí)/計(jì)數(shù)以及讀/寫(xiě)控制信號(hào)使用。

2.端口負(fù)載能力和接口要求

P0口的輸出級(jí)與P1~P3口的輸出級(jí)在結(jié)構(gòu)上不相同,因此它們的帶負(fù)載能力和接口要求也各不相同。

(1)?P0口的每一位可驅(qū)動(dòng)8個(gè)LSTTL輸入,當(dāng)作通用I/O口使用時(shí),輸出級(jí)是漏極開(kāi)路電路,故需外接上拉電阻才能有高電平輸出;當(dāng)作地址/數(shù)據(jù)總線用時(shí),不需要外接上拉電阻,此時(shí)不能作通用的I/O口使用。

(2)?P1~P3口的輸出級(jí)都接有內(nèi)部上拉電阻,它們的每一位可以驅(qū)動(dòng)4個(gè)LSTTL負(fù)載。

(3)?P0~P3口都是準(zhǔn)雙向口,作輸入時(shí),必須先向相應(yīng)的端口鎖存器寫(xiě)入1。當(dāng)系統(tǒng)復(fù)位時(shí),P0~P3口鎖存器全為1。

2.5時(shí)鐘電路與CPU時(shí)序

單片機(jī)內(nèi)各種操作都是按著節(jié)拍有序地進(jìn)行的,控制各部件協(xié)調(diào)工作的控制信號(hào)也是在一種基本節(jié)拍的指揮下按一定的順序發(fā)出的。產(chǎn)生這種基本節(jié)拍的電路就是振蕩器和時(shí)鐘電路??刂菩盘?hào)在時(shí)間上的相互關(guān)系稱(chēng)為CPU時(shí)序。

2.5.1時(shí)鐘電路

AT89S51單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,引腳XTAL1、XTAL2分別為該反相放大器的輸入和輸出端。該反相放大器外接定時(shí)反饋元件組成振蕩器或通過(guò)外接時(shí)鐘源的方法,產(chǎn)生時(shí)鐘送至單片機(jī)內(nèi)部的各部件。時(shí)鐘頻率越高,單片機(jī)控制器的控制節(jié)拍越快,運(yùn)算速度就越快。根據(jù)硬件電路的不同,單片機(jī)的時(shí)鐘電路可分為內(nèi)部時(shí)鐘和外部時(shí)鐘兩種方式。

1.內(nèi)部時(shí)鐘方式

AT89S51單片機(jī)內(nèi)部振蕩電路如圖2.9所示,但要形成時(shí)鐘還必須外接晶體或陶瓷諧振器(簡(jiǎn)稱(chēng)晶振),外接電路如圖2.10所示。

圖2.9AT89S51單片機(jī)內(nèi)部振蕩電路

圖2.10內(nèi)部時(shí)鐘方式的外接電路

2.外部時(shí)鐘方式

MCS-51單片機(jī)的內(nèi)部工作時(shí)鐘也可以由外部振蕩器產(chǎn)生,對(duì)于HMOS型和CHMOS型MCS-51單片機(jī),它們的時(shí)鐘電路接法稍有不同,其電路連接方式如圖2.11所示。圖2.11外部時(shí)鐘連接方式

2.5.2CPU時(shí)序

單片機(jī)中一條指令的執(zhí)行可以分解為若干個(gè)基本的微操作,這些微操作是在單片機(jī)提供的時(shí)鐘脈沖信號(hào)作用下,嚴(yán)格按時(shí)間的先后次序執(zhí)行的,這些次序就是CPU的時(shí)序。

1.振蕩周期

振蕩周期是由單片機(jī)片內(nèi)或片外振蕩器所產(chǎn)生的,為單片機(jī)提供時(shí)鐘源信號(hào)的周期,其值為1/fosc。

2.時(shí)鐘周期

時(shí)鐘周期又稱(chēng)為狀態(tài)周期S,由內(nèi)部時(shí)鐘電路產(chǎn)生,兩個(gè)振蕩周期為一個(gè)時(shí)鐘周期。

3.機(jī)器周期

機(jī)器周期是完成一個(gè)規(guī)定操作所需的時(shí)間,是單片機(jī)執(zhí)行一種基本操作的時(shí)間單位。

4.指令周期

執(zhí)行一條指令所占用的時(shí)間稱(chēng)為指令周期,一個(gè)指令周期通常由1~4個(gè)機(jī)器周期組成,依據(jù)指令的不同而不同。指令的執(zhí)行速度和它所占用的機(jī)器周期數(shù)直接相關(guān),占用的機(jī)器周期數(shù)少則執(zhí)行速度快。

四種時(shí)序單位中,振蕩周期和機(jī)器周期是單片機(jī)內(nèi)計(jì)算其他時(shí)間值的基本時(shí)序單位。下面以單片機(jī)外接晶振頻率為12MHz為例,說(shuō)明各種時(shí)序單位之間的關(guān)系。

5.CPU取指令、執(zhí)行指令時(shí)序

每一條指令的執(zhí)行都包括取指令和執(zhí)行指令兩個(gè)階段。在取指令階段,CPU從程序存儲(chǔ)器中取出指令操作碼和操作數(shù),在指令執(zhí)行階段執(zhí)行這條指令。MCS-51單片機(jī)指令系統(tǒng)中,指令字節(jié)長(zhǎng)度為1~3個(gè)字節(jié),按指令字節(jié)數(shù)和執(zhí)行所需時(shí)間不同,可將指令分為單字節(jié)單周期指令、單字節(jié)雙周期指令、單字節(jié)四周期指令、雙字節(jié)單周期指令、雙字節(jié)雙周期指令和三字節(jié)雙周期指令。這些指令在執(zhí)行過(guò)程中的時(shí)序是不相同的。單周期和雙周期CPU取指/執(zhí)行時(shí)序如圖2.12所示。

圖2.12CPU取指/執(zhí)行時(shí)序

2.6單片機(jī)的工作方式

2.6.1復(fù)位方式復(fù)位是單片機(jī)的硬件初始化操作。復(fù)位的作用是使中央處理器CPU以及其他功能部件都恢復(fù)到一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開(kāi)始工作。除此之外,當(dāng)單片機(jī)程序運(yùn)行出錯(cuò)或系統(tǒng)處于死循環(huán)狀態(tài)等情況時(shí),需要對(duì)單片機(jī)進(jìn)行復(fù)位以重新啟動(dòng)機(jī)器。復(fù)位后,程序計(jì)數(shù)器的內(nèi)容為0000H,使單片機(jī)從0000H開(kāi)始執(zhí)行程序,其他特殊功能寄存器的復(fù)位狀態(tài)如表2.10所示。

除了看門(mén)狗WDT定時(shí)器可使單片機(jī)復(fù)位,MCS-51單片機(jī)的復(fù)位還可以靠外部電路實(shí)現(xiàn),信號(hào)由RST引腳輸入,高電平有效。當(dāng)RST引腳上持續(xù)兩個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)即完成復(fù)位。若使用頻率為6MHz的晶振,則復(fù)位信號(hào)持續(xù)時(shí)間應(yīng)超過(guò)4?μs才能完成復(fù)位操作。常用復(fù)位電路有上電復(fù)位和手動(dòng)復(fù)位(外部復(fù)位)兩種,如圖2.13所示。

圖2.13常用復(fù)位電路

2.6.2程序執(zhí)行方式

程序執(zhí)行方式是單片機(jī)的基本工作方式,即執(zhí)行用戶編寫(xiě)好的、存放在程序存儲(chǔ)器中的程序。由于單片機(jī)復(fù)位后PC的值為0000H,因此程序執(zhí)行總是從地址0000H開(kāi)始。但一般程序并不是真正從0000H開(kāi)始,為此往往在0000H開(kāi)始的單元中存放一條無(wú)條件轉(zhuǎn)移指令,以便跳轉(zhuǎn)到實(shí)際程序的入口去執(zhí)行。

2.6.3單步執(zhí)行方式

單步執(zhí)行方式是通過(guò)外來(lái)脈沖控制程序的執(zhí)行,每產(chǎn)生一個(gè)脈沖即執(zhí)行一條指令。而外來(lái)脈沖通常是通過(guò)按鍵產(chǎn)生的,因此實(shí)際上單步執(zhí)行就是按一次鍵執(zhí)行一條指令。單步執(zhí)行需要外部電路產(chǎn)生控制脈沖信號(hào),通??山柚鷨纹瑱C(jī)的外部中斷來(lái)實(shí)現(xiàn)。假定利用外部中斷1來(lái)實(shí)現(xiàn)程序的單步執(zhí)行,則應(yīng)事先做好以下兩項(xiàng)準(zhǔn)備工作。

2.6.4低功耗方式

為了適應(yīng)電源功耗要求低的應(yīng)用場(chǎng)合,CHMOS型的MCS-51單片機(jī)設(shè)置了低功耗工作方式。另外,在掉電保護(hù)情況下,由備用電源為單片機(jī)進(jìn)行低功耗供電,因此掉電保護(hù)方式實(shí)際上也是一種低功耗方式。故低功耗方式有兩種:空閑方式和掉電保護(hù)方式。

空閑方式和掉電保護(hù)方式是由電源控制寄存器PCON的有關(guān)位來(lái)控制的。電源控制寄存器是一個(gè)8位寄存器,不可位尋址,其格式如下:

?SMOD:串行口波特率系數(shù)控制位。在方式1、2和3時(shí),串行通信的波特率與SMOD有關(guān)。當(dāng)SMOD=1時(shí),通信波特率乘2;當(dāng)SMOD=0時(shí),波特率不變。

?GF1:通用標(biāo)志1。

?GF0:通用標(biāo)志0。

?PD:掉電方式控制位,PD=1時(shí),系統(tǒng)進(jìn)入掉電方式。

?IDL:空閑方式控制位,IDL=1時(shí),系統(tǒng)進(jìn)入空閑方式。

顯然,要想使單片機(jī)進(jìn)入空閑或掉電工作方式,只要執(zhí)行一條能使IDL或PD位為1的指令就可以了。

1.空閑方式

通過(guò)編程將電源控制寄存器PCON的IDL位置1,單片機(jī)即進(jìn)入空閑方式。進(jìn)入空閑方式后,振蕩器仍然運(yùn)行,時(shí)鐘信號(hào)輸出到中斷系統(tǒng)、串行口以及定時(shí)/計(jì)數(shù)器模塊,但不向CPU提供時(shí)鐘,CPU停止工作。

2.掉電保護(hù)方式

進(jìn)入掉電保護(hù)方式只需使用指令將PCON的PD位置為1即可。進(jìn)入掉電保護(hù)方式,單片機(jī)的一切工作全部停止,只有片內(nèi)RAM和特殊功能寄存器中的內(nèi)容被保存,片內(nèi)其他功能部件都停止工作。

2.6.5掉電保護(hù)方式

單片機(jī)在系統(tǒng)運(yùn)行過(guò)程中,如發(fā)生掉電故障,將會(huì)丟失RAM和寄存器中程序的數(shù)據(jù),其后果有時(shí)是很?chē)?yán)重的。為此,MCS-51單片機(jī)設(shè)置有掉電保護(hù)措施,進(jìn)行掉電保護(hù)處理。其具體做法是先將有用的信息轉(zhuǎn)存,再啟用備用電源維持供電。

2.接通備用電源

信息轉(zhuǎn)存后還應(yīng)維持內(nèi)部RAM的供電,才能保護(hù)轉(zhuǎn)存的信息不被破壞。為此,系統(tǒng)應(yīng)設(shè)置備用電源,并能在掉電后立即接通備用電源。備用電源由單片機(jī)的RST/VPD引腳接入。為了在掉電時(shí)能及時(shí)接通備用電源,系統(tǒng)中還需具有備用電源與Vcc的切換電路,如圖2.14所示。圖2.14備用電源與Vcc的切換電路

2.6.6Flash編程和校驗(yàn)方式

AT89S51單片機(jī)內(nèi)部有4KB的Flash存儲(chǔ)器,允許用戶多次編輯和擦除,用戶可以很方便地進(jìn)行程序和數(shù)據(jù)的修改。AT89S51工作在Flash編程和校驗(yàn)方式下時(shí),主要包括以下幾個(gè)過(guò)程:讀片內(nèi)簽名字節(jié)、Flash存儲(chǔ)器編程、程序校驗(yàn)、程序加密和芯片擦除。

1.讀片內(nèi)簽名字節(jié)

簽名字節(jié)是生產(chǎn)廠家在生產(chǎn)產(chǎn)品時(shí)寫(xiě)入到存儲(chǔ)器中的信息。

1)?Flash存儲(chǔ)器的并行編程

并行編程即通過(guò)傳統(tǒng)的EPROM編程器使用高電壓(+12V)和協(xié)調(diào)的控制信號(hào)進(jìn)行編程。AT89S51單片機(jī)的代碼是逐一字節(jié)進(jìn)行編程的。編程前,須按照?qǐng)D2.15所示的Flash編程硬件邏輯電路圖連接好地址、數(shù)據(jù)和控制信號(hào),編程方法如下:

(1)在地址線上加上要編程單元的地址信號(hào)。

(2)在數(shù)據(jù)線上加上要寫(xiě)入的數(shù)據(jù)字節(jié)。

(3)激活相應(yīng)的控制信號(hào)。

(4)將EA/VPP端加上?+12V編程電壓。

(5)每對(duì)Flash存儲(chǔ)器寫(xiě)入一個(gè)字節(jié)或每寫(xiě)入一個(gè)程序加密位,加上一個(gè)編程脈沖。圖2.15Flash編程硬件邏輯電路圖

2)?Flash存儲(chǔ)器的串行編程

串行編程將RST接至Vcc,通過(guò)串行ISP接口進(jìn)行編程,串行接口包含SCK(串行時(shí)鐘)線P1.7、MOSI(輸入)線P1.5和MISO(輸出)線P1.6。將RST拉高后,在其他操作前必須發(fā)出編程使能指令,編程前需將芯片擦除。外部時(shí)鐘信號(hào)需接至XTAL1端或XTAL1和XTAL2接至晶體振蕩器,最高的串行時(shí)鐘(S

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論