第2章 單片機(jī)基本結(jié)構(gòu)及原理._第1頁
第2章 單片機(jī)基本結(jié)構(gòu)及原理._第2頁
第2章 單片機(jī)基本結(jié)構(gòu)及原理._第3頁
第2章 單片機(jī)基本結(jié)構(gòu)及原理._第4頁
第2章 單片機(jī)基本結(jié)構(gòu)及原理._第5頁
已閱讀5頁,還剩112頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第2 2章章 80C5180C51系列單片機(jī)基本結(jié)構(gòu)及原理系列單片機(jī)基本結(jié)構(gòu)及原理 第第2 2章章 目錄目錄n2.1 80C512.1 80C51系列單片機(jī)的內(nèi)部結(jié)構(gòu)系列單片機(jī)的內(nèi)部結(jié)構(gòu) 2.1.1 80C51單片機(jī)的內(nèi)部結(jié)構(gòu) 2.1.2 80C51系列單片機(jī)的CPU 2.1.3 程序存儲(chǔ)器(ROM)和數(shù)據(jù)存儲(chǔ)器(RAM)的區(qū)別 2.1.4 單片機(jī)時(shí)序及有關(guān)概念n2.2 80C512.2 80C51系列單片機(jī)的引腳功能系列單片機(jī)的引腳功能 2.2.1 80C51系列單片機(jī)引腳功能 2.2.2 單片機(jī)最小系統(tǒng) 2.2.3 三總線結(jié)構(gòu) 第第2 2章章 目錄目錄n2.3 80C512.3 80C5

2、1單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器 2.3.1存儲(chǔ)器的空間地址 2.3.2程序存儲(chǔ)器 2.3.3數(shù)據(jù)存儲(chǔ)器 2.3.4 80C51特殊功能寄存器(SFR) n2.4 2.4 并行并行I/0I/0口及其應(yīng)用口及其應(yīng)用 2.4.1 P0口 2.4.2 P1 口 2.4.3 P2口 2.4.4 P3口 2.4.5 I/O口驅(qū)動(dòng)發(fā)光二極管 n2.5 2.5 復(fù)位及掉電保護(hù)和低功耗復(fù)位及掉電保護(hù)和低功耗 2.5.1 單片機(jī)的復(fù)位 2.5.2 掉電保護(hù)和低功耗設(shè)計(jì)2.1 80C512.1 80C51系列單片機(jī)的內(nèi)部結(jié)構(gòu)系列單片機(jī)的內(nèi)部結(jié)構(gòu)n2.1.1 80C512.1.1 80C51單片機(jī)的內(nèi)部結(jié)構(gòu)單片機(jī)的內(nèi)

3、部結(jié)構(gòu)80C51系列單片機(jī)基本型芯片內(nèi)部結(jié)構(gòu)由8個(gè)部件組成 中央處理器(CPU) 4KB的片內(nèi)程序存儲(chǔ)器(ROM) 128B的片內(nèi)數(shù)據(jù)存儲(chǔ)器(RAM) 輸入、輸出接口(InputOutput,簡稱I/O口,分為P0口、P1口、P2口和P3口) 可編程的串行接口(UART) 2個(gè)16位的定時(shí)計(jì)數(shù)器(T0、T1) 中斷系統(tǒng) 特殊功能寄存器(SFR)各部分通過內(nèi)部總線相連。2.1 80C512.1 80C51系列單片機(jī)的內(nèi)部結(jié)構(gòu)系列單片機(jī)的內(nèi)部結(jié)構(gòu)80C51 單片機(jī)的內(nèi)部結(jié)構(gòu)圖2-1 80C51 單片機(jī)的內(nèi)部結(jié)構(gòu)2.1 80C512.1 80C51系列單片機(jī)的內(nèi)部結(jié)構(gòu)系列單片機(jī)的內(nèi)部結(jié)構(gòu)n2.1.2

4、 80C512.1.2 80C51系列單片機(jī)的系列單片機(jī)的CPUCPU80C51系列單片機(jī)的CPU是由運(yùn)算器和控制器構(gòu)成的。 運(yùn)算器主要用來對(duì)操作數(shù)進(jìn)行算術(shù)、邏輯和位運(yùn)算。 控制器的主要任務(wù)是識(shí)別指令,并根據(jù)指令的性質(zhì)控制單片機(jī)各功能部件,從而保證單片機(jī)各部分能自動(dòng)協(xié)調(diào)工作。2.1 80C512.1 80C51系列單片機(jī)的內(nèi)部結(jié)構(gòu)系列單片機(jī)的內(nèi)部結(jié)構(gòu)n2.1.2 80C512.1.2 80C51系列單片機(jī)的系列單片機(jī)的CPUCPU程序計(jì)數(shù)器PC是控制器中最基本的寄存器,它實(shí)際是一個(gè)獨(dú)立的16位計(jì)數(shù)器,是不可訪問的,即單片機(jī)開發(fā)人員不可能通過指令修改操作它。程序計(jì)數(shù)器PC中存放著正在執(zhí)行指令的下

5、一條指令在程序存儲(chǔ)器中存放的首地址。2.1 80C512.1 80C51系列單片機(jī)的內(nèi)部結(jié)構(gòu)系列單片機(jī)的內(nèi)部結(jié)構(gòu)n2.1.2 80C512.1.2 80C51系列單片機(jī)的系列單片機(jī)的CPUCPUPC的基本工作過程是:CPU讀指令時(shí),PC的內(nèi)容作為所取指令的首地址發(fā)送給程序存儲(chǔ)器,程序存儲(chǔ)器該地址中的指令代碼將被執(zhí)行,同時(shí)系統(tǒng)將下一條指令的首地址存入PC,這也是為什么PC被稱為程序計(jì)數(shù)器的原因。2.1 80C512.1 80C51系列單片機(jī)的內(nèi)部結(jié)構(gòu)系列單片機(jī)的內(nèi)部結(jié)構(gòu)n2.1.2 80C512.1.2 80C51系列單片機(jī)的系列單片機(jī)的CPUCPUPC內(nèi)容的變化軌跡決定了程序的流程。由于PC是

6、不可訪問的,順序執(zhí)行程序時(shí)自動(dòng)增加指向下一條指令;執(zhí)行轉(zhuǎn)移程序、子程序和中斷子程序調(diào)用時(shí),由運(yùn)行的指令自動(dòng)將其內(nèi)容更改成轉(zhuǎn)向的目標(biāo)程序地址。程序計(jì)數(shù)器的計(jì)數(shù)寬度決定了程序存儲(chǔ)器的地址范圍。80C51中的PC位數(shù)為16位,故可對(duì)216B即64KB個(gè)單元的程序存儲(chǔ)器進(jìn)行尋址。復(fù)位時(shí)PC的內(nèi)容為0000H,說明程序應(yīng)從程序存儲(chǔ)器的0000H單元開始執(zhí)行。2.1 80C512.1 80C51系列單片機(jī)的內(nèi)部結(jié)構(gòu)系列單片機(jī)的內(nèi)部結(jié)構(gòu)n2.1.3 2.1.3 程序存儲(chǔ)器(程序存儲(chǔ)器(ROMROM)和數(shù)據(jù)存儲(chǔ)器()和數(shù)據(jù)存儲(chǔ)器(RAMRAM)的區(qū)別)的區(qū)別程序存儲(chǔ)器: 用來存放指令代碼的,即用來存放匯編語言

