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

第三章MCS51單片機(jī)

的基本結(jié)構(gòu)南京郵電大學(xué)電氣工程系3.1單片機(jī)的內(nèi)部結(jié)構(gòu)3.2單片機(jī)的封裝形式和引腳功能3.3單片機(jī)的存儲(chǔ)系統(tǒng)3.4習(xí)題與思考OUTLINE

3.1單片機(jī)的內(nèi)部結(jié)構(gòu)3.1.1運(yùn)算器3.1.2控制器基本組成有三部分:中央處理器(CPU)+存儲(chǔ)器+輸入輸出接口(I/O口)

80C51內(nèi)部結(jié)構(gòu)包括:CPU(算術(shù)邏輯單元ALU、控制器)存儲(chǔ)器-程序存儲(chǔ)器ROM、數(shù)據(jù)存儲(chǔ)器RAM定時(shí)器/計(jì)數(shù)器并行通訊接口P0~P3(并行口)串行通訊接口(串行口)時(shí)鐘電路等

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

2.180C51單片微機(jī)的內(nèi)部結(jié)構(gòu)1.中央處理器

中央處理器由運(yùn)算器和控制器等部件構(gòu)成,是單片機(jī)的控制和指揮中心,主要完成運(yùn)算和控制功能,即它能夠根據(jù)指令的要求,指揮并控制單片機(jī)相關(guān)部件執(zhí)行指定的操作。2.時(shí)鐘電路

計(jì)算機(jī)的整個(gè)工作是在時(shí)鐘信號(hào)的驅(qū)動(dòng)下,按照嚴(yán)格的時(shí)序有規(guī)律地一個(gè)節(jié)拍一個(gè)節(jié)拍地執(zhí)行各種操作??赏ㄟ^(guò)外接振蕩元件或輸入一定頻率的脈沖信號(hào)提供單片機(jī)運(yùn)行所需的時(shí)鐘信號(hào)。有的單片微機(jī)將振蕩元件也集成在芯片內(nèi)部,更便于單片機(jī)開(kāi)發(fā)。3.內(nèi)部數(shù)據(jù)存儲(chǔ)器(RAM)

C51單片機(jī)內(nèi)部數(shù)據(jù)存儲(chǔ)器由128byte的RAM和RAM地址寄存器等構(gòu)成,簡(jiǎn)稱片內(nèi)RAM。4.內(nèi)部程序存儲(chǔ)器

80C51:內(nèi)部帶4KB的ROM單元單片微機(jī)的程序存儲(chǔ)器有以下幾種結(jié)構(gòu)形式:⑴片內(nèi)只讀存儲(chǔ)器程序必須在制作單片微機(jī)時(shí)寫(xiě)入,一次性固化。只適用于程序已成熟、定型,且批量很大的場(chǎng)合。并且只能在廠家定制完成。⑵片內(nèi)可編程的ROM:可直接由用戶進(jìn)行編程。

紫外線可擦除型ROM:EPROM型單片微機(jī)(如87C51)。EPROM需用紫外線擦除,必須脫機(jī)固化,不能在線改寫(xiě)。

電可擦除型ROM:EEPROM,稱為Flash單片微機(jī)(如89C51)。應(yīng)用系統(tǒng)的現(xiàn)場(chǎng)調(diào)試。

EPROM和EEPROM都是可以多次擦除和編程的,或稱MTP的ROM。

OTP的ROM,僅允許用戶一次編程。

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

用于精確的定時(shí),或者需對(duì)外部事件進(jìn)行計(jì)數(shù)80C51有兩個(gè)16位的定時(shí)器/計(jì)數(shù)器,可通過(guò)對(duì)單片機(jī)內(nèi)部的機(jī)器周期或外部輸入的負(fù)跳變計(jì)數(shù),實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能??赏ㄟ^(guò)外接振蕩元件或輸入一定頻率的脈沖信號(hào)提供單片機(jī)運(yùn)行所需的時(shí)鐘信號(hào)。

6.并行I/O口

提供許多功能強(qiáng)、使用靈活的并行輸入/輸出引腳,用于信息獲取與控制。

80C51單片機(jī)提供了32個(gè)I/O引腳,共構(gòu)成了4個(gè)8位的I/O端口,即P0、P1、P2、P3,這些端口可以按字節(jié)一次輸入或輸出8位數(shù)據(jù),同時(shí)可以對(duì)它們的每一位獨(dú)立進(jìn)行輸入或輸出操作。

有些I/O引腳還具有多種功能,比如數(shù)據(jù)總線的數(shù)據(jù)線、地址總線的地址線、控制總線的控制線等。7.串行I/O口80C51單片機(jī)設(shè)置了可編程的全雙工串行口UART,通過(guò)單片機(jī)的引腳P3.0和P3.1可實(shí)現(xiàn)與外界的串行通信。8.中斷系統(tǒng)

