第3章 51單片機(jī)的基本結(jié)構(gòu)_第1頁(yè)
第3章 51單片機(jī)的基本結(jié)構(gòu)_第2頁(yè)
第3章 51單片機(jī)的基本結(jié)構(gòu)_第3頁(yè)
第3章 51單片機(jī)的基本結(jié)構(gòu)_第4頁(yè)
第3章 51單片機(jī)的基本結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(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)介

第3章51單片機(jī)的基本結(jié)構(gòu)INT0INT1TXDRXDT0P3P2P1P0T1CPUROMRAM定時(shí)器/計(jì)數(shù)器并行接口串行接口中斷系統(tǒng)時(shí)鐘電路8051系統(tǒng)總線晶體振蕩器§3.151單片機(jī)的內(nèi)部結(jié)構(gòu)MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)§3.2

51單片機(jī)的引腳及其功能MCS-51單片機(jī)是40引腳的DIP封裝,按引腳的功能可以分為三部分。

MCS-51引腳圖1.主電源引腳和時(shí)鐘振蕩電路引腳●XTAL2(18腳):用作晶體振蕩電路的反相器輸出端。當(dāng)采用外部振蕩器時(shí),XTAL2接收振蕩器信號(hào),對(duì)CHMOS單片機(jī),此引腳應(yīng)懸浮。●

XTAL1(19腳):接外部石英晶體的一端。當(dāng)采用外部時(shí)鐘時(shí),對(duì)于HMOS單片機(jī),該引腳接地;對(duì)于CHMOS單片機(jī),該引腳作為外部振蕩信號(hào)的輸入端。3.2.1MCS-51的芯片引腳定義MCS-51引腳圖P0.0~P0.7(39~32腳):在不接片外存儲(chǔ)器與不擴(kuò)展I/O口時(shí),可作為準(zhǔn)雙向輸入/輸出口。在接有片外存儲(chǔ)器或擴(kuò)展I/O口時(shí),P0口分時(shí)復(fù)用為低8位地址總線和雙向數(shù)據(jù)總線。2.輸入輸出I/O引腳P2.0~P2.7(21~28腳):8位內(nèi)部帶上拉電阻的準(zhǔn)雙向I/O口引腳。當(dāng)使用片外存儲(chǔ)器時(shí),輸出高8位地址。P1.0~P1.7(1~8腳):8位內(nèi)部帶上拉電阻的準(zhǔn)雙向I/O口引腳。在編程/校驗(yàn)期間,用做輸入低8位地址。對(duì)于8052,P1.0是定時(shí)器T2的計(jì)數(shù)輸入端;P1.1是定時(shí)器T2的外部輸入端。P3.0~P3.7(10~17腳):8位內(nèi)部帶上拉電阻的準(zhǔn)雙向I/O口引腳,此外P3口還具有第二功能。P3口的第二功能

MCS-51引腳圖3.控制信號(hào)引腳

RST/VPD(9腳):輸入,保持兩個(gè)機(jī)器周期以上的高電平使單片機(jī)完成復(fù)位操作。第二功能VPD為內(nèi)部RAM的備用電源輸入端。ALE/PROG#(30腳):ALE為地址鎖存允許信號(hào)。在訪問(wèn)外部存儲(chǔ)器時(shí),ALE用來(lái)鎖存P0擴(kuò)展地址低8位的信號(hào)。在不訪問(wèn)外部存儲(chǔ)器時(shí),ALE也以時(shí)鐘振蕩頻率的1/6的固定速率輸出ALE能驅(qū)動(dòng)8個(gè)LSTTL門(mén)輸入。第二功能PROG#是對(duì)8751內(nèi)部EPROM編程時(shí)的編程脈沖輸入端。MCS-51引腳圖3.控制信號(hào)引腳

RST/VPD(9腳):輸入,保持兩個(gè)機(jī)器周期以上的高電平使單片機(jī)完成復(fù)位操作。第二功能VPD為內(nèi)部RAM的備用電源輸入端。PSEN#(29腳):外部程序存儲(chǔ)器ROM的讀選通信號(hào)。當(dāng)訪問(wèn)外部ROM時(shí),產(chǎn)生負(fù)脈沖作為外部ROM的選通信號(hào)。而在訪問(wèn)外部數(shù)據(jù)RAM或片內(nèi)ROM時(shí),不會(huì)產(chǎn)生有效的PSEN#信號(hào)。PSEN#可驅(qū)動(dòng)8個(gè)LSTTL門(mén)輸入。MCS-51引腳圖3.控制信號(hào)引腳