7、或C語言程序編譯后的二進(jìn)制程序代碼;數(shù)據(jù)存儲(chǔ)器: 用來存放程序運(yùn)行中產(chǎn)生的運(yùn)算結(jié)果或隨機(jī)變量的值。為什么要把程序和數(shù)據(jù)分離開來呢?為什么不把它們放在一起呢? 這是因?yàn)樵趩纹瑱C(jī)芯片設(shè)計(jì)過程中出現(xiàn)了一個(gè)棘手的問題。2.1 80C512.1 80C51系列單片機(jī)的內(nèi)部結(jié)構(gòu)系列單片機(jī)的內(nèi)部結(jié)構(gòu)2.1 80C512.1 80C51系列單片機(jī)的內(nèi)部結(jié)構(gòu)系列單片機(jī)的內(nèi)部結(jié)構(gòu)n2.1.3 2.1.3 程序存儲(chǔ)器(程序存儲(chǔ)器(ROMROM)和數(shù)據(jù)存儲(chǔ)器()和數(shù)據(jù)存儲(chǔ)器(RAMRAM)的區(qū)別)的區(qū)別 從表中我們會(huì)發(fā)現(xiàn)所有的存儲(chǔ)器都存在速度、易失性和成本之間的博弈。 市場最需要的是速度快、掉電存儲(chǔ)且價(jià)格便宜的存儲(chǔ)器

8、,可是沒有一種可以同時(shí)完全滿足這三條要求。 SRAM成本低、速度快,可是如果我們把程序放進(jìn)去,掉電后存入其中的程序?qū)⑷肯?,整個(gè)系統(tǒng)完全癱瘓。2.1 80C512.1 80C51系列單片機(jī)的內(nèi)部結(jié)構(gòu)系列單片機(jī)的內(nèi)部結(jié)構(gòu)n2.1.3 2.1.3 程序存儲(chǔ)器(程序存儲(chǔ)器(ROMROM)和數(shù)據(jù)存儲(chǔ)器()和數(shù)據(jù)存儲(chǔ)器(RAMRAM)的區(qū)別)的區(qū)別 那FLANSH技術(shù)是否可以呢?我們常用的U盤就是采用FLANSH技術(shù)的。它雖然掉電不丟失可是擦寫速度慢。MRAM技術(shù)目前來說成本太高,應(yīng)該是未來的發(fā)展方向。由于ROM和RAM對(duì)存儲(chǔ)的本質(zhì)需求有差別,ROM的基本需求首先是掉電存儲(chǔ),RAM的根本要求是快。 因

9、此當(dāng)今的芯片設(shè)計(jì)師一般采用的是程序運(yùn)行中產(chǎn)生的數(shù)據(jù)及隨機(jī)變量存儲(chǔ)在SRAM中,將程序?qū)?yīng)的二進(jìn)制代碼存儲(chǔ)在FLANSH存儲(chǔ)器中。可見程序和數(shù)據(jù)并不是理所當(dāng)然的要分開存儲(chǔ),而是速度、易失性、成本綜合利益最大化的結(jié)果,當(dāng)然無論是ROM還是RAM存儲(chǔ)容量越大成本越高。2.1 80C512.1 80C51系列單片機(jī)的內(nèi)部結(jié)構(gòu)系列單片機(jī)的內(nèi)部結(jié)構(gòu)n2.1.4 2.1.4 單片機(jī)時(shí)序及有關(guān)概念單片機(jī)時(shí)序及有關(guān)概念時(shí)序是表達(dá)指令執(zhí)行中各控制信號(hào)在時(shí)間上的相互關(guān)系。時(shí)序是用時(shí)間單位來說明的,80C51系列單片機(jī)的時(shí)序單位共有4個(gè),從小到大依次是:l 振蕩周期l 狀態(tài)周期l 機(jī)器周期l 指令周期2.1 80C5

10、12.1 80C51系列單片機(jī)的內(nèi)部結(jié)構(gòu)系列單片機(jī)的內(nèi)部結(jié)構(gòu)n2.1.4 2.1.4 單片機(jī)時(shí)序及有關(guān)概念單片機(jī)時(shí)序及有關(guān)概念1、振蕩周期(P)振蕩周期也稱為晶振周期,用P表示,也稱為拍。它就是晶體的振蕩周期,或是外部振蕩源的脈沖周期,是80C51單片機(jī)中最小的時(shí)序單位。2、狀態(tài)周期(S) 振蕩脈沖經(jīng)過二分頻后,就得到單片機(jī)的時(shí)鐘信號(hào),把時(shí)鐘信號(hào)的周期稱為狀態(tài)周期或時(shí)鐘周期,用S表示。 一個(gè)狀態(tài)周期包含兩個(gè)拍,分別稱做Pl和P2,或者前拍和后拍。 狀態(tài)周期是單片機(jī)中最基本的時(shí)間單位,在一個(gè)狀態(tài)周期內(nèi),CPU僅完成一個(gè)最基本的動(dòng)作。2.1 80C512.1 80C51系列單片機(jī)的內(nèi)部結(jié)構(gòu)系列單片

11、機(jī)的內(nèi)部結(jié)構(gòu)n2.1.4 2.1.4 單片機(jī)時(shí)序及有關(guān)概念單片機(jī)時(shí)序及有關(guān)概念3、 機(jī)器周期一個(gè)機(jī)器周期由6個(gè)狀態(tài)周期(S1S6),也就是12個(gè)拍組成,可依次表示為S1P1,S1P2,S2P1,S2P2,S6P1,S6P2。當(dāng)振蕩頻率為12 MHz時(shí),一個(gè)機(jī)器周期為ls;當(dāng)振蕩脈沖頻率為6 MHz時(shí),一個(gè)機(jī)器周期為2s。4、 指令周期 指令周期就是執(zhí)行一條指令所需要的時(shí)間。 指令周期是80C51單片機(jī)中最大的時(shí)序單位,一般由若干個(gè)機(jī)器周期組成。 指令不同,所需要的機(jī)器周期數(shù)也不同,但一條指令的周期應(yīng)在14個(gè)機(jī)器周期范圍內(nèi),每條指令所用的機(jī)器周期數(shù)詳見附錄B2.2 80C512.2 80C51系

12、列單片機(jī)的引腳功能系列單片機(jī)的引腳功能 80C51 80C51系列單片機(jī)有系列單片機(jī)有5 5種封裝:種封裝: 40腳雙列直插封裝(也稱DIP封裝)方式; 44腳方形封裝方式; 48腳DIP封裝; 52腳方形封裝方式; 68腳方形封裝方式。其中大部分學(xué)習(xí)板(開發(fā)板)或?qū)嶒?yàn)箱采用的是40腳DIP 封裝形式(見圖1-1(a))。2.2 80C512.2 80C51系列單片機(jī)的引腳功能系列單片機(jī)的引腳功能n2.2.1 80C512.2.1 80C51系列單片機(jī)引腳功能系列單片機(jī)引腳功能圖2-3是80C51系列單片機(jī)的引腳圖(40腳DIP封裝)。其中有 2個(gè)電源相關(guān)引腳 2個(gè)外接晶體引腳 4個(gè)控制 其他