具有內(nèi)、外共五個(gè)中斷源,兩個(gè)中斷優(yōu)先級(jí)主要用來(lái)實(shí)現(xiàn)對(duì)操作數(shù)的算術(shù)、邏輯運(yùn)算和傳輸?shù)裙δ艿摹!駥?duì)傳送到CPU的數(shù)據(jù)進(jìn)行加、減、乘、除、比較、BCD碼校正等算術(shù)運(yùn)算?!瘛芭c”、“或”、“異或”等邏輯操作;移位、置位、清零、取反、加1、減1等操作。3.1.1運(yùn)算器主要包括:☆算術(shù)邏輯運(yùn)算單元ALU;☆累加器A;☆寄存器B;☆程序狀態(tài)標(biāo)志寄存器PSW;3.1.1運(yùn)算器圖2–5算術(shù)邏輯運(yùn)算單元ALU1.

算術(shù)邏輯單元本質(zhì)上是全加器,可對(duì)4位,8位,16位數(shù)據(jù)進(jìn)行操作,完成加、減、乘、除、加1、減1、BCD碼轉(zhuǎn)換為十進(jìn)制數(shù)的調(diào)整、數(shù)據(jù)比較等算術(shù)運(yùn)算和“與”“或”“異或”等邏輯運(yùn)算。ALU有兩個(gè)輸出:⑴數(shù)據(jù)經(jīng)過(guò)運(yùn)算后,其結(jié)果又通過(guò)內(nèi)部總線送回到累加器A中⑵數(shù)據(jù)運(yùn)算后產(chǎn)生的標(biāo)志位輸出至程序狀態(tài)寄存器PSW2.

累加器A簡(jiǎn)稱ACC或A寄存器,是CPU中使用最頻繁的一個(gè)8位專用寄存器。主要功能:累加器A存放操作數(shù),是ALU單元的輸入之一,也是ALU運(yùn)算結(jié)果的暫存單元。

80C51僅有一個(gè)累加器A,中大部分?jǐn)?shù)據(jù)操作都要通過(guò)累加器A進(jìn)行,容易產(chǎn)生“瓶頸”現(xiàn)象。

解決方法:在指令系統(tǒng)中增加一部分可以不經(jīng)過(guò)累加器的傳送指令。如:寄存器與直接尋址單元之間傳送指令;直接尋址單元與間接尋址單元之間傳送指令;

寄存器、間接尋址單元與立即數(shù)之間傳送指令。3.B寄存器乘法與除法指令中作為ALU的輸入之一。乘法中,ALU的兩個(gè)輸入分別為累加器A、寄存器B,運(yùn)算結(jié)果,A中放積的低8位,B中放積的高8位。除法中,被除數(shù)取自A,除數(shù)取自B,商數(shù)存放于A,余數(shù)存放于B。B寄存器可以作為內(nèi)部RAM中的一個(gè)單元來(lái)使用。

4.程序狀態(tài)字PSW(ProgramStatusWord)

字節(jié)地址為D0H;

一個(gè)逐位定義的8位寄存器,用于存放當(dāng)前指令執(zhí)行后的相關(guān)狀態(tài),為后續(xù)程序執(zhí)行提供狀態(tài)條件??筛鶕?jù)PSW中的相關(guān)標(biāo)志位,實(shí)現(xiàn)條件轉(zhuǎn)移。

4.程序狀態(tài)字PSW(ProgramStatusWord)

是一個(gè)可訪問(wèn)的寄存器,且可按位訪問(wèn)。奇偶校驗(yàn)位P、溢出標(biāo)志位OV、輔助進(jìn)位標(biāo)志位AC及進(jìn)位標(biāo)志位CY都是ALU運(yùn)算結(jié)果的直接輸出;PSW.1為保留位,RS1和RS0工作寄存器選擇控制位,F(xiàn)0為用戶標(biāo)志位。CYACF0RS1RS0OV-P

(1)P(PSW.0)-奇偶標(biāo)志位每個(gè)指令周期都由硬件來(lái)置位或清除。

用以表示累加器A中值為1的個(gè)數(shù)的奇偶性:若累加器值為1的位數(shù)是奇數(shù),P置位(奇校驗(yàn));否則P清除(偶校驗(yàn))。如(A)=00001010,則P=0。在串行通信中,常以傳送奇偶校驗(yàn)位來(lái)檢驗(yàn)傳輸數(shù)據(jù)的可靠性。(2)OV(PSW.2)-溢出標(biāo)志位當(dāng)執(zhí)行運(yùn)算指令時(shí),由硬件置位或清除。OV置位:運(yùn)算結(jié)果超出了目的寄存器A所能表示的帶符號(hào)數(shù)的范圍(-128~+127)。無(wú)符號(hào)數(shù)乘法指令MUL的執(zhí)行結(jié)果也會(huì)影響溢出標(biāo)志位。若參與運(yùn)算的A和B中兩個(gè)數(shù)乘積超過(guò)255,則OV=1,否則OV=0。由于乘法運(yùn)算積高八位在B內(nèi),低八位在A,OV=0,只從A中取得乘積即可,否則要從BA中取得乘積。

(3)RS1(PSW.4)RS0(PSW.3)-工作寄存器組選擇位用于設(shè)定當(dāng)前工作寄存器的組號(hào)。工作寄存器共有4組,其對(duì)應(yīng)關(guān)系如下:

RS1RS0組號(hào)寄存器R0~R7地址000組00H~07H011組08H~0FH102組10H~17H113組18H~1FH

(4)AC(PSW.6)-輔助進(jìn)位標(biāo)志位