RST/VPD(9腳):輸入,保持兩個(gè)機(jī)器周期以上的高電平使單片機(jī)完成復(fù)位操作。第二功能VPD為內(nèi)部RAM的備用電源輸入端。EA#/VPP(31腳):EA#訪問(wèn)外部程序存儲(chǔ)器控制信號(hào)。

對(duì)8051和8751,當(dāng)EA=1時(shí)

情形1:0~4KB內(nèi),訪片內(nèi)程序存儲(chǔ)器情形2:超4KB時(shí),自動(dòng)訪問(wèn)外部ROM

對(duì)于8031,EA必須接地,只能訪問(wèn)外部ROM。

Vpp為對(duì)8751的EPROM的編程電源輸入。§3.3

51單片機(jī)的存儲(chǔ)結(jié)構(gòu)

8051的存儲(chǔ)器組織分三個(gè)不同的存儲(chǔ)地址空間:

1)64KB的程序存儲(chǔ)器地址空間(包括片內(nèi)ROM和外部ROM)。2)64KB的外部數(shù)據(jù)存儲(chǔ)器(RAM)地址空間。3)256字節(jié)的片內(nèi)數(shù)據(jù)存儲(chǔ)器(寄存器堆)。在對(duì)這三個(gè)不同的存儲(chǔ)器空間進(jìn)行數(shù)據(jù)傳送時(shí),必須分別采用三種不同形式的指令。ROM(程序存儲(chǔ)器)—>取指令(PC尋址)

,

MOVC指令控制信號(hào)是*PSEN和*EA外RAM(數(shù)據(jù)存儲(chǔ)器)—>MOVX指令控制信號(hào)是P3口中的*RD和*WR。內(nèi)RAM(寄存器堆)—>MOV指令

編址與訪問(wèn)

程序存儲(chǔ)器用于存放程序及表格常數(shù)。8051(或8751)片內(nèi)駐留有4KB的ROM(或EPROM),外部可用16位地址線擴(kuò)展到最大64KB的ROM空間。片內(nèi)ROM和外部擴(kuò)展ROM是統(tǒng)一編址的。

EA#引腳為高電平時(shí),8051的程序計(jì)數(shù)器PC在0000H~0FFFH(4KB)地址時(shí)從內(nèi)部ROM取指令;超過(guò)4KB地址時(shí),CPU自動(dòng)轉(zhuǎn)向外部ROM執(zhí)行程序。

EA#為低電平(接地),則所有取指令操作均在外部程序存儲(chǔ)器中進(jìn)行。對(duì)8031單片機(jī),EA#必須接低電平。

讀取程序存儲(chǔ)器中的常數(shù)表格用MOVC指令。

3.3.1程序存儲(chǔ)器表2-3系統(tǒng)復(fù)位和中斷入口地址

▲特定程序入口

0000H單元是復(fù)位入口,0003H~002AH單元均勻地分為五段,被保留用于五個(gè)中斷服務(wù)程序。3.3.2數(shù)據(jù)存儲(chǔ)器◆用途:用于存放運(yùn)算中間結(jié)果,用作緩沖和數(shù)據(jù)暫存,以及設(shè)置特征標(biāo)志等?!舴诸悾悍譃閮?nèi)部和外部?jī)蓚€(gè)獨(dú)立的部分。即片內(nèi)有256字節(jié)的數(shù)據(jù)存儲(chǔ)器地址空間,片外有64KB存儲(chǔ)器地址空間,內(nèi)部和外部?jī)蓚€(gè)存儲(chǔ)空間獨(dú)立尋址。

1.內(nèi)部數(shù)據(jù)存儲(chǔ)器(寄存器堆)

◆低128字節(jié)地址空間(00H~7FH)為內(nèi)部RAM區(qū),作為數(shù)據(jù)緩沖器?!舾?28字節(jié)地址空間(80H~FFH)為特殊功能寄存器區(qū)(簡(jiǎn)稱SFR區(qū)),未全部使用。◆對(duì)于52子系列為256字節(jié)內(nèi)部RAM區(qū).對(duì)SFR和高128字節(jié)RAM的訪問(wèn),可通過(guò)直接尋址和寄存器間接尋址方式加以區(qū)分。