13、電源 復(fù)用引腳 32個(gè)IO引腳下面分別敘述這40個(gè)引腳的功能。 2.2 80C512.2 80C51系列單片機(jī)的引腳功能系列單片機(jī)的引腳功能n2.2.1 80C512.2.1 80C51系列單片機(jī)引腳功能系列單片機(jī)引腳功能圖2-380C51系列單片機(jī)的引腳圖2.2 80C512.2 80C51系列單片機(jī)的引腳功能系列單片機(jī)的引腳功能n2.2.1 80C512.2.1 80C51系列單片機(jī)引腳功能系列單片機(jī)引腳功能1、電源引腳(VSS和VCC) VSS(20腳):接地。 VCC(40腳):正常操作接+5 V電源。2、外接晶體引腳(XTALl和XTAL2) XTALl(19腳)和XTAL2(18腳

14、):這兩個(gè)引腳主要用來構(gòu)成單片機(jī)的時(shí)鐘電路。時(shí)鐘電路用于產(chǎn)生單片機(jī)工作所需的時(shí)鐘信號(hào)。 時(shí)鐘信號(hào)可以由兩種方式產(chǎn)生:內(nèi)部時(shí)鐘方式外部時(shí)鐘方式2.2 80C512.2 80C51系列單片機(jī)的引腳功能系列單片機(jī)的引腳功能n2.2.1 80C512.2.1 80C51系列單片機(jī)引腳功能系列單片機(jī)引腳功能2、外接晶體引腳(XTALl和XTAL2)l內(nèi)部時(shí)鐘方式 一般單芯片工作的系統(tǒng)常采用內(nèi)部時(shí)鐘方式。 內(nèi)部時(shí)鐘方式的電路連接方法是:通過單片機(jī)的XTALl和XTAL2兩端跨接晶體或陶瓷諧振器,就構(gòu)成了穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部時(shí)鐘發(fā)生器,如圖2-4所示。2.2 80C512.2 80C5

15、1系列單片機(jī)的引腳功能系列單片機(jī)的引腳功能n2.2.1 80C512.2.1 80C51系列單片機(jī)引腳功能系列單片機(jī)引腳功能2、外接晶體引腳(XTALl和XTAL2)l內(nèi)部時(shí)鐘方式 外接晶振時(shí),C1、C2值通常選擇為30PF左右,一般的學(xué)習(xí)板均采用外接晶體振蕩器; 外接陶瓷諧振器時(shí),C1、C2約為47 pF。C1、C2對(duì)頻率有微調(diào)作用,振蕩頻率范圍是1.240MHz。說明:為了減少寄生電容,更好地保證振蕩器穩(wěn)定可靠地工作,諧振器和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近。2.2 80C512.2 80C51系列單片機(jī)的引腳功能系列單片機(jī)的引腳功能n2.2.1 80C512.2.1 80C51系列單片

16、機(jī)引腳功能系列單片機(jī)引腳功能2、外接晶體引腳(XTALl和XTAL2)l外部時(shí)鐘方式 采用外部振蕩器,外部振蕩脈沖信號(hào)由XTAL2端接入后直接送至內(nèi)部時(shí)鐘發(fā)生器。輸入端XTALl應(yīng)接地,由于XTAL2端的邏輯電平不是TTL的,故建議外接一個(gè)上拉電阻。 這種方式適合于多塊芯片同時(shí)工作,便于同步。2.2 80C512.2 80C51系列單片機(jī)的引腳功能系列單片機(jī)的引腳功能n2.2.1 80C512.2.1 80C51系列單片機(jī)引腳功能系列單片機(jī)引腳功能3、控制引腳這四個(gè)引腳都有第二功能,在初學(xué)階段極少用到,因此我們給出引腳的兩個(gè)名稱,但只詳述第一功能。(1). RESETVPD (9腳):復(fù)位信號(hào)

17、輸入引腳/備用電源輸入引腳。當(dāng)振蕩器運(yùn)行時(shí),在此引腳上出現(xiàn)兩個(gè)機(jī)器周期以上的高電平,將使單片機(jī)復(fù)位。(2). (29腳):片外程序存儲(chǔ)器的選通信號(hào)輸出引腳。在外部程序存儲(chǔ)器取指令(或常數(shù))期間,每一個(gè)機(jī)器周期兩次有效。每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的信號(hào)將不出現(xiàn)。PSEN2.2 80C512.2 80C51系列單片機(jī)的引腳功能系列單片機(jī)的引腳功能n2.2.1 80C512.2.1 80C51系列單片機(jī)引腳功能系列單片機(jī)引腳功能3、控制引腳(3).ALE (30腳):地址鎖存運(yùn)行信號(hào)輸入引腳/編程脈沖輸入引腳。當(dāng)訪問外部存儲(chǔ)器(包括ROM和RAM)時(shí),80C5l系列單片機(jī)采用P0口作為低8

18、位地址輸出口,又作為數(shù)據(jù)輸入/輸出口。為了使地址與數(shù)據(jù)不至于混淆,通常P0口先作地址線,再作數(shù)據(jù)線。ALE(允許地址鎖存)與74LS373或74HC573等鎖存器配合,將P0口輸出的低8位地址鎖存,從而實(shí)現(xiàn)低8位地址與數(shù)據(jù)的分離。即使不訪問外部存儲(chǔ)器,ALE端仍以不變的頻率周期性地出現(xiàn)正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此,它可以用做對(duì)外輸出的時(shí)鐘,或用于定時(shí)。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。PROG2.2 80C512.2 80C51系列單片機(jī)的引腳功能系列單片機(jī)的引腳功能n2.2.1 80C512.2.1 80C51系列單片機(jī)引腳功能系列單片機(jī)引腳功能3、

19、控制引腳(4). / VPP(31腳):外部程序存儲(chǔ)器訪問允許控制引腳/片內(nèi)編程電壓輸入引腳。為該引腳的第一功能,外部程序存儲(chǔ)器訪問允許控制端。當(dāng)端保持高電平時(shí),CPU訪問內(nèi)部程序4KB程序存儲(chǔ)器,但在PC值超過0FFFH(標(biāo)準(zhǔn)的80C51單片機(jī)內(nèi)部只有4KB ROM)時(shí),將自動(dòng)轉(zhuǎn)向訪問外部60K(1000HFFFFH)程序存儲(chǔ)器。當(dāng)端保持低電平時(shí),不管是否有內(nèi)部程序存儲(chǔ)器,則只訪問外部64K(0000HFFFFH)程序存儲(chǔ)器,片內(nèi)的4KB程序存儲(chǔ)器將不起作用。說明:現(xiàn)在的單片機(jī)內(nèi)部都有ROM,因此在電路設(shè)計(jì)時(shí)此引腳始終接高電平。EA2.2 80C512.2 80C51系列單片機(jī)的引腳功能系列

20、單片機(jī)的引腳功能n2.2.1 80C512.2.1 80C51系列單片機(jī)引腳功能系列單片機(jī)引腳功能4、 輸入輸出引腳(P0口、P1口、P2口和P3口)P0口(P0.0P0.7共8條引腳,即3932腳):一般I/O口引腳或數(shù)據(jù)/低位地址總線復(fù)用引腳。 P1口(P1.0P1.7共8條引腳,即l8腳):一般I/O口引腳。P2口(P2.0P2.7共8條引腳,即2128腳):一般I/O口引腳或高位地址總線引腳。P3口(P3.0P3.7共8條引腳,即1017腳):一般I/O口引腳或第二功能引腳。2.2 80C512.2 80C51系列單片機(jī)的引腳功能系列單片機(jī)的引腳功能n2.2.2 2.2.2 單片機(jī)最小