當(dāng)進(jìn)行加法或減法運(yùn)算時(shí),若低4位向高4位數(shù)發(fā)生進(jìn)位或借位時(shí),AC將被硬件置位;否則,被清除。在十進(jìn)制調(diào)整指令DA中要用到AC標(biāo)志位狀態(tài)(5)

CY(PSW.7)-進(jìn)位標(biāo)志位。在進(jìn)行算術(shù)運(yùn)算時(shí),可以被硬件置位或清除,以表示運(yùn)算結(jié)果中高位是否有進(jìn)位或借位。在布爾處理機(jī)中CY被認(rèn)為是位累加器。

(6)F0(PSW.5)-用戶標(biāo)志位。復(fù)位時(shí)該位為“0”;用戶可根據(jù)需要,通過(guò)位操作指令置“l(fā)”或者清“0”??刂破魇菃纹瑱C(jī)的控制中心,它產(chǎn)生合適的時(shí)序讀取指令到指令寄存器,然后在指令譯碼器中進(jìn)行譯碼,產(chǎn)生執(zhí)行指令所需的各種控制信號(hào),送到單片機(jī)內(nèi)部的各功能部件,指揮其執(zhí)行相應(yīng)的操作,實(shí)現(xiàn)對(duì)應(yīng)的功能?!裨?0C51中,控制器包括程序計(jì)數(shù)器PC、程序地址寄存器、指令寄存器IR、指令譯碼器、條件轉(zhuǎn)移邏輯電路及定時(shí)控制邏輯電路。中央控制器3.1.2控制器程序計(jì)數(shù)器PC(ProgramCounter)一個(gè)獨(dú)立的計(jì)數(shù)器,不屬于內(nèi)部的特殊功能寄存器

存放下一條將要從程序存儲(chǔ)器中取出的指令的地址。PC基本的工作過(guò)程是:讀指令時(shí),PC將其中的數(shù)作為所取指令的地址輸出給程序存儲(chǔ)器,然后程序存儲(chǔ)器按此地址輸出指令字節(jié),同時(shí)PC本身自動(dòng)加1,指向下一條指令地址。PC數(shù)據(jù)(地址碼)變化決定程序的流向

在執(zhí)行條件轉(zhuǎn)移或無(wú)條件轉(zhuǎn)移指令時(shí),PC將被置入轉(zhuǎn)移的目的地址,程序的流向發(fā)生變化。在執(zhí)行調(diào)用指令或響應(yīng)中斷時(shí),將子程序的入口地址或者中斷矢量地址送入PC,程序流向發(fā)生變化。程序計(jì)數(shù)器的寬度決定了其可以直接尋址的范圍。對(duì)80C51而言,程序計(jì)數(shù)器PC是一個(gè)16位的計(jì)數(shù)器,因此可尋址的范圍為64K。2.指令寄存器IR、指令譯碼器及控制邏輯IR是用來(lái)存放指令操作碼的專用寄存器。指令寄存器將指令代碼輸出到指令譯碼器,由指令譯碼器對(duì)該指令代碼進(jìn)行識(shí)別和譯碼,譯碼結(jié)果通過(guò)時(shí)序控制邏輯電路發(fā)出對(duì)應(yīng)的定時(shí)、控制信號(hào),控制單片機(jī)各組成部件進(jìn)行相應(yīng)的工作,執(zhí)行指令。

整個(gè)程序的執(zhí)行過(guò)程就是在控制器的控制下,將指令從程序存儲(chǔ)器中逐條取出,進(jìn)行譯碼,然后由時(shí)序控制邏輯電路發(fā)出相應(yīng)的定時(shí)控制信號(hào),控制指令的執(zhí)行,即取指令→指令譯碼→執(zhí)行指令的不斷循環(huán)過(guò)程。3.2單片機(jī)的封裝形式和引腳功能3.2.1單片機(jī)的封裝形式3.2.2單片機(jī)的引腳功能三種封裝形式:40引腳雙列直插(DIP)44引腳(PLCC-PlasticLeadedChipCarrier)44引腳(PQFP/TQFP)

