版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年智慧城市廠房委托出租與城市管理服務(wù)合同3篇
- 2025年度紡織行業(yè)供應(yīng)鏈金融服務(wù)合同范本3篇
- 二零二四年養(yǎng)老院活動(dòng)指導(dǎo)員聘用合同(老年文化活動(dòng)策劃與執(zhí)行)3篇
- 二零二五版安保服務(wù)合同糾紛處理?xiàng)l款3篇
- 二零二四年度“石油化工”項(xiàng)目投資合同
- 二零二五年度疫情期間電子商務(wù)平臺(tái)運(yùn)營(yíng)與推廣合同3篇
- 2024注冊(cè)不良資產(chǎn)處置公司協(xié)議轉(zhuǎn)讓
- 2024版用房產(chǎn)抵押借款合同
- 2025年度玫瑰花采摘與加工服務(wù)外包合同4篇
- 年度高壓液壓閥產(chǎn)業(yè)分析報(bào)告
- T-SDLPA 0001-2024 研究型病房建設(shè)和配置標(biāo)準(zhǔn)
- (人教PEP2024版)英語(yǔ)一年級(jí)上冊(cè)Unit 1 教學(xué)課件(新教材)
- 全國(guó)職業(yè)院校技能大賽高職組(市政管線(道)數(shù)字化施工賽項(xiàng))考試題庫(kù)(含答案)
- 2024胃腸間質(zhì)瘤(GIST)診療指南更新解讀 2
- 光儲(chǔ)電站儲(chǔ)能系統(tǒng)調(diào)試方案
- 2024年二級(jí)建造師繼續(xù)教育題庫(kù)及答案(500題)
- 小學(xué)數(shù)學(xué)二年級(jí)100以內(nèi)連加連減口算題
- 建設(shè)單位如何做好項(xiàng)目管理
- 三年級(jí)上遞等式計(jì)算400題
- 一次性餐具配送投標(biāo)方案
- 《中華民族多元一體格局》
評(píng)論
0/150
提交評(píng)論