21、系統(tǒng)單片機(jī)最小系統(tǒng)所謂最小系統(tǒng):指單片機(jī)正常工作的最基本的外圍配置主要包括: 時(shí)鐘(晶振)電路 復(fù)位電路 電源等 圖2-6 51單片機(jī)最小系統(tǒng)2.2 80C512.2 80C51系列單片機(jī)的引腳功能系列單片機(jī)的引腳功能n2.2.2 2.2.2 單片機(jī)最小系統(tǒng)單片機(jī)最小系統(tǒng) 時(shí)鐘(晶振)電路 利用XTAL1和XTAL2兩個(gè)引腳外接晶振(晶體振蕩器)的內(nèi)部時(shí)鐘方式,圖中電容器C1和C2的作用是穩(wěn)定頻率和快速起振,電容值為530PF,典型值為30PF,晶振的震蕩頻率典型值為6MHZ、12MHZ或11.0592MHZ,當(dāng)系統(tǒng)與PC機(jī)通信時(shí)常采用11.0592MHZ。 復(fù)位電路 設(shè)計(jì)形式主要包括: 上電

22、復(fù)位、按鍵復(fù)位和利用專業(yè)的復(fù)位芯片進(jìn)行管理。一般學(xué)習(xí)板上采用的是按鍵復(fù)位,復(fù)雜電路系統(tǒng)一般采用復(fù)位芯片進(jìn)行管理,典型的專用復(fù)位芯片如MAX813。2.2 80C512.2 80C51系列單片機(jī)的引腳功能系列單片機(jī)的引腳功能n2.2.2 2.2.2 單片機(jī)最小系統(tǒng)單片機(jī)最小系統(tǒng) 表2-2 單片機(jī)最小系統(tǒng)元器件列表2.2 80C512.2 80C51系列單片機(jī)的引腳功能系列單片機(jī)的引腳功能n2.2.3 2.2.3 三總線結(jié)構(gòu)三總線結(jié)構(gòu)什么是單片機(jī)的三總線?單片機(jī)的引腳除了電源、復(fù)位、時(shí)鐘接入和用戶IO口外,其余引腳都是為了實(shí)現(xiàn)系統(tǒng)擴(kuò)展而設(shè)置的,這些引腳構(gòu)成了三總線結(jié)構(gòu),如圖2-7所示。2.2 80

23、C512.2 80C51系列單片機(jī)的引腳功能系列單片機(jī)的引腳功能n2.2.3 2.2.3 三總線結(jié)構(gòu)三總線結(jié)構(gòu)1、地址總線(AB)地址總線寬度為16位,因此外部存儲(chǔ)器直接尋址范圍為64 KB。16位地址總線由P0口經(jīng)地址鎖存器提供低8位地址(A0A7),P2口直接提供高8位地址(A8A15)。2、數(shù)據(jù)總線(DB)數(shù)據(jù)總線寬度為8位,由P0口提供。3、控制總線(CB)控制總線由P3口的第二功能狀態(tài)和4根獨(dú)立控制線RESET, , ,ALE組成。, EAPSEN2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器 單片機(jī)在程序存儲(chǔ)器中只能存放程序和一些不能更改的常數(shù)及單片機(jī)在程序存儲(chǔ)器

24、中只能存放程序和一些不能更改的常數(shù)及表格。表格。 例如:MOV A,#30H,參考附錄B可知該指令在ROM中存放為74H 30H的形式,占用兩個(gè)字節(jié)。源操作數(shù)30H作為常數(shù)就是存放在ROM中的。 單片機(jī)在數(shù)據(jù)存儲(chǔ)器中存放變量的初值和中間及最終運(yùn)算結(jié)果。單片機(jī)在數(shù)據(jù)存儲(chǔ)器中存放變量的初值和中間及最終運(yùn)算結(jié)果。 例如:MOV A, 30H,該指令中30H是內(nèi)部RAM的一個(gè)地址,其內(nèi)容是存放在內(nèi)部RAM30H為地址的單元中,其值可以靈活改變。, 2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.12.3.1存儲(chǔ)器的空間地址存儲(chǔ)器的空間地址程序或數(shù)據(jù)存儲(chǔ)器的地址是指:指程序存儲(chǔ)

25、器和數(shù)據(jù)存儲(chǔ)器存儲(chǔ)單元的編碼。舉例:舉例: 我們可以把程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器理解成二座每間宿舍住8人的宿舍樓,宿舍樓的房間號(hào)就相當(dāng)于存儲(chǔ)空間地址。 對(duì)于標(biāo)準(zhǔn)80C51單片機(jī): 程序存儲(chǔ)器那座樓有4K(1K=2101024)個(gè)房間,對(duì)應(yīng)共需要4K個(gè)房間號(hào)標(biāo)識(shí)。 數(shù)據(jù)存儲(chǔ)器那座樓有128個(gè)房間,對(duì)應(yīng)需要128個(gè)房間號(hào)標(biāo)識(shí)。 這兩個(gè)宿舍樓的大小差別很大喲!, 2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.12.3.1存儲(chǔ)器的空間地址存儲(chǔ)器的空間地址 為了方便找到各個(gè)宿舍樓具體房間的位置,在生活中我們有一套編號(hào)方法。 那么計(jì)算機(jī)要如何給這些存儲(chǔ)器空間編寫地址,才能方便CPU

26、找到自己所要的程序語句或數(shù)據(jù)呢?, 2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.12.3.1存儲(chǔ)器的空間地址存儲(chǔ)器的空間地址 我們知道計(jì)算機(jī)能夠表達(dá)的不是低電平0就是高電平1。 假設(shè)存儲(chǔ)器只有兩個(gè)空間(理解成房間)要編號(hào),我們就用1位二進(jìn)制數(shù)來表示,低電平0表示一個(gè)房間,高電平1表示一個(gè)房間。 那么意味著CPU只需要用1條線與存儲(chǔ)器進(jìn)行連接即可,通過設(shè)置這條線的高低電平就可以找到需要的存儲(chǔ)空間,從而找到其內(nèi)部的程序或數(shù)據(jù)。, 2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.12.3.1存儲(chǔ)器的空間地址存儲(chǔ)器的空間地址那么可以推算:那么可以

27、推算:l如果是2位二進(jìn)制數(shù)就可以表達(dá)出4(即22)個(gè)房間號(hào),分別是00B 、01B 、10B、11B,CPU與存儲(chǔ)器需要2條線連接即可。l如果是3位二進(jìn)制數(shù)就可以表達(dá)8(即23)個(gè)房間號(hào),分別是000B,001B ,010B,011B,100B,101B,110B,111B,CPU與存儲(chǔ)器需要3條線進(jìn)行連接。l以此類推,4位二進(jìn)制數(shù)就可以表達(dá)16(24)個(gè)房間號(hào),l那么8條線就可以表達(dá)256(28)個(gè)房間,ln位二進(jìn)制數(shù)就可以表達(dá)2n個(gè)房間號(hào),CPU用n條線與存儲(chǔ)器連接就可以區(qū)別出2n個(gè)單元。, 2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.12.3.1存儲(chǔ)器的空間