(1)工作寄存器組00H~1FH單元為工作寄存器區(qū)。工作寄存器分成4組,每組都有8個(gè)寄存器,用R0~R7來(lái)表示。使用哪一組寄存器工作由程序狀態(tài)字PSW中的PSW.3(RS0)和PSW.4(RS1)兩位來(lái)選擇。(2)位尋址區(qū)■20H~2FH單元是位尋址區(qū)?!鑫坏刂贩秶鸀?0H~7FH。用戶可以用程序?qū)λ鼈冎苯舆M(jìn)行清零、置位、取反和邏輯、測(cè)試等操作。例如:MOV78H,C

;把進(jìn)位標(biāo)志存于位尋址區(qū)的2FH單元的D0位?!隽硪徊糠治粚ぶ穮^(qū)在部分SFR中。(3)數(shù)據(jù)存儲(chǔ)區(qū)內(nèi)部RAM的30H~7FH為通用數(shù)據(jù)存儲(chǔ)區(qū),即用戶RAM區(qū),共80個(gè)單元,作為一般的數(shù)據(jù)存儲(chǔ)使用。52子系列的用戶RAM區(qū)為30~FFH范圍內(nèi)的208個(gè)字節(jié)。按照先進(jìn)后出(FILO)或后進(jìn)先出(LIFO)的原則存取信息。堆棧原則上可以設(shè)在內(nèi)部RAM的任意區(qū)域,但由于00H~1FH為工作寄存器區(qū),20H~2FH為位尋址區(qū),堆棧通常設(shè)在內(nèi)部RAM的30H~7FH地址空間內(nèi),但要考慮到堆棧的最大深度。堆??捎糜陧憫?yīng)中斷或調(diào)用子程序時(shí),保護(hù)斷點(diǎn)地址。在中斷服務(wù)程序或子程序結(jié)束時(shí),執(zhí)行中斷返回或子程序返回指令,堆棧中彈出斷點(diǎn)地址給PC,使程序從斷點(diǎn)處繼續(xù)執(zhí)行。(4)堆棧區(qū)2.外部數(shù)據(jù)存儲(chǔ)器內(nèi)部RAM不能滿足要求時(shí),可以外接RAM芯片擴(kuò)展數(shù)據(jù)存儲(chǔ)器容量,最大可達(dá)64KB(0000H~FFFFH)。當(dāng)系統(tǒng)需要擴(kuò)展I/O口時(shí),I/O地址空間就要占用一部分外部數(shù)據(jù)存儲(chǔ)器地址空間。訪問(wèn)外部RAM或擴(kuò)展I/O口采用“MOVX”指令,用寄存器間接尋址方式。

內(nèi)部RAM數(shù)據(jù)傳送用“MOV”指令,都可以通過(guò)直接給出的字節(jié)地址來(lái)尋找。

例如:MOV30H,#9FH;(30H)←9FH

如果要尋找內(nèi)部RAM中的可位尋址區(qū)的各個(gè)位(bit),必須在位操作指令中用位地址來(lái)尋找。

例如:SETB1FH;(1FH)←1

特殊功能寄存器(SFR),又稱為專用寄存器,專用于控制、管理片內(nèi)算術(shù)邏輯部件、并行I/O口、串行I/O口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)等功能模塊的工作。

每一個(gè)SFR都有字節(jié)地址,并定義了符號(hào)名。其中有11個(gè)SFR(字節(jié)地址能被8整除)具有位地址(可位尋址),對(duì)應(yīng)的位也定義了位名?!鲇弥苯拥刂吩L問(wèn)特殊功能寄存器,直接地址的表示可以用地址單元,也可以用寄存器符號(hào)名。例如累加器可以用地址0E0H,也可以用累加器符號(hào)名ACC?!鰧?duì)于具有位地址的SFR,在表示其某一位時(shí),可以用位地址,也可以用位定義名,或者用“寄存器名.位”表示。

D3H;(位地址),表示程序狀態(tài)寄存器PSW中的D3位

RS0;(位定義名),表示程序狀態(tài)寄存器PSW中的D3位

PSW.3;(寄存器.位),表示程序狀態(tài)寄存器PSW中的D3位