PQFP-PlasticQuadFlatPackageTQFP-ThinQuadFlatPackage3.2.1單片機(jī)的封裝形式PDIP封裝(塑料包封雙列直插式封裝

)PLCC封裝(塑料有引線芯片載體

)PQFP封裝(塑料四邊引出扁平封裝

)電源引腳Vcc和GND振蕩電路引腳控制信號(hào)引腳I/O口單片機(jī)的引腳根據(jù)其功能可分4類(lèi):3.2.1單片機(jī)的引腳功能1.電源引腳Vcc和GNDVcc:供電引腳,通常接+5V電源,但有些型號(hào)單片機(jī)的供電電壓可以在2.7~6V之間變化Vss(GND):接地。2.振蕩電路引腳XTAL1和XTAL2XTAL1:?jiǎn)纹瑱C(jī)內(nèi)部晶體振蕩電路中反相放大器的輸入端。使用內(nèi)部振蕩電路時(shí),該引腳和XTAL2引腳間外接石英晶體。當(dāng)采用外部振蕩器時(shí),對(duì)于HMOS型單片機(jī),此引腳應(yīng)接地;對(duì)于CHMOS型單片機(jī),此引腳作驅(qū)動(dòng)端。外部時(shí)鐘信號(hào)連接至此。XTAL2:?jiǎn)纹瑱C(jī)內(nèi)部晶體振蕩電路中反相放大器的輸出端。使用內(nèi)部振蕩電路時(shí),該引腳和XTAL1引腳間外接石英晶體。當(dāng)采用外部振蕩器時(shí),對(duì)于HMOS型單片機(jī),XTAL2引腳接收振蕩器信號(hào);對(duì)于CHMOS型單片機(jī),此引腳懸空。(1)振蕩器及時(shí)鐘電路MCS-51內(nèi)有一個(gè)高增益反相放大器,其輸入端(XTALl)和輸出端(XTAL2)用于外接石英晶體和微調(diào)電容,構(gòu)成振蕩器。對(duì)于MCS-51單片機(jī),12個(gè)振蕩周期構(gòu)成了一個(gè)機(jī)器周期,一個(gè)機(jī)器周期又細(xì)分成6個(gè)狀態(tài)(S狀態(tài))。當(dāng)外接晶振頻率選擇12MHz時(shí),時(shí)鐘周期即振蕩周期Tosc=1/12μs,則單片機(jī)的機(jī)器周期T=12Tosc=1μs。(2)指令執(zhí)行時(shí)序指令的執(zhí)行包括取指和執(zhí)行兩個(gè)階段。在取指階段,CPU從程序存儲(chǔ)器(ROM)中取出指令的操作碼及操作數(shù),然后執(zhí)行這條指令的邏輯功能。ALE信號(hào)的頻率是時(shí)鐘信號(hào)頻率的1/6。ALE信號(hào)的有效寬度為一個(gè)S狀態(tài)或者說(shuō)是兩個(gè)時(shí)鐘周期。每出現(xiàn)一次ALE信號(hào),CPU就進(jìn)行一次取指操作。(3)訪問(wèn)外部ROM的時(shí)序指令是從外部ROM讀取,除了ALE信號(hào)之外,控制信號(hào)還有PSEN。此外,還要用到P0和P2端口:P0端口分時(shí)用作低8位地址線和數(shù)據(jù)總線,P2端口用作高8位地址線。(4)訪問(wèn)外部RAM的時(shí)序訪問(wèn)外部RAM的時(shí)序包含從外部RAM中讀和寫(xiě)兩種時(shí)序,所用的控制信號(hào)有ALE和RD(讀)或WR(寫(xiě)),仍然要使用P0端口和P2端口。在取指令階段,P0端口用來(lái)傳送外部ROM的低8位地址和指令,P2端口用來(lái)傳送外部ROM的高8位地址。在執(zhí)行階段,P0端口用來(lái)傳送外部RAM的低8位地址和讀寫(xiě)的數(shù)據(jù),P2端口用來(lái)傳送外部RAM的高8位地址?!ST:復(fù)位輸入信號(hào)。在振蕩器工作時(shí),在RST上作用兩個(gè)機(jī)器周期以上的高電平,將單片微機(jī)復(fù)位?!A/Vpp:片外程序存儲(chǔ)器訪問(wèn)允許信號(hào)?!馝A=1,選擇片內(nèi)程序存儲(chǔ)器●EA=0,則程序存儲(chǔ)器全部在片外。使用80C31時(shí),EA必須接地,使用8751編程時(shí),EA施加21V的編程電壓。3.控制信號(hào)引腳●ALE/PROG:地址鎖存允許信號(hào)。

在訪問(wèn)片外存儲(chǔ)器或I/O時(shí),用于鎖存低8位地址,以實(shí)現(xiàn)低8位地址與數(shù)據(jù)的隔離。

ALE以1/6振蕩頻率的固定速率輸出,可作為對(duì)外輸出的時(shí)鐘或用作外部定時(shí)脈沖?!馪SEN:片外程序存儲(chǔ)器讀選通信號(hào)。在從片外程序存儲(chǔ)器取指期間,在每個(gè)機(jī)器周期中,當(dāng)PSEN有效時(shí),程序存儲(chǔ)器的內(nèi)容被送上P0口。復(fù)位:強(qiáng)制單片機(jī)系統(tǒng)恢復(fù)到確定的初始狀態(tài),并使系統(tǒng)重新從初始狀態(tài)開(kāi)始工作。當(dāng)RST/VPD引腳輸入的高電平使單片機(jī)復(fù)位后,只要該引腳上一直保持高電平,單片機(jī)就一直保持復(fù)位狀態(tài)。單片機(jī)復(fù)位完成后,其內(nèi)部各寄存器恢復(fù)成如表3-2所示的初始狀態(tài)。(1)上電復(fù)位電路幾種常用的復(fù)位電路(2)具有手動(dòng)復(fù)位功能的上電復(fù)位電路(3)專用復(fù)位集成電路