28、地址存儲(chǔ)器的空間地址l80C51單片機(jī)內(nèi)部有4KB(即212)個(gè)程序存儲(chǔ)器單元 因此,CPU需要用12條內(nèi)部總線與內(nèi)部程序存儲(chǔ)器連接,正好是4KB。其空間地址范圍從低到高為0000H0FFFH;l80C51單片機(jī)內(nèi)部一般有128B的數(shù)據(jù)存儲(chǔ)器,如果對(duì)內(nèi)部數(shù)據(jù)存儲(chǔ)器尋址,需要7條總線進(jìn)行連接,其地址范圍從低到高為00H7FH。l51單片機(jī)外部能夠擴(kuò)展程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的容量最大均為64KB,這是由于51單片機(jī)的外部地址總線最多可有16根(P0、P2各8根)所限制的,其地址范圍為000HFFFFH。, 2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.12.3.1存儲(chǔ)器

29、的空間地址存儲(chǔ)器的空間地址80C51單片機(jī)存儲(chǔ)器空間分布, 2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.22.3.2程序存儲(chǔ)器程序存儲(chǔ)器80C51內(nèi)部有4 KB ROM,片外最多可擴(kuò)展64 KB ROM,但兩者都有0000H0FFFH的共同地址部分,CPU該如何區(qū)分呢?CPU的控制器專門提供一個(gè)/EA控制信號(hào)來區(qū)分內(nèi)部ROM和外部ROM編碼相同的地址區(qū)0000H0FFFH:當(dāng)/EA接高電平時(shí),單片機(jī)從片內(nèi)4KB ROM中取指令,而當(dāng)指令地址超過0FFFH后,就自動(dòng)地轉(zhuǎn)向片外程序存儲(chǔ)器1000H單元取指令。當(dāng)/EA接低電平時(shí),CPU只從片外ROM取指令。這種接法特別

30、適用于采用早期內(nèi)部無程序存儲(chǔ)器的8031單片機(jī),現(xiàn)在的單片機(jī)內(nèi)部都有自己的ROM,因此引腳一般接高電平。2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.22.3.2程序存儲(chǔ)器程序存儲(chǔ)器在程序存儲(chǔ)器中,有6個(gè)單元具有特殊功能。0000H是所有執(zhí)行程序的入口地址,80C51復(fù)位后,CPU總是從0000H單元開始執(zhí)行程序其它五個(gè)入口地址都與中斷相關(guān),如表2-3所示。 表2-3 5個(gè)中斷源的中斷入口地址2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.32.3.3數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器主要用來存放經(jīng)常要改變的數(shù)值,即變量和中間結(jié)果,通常都是由隨

31、機(jī)存儲(chǔ)器RAM(Random Access Memory)構(gòu)成。RAM從物理空間上一般可以分為片內(nèi)(單片機(jī)內(nèi))和片外(單片機(jī)外部)兩個(gè)部分。片內(nèi)存儲(chǔ)器的地址范圍是00H7FH,特殊功能寄存器的地址范圍是80HFFH。片外數(shù)據(jù)存儲(chǔ)器的地址空間是0000HFFFFH。片外RAM的低位地址區(qū)段即00HFFH與內(nèi)部RAM和SFR單元地址編碼重疊,使用時(shí)由指令來進(jìn)行區(qū)分,訪問內(nèi)部RAM及特殊功能寄存器采用MOV指令 ,而訪問外部RAM用MOVX指令。2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.32.3.3數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器80C51數(shù)據(jù)存儲(chǔ)器配置,如圖所示。 80C51單

32、片機(jī)的內(nèi)部有128B RAM,地址為00H7FH。按其用途可以分為三個(gè)區(qū)域:1. 通用工作寄存器區(qū) 2. 位尋址區(qū) 3. 用戶RAM區(qū) 2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.32.3.3數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器1、 通用工作寄存器區(qū) 內(nèi)部RAM從001FH安排了4組通用寄存器也稱為工作寄存器,每組占用8個(gè)字節(jié),記為R0R7。 在某一時(shí)刻,CPU只能使用其中一組工作寄存器,工作寄存器組的選擇由程序狀態(tài)字寄存器PSW中RS1、RS0兩位確定。表2-4 工作寄存器地址表2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.32.3.3數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)

33、存儲(chǔ)器2、 位尋址區(qū) (1). 什么是位尋址? 位尋址是相對(duì)于字節(jié)尋址而提出來的。 舉例理解:前面我們把單片機(jī)的內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM比喻成宿舍樓 RAM的字節(jié)地址就相當(dāng)于宿舍樓的房間號(hào),80C51單片機(jī)內(nèi)部RAM共有128個(gè)單元,也就對(duì)應(yīng)有128個(gè)房間號(hào)。每個(gè)房間包含8個(gè)床位,每個(gè)床位由低到高命名為07號(hào)。但是對(duì)于房間號(hào)為20H2FH這16個(gè)房間的每個(gè)床位,80C51都編了唯一的床位號(hào),16個(gè)房間包含的128個(gè)床位,床位號(hào)的編碼從00H7FH,這就是單片機(jī)內(nèi)部RAM位尋址區(qū)的位地址。2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.32.3.3數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器2、

34、位尋址區(qū) (1). 位尋址概念 舉個(gè)大家熟悉的例子來理解字節(jié)尋址和位尋址: 假設(shè)某校每周日晚上會(huì)要求學(xué)生晚10點(diǎn)前必須返?;厮奚?,當(dāng)某床位對(duì)應(yīng)的學(xué)生按要求返?;氐剿奚幔覀冋J(rèn)為其狀態(tài)為高電平“1”,某床位對(duì)應(yīng)的學(xué)生沒返校,我們將這種狀態(tài)認(rèn)為是“0”。一般考勤檢查的具體工作老師會(huì)分配給學(xué)生會(huì)的同學(xué)去完成。每周都檢查完所有的宿舍實(shí)在太辛苦,老師有時(shí)會(huì)采用抽查某個(gè)宿舍或某個(gè)人的方法,也能起到警示的作用。2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.32.3.3數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器2、 位尋址區(qū) 字節(jié)尋址舉例: 老師要單獨(dú)檢查30H這個(gè)宿舍同學(xué)的返校情況,學(xué)生會(huì)的同學(xué)接到命

35、令后首先要找到這個(gè)宿舍,然后把這個(gè)宿舍學(xué)生的返校情況用8位二進(jìn)制數(shù)表示,呈報(bào)給老師,那么這個(gè)過程叫作字節(jié)尋址。它的特點(diǎn)是通過給出字節(jié)所在的地址找到數(shù)據(jù)。 位尋址舉例: 另一種情況是住在20H2FH房間的同學(xué)都是一年級(jí)的同學(xué),這部分同學(xué)年齡比較小,需要特別關(guān)注,老師會(huì)采用抽查某個(gè)人的方法加強(qiáng)管理。但是記住每個(gè)學(xué)生的名字實(shí)在不是件容易的事情,于是老師把這16個(gè)房間的128個(gè)床位統(tǒng)一編號(hào),每次抽查前,老師給學(xué)生會(huì)同學(xué)的不是某個(gè)同學(xué)的名字,而是給出一個(gè)床位號(hào)。那么這個(gè)過程就是位尋址,這個(gè)位地址單元中的值要么是1表示這個(gè)學(xué)生在,要么是0表示這個(gè)學(xué)生未按時(shí)返校。2.3 80C512.3 80C51單片機(jī)的