8051片內(nèi)含有21個(gè)字節(jié)8位的SFR,離散地分布在內(nèi)部數(shù)據(jù)存儲(chǔ)區(qū)80H~FFH地址空間內(nèi)。3.3.3特殊功能寄存器特殊功能寄存器地址映像1.幾個(gè)重要的特殊功能寄存器(1)累加器ACC(簡(jiǎn)稱A)ACC是一個(gè)實(shí)現(xiàn)各種尋址及運(yùn)算的寄存器,而不是一個(gè)僅做加法的寄存器,在51指令系統(tǒng)中所有算術(shù)運(yùn)算、邏輯運(yùn)算幾乎都要使用它。而對(duì)程序存儲(chǔ)器和外部數(shù)據(jù)存儲(chǔ)器的訪問(wèn)只能通過(guò)它進(jìn)行。只有很少的指令不需要ACC的直接參與。雖然從功能上看,A與一般處理器的累加器沒(méi)有什么特別之處,是CPU進(jìn)行數(shù)值運(yùn)算的核心數(shù)據(jù)處理單元,是計(jì)算機(jī)中最繁忙的單元。(2)寄存器B寄存器B是為執(zhí)行乘法和除法操作設(shè)置的,在不執(zhí)行乘、除法操作的一般情況下可把B作為一個(gè)普通的寄存器使用。(3)程序狀態(tài)字PSW程序狀態(tài)字PSW就是標(biāo)志寄存器,是用來(lái)表示程序運(yùn)行的狀態(tài)。PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0CYACF0RS1RS0OV-PCY進(jìn)位標(biāo)志位,在執(zhí)行算術(shù)和邏輯指令時(shí),可以被硬件或軟件置位或清除,在位處理器中,它作為累加器。AC輔助進(jìn)位標(biāo)志位,當(dāng)進(jìn)行加法或減法操作而產(chǎn)生由低4位數(shù)(十進(jìn)制中的一個(gè)數(shù)字)向高4位進(jìn)位或借位時(shí),AC將被硬件置1,否則就被清除。AC被用于十進(jìn)位調(diào)整。F0它是由用戶使用的一個(gè)狀態(tài)標(biāo)志位,可用軟件來(lái)使其置位或清除,可以靠軟件測(cè)試F0以控制程序的流向。RS1、RS0寄存器區(qū)選擇控制位用于確定工作寄存器組。OV溢出標(biāo)志位。當(dāng)執(zhí)行算術(shù)指令時(shí),由硬件置1或清0,以指示溢出狀態(tài)。各種運(yùn)算對(duì)該位的影響情況較為復(fù)雜,將在后面章節(jié)詳細(xì)說(shuō)明。P奇偶(Parity)標(biāo)志位。P隨累加器A中數(shù)值變化而變化,若A中1的位數(shù)為奇數(shù),則P=1,否則P=0。此標(biāo)志位對(duì)串行口通信中的數(shù)據(jù)傳輸有重要的意義,借助P實(shí)現(xiàn)奇偶校驗(yàn),保證數(shù)據(jù)傳輸?shù)目煽啃浴?4)堆棧指針SP

堆棧指針SP為8位的SFR。堆棧指針SP也可以由指令賦值,通常設(shè)在內(nèi)部RAM的30H~7FH區(qū)域內(nèi)的適當(dāng)空間,一般在該區(qū)域的頂部建立堆棧。例如用指令MOVSP,#60H,即可將棧頂設(shè)置為60H。

堆棧指針SP是一個(gè)雙向計(jì)數(shù)器,始終指向堆棧的棧頂。在執(zhí)行進(jìn)棧操作時(shí),SP指針先加1,然后數(shù)據(jù)壓入堆棧;在執(zhí)行出棧操作時(shí),先把SP所指的棧頂中的數(shù)據(jù)彈出,然后SP自動(dòng)減1而指向新的棧頂。

(5)數(shù)據(jù)指針DPTR(DPL和DPH)

51系列單片機(jī)中,有兩個(gè)16位寄存器,即數(shù)據(jù)指針DPTR和PC(PC不屬于SFR)。DPH為DPTR的高8位,DPL為DPTR的低8位。訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器時(shí),必須以DPTR為數(shù)據(jù)指針通過(guò)ACC進(jìn)行訪問(wèn)。

特殊功能寄存器P0、P1、P2和P3分別是4個(gè)I/O端口P0、P1口、P2口和P3口對(duì)應(yīng)的鎖存器。當(dāng)I/O端口某一位用于輸入時(shí),必

溫馨提示

  • 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)論