為了提高單片機(jī)系統(tǒng)復(fù)位的可靠性,很多公司相繼推出了多種專用的復(fù)位集成電路。這些集成電路一般都稱為系統(tǒng)復(fù)位及監(jiān)控芯片,除了提供可靠的上電自動(dòng)復(fù)位和手動(dòng)復(fù)位功能外,還可以監(jiān)測(cè)系統(tǒng)供電電壓的情況,如果供電電壓低于該芯片設(shè)定的門(mén)限值,則輸出復(fù)位信號(hào),使單片機(jī)復(fù)位??撮T(mén)狗定時(shí)器(WatchDogTimer,WDT)看門(mén)狗定時(shí)器是一個(gè)設(shè)置了時(shí)限的定時(shí)器,如果定時(shí)器的計(jì)時(shí)超過(guò)了這個(gè)設(shè)置的時(shí)限,WDT就會(huì)輸出復(fù)位信號(hào)來(lái)復(fù)位單片機(jī)。在計(jì)時(shí)的過(guò)程中,只要單片機(jī)通過(guò)指定的方式訪問(wèn)了WDT,例如將WDT的某個(gè)引腳拉至低電平,WDT的定時(shí)器就會(huì)歸零,重新開(kāi)始計(jì)時(shí)。當(dāng)單片機(jī)程序在運(yùn)行的過(guò)程中受到某種干擾,進(jìn)入非正常狀態(tài)。4.輸入/輸出(I/O)引腳 80C51有4個(gè)8位的并行雙向口,共有32根I/O口線。

各口的每一位由鎖存器、輸出驅(qū)動(dòng)器和輸入緩沖器組成。

結(jié)構(gòu)上有所差異,各口的性質(zhì)和功能也有所差異。4.并行輸入/輸出端口P0口多功能8位口,可以字節(jié)訪問(wèn)和位訪問(wèn);字節(jié)訪問(wèn)地址:80H;位訪問(wèn)地址:80~87H。

P0口⒈位結(jié)構(gòu)P0口位結(jié)構(gòu)原理圖P0口1)1個(gè)多路開(kāi)關(guān)。兩個(gè)輸入;輸出控制Q0的導(dǎo)通與截止;由內(nèi)部控制信號(hào)控制切換。

2)上拉電路由內(nèi)部控制信號(hào)和地址/數(shù)據(jù)信號(hào)共同控制,

即相“與”來(lái)控制。P0口3)當(dāng)內(nèi)部信號(hào)為1時(shí),多路開(kāi)關(guān)接通地址/數(shù)據(jù)輸出端。4)當(dāng)內(nèi)部信號(hào)為0時(shí),多路開(kāi)關(guān)接通輸出鎖存器的Q端。地址/數(shù)據(jù)輸出為1,A=1;地址/數(shù)據(jù)輸出為0,A=0;推拉式輸出電路。作為輸出口,P0.i=1,漏極開(kāi)路輸出;P0.i=0,低電平輸出作為輸入口,P0.i先置1,相當(dāng)于1個(gè)高阻抗輸入口。

⑴作I/O口使用相當(dāng)于一個(gè)真正的雙向口:輸出鎖存、輸入緩沖,但輸入時(shí)需先將口置1;每根口線可以獨(dú)立定義為輸入或輸出。它具有雙向口的一切特點(diǎn)。與其它口的區(qū)別:輸出時(shí)為漏極開(kāi)路輸出,與NMOS的電路接口時(shí)必須要用電阻上拉,才能有高電平輸出;輸入時(shí)為懸浮狀態(tài),為一個(gè)高阻抗的輸入口。

P0口的功能⑵作地址/數(shù)據(jù)復(fù)用總線用此時(shí)P0口為一個(gè)準(zhǔn)雙向口。但是有上拉電阻,作數(shù)據(jù)輸入時(shí),口也不是懸浮狀態(tài)。作地址/數(shù)據(jù)復(fù)用總線用。作數(shù)據(jù)總線用時(shí),輸入/輸出8位數(shù)據(jù)D0~D7;作地址總線用時(shí),輸出低8位地址A0~A7。當(dāng)P0口作地址/數(shù)據(jù)復(fù)用總線用之后,就再也不能作I/O口使用了。P0口的功能P1口多功能8位口,可以字節(jié)訪問(wèn)和位訪問(wèn);字節(jié)訪問(wèn)地址:90H;位訪問(wèn)地址:90~97H。

位結(jié)構(gòu)和工作原理P1口包括輸出鎖存器、輸入緩沖器BUF1(讀引腳)、BUF2(讀鎖存器)以及由FET晶體管Q0與上拉電阻組成的輸出/輸入驅(qū)動(dòng)器。P1口P1口位結(jié)構(gòu)原理圖P1口工作過(guò)程:1)P1.i位作輸出口用時(shí)。CPU輸出0時(shí),D=0,Q=0,Q=1,Q0導(dǎo)通,A=0;b.CPU輸出1時(shí),D=1,Q=1,Q=0,Q0截止,A=1。2)P1.i位作輸入口用時(shí)。先向P1.i輸出高電平,即設(shè)置P1.i為輸入線。外設(shè)輸入為1時(shí),A=B=1,否則,均為低電平。2、P1口的特點(diǎn)

輸出鎖存器,輸出時(shí)沒(méi)有條件;

輸入緩沖,輸入時(shí)有條件,即需要先將該口設(shè)為輸入狀態(tài),先輸出1;