36、存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.32.3.3數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器2、 位尋址區(qū) (2). 位尋址區(qū) 80C51單片機(jī)的位尋址區(qū)占用內(nèi)部RAM字節(jié)地址20H2FH,共16個(gè)字節(jié),128位。 位尋址區(qū)字節(jié)地址和位地址的對(duì)應(yīng)關(guān)系如表2-5所示。2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器位尋址區(qū)字節(jié)地址和位地址的對(duì)應(yīng)關(guān)系2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.32.3.3數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器2、 位尋址區(qū) (2). 位尋址區(qū) 每一位的位地址可以有兩種形式:可以直接使用位地址,如內(nèi)部RAM 20H單元的最低位位地址為00H,20H的最高位為07H;也

37、可以使用“字節(jié)地址位序號(hào)”來表示,20H.0和20H.7也可以表示內(nèi)部RAM 20H單元的最低位和最高位的位地址。 2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.32.3.3數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器3、 用戶RAM區(qū) 包括字節(jié)地址為30H7FH的區(qū)域,這是真正給用戶使用的一般RAM區(qū),用戶對(duì)該區(qū)域的訪問是按字節(jié)尋址的方式進(jìn)行的。該區(qū)域主要用來存放隨機(jī)數(shù)據(jù)及運(yùn)算的中間結(jié)果,另外也常把堆棧開辟在該區(qū)域中。另外如果在程序中只用到0組工作寄存器,則08H1FH也可被作為一般RAM區(qū)使用。2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.4 80C512.

38、3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)1、 21個(gè)特殊功能寄存器特殊功能寄存器(Special Function Register),簡稱SFR,亦稱專用寄存器。 它們與片內(nèi)RAM統(tǒng)一編址,并離散地占據(jù)了部分80HFFH單元。未占用的地址單元無定義,用戶不能使用,如果對(duì)無定義的單元進(jìn)行讀寫操作,得到的是隨機(jī)數(shù),而寫入的數(shù)據(jù)將會(huì)丟失。 特殊功能寄存器主要用于管理片內(nèi)和片外的功能部件如:定時(shí)器/計(jì)數(shù)器、串行口、中斷及外部擴(kuò)展的存儲(chǔ)器及芯片等。2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功

39、能寄存器(SFR)(SFR)1、 21個(gè)特殊功能寄存器(1). 與運(yùn)算器相關(guān)的寄存器(3個(gè))累加器Acc;寄存器B;程序狀態(tài)字寄存器PSW。(2).指針類寄存器(3個(gè))堆棧指針SP;數(shù)據(jù)指針DPTR。(3).與并口相關(guān)的寄存器(7個(gè))并行IO口P0、P1、P2、P3;串行口數(shù)據(jù)緩沖器SBUF;串行口控制寄存器SCON;串行通信波特率倍增寄存器PCON。2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)1、 21個(gè)特殊功能寄存器(4).與中斷相關(guān)的寄存器(2個(gè))中斷允許控制寄存器IE;中斷

40、優(yōu)先級(jí)控制寄存器IP(5).與定時(shí)計(jì)數(shù)器相關(guān)的寄存器(6個(gè))定時(shí)計(jì)數(shù)器 T0的兩個(gè)8位計(jì)數(shù)初值寄存器TH0、TL0;定時(shí)計(jì)數(shù)器T1的兩個(gè)8位計(jì)數(shù)初值寄存器TH1、TL1;定時(shí)計(jì)數(shù)器的工作方式寄存器TMOD;定時(shí)計(jì)數(shù)器的控制寄存器TCON。2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)表2-6 80C51特殊功能寄存器一覽表 寄存器符號(hào) 寄存器地址 寄存器名稱 寄存器符號(hào) 寄存器地址 寄存器名稱 *ACC EOH 累加器 A *P3 BOH 端口 3 *B FOH B 寄存器 PCON

41、 87H 電源控制寄存器 *PSW DOH 程序狀態(tài)字 *SCON 98H 串行控制寄存器 SP 81H 堆棧指針 SBUF 99H 串行數(shù)據(jù)緩沖器 DPL 82H 數(shù)據(jù)指針(低 8 位) *TCON 88H 定時(shí)/計(jì)數(shù)控制寄存器 DPH 83H 數(shù)據(jù)指針(高 8 位) TMOD 89H 定時(shí)/計(jì)數(shù)方式選擇寄存器 *IE A8H 中斷允許控制寄存器 TL0 8AH TO 低 8 位 *IP D8H 中斷優(yōu)先級(jí)設(shè)置寄存器 TL1 8BH T0 高 8 位 *P0 80H 端口 O TH0 8CH T1 低 8 位 * P1 90H 端口 1 TH1 8DH T1 高 8 位 *P2 AOH 端口

42、 2 其中帶*的寄存器可以進(jìn)行位尋址。 2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)2、 11個(gè)可以位尋址的特殊功能寄存器位地址 在21個(gè)特殊功能寄存器中有11個(gè)寄存器可以位尋址,在表2-6中符號(hào)左邊帶“*”號(hào)的特殊功能寄存器都是可以位尋址的, 這些特殊功能寄存器的特征是地址可以被8整除,下面把可 位尋址的特殊功能寄存器的字節(jié)地址及位地址一并列于表2-7中。 由表2-7可知可位尋址的特殊功能寄存器的最低位的位地址與其字節(jié)地址相同。2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單

43、片機(jī)的存儲(chǔ)器2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)2、 11個(gè)可以位尋址的特殊功能寄存器位地址訪問這些可位尋址的寄存器中各位時(shí),有四種方法??墒褂盟奈环?hào),如PSW的最高位符號(hào)為CY;可以使用它的位地址,如PSW的最高位位地址為D7H;還可用“寄存器名位序號(hào)”來表示,如PSW.7表示PSW寄存器的第7位等;也可以使用“字節(jié)地址位序號(hào)”來表示,如:PSW的字節(jié)地址為D0H,因此其第7位也可寫成D0H.7的形式。一般使用位符號(hào)可使程序易讀。 2.3 80C512.3 80C51

44、單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)3、 五個(gè)常用的特殊功能寄存器特殊功能寄存器的應(yīng)用幾乎貫穿80C51系列單片機(jī)學(xué)習(xí)過程的始終,下面介紹5個(gè)最常用的特殊功能寄存器。(1).累加器A(2).寄存器B(3).狀態(tài)字寄存器PSW(4).堆棧指針SP(5).數(shù)據(jù)指針DPTR2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)3. 五個(gè)常用的特殊功能寄存器(1).累加器A 累加器A是一個(gè)最常用的8位特殊功能寄存器

45、,它既可用于存放操作數(shù),也可用來存放運(yùn)算的中間結(jié)果。 在80C51單片機(jī)中,大部分單操作數(shù)指令的操作數(shù)就取自累加器。許多雙操作數(shù)指令中的一個(gè)操作數(shù),也取自累加器。 指令系統(tǒng)中A表示累加器,用ACC表示A的符號(hào)地址,即ACC在指令中可以替換累加器A的地址E0H。2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)3、 五個(gè)常用的特殊功能寄存器(2). 寄存器B 寄存器B是一個(gè)8位寄存器,主要用于乘法和除法運(yùn)算。乘法運(yùn)算時(shí),B中存放乘數(shù),乘法操作后,乘積的高8位又存于B中;除法運(yùn)算時(shí),B中存放

46、除數(shù),除法操作后,B又存放余數(shù)。在其他指令中,寄存器B可作為一般的寄存器使用,用于暫存數(shù)據(jù)。2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)3、 五個(gè)常用的特殊功能寄存器(3).狀態(tài)字寄存器PSWPSW是8位寄存器,用于存放程序運(yùn)行的狀態(tài)信息,格式如下。CY(PSW7):進(jìn)位標(biāo)志,是累加器A的溢出位。加、減法有進(jìn)位或借位時(shí)由硬件置位,否則清零,乘、除法時(shí)硬件自動(dòng)清零。AC(PSW6):輔助進(jìn)位標(biāo)志,是低半字節(jié)的進(jìn)位位,加、減法運(yùn)算中當(dāng)?shù)?位向高4位進(jìn)位或借位時(shí),由硬件置位,否則清零。C

47、PU根據(jù)AC標(biāo)志對(duì)BCD碼的算術(shù)運(yùn)算結(jié)果進(jìn)行調(diào)整。 CY AC F0 RSl RS0 OV P D7 D6 D5 D4 D3 D2 D1 D0 2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)3、 五個(gè)常用的特殊功能寄存器(3).狀態(tài)字寄存器PSW CY AC F0 RSl RS0 OV P D7 D6 D5 D4 D3 D2 D1 D0 F0(PSW5):用戶標(biāo)志位,留給用戶編程使用的,用戶可根據(jù)自己的需要用軟件方法置位或復(fù)位,并根據(jù)F0=0或1來決定程序的走向。RSl(PSW4)、

48、RS0(PSW3):工作寄存器組選擇位,開發(fā)人員用軟件改變RSl和RS0的組合,來選擇片內(nèi)RAM中的4組工作寄存器之一,作為當(dāng)前工作寄存器組。2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)3、 五個(gè)常用的特殊功能寄存器(3).狀態(tài)字寄存器PSW CY AC F0 RSl RS0 OV P D7 D6 D5 D4 D3 D2 D1 D0 OV(PSW2):溢出標(biāo)志位,當(dāng)執(zhí)行算術(shù)指令時(shí),由硬件置位或清零,根據(jù)計(jì)算方法的不同,OV代表的意義也不同, 說明說明: 在有符號(hào)數(shù)的加、減運(yùn)算中,當(dāng)

49、運(yùn)算結(jié)果超出-128+127的范圍時(shí),即產(chǎn)生溢出,則OV由硬件自動(dòng)置1,表示運(yùn)算結(jié)果錯(cuò)誤;否則OV由硬件清零,表示運(yùn)算結(jié)果正確。 在無符號(hào)數(shù)的乘法運(yùn)算中,當(dāng)乘積超出255時(shí),OV=1,表示乘積的高8位放在B中,低8位放在A中;若乘積未超出255,則OV=0,表示乘積只放在A中。 在無符號(hào)數(shù)的除法運(yùn)算中,當(dāng)除數(shù)為0時(shí),OV=1,表示除法不能進(jìn)行;否則,OV=0,表示除法可正常進(jìn)行。2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)3、五個(gè)常用的特殊功能寄存器(3).狀態(tài)字寄存器PSW CY

50、 AC F0 RSl RS0 OV P D7 D6 D5 D4 D3 D2 D1 D0 P(PSW0):奇偶標(biāo)志位,該位始終跟蹤累加器A內(nèi)容的奇偶性。如果有奇數(shù)個(gè)“1”,則P置1;否則置0。在80C51系列單片機(jī)的指令系統(tǒng)中,凡是改變累加器A中內(nèi)容的指令均影響奇偶標(biāo)志位P。2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)3、 五個(gè)常用的特殊功能寄存器(4).堆棧指針SP堆棧:在RAM中專門開辟出一片區(qū)域按照“先進(jìn)后出、后進(jìn)先出”的原則進(jìn)行存取的區(qū)域。SP: 始終指明棧頂元素的地址,8位

51、,可軟件設(shè)置初值;復(fù)位時(shí)(SP) = 07H。 堆棧的作用:保護(hù)現(xiàn)場和保護(hù)斷點(diǎn)堆棧包括進(jìn)棧PUSH direct出棧 POP direct2.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器進(jìn)棧(壓棧): 首先SP的內(nèi)容自動(dòng)加1,作為將要保存數(shù)據(jù)的地址,然后將數(shù)據(jù)存入該地址。特別注意:無論是進(jìn)棧還是出棧均是對(duì)無論是進(jìn)棧還是出棧均是對(duì)棧頂單元棧頂單元進(jìn)行的進(jìn)行的已知:(A)=22,(SP)=40H 執(zhí)行:PUSH ACC ; 則(41H)=22H 40404141565622222.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器已知(SP)=41H執(zhí)行:POP ACC

52、;則 (A)=22H ( SP)=40H出棧:出棧:首先將棧頂數(shù)據(jù)彈出,然后將SP的值減1。40404141565622222.3 80C512.3 80C51單片機(jī)的存儲(chǔ)器單片機(jī)的存儲(chǔ)器n2.3.4 80C512.3.4 80C51特殊功能寄存器特殊功能寄存器(SFR)(SFR)3、 五個(gè)常用的特殊功能寄存器(5).數(shù)據(jù)指針DPTRDPTR:指明訪問的數(shù)據(jù)存儲(chǔ)器的單元地址;16位,尋址范圍64KB。 DPTR = DPH + DPL,也可單獨(dú)使用。2.4 2.4 并行并行I/0I/0口及其應(yīng)用口及其應(yīng)用 80C51 80C51單片機(jī)共有單片機(jī)共有4 4個(gè)雙向的個(gè)雙向的8 8位并行位并行I/O

53、I/O口,分別記為口,分別記為P0P0,P1P1,P2P2和和P3P3。 這這4 4個(gè)端口除了按字節(jié)輸入輸出外,還可以按位尋址,便于位個(gè)端口除了按字節(jié)輸入輸出外,還可以按位尋址,便于位控功能的實(shí)現(xiàn)??毓δ艿膶?shí)現(xiàn)。2.4 2.4 并行并行I/0I/0口及其應(yīng)用口及其應(yīng)用n2.4.1 P02.4.1 P0口口P0口是一個(gè)雙功能的8位并行口,字節(jié)地址為80H,位地址為80H-87H。端口的各位具有完全相同但又相互獨(dú)立的電路結(jié)構(gòu)1、 P0口用作地址數(shù)據(jù)總線 當(dāng)80C51外擴(kuò)存儲(chǔ)器或I/O時(shí),P0口作為單片機(jī)系統(tǒng)的地址數(shù)據(jù)總線使用,此時(shí)其為真正的雙向口。 當(dāng)作為地址或數(shù)據(jù)輸出時(shí),P0.X(x07)端口的