工作過(guò)程中無(wú)高阻懸浮狀態(tài),也就是該口不是輸入態(tài)就是輸出態(tài)。具有這種特性的口不屬于“真正”的雙向口,而被稱為“準(zhǔn)”雙向口。⑴字節(jié)操作和位操作CPU對(duì)于P1口可作為一個(gè)8位口來(lái)操作,也可按位來(lái)操作有關(guān)字節(jié)操作的指令有:輸入: MOV P1,A ;P1←A MOV P1,#data ;P1←#data MOV P1,direct ;P1←direct

輸出: MOV A,P1 ;A←P1MOV direct,Pl ;direct←PlP1口的操作

置位、清除:SETBP1.i ;P1.i←1 CLR P1.i ;P1.i←0

輸入、輸出:MOVP1.i,C ;P1.i←CY MOVC,P1.i ;CY←P1.i

判跳: JB P1.i,rel;P1.i=1,跳轉(zhuǎn)

JBC P1.i,rel;P1.i=1,跳轉(zhuǎn)且 ;清P1.i=0

邏輯運(yùn)算:ANL C,P1.i ;CY←(P1.i·CY)

ORLC,P1.i;CY←(P1.i+CY)有關(guān)位操作的指令有:P1口不僅可以以8位一組進(jìn)行輸入、輸出操作,還可以逐位分別定義各口線為輸入線或輸出線。例如:

ORL P1,#00000010B

使P1.l位口線輸出l,而使其余各位不變。

ANL P1,#11111101B

使P1.1位線輸出0,而使其余各位不變。⑵讀引腳操作和讀鎖存器操作兩種讀口的操作:一種是讀引腳操作一種是讀鎖存器操作

在響應(yīng)CPU輸出的讀引腳信號(hào)時(shí),端口本身引腳的電平值通過(guò)緩沖器BUF1進(jìn)入內(nèi)部總線注意:這種類(lèi)型的指令,執(zhí)行之前必須先將端口鎖存器置1,使A點(diǎn)處于高電平,否則會(huì)損壞引腳,而且也使信號(hào)無(wú)法讀出這種類(lèi)型的指令有:

MOV A,P1 ;A←P1 MOV direct,P1 ;direct←P1

在執(zhí)行讀鎖存器的指令時(shí),CPU首先完成將鎖存器的值通過(guò)緩沖器BUF2讀入內(nèi)部,進(jìn)行修改,然后重新寫(xiě)到鎖存器中去,這就是“讀-修改-寫(xiě)”指令。 這種類(lèi)型的指令包含所有的口的邏輯操作(ANL、ORL、XRL)和位操作(JBC、CPL、MOV、SETB、CLR等)指令。⑶P1口的多功能線在80C52中,P1.0和P1.1口線是多功能的,即除作一般雙向I/O口線之外,還具有下列功能:

P1.0:T2的外部輸入端T2;

P1.1:T2的外部控制端T2EX。P2口多功能8位口,可以字節(jié)訪問(wèn)和位訪問(wèn);字節(jié)訪問(wèn)地址:A0H;位訪問(wèn)地址:A0~A7H。

⒈P(pán)2口位結(jié)構(gòu)和工作原理

P2口P2口位結(jié)構(gòu)原理圖(1)P2口多了1個(gè)多路開(kāi)關(guān);兩個(gè)輸入改變,分別為鎖存器輸出端Q和地址寄存器(PC或DPTR)的高位輸出端;(2)P2口的工作狀態(tài)是I/O狀態(tài);(3)內(nèi)部信號(hào)控制下,多路開(kāi)關(guān)的輸入投向輸出鎖存器的輸出Q(C點(diǎn))側(cè),多路開(kāi)關(guān)將接通輸出鎖存器;當(dāng)Q=0,Q0導(dǎo)通,A=0;當(dāng)Q=1,Q0截止,A=1;(4)P2口的工作狀態(tài)是輸出高8位地址。內(nèi)部信號(hào)控制下,多路開(kāi)關(guān)的輸入投向地址輸出(B點(diǎn))側(cè),A點(diǎn)的電平隨地址輸出的0、1而0、1地變化。

P2口與P1口的區(qū)別⑴作I/O口使用時(shí),P2口為一準(zhǔn)雙向口⑵作地址輸出時(shí),P2口可以輸出程序存儲(chǔ)器或片外數(shù)據(jù)存儲(chǔ)器的高8位地址,與P0輸出的低地址一起構(gòu)成16位地址線,從而可分別尋址64KB的程序存儲(chǔ)器或片外數(shù)據(jù)存儲(chǔ)器地址線是8位一起自動(dòng)輸出的P2口的功能⑴由于P2口的輸出鎖存功能,在取指周期內(nèi)或外部數(shù)據(jù)存儲(chǔ)器讀、寫(xiě)選通期間,輸出的高8位地址是鎖存的,故無(wú)需外加地址鎖存器。⑵在系統(tǒng)中如果外接有程序存儲(chǔ)器,由于訪問(wèn)片外程序存儲(chǔ)器的連續(xù)不斷的取指操作,P2口需要不斷送出高位地址,這時(shí)P2口的全部口線均不宜再作I/O口使用。⒊P2口使用中注意的問(wèn)題P3口多功能8位口,可以字節(jié)訪問(wèn)和位訪問(wèn);字節(jié)訪問(wèn)地址:B0H;位訪問(wèn)地址:B0~B7H。