54、電路結(jié)構(gòu)能夠按指令輸出相應(yīng)的高電平或低電平。 當(dāng)P0口作為地址數(shù)據(jù)輸入時(shí),其各引腳端口在CPU控制下首先呈現(xiàn)高阻抗?fàn)顟B(tài),然后按指令讀入引腳上的電平狀態(tài)。2.4 2.4 并行并行I/0I/0口及其應(yīng)用口及其應(yīng)用n2.4.1 P02.4.1 P0口口2、 P0口用作通用I/O口 P0口作為通用的I/O口使用,此時(shí)P0口為準(zhǔn)雙向口,且內(nèi)部無上拉電阻。(1).P0口用作輸出口時(shí):P0口端口的結(jié)構(gòu)可以正常輸出低電平,但必須外接上拉電阻才能按指令的要求有高電平輸出,如圖2-10所示(輸出指令:MOV P0,#0FH)。2.4 2.4 并行并行I/0I/0口及其應(yīng)用口及其應(yīng)用圖2-10 單片機(jī)的上拉電阻接法

55、2.4 2.4 并行并行I/0I/0口及其應(yīng)用口及其應(yīng)用知識(shí)點(diǎn):知識(shí)點(diǎn):上拉電阻:就是從電源高電平引出的電阻接到輸出端,上拉電阻可以將不確定的信號(hào)通過一個(gè)電阻嵌位在高電平。下拉電阻。同理,只不過要拉到GND上。為什么需要連接上拉電阻?由于單片機(jī)P0口內(nèi)部結(jié)構(gòu)設(shè)計(jì)的原因,導(dǎo)致其作普通I/O口時(shí),不能夠輸出高電平,需要外接電阻和電源用硬件設(shè)計(jì)拉高(或拉低)口線輸出高(低)電平。一般我們選擇10k的上拉電阻值,接5V電源。上拉電阻選取原則: 1)從節(jié)約功耗及芯片灌電流能力考慮應(yīng)當(dāng)足夠大;電阻大,電流小。 2)從確保足夠的驅(qū)動(dòng)電流考慮應(yīng)當(dāng)足夠小;電阻小,電流大。 3)對(duì)于高速電路,過大的上拉電阻可能會(huì)

56、導(dǎo)致邊沿變平緩。綜合考慮:上拉電阻常用值在1K到10K之間選取,下拉同理。2.4 2.4 并行并行I/0I/0口及其應(yīng)用口及其應(yīng)用知識(shí)點(diǎn):知識(shí)點(diǎn):排阻:它就是一排電阻圖2-11中P0口每個(gè)引腳上串連一個(gè)電阻,然后在電阻的另一端接5V電源,因?yàn)?個(gè)引腳接法相同,所以我們把8個(gè)電阻的另一端全部連接在一起,這樣一來,便共有9個(gè)引腳,其中一個(gè)稱為公共端(a)排阻的外形圖 (b)排阻的結(jié)構(gòu)圖2.4 2.4 并行并行I/0I/0口及其應(yīng)用口及其應(yīng)用知識(shí)點(diǎn):知識(shí)點(diǎn):排阻阻值標(biāo)號(hào):般在排阻上都標(biāo)有阻值號(hào),其公共端附近也有明顯標(biāo)記。如阻值號(hào)為103和150的排阻代表的阻值分別為:103表示其阻值大小為10 x1

57、03,即10k,若是102其阻值大小為10102,即1k,150為15x100,即15,其他讀法都相同。我們有時(shí)也會(huì)看到標(biāo)號(hào)為1002,1001等。1002表示100 xlO2,即10k,1001表示10010,即lk。3位數(shù)表示與4位數(shù)表示的阻值讀法我們都要會(huì),標(biāo)號(hào)位數(shù)不同,其電阻的精度不同,一般地,3位數(shù)表示5精度,4位數(shù)表示1精度。 還有的標(biāo)號(hào)如:3R0,表示阻值為3,4K7表示阻值為4.7k,R002表示阻值為0.0022.4 2.4 并行并行I/0I/0口及其應(yīng)用口及其應(yīng)用n2.4.1 P02.4.1 P0口口2、 P0口用作通用I/O口 (2). P0口作為輸入口使用時(shí)(需要先執(zhí)行

58、寫“1”操作):執(zhí)行讀引腳指令如: “MOV C,P0.0”讀的是P0.0引腳, “MOV A, P0”也是讀P0口8根口線的引腳指令, 讀引腳指令之前一定要有向P0.0寫“1”的指令,即執(zhí)行指令MOV P0,#0FFH。否則P0口引腳上將永遠(yuǎn)為低電平,無法正確反映外部設(shè)備的輸入信號(hào)。 注:不是所有P0口在源操作數(shù)的指令都表示讀入引腳狀態(tài)。P0口實(shí)際存在兩種讀入方式:“讀鎖存器”和“讀引腳”。凡遇“讀取P0口前一狀態(tài)以便修改后再送出”的情形,都屬于“讀鎖存器”指令,如:而指令“CPL P1.0”則是“讀鎖存器”。2.4 2.4 并行并行I/0I/0口及其應(yīng)用口及其應(yīng)用n2.4.1 P02.4.

59、1 P0口口2、 P0口用作通用I/O口 (2). P0口作為輸入口使用時(shí)(需要先執(zhí)行寫“1”操作):由于單片機(jī)復(fù)位后,P0口鎖存器自動(dòng)被置“1”,因此復(fù)位后P0口為輸入狀態(tài)時(shí)可省略寫“1”操作;在讀引腳前凡是不能確認(rèn)P0口狀態(tài)的,都執(zhí)行寫“1”操作指令是比較穩(wěn)妥的。 一般情況下,P0口大多作為地址數(shù)據(jù)復(fù)用口使用,這時(shí)就不能再作為通用I/O口使用。2.4 2.4 并行并行I/0I/0口及其應(yīng)用口及其應(yīng)用n2.4.2 P1 2.4.2 P1 口口P1口是單功能的I/O口,字節(jié)地址為90H,位地址為90H97H。P1口只能作為通用的I/O口使用。P1口為準(zhǔn)雙向口,但內(nèi)部有上拉電阻。 1、P1口作為

60、輸出口時(shí),外部不需要接上拉電阻,端口結(jié)構(gòu)即能夠按照指令的要求輸出高低電平。2、P1口作為輸入口時(shí),由于其端口不呈現(xiàn)高阻抗輸入狀態(tài),因此為準(zhǔn)雙向口。仍必須首先執(zhí)行向鎖存器寫“1”操作指令(例如:MOV P1,#0FFH),方能正確讀入引腳電平狀態(tài)數(shù)據(jù)。2.4 2.4 并行并行I/0I/0口及其應(yīng)用口及其應(yīng)用n2.4.3 P22.4.3 P2口口P2口是一個(gè)雙功能口,字節(jié)地址為A0H,位地址為A0HA7H。P2口只能作為通用的I/O口使用。P2口為準(zhǔn)雙向口,但內(nèi)部有上拉電阻。P2口功能有以下兩個(gè)方面: 1、作為高8位地址輸出線使用時(shí),P2口可以輸出外部存儲(chǔ)器的高8位地址,與P0口輸出的低8位地址一

溫馨提示

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