P3口1、位結(jié)構(gòu)與工作原理P3口位結(jié)構(gòu)原理圖(1)P3口多了1個(gè)與非門(mén);與非門(mén)兩個(gè)輸入:一個(gè)為鎖存器輸出端Q,一個(gè)為替代功能的輸出;(2)P3口有兩個(gè)輸入緩沖器,替代輸入功能取自第一個(gè)緩沖器,I/O口通用輸入信號(hào)取自第二個(gè)緩沖器的輸出端;(3)代替輸出功能B點(diǎn)置1時(shí),輸出鎖存器的輸出可以順利通到引腳P3.i,且具有準(zhǔn)雙向口的性質(zhì);(4)輸出鎖存器置1時(shí),替代輸出功能可通到引腳P3.i。替代輸出為0時(shí),C=1,B=0,Q0導(dǎo)通,A=0;替代輸出為1時(shí),C=1,B=1,Q0截止,A=1。此時(shí)處于替代輸出功能狀態(tài)。

P3口與P1口的區(qū)別⑴可作I/O口使用,為準(zhǔn)雙向口既可以字節(jié)操作,也可以位操作既可以8位口操作,也可以逐位定義口線為輸入線或輸出線既可以讀引腳,也可以讀鎖存器,實(shí)現(xiàn)“讀-修改-輸出”操作⑵可以作為替代功能的輸入、輸出P3口的功能替代輸入功能:

P3.0:RXD,串行輸入口

P3.2:INT0,外部中斷0的請(qǐng)求

P3.3:INT1,外部中斷1的請(qǐng)求

P3.4:T0,T0外部計(jì)數(shù)脈沖輸入

P3.5:T1,T1外部計(jì)數(shù)脈沖輸入

替代輸出功能:

P3.l:TXD,串行輸出口

P3.6:WR外部數(shù)據(jù)存儲(chǔ)器或I/O端口寫(xiě)選通P3.7:RD外部數(shù)據(jù)存儲(chǔ)器或I/O端口讀選通3.3

單片機(jī)的存儲(chǔ)系統(tǒng)3.3.1單片機(jī)存儲(chǔ)系統(tǒng)結(jié)構(gòu)3.3.2程序存儲(chǔ)器3.3.3數(shù)據(jù)存儲(chǔ)器3.3.4特殊功能寄存器單片微機(jī)的存儲(chǔ)器有兩種基本結(jié)構(gòu):(1)通用計(jì)算機(jī)中廣泛采用的讓程序和數(shù)據(jù)合用一個(gè)存儲(chǔ)器空間的結(jié)構(gòu),稱為馮·諾依曼結(jié)構(gòu);(2)將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截然分開(kāi)、分別尋址的結(jié)構(gòu),稱為哈佛結(jié)構(gòu)。3.3.1

單片機(jī)的存儲(chǔ)系統(tǒng)結(jié)構(gòu)對(duì)于80C51,在物理上設(shè)有4個(gè)存儲(chǔ)器空間

程序存儲(chǔ)器:①片內(nèi)程序存儲(chǔ)器;②片外程序存儲(chǔ)器。

數(shù)據(jù)存儲(chǔ)器:③片內(nèi)數(shù)據(jù)存儲(chǔ)器;④片外數(shù)據(jù)存儲(chǔ)器。圖3–16

80C51單片微機(jī)存儲(chǔ)器映象

在邏輯上設(shè)有3個(gè)存儲(chǔ)器地址空間

①片內(nèi)、片外統(tǒng)一的64KB程序存儲(chǔ)器地址空間;②片內(nèi)256B(80C52為384B)數(shù)據(jù)存儲(chǔ)器地址空間;③片外64KB的數(shù)據(jù)存儲(chǔ)器地址空間片內(nèi)數(shù)據(jù)存儲(chǔ)器空間,在物理上又包含兩部分:80C51:0~127B為片內(nèi)數(shù)據(jù)存儲(chǔ)器空間128~255B為特殊功能寄存器空間80C52:0~127B為片內(nèi)數(shù)據(jù)存儲(chǔ)器空間128~255B共128個(gè)字節(jié)是數(shù)據(jù)存儲(chǔ)器和特殊功能寄存器地址重疊空間80C51有三種基本的尋址空間:·64KB的片內(nèi)、外程序存儲(chǔ)器尋址空間;

·64KB的片外數(shù)據(jù)存儲(chǔ)器尋址空間;

·256(或384)B的片內(nèi)數(shù)據(jù)存儲(chǔ)器尋址空間,其中包括特殊功能寄存器尋址空間。

3.3.2程序存儲(chǔ)器程序存儲(chǔ)器分為片內(nèi)和片外兩部分?!馝A引腳接高電平時(shí),程序從片內(nèi)程序存儲(chǔ)器0000H開(kāi)始執(zhí)行;當(dāng)PC值超出片內(nèi)程序存儲(chǔ)器容量時(shí),會(huì)自動(dòng)轉(zhuǎn)向片外程序存儲(chǔ)器空間執(zhí)行?!馝A引腳接低電平時(shí),迫使系統(tǒng)全部執(zhí)行片外程序存儲(chǔ)器0000H開(kāi)始存放的程序。對(duì)于片內(nèi)無(wú)ROM的80C31/80C32,應(yīng)將EA引腳固定接低電平,以迫使系統(tǒng)全部執(zhí)行片外程序存儲(chǔ)器程序。程序存儲(chǔ)器的特定的程序入口地址

由于系統(tǒng)復(fù)位后的PC地址為0000H,系統(tǒng)從0000H單元開(kāi)始取指,執(zhí)行程序。它是系統(tǒng)的啟動(dòng)地址,一般設(shè)置一條絕對(duì)轉(zhuǎn)移指令,進(jìn)而轉(zhuǎn)向主程序。因此,0000H~0002H被保留用于初始化。從0003H~002DH單元被保留用于5個(gè)中斷源的中斷服務(wù)程序的入口地址。分別如下:復(fù)位

0000H外部中斷0

0003H計(jì)時(shí)器T0溢出000BH外部中斷1

0013H計(jì)時(shí)器T1溢出001BH串行口中斷

0023H計(jì)時(shí)器T2/T2EX002BH(80C52)

在上述中斷入口處設(shè)置無(wú)條件轉(zhuǎn)移指令,使之轉(zhuǎn)向?qū)?yīng)的中斷服務(wù)程序段處執(zhí)行。

數(shù)據(jù)存儲(chǔ)器用作緩沖和數(shù)據(jù)暫存,如存放運(yùn)算中間結(jié)果、設(shè)置特征及標(biāo)志位等。數(shù)據(jù)存儲(chǔ)器也分為片內(nèi)和片外兩個(gè)部分。對(duì)于80C51系列單片機(jī),片內(nèi)RAM編址范圍為00H~7FH,片外RAM編址范圍為0000H~0FFFFH,地址有重疊。程序究竟訪問(wèn)的是哪一個(gè)存儲(chǔ)空間由指令形式不同來(lái)區(qū)分:(1)使用MOV指令時(shí)讀/寫(xiě)的是內(nèi)部數(shù)據(jù)存儲(chǔ)器、特殊功能寄存器和位地址空間,(2)使用MOVX指令則是讀/寫(xiě)外部數(shù)據(jù)存儲(chǔ)器空間。3.3.3數(shù)據(jù)存儲(chǔ)器1.外部數(shù)據(jù)存儲(chǔ)器外部數(shù)據(jù)存儲(chǔ)器只能用寄存器間接尋址的方式訪問(wèn):(1)使用16位的特殊功能寄存器DPTR

作為地址指針,尋址64KB空間;(2)使用R0、R1作為8位地址指針,訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器的低256B空間(3)RD/WR為外部數(shù)據(jù)存儲(chǔ)器的讀/寫(xiě)選通信號(hào)。片外數(shù)據(jù)存儲(chǔ)區(qū)

在外部存放數(shù)據(jù)的區(qū)域,這一區(qū)域只能用寄存器間接尋址的方法訪問(wèn)。指令助記符為MOVX。 ●當(dāng)用R0、R1尋址時(shí),由于R0、R1為8位寄存器,最大尋址范圍為256B; ●當(dāng)用DPTR尋址時(shí),由于DPTR為16位寄存器,最大尋址范圍為64KB。2.內(nèi)部數(shù)據(jù)存儲(chǔ)器80C51單片機(jī)內(nèi)部有128B的數(shù)據(jù)存儲(chǔ)器(RAM),可以作為數(shù)據(jù)緩沖器、堆棧、工作寄存器組和軟件標(biāo)志區(qū)等使用。片內(nèi)RAM編址范圍為00H~7FH,且不同的地址區(qū)域功能并不完全相同,CPU針對(duì)片內(nèi)RAM提供了豐富的操作指令。圖2–10片內(nèi)數(shù)據(jù)存儲(chǔ)器各部分地址空間分布圖1.片內(nèi)數(shù)據(jù)RAM區(qū),低128字節(jié):00H~7FHR0R1R2R3R4R5R6R7R0R1R2R3R4R5R6R7R0R1R2R3R4R5R6R7R0R1R2R3R4R5R6R7用戶RAM區(qū)(數(shù)據(jù)緩沖區(qū))00201F2F7F30工作寄存器區(qū)(32)個(gè),直接尋址。位尋址區(qū)(16個(gè)),也可字節(jié)尋址。工作寄存器區(qū)0工作寄存器區(qū)1工作寄存器區(qū)2工作寄存器區(qū)3字節(jié)尋址區(qū)(80個(gè))

⑴工作寄存器區(qū)用寄存器直接尋址的區(qū)域。

片內(nèi)數(shù)據(jù)RAM區(qū)的0~31(00H~1FH),共32個(gè)單元,是4個(gè)通用工作寄存器組,每個(gè)組包含8個(gè)8位寄存器,編號(hào)為R0~R7。

⑴工作寄存器區(qū)在某一時(shí)刻,只能選用一個(gè)寄存器組使用。其選擇是通過(guò)軟件對(duì)程序狀態(tài)字(PSW)中的RS0、RS1兩位的設(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)論