浙江大學(xué)微機(jī)原理與接口技術(shù)第二章單片微機(jī)的基本結(jié)構(gòu)_第1頁(yè)
浙江大學(xué)微機(jī)原理與接口技術(shù)第二章單片微機(jī)的基本結(jié)構(gòu)_第2頁(yè)
浙江大學(xué)微機(jī)原理與接口技術(shù)第二章單片微機(jī)的基本結(jié)構(gòu)_第3頁(yè)
浙江大學(xué)微機(jī)原理與接口技術(shù)第二章單片微機(jī)的基本結(jié)構(gòu)_第4頁(yè)
浙江大學(xué)微機(jī)原理與接口技術(shù)第二章單片微機(jī)的基本結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩71頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二章單片微機(jī)的基本結(jié)構(gòu)浙江大學(xué)電氣學(xué)院彭勇剛第二章單片微機(jī)的基本結(jié)構(gòu)2.180C51單片微機(jī)的內(nèi)部結(jié)構(gòu)單片機(jī)的8大部件:中央處理器(CPU)、數(shù)據(jù)存儲(chǔ)器(RAM)、程序存儲(chǔ)器(ROM/EPROM)、并行輸入/輸出口(P0口-P3口)、串行口、定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)及特殊功能寄存器??傊?,單片機(jī)是由片內(nèi)總線連接8大部件構(gòu)成。2.2MCS-51單片機(jī)的引腳及片外總線結(jié)構(gòu)

1.MCS-51單片機(jī)的引腳(40引腳PDIP封裝)P0.0—P0.78P1.0—P1.78P2.0—P2.78P3.0—P3.78引腳名稱引腳個(gè)數(shù)Vcc,GND2XTAL1,XTAL22RESET1EA/Vpp1ALE/PROG1PSEN1電源端,接+5V;接地端片內(nèi)振蕩電路輸入/輸出端復(fù)位信號(hào)輸入端讀片外ROM控制端/編程電源輸入端低8位地址鎖存允許信號(hào)輸出端/編程脈沖輸入端讀片外程序存儲(chǔ)器選通信號(hào)輸出端4組8位并行I/O口⑴地址總線AB(AddressBus)地址線A0~A15共16位,P2口提供高8位地址A8~A15,P0口經(jīng)地址鎖存器提供低8位地址A0~A7。片外存儲(chǔ)器可尋址范圍達(dá)64KB(即=65536個(gè)字節(jié))。⑵數(shù)據(jù)總線DB(DataBus)

數(shù)據(jù)線D0-D7共8位,由P0口提供。所以,P0口分時(shí)輸送低8位地址(通過地址鎖存器鎖存)和8位數(shù)據(jù)信息。⑶控制總線CB(ControlBus)

控制總線由P3口的第二功能(P3.6)、(P3.7)和3根獨(dú)立的控制線、ALE和組成。2、MCS-51單片機(jī)的片外三總線結(jié)構(gòu)

所謂總線,就是連接單片機(jī)與系統(tǒng)中各部件的一組公共的信號(hào)線。2.380C51CPU的結(jié)構(gòu)圖2.380C51CPU的結(jié)構(gòu)和特點(diǎn)2.3.1CPU的組成

(1)運(yùn)算器

8位算術(shù)邏輯運(yùn)算單元ALU

累加器A(ACC)寄存器B

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

(2)控制器程序計(jì)數(shù)器PC

堆棧指針SP

數(shù)據(jù)指針DPTR

指令寄存器IR

定時(shí)與控制邏輯完成算術(shù)運(yùn)算、邏輯運(yùn)算和位操作。a、以主振頻率為基準(zhǔn)產(chǎn)生時(shí)鐘信號(hào),控制取指令、執(zhí)行指令、存取操作數(shù)或運(yùn)算結(jié)果等操作。b、向其他部件發(fā)出各種微控制信號(hào),使各部件自動(dòng)協(xié)調(diào)工作。是程序中最繁忙的特殊功能寄存器,功能是向ALU提供操作數(shù)、存放運(yùn)算的中間結(jié)果、數(shù)據(jù)傳送的中轉(zhuǎn)站。

主要用于乘、除運(yùn)算8位寄存器,用于存放指令執(zhí)行狀態(tài),供程序查詢和判斷

16位自動(dòng)加1功能的計(jì)數(shù)器8位專用寄存器,存放堆棧棧頂存儲(chǔ)單元的地址

存放16位地址,用特定指令來訪問片外數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器

2.3.2

指令執(zhí)行的基本過程向存儲(chǔ)器裝入程序執(zhí)行指令取指令執(zhí)行指令程序——為了完成某項(xiàng)工作,將一系列指令有序地組合指令——要求單片機(jī)執(zhí)行某種操作的命令從存儲(chǔ)器中取出指令,對(duì)指令進(jìn)行譯碼,明確該指令執(zhí)行何種操作,以及操作數(shù)的存放地址,再根據(jù)這個(gè)地址獲取操作數(shù)按操作碼指明的操作類型對(duì)獲取的操作數(shù)進(jìn)行操作程序計(jì)數(shù)器PC(ProgramCounter)——16位自動(dòng)加1功能的計(jì)數(shù)器。PC中的內(nèi)容總是CPU將要執(zhí)行的那條指令所存放的存儲(chǔ)單元的首地址,在CPU從存儲(chǔ)單元取指令的過程中,每取1個(gè)字節(jié)的內(nèi)容,程序計(jì)數(shù)器PC就自動(dòng)加1,在取完這條指令后,PC的內(nèi)容是下一條要執(zhí)行的指令所存放的存儲(chǔ)單元的首地址。2.3.3單片機(jī)硬件最小系統(tǒng)

單片機(jī)最小系統(tǒng)指單片機(jī)正常工作需要的最少元件,以一以AT89C51最小系統(tǒng)為例,常為4部分:工作電源、時(shí)鐘電路、復(fù)位電路、存儲(chǔ)器設(shè)置電路。單片機(jī)硬件系統(tǒng)通常以最小系統(tǒng)作為基本部分,配以不同的外圍電路,實(shí)現(xiàn)不同的電路功能。單片機(jī)最小控制系統(tǒng)的結(jié)構(gòu)圖

X1X2P0P1P2P3TXDRXDINT0INT1返回CPURAMROM中斷系統(tǒng)串行口并行口定時(shí)計(jì)數(shù)器振蕩電路T0T1外設(shè)外設(shè)外設(shè)RST+5V單片機(jī)最小硬件系統(tǒng)CPURAMROM定時(shí)中斷串口CBP2P3P1P0P0P2P3P1鎖存器

ALE單片機(jī)擴(kuò)展系統(tǒng)的結(jié)構(gòu)圖RST+5VX1X2ABDB存儲(chǔ)器I/O口外設(shè)返回2.3.3.1時(shí)鐘電路用于產(chǎn)生單片機(jī)工作所需要的時(shí)鐘信號(hào)單片機(jī)芯片內(nèi)部有一個(gè)高增益反向放大器,通過引腳XTAL1和XTAL2,接晶體振蕩器CYS和微調(diào)電容器C1、C2形成反饋電路(通常取值在20~30pF),構(gòu)成穩(wěn)定的自激振蕩器并產(chǎn)生振蕩脈沖。振蕩電路產(chǎn)生的振蕩脈沖不直接使用,而是經(jīng)分頻后為系統(tǒng)所用。fosc

外部振蕩方式:引入外部脈沖信號(hào)作為單片機(jī)的振蕩脈沖,對(duì)于80C51單片機(jī)而言,這時(shí)外部脈沖信號(hào)是經(jīng)XTAL1引腳注入,而XTAL2引腳懸空,這種方式常用于多塊芯片同時(shí)工作,這樣便于同步。1、節(jié)拍與狀態(tài)把振蕩脈沖的周期定義為節(jié)拍(用“P”表示)。振蕩脈沖經(jīng)過二分頻后,就是單片機(jī)的時(shí)鐘信號(hào),把時(shí)鐘信號(hào)的周期定義為狀態(tài)(用“S”表示)。這樣,一個(gè)狀態(tài)就包含兩個(gè)拍節(jié),其前半周期對(duì)應(yīng)的節(jié)拍叫節(jié)拍1(P1),后半周期對(duì)應(yīng)的節(jié)拍叫節(jié)拍2(P2)。2、機(jī)器周期規(guī)定一個(gè)機(jī)器周期的寬度為6個(gè)狀態(tài),并依次表示為:S1~S6。由于一個(gè)狀態(tài)又包括兩個(gè)節(jié)拍,因此一個(gè)機(jī)器周期總共有12個(gè)節(jié)拍,分別記作S1P1、S1P2、……S6P12。由于一個(gè)機(jī)器周期共有12個(gè)振蕩脈沖周期,因此機(jī)器周期就是振蕩頻率的十二分頻。2.3.3.2時(shí)序與時(shí)序定時(shí)單位3、指令周期指令周期是最大的時(shí)序定時(shí)單位,執(zhí)行一條指令所需要的時(shí)間稱之為指令周期。指令周期以機(jī)器周期的數(shù)目來表示,MCS-51的指令周期根據(jù)指令的不同,可包含有一(單周期)、二(雙周期)、三或四個(gè)機(jī)器周期。指令的運(yùn)算速度和指令所包含的機(jī)器周期數(shù)有關(guān),機(jī)器周期數(shù)越少的指令執(zhí)行速度越快。例如當(dāng)振蕩脈沖頻率為12MHz時(shí),一個(gè)機(jī)器周期為1微秒,當(dāng)振蕩脈沖頻率為6MHz時(shí),一個(gè)機(jī)器周期為2微秒。對(duì)于振蕩脈沖頻率為12MHz的單周期指令、雙周期指令、三周期指令和四周期指令其指令的執(zhí)行時(shí)間分別為:1微秒、2微秒、3微秒和4微秒。

各種周期之間的關(guān)系P1P2S1振蕩周期狀態(tài)周期機(jī)器周期機(jī)器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2P2時(shí)序要點(diǎn):一個(gè)指令周期=1,2或者4個(gè)機(jī)器周期一個(gè)機(jī)器周期=12個(gè)晶振周期一個(gè)機(jī)器周期輸出兩個(gè)ALE脈沖即:ALE的輸出頻率fALE=(1/6)fOSC如果使用晶振頻率為12MHZ,則fALE=2MHZ,指令執(zhí)行時(shí)間=1,2,4微秒。例:?jiǎn)纹瑱C(jī)外接晶振頻率12MHZ時(shí),求各時(shí)序單位的值。振蕩周期=狀態(tài)周期=機(jī)器周期=指令周期=1/fosc=1/12MHZ=0.0833us2/fosc=2/12MHZ=0.1667us12/fosc=12/12MHZ=1us(1~4)機(jī)器周期=1~4us2023/2/520a)單字節(jié)單周期;b)雙字節(jié)單周期指令;c)單字節(jié)雙周期字節(jié);d)單字節(jié)雙周期指令2023/2/521時(shí)序的共同點(diǎn):

每一次ALE信號(hào)有效,CPU均從ROM中讀取指令碼(包括操作碼和操作數(shù)),但不一定有效,讀了之后再丟棄(假讀)。有效時(shí),PC+1→PC(程序計(jì)數(shù)器PC加1);無效時(shí)不變。其余時(shí)間用于執(zhí)行指令操作功能,但在時(shí)序中沒有完全反映出。如雙字節(jié)單機(jī)器周期,分別在S1、S4讀操作碼和操作數(shù),執(zhí)行指令就一定在S2、S3、S5、S6中完成。2.3.3.3MCS-51單片機(jī)的復(fù)位復(fù)位操作通常有兩種基本形式:上電自動(dòng)復(fù)位、手動(dòng)按鍵復(fù)位接通電源后自動(dòng)實(shí)現(xiàn)復(fù)位操作電源接通的條件下,在單片機(jī)運(yùn)行期間,用按鈕開關(guān)操作使單片機(jī)復(fù)位如何進(jìn)行復(fù)位呢?在8C051單片機(jī)的RST引腳上輸入高電平并至少保持兩個(gè)機(jī)器周期(即24個(gè)振蕩周期)以上時(shí),復(fù)位過程即可完成。如果RST引腳持續(xù)保持高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。使系統(tǒng)回復(fù)到初始狀態(tài)的操作上電瞬間,RST獲得高點(diǎn)平,隨著電容C的充電,RST上的高電平逐漸下降。想一想,如果12M晶振,高電平維持的時(shí)間至少多少?MCS-51單片機(jī)復(fù)位后的狀態(tài)寄存器復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)PC0000HTCON00HA00HT2CON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP0~P3FFHSCON00HIPXX000000BSBUFXXHIE0X000000BPCON0XXX0000BTMOD00H2.4MCS-51存儲(chǔ)器結(jié)構(gòu)和地址空間計(jì)算機(jī)的兩種不同結(jié)構(gòu)——馮·諾依曼型:中央處理器(CPU)輸入/輸出部件存儲(chǔ)器邏輯部件(ALU)控制部件計(jì)算機(jī)的兩種不同結(jié)構(gòu)——哈佛型:中央處理器(CPU)輸入/輸出部件程序存儲(chǔ)器邏輯部件(ALU)控制部件數(shù)據(jù)存儲(chǔ)器單片機(jī)的存儲(chǔ)器——幾個(gè)有關(guān)的概念:

計(jì)算機(jī)中的存儲(chǔ)器就是一個(gè)用來存放貨物(包括數(shù)據(jù)和程序)的倉(cāng)庫(kù),倉(cāng)庫(kù)中有很多用來存放貨物(數(shù)據(jù))的貨架,貨架分成很多格子,格子的大小是1個(gè)字節(jié),這就是存儲(chǔ)器中的存儲(chǔ)單元。

在這個(gè)倉(cāng)庫(kù)中存放數(shù)據(jù)可以一個(gè)字節(jié)一個(gè)字節(jié)的放、也可以一個(gè)位一個(gè)位的放,為了存取貨物(數(shù)據(jù))方便,每個(gè)格子都有一個(gè)編號(hào),這個(gè)編號(hào)被稱為地址,即存儲(chǔ)單元地址,地址用一個(gè)2位或4位的十六進(jìn)制數(shù)來表示。MCS51單片機(jī)存儲(chǔ)器結(jié)構(gòu)及地址空間MCS-51單片機(jī)存儲(chǔ)器可分為5類:片內(nèi)程序存儲(chǔ)器,片外程序存儲(chǔ)器,片內(nèi)數(shù)據(jù)存儲(chǔ)器,片外數(shù)據(jù)存儲(chǔ)器,特殊功能寄存器。

MCS-51單片機(jī)存儲(chǔ)器的地址空間可分為3個(gè):1、片內(nèi)片外統(tǒng)一編址的64KB程序存儲(chǔ)器地址空間(用16位地址);2、片內(nèi)數(shù)據(jù)存儲(chǔ)器與特殊功能寄存器統(tǒng)一編址的256字節(jié)內(nèi)部數(shù)據(jù)存儲(chǔ)器地址空間(用8位地址);3、64KB片外數(shù)據(jù)存儲(chǔ)器地址空間(16位地址)低4KB(0000H~0FFFH)的片外程序存儲(chǔ)器和4K的片內(nèi)程序存儲(chǔ)器的地址空間是公共的,控制信號(hào)EA來區(qū)分片內(nèi)和片外程序存儲(chǔ)器程序存儲(chǔ)器的某些單元是保留給系統(tǒng)使用的:1、0000H-0002H單元,系統(tǒng)的啟動(dòng)單元,即是所有執(zhí)行程序的入口地址。單片機(jī)復(fù)位后,程序計(jì)數(shù)器PC的內(nèi)容為0000H,使單片機(jī)必然從0000H單元取指令執(zhí)行程序。2、0003H-002AH單元,中斷服務(wù)程序的入口地址,共40個(gè)單元,分成5段,每段8個(gè)單元,分配給5個(gè)中斷源。用戶程序不應(yīng)該進(jìn)入這個(gè)區(qū)域。因此,一般從0000H開始,存放一條絕對(duì)轉(zhuǎn)移指令,用戶程序則由轉(zhuǎn)移后的地址開始執(zhí)行,從而避開以上給系統(tǒng)使用的ROM單元。64KB數(shù)據(jù)存儲(chǔ)器RAM在地址上是和64KB程序存儲(chǔ)器ROM的地址重疊,8051通過不同的信號(hào)來選通RAM和ROM:當(dāng)對(duì)片外RAM讀、寫數(shù)據(jù)時(shí),用讀、寫控制信號(hào)RD或WR來選通;當(dāng)對(duì)片外ROM取指令時(shí),采用選通信號(hào)PSEN程序存儲(chǔ)器的0000H-002AH共43個(gè)單元用作存儲(chǔ)特定程序的入口地址。

0000H-0002H這3個(gè)單元是系統(tǒng)的啟動(dòng)單元;

0003H-002AH共40個(gè)單元是中斷服務(wù)程序地址區(qū),它被分為五段,每段8個(gè)單元,分別分配給5個(gè)中斷源:0003H-000AH

外部中斷0中斷服務(wù)程序地址區(qū);000BH-OO12H

定時(shí)/計(jì)數(shù)器0中斷服務(wù)程序地址區(qū);0013H-001AH

外部中斷1中斷服務(wù)程序地址區(qū);001BH-0022H

定時(shí)/計(jì)數(shù)器1中斷服務(wù)程序地址區(qū);0023H-002AH

串行口中斷服務(wù)程序地址區(qū)。2FH存儲(chǔ)器配置(片內(nèi)RAM):片內(nèi)RAM128字節(jié)(00H—7FH)00H20H7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)SFR分布在80H-FFH其中92個(gè)位可位尋址80HFFH所有的RAM區(qū)(包括工作寄存器區(qū)、位尋址區(qū)、通用RAM區(qū))都可以用于存放據(jù)。80C51128字節(jié)特殊功能寄存器區(qū)128字節(jié)統(tǒng)一編址R0R2R1R3R4R5R6R707H02H01H00H06H04H05H03H08H1FH工作寄存器區(qū)3工作寄存器區(qū)2工作寄存器區(qū)1工作寄存器區(qū)00FH10H17H18H00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)存儲(chǔ)器配置(片內(nèi)RAM):工作寄存器區(qū)(00H—1FH)1FH存儲(chǔ)器配置(片內(nèi)RAM)位尋址區(qū)(20H—2FH)可按位尋址它們的位地址為:00H—7FH(128位)00H20H2FH7FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)7F7E7D7C7B7A797827H22H21H20H26H24H25H23H28H2FH單元字節(jié)地址07060504030201000F0E0D0C0B0A090817161514131211101F1E1D1C1B1A191827262524232221202F2E2D2C2B2A292837363534333231303F3E3D3C3B3A39384746454443424140位地址MCS51單片機(jī)的特殊功能寄存器(SFR):特殊功能寄存器SFR(專用寄存器)是一類專門用于控制、選擇、管理、存放單片機(jī)內(nèi)部各部分的工作方式、條件、狀態(tài)、結(jié)果的寄存器。不同的SFR管理不同的硬件模塊,負(fù)責(zé)不同的功能,各司其職換而言之:要讓單片機(jī)實(shí)現(xiàn)預(yù)訂的功能,必須有相應(yīng)的硬件和編寫相應(yīng)的軟件,而編寫軟件中最重要的一項(xiàng)工作就是對(duì)SFR進(jìn)行設(shè)置。特殊功能寄存器(SFR)80C51有21個(gè)SFR(地址碼尾數(shù)為0或8的11個(gè)單元具有位尋址能力)與CPU相關(guān)的寄存器ACC,B,PSW,SP,DPTR(DPH,DPL)與I/O口相關(guān)的寄存器P0,P1,P2,P3;SCON,SBUF,PCON與中斷相關(guān)的寄存器IE,IP與定時(shí)/計(jì)數(shù)器相關(guān)寄存器TMOD,TCON,T0,T1各特殊功能寄存器的符號(hào)及地址表標(biāo)識(shí)符名稱地址*Acc累加器E0H*BB寄存器F0H*PSW程序狀態(tài)字D0HSP堆棧指針81HDPTR數(shù)據(jù)指針(DPH和DPL)82H,83H*P0口080H*P1口190H*P2口2A0H*P3口3B0H*IP中斷優(yōu)先級(jí)寄存器B8H*IE中斷控制寄存器A8HTMOD定時(shí)器方式寄存器89H*TCON定時(shí)器控制寄存器88H標(biāo)識(shí)符名稱地址TH0計(jì)數(shù)器0高位8CHTL0計(jì)數(shù)器0低位8AHTH1計(jì)數(shù)器1高位8DHTL1計(jì)數(shù)器1低位8BH*SCON串行口控制98HSBUF串行數(shù)據(jù)緩沖器99HPCON電源控制97H位地址的表示法例:位名稱

CY、RS0

寄存器名加序號(hào)PSW.7ACC.1

字節(jié)地址加序號(hào)20H.3

直接位地址 00H第二章2---37特殊功能寄存器地址空間特殊功能寄存器(A、B、P0—P3、SP):P0、P1、P2、P3等四個(gè)8位I/O口分別由名為P0、P1、P2、P3四個(gè)SFR代表。堆棧指針寄存器

SP(StackPointer):

總是指向堆棧的棧頂。累加器ACC:

8位寄存器,地址:E0H,具有位尋址能力。用于數(shù)據(jù)傳送中存放中間數(shù)據(jù)、數(shù)學(xué)邏輯運(yùn)算中存放運(yùn)算數(shù)據(jù),是數(shù)據(jù)傳送的中轉(zhuǎn)站。

寄存器B:經(jīng)常與ACC配合在一起使用的特殊功能寄存器(乘法、除法中存放另一個(gè)運(yùn)算數(shù)據(jù)),此外,它也經(jīng)常當(dāng)作普通寄存器使用。程序狀態(tài)字存儲(chǔ)器(PSW):程序狀態(tài)字存儲(chǔ)器PSW:

用于存放在程序執(zhí)行過程中產(chǎn)生的一些特殊狀態(tài)(進(jìn)位、溢出、借位等)。CYACF0RS0OVPRS1PSW.7PSW.0PSW.6PSW.5CY(PSW.7)進(jìn)位/借位標(biāo)志位。若ACC在運(yùn)算過程中發(fā)生了進(jìn)位或借位,則CY=1;否則=0。同時(shí)它也是布爾處理器的位累加器,可用于布爾操作,即位操作。AC(PSW.6)輔助進(jìn)位/借位標(biāo)志位。若ACC在運(yùn)算過程中,D3位向D4位發(fā)生了進(jìn)位或借位,則AC=1,否則=0。機(jī)器在執(zhí)行“DAA”指令時(shí)自動(dòng)要判斷這一位。F0(PSW.5)可由用戶定義的標(biāo)志位。程序狀態(tài)字存儲(chǔ)器(PSW):RS1和RS0:

RS1和RS0的組合用于對(duì)工作寄存器區(qū)進(jìn)行選擇。CYACF0RS0OVPRS1PSW.7PSW.0PSW.4PSW.3RS1,RS0=00則選擇了工作寄存器組

0區(qū)R0~R7,分別代表00H~07H單元。RS1,RS0=01則選擇了工作寄存器組

1區(qū)R0~R7,分別代表08H~0FH單元。RS1,RS0=10則選擇了工作寄存器組

2區(qū)

R0~R7,分別代表10H~17H單元。RS1,RS0=11則選擇了工作寄存器組

3區(qū)R0~R7,分別代表18H~1FH單元。PSW.6PSW.5程序狀態(tài)字存儲(chǔ)器(PSW):OV

(PSW.2)溢出標(biāo)志位。OV=1時(shí)特指累加器A在進(jìn)行帶符號(hào)數(shù)(-128—+127)運(yùn)算時(shí)出錯(cuò)(超出范圍);OV=0時(shí)未出錯(cuò)。P(PSW.0)奇偶標(biāo)志位。P=1表示累加器A中“1”的個(gè)數(shù)為奇數(shù)P=0表示累加器A中“1”的個(gè)數(shù)為偶數(shù)CPU隨時(shí)監(jiān)視著ACC中的“1”的個(gè)數(shù),并反映在PSW中CYACF0RS0OVPRS1PSW.7PSW.0PSW.2PSW.1一個(gè)重要的寄存器(PC):程序計(jì)數(shù)器PC(ProgramCounter)PC不是一個(gè)特殊功能寄存器SFR,但其作用又十分重要和特殊!!!PC在計(jì)算機(jī)中用于對(duì)程序的執(zhí)行進(jìn)行控制特點(diǎn):▼它是16位的按機(jī)器周期自動(dòng)增1計(jì)數(shù)器▼總指向下一條指令所在首地址(當(dāng)前PC值)▼一切分支/跳轉(zhuǎn)/調(diào)用/中斷/復(fù)位等操作的本質(zhì)就是:改變PC值MCS51單片機(jī)的堆棧:什么是堆棧?在片內(nèi)RAM中,常常要指定一個(gè)專門的區(qū)域來存放某些特別的數(shù)據(jù),

它只允許在其一端進(jìn)行數(shù)據(jù)的插入(寫入)和刪除(讀出)操作,這端稱為棧頂,SP始終指向棧頂,它遵循先進(jìn)后出和后進(jìn)先出(LIFO/FILO)的原則,這個(gè)RAM區(qū)叫堆棧,堆棧的另外一端稱為棧底。堆棧的作用是什么?1)子程序調(diào)用和中斷服務(wù)時(shí)CPU自動(dòng)將當(dāng)前PC值入棧保存,返回時(shí)自動(dòng)將出棧,將原來保存過PC值復(fù)原。2)保護(hù)現(xiàn)場(chǎng)/恢復(fù)現(xiàn)場(chǎng)3)數(shù)據(jù)傳輸MCS51單片機(jī)的堆棧:堆棧區(qū)通過特殊功能寄存器SP(堆棧指針)進(jìn)行管理(SP始終指向堆棧的棧頂),堆棧區(qū)可以安排在RAM區(qū)任意位置,但為了防止數(shù)據(jù)區(qū)的沖突,所以一般不安排在片內(nèi)RAM的工作寄存器區(qū)和位尋址區(qū),通常放在片內(nèi)RAM的通用RAM區(qū)。1FH30H20H2FHMCS51單片機(jī)的堆棧的操作:00H7FH80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)初始SPSP棧頂已經(jīng)存入堆棧的數(shù)據(jù)將要進(jìn)入堆棧的數(shù)據(jù)存放于此數(shù)據(jù)進(jìn)棧進(jìn)棧:首先修改SP,即(SP)+1,使SP指向下一個(gè)單元,然后將數(shù)據(jù)放進(jìn)堆棧的棧頂單元,按照這樣的規(guī)則,SP再自動(dòng)增1,仍指著棧頂,數(shù)據(jù)進(jìn)?!?FH30H20H2FHMCS51單片機(jī)的堆棧:00H7FH80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)初始SPSP棧頂出棧:取出的數(shù)據(jù)是最近放進(jìn)去的一個(gè)數(shù)據(jù),也就是當(dāng)前棧頂?shù)臄?shù)據(jù)。然后SP再自動(dòng)減1,按照這樣的規(guī)則,取棧頂數(shù)據(jù),SP再自動(dòng)減1

……當(dāng)前要出棧的數(shù)據(jù)數(shù)據(jù)出棧1FH30H20H2FHMCS51單片機(jī)的堆棧:00H7FH80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)初始SPSP棧頂數(shù)據(jù)出棧SP-1指向新的棧頂,也就是下一個(gè)要出棧的數(shù)據(jù)出棧:取出的數(shù)據(jù)是最近放進(jìn)去的一個(gè)數(shù)據(jù),也就是當(dāng)前棧頂?shù)臄?shù)據(jù)。然后SP再自動(dòng)減1,按照這樣的規(guī)則,取棧頂數(shù)據(jù),SP再自動(dòng)減1

……2.580C51并行輸入/輸出端口P0口P1口P2口P3口2.580C51的并行口結(jié)構(gòu)與操作2.5.1P0口的結(jié)構(gòu)

一、

P0口的結(jié)構(gòu)控制位C0:P0用作通用I/O口1:P0用作地址/數(shù)據(jù)總線1、P0用作通用I/O口

當(dāng)系統(tǒng)不進(jìn)行片外的ROM擴(kuò)展,也不進(jìn)行片外RAM擴(kuò)展時(shí),P0用作通用I/O口。

在這種情況下,單片機(jī)硬件自動(dòng)使C=0,MUX開關(guān)接向鎖存器的反相輸出端。

另外,與門輸出的“0”使輸出驅(qū)動(dòng)器的上拉場(chǎng)效應(yīng)管T1處于截止?fàn)顟B(tài)。因此,輸出驅(qū)動(dòng)級(jí)工作在需外接上拉電阻的漏極開路方式。作輸出口時(shí),CPU執(zhí)行口的輸出指令,內(nèi)部數(shù)據(jù)總線上的數(shù)據(jù)在“寫鎖存器”信號(hào)的作用下由D端進(jìn)入鎖存器,經(jīng)鎖存器的反向端送至場(chǎng)效應(yīng)管T2,再經(jīng)T2反向,在P0.X引腳出現(xiàn)的數(shù)據(jù)正好是內(nèi)部總線的數(shù)據(jù)。作輸入口時(shí),數(shù)據(jù)可以讀自口的鎖存器,也可以讀自口的引腳。這要根據(jù)輸入操作采用的是“讀鎖存器”指令還是“讀引腳”指令來決定。

執(zhí)行“讀—修改—寫”類輸入指令時(shí)(如:ANLP0,A),內(nèi)部產(chǎn)生的“讀鎖存器”操作信號(hào),使鎖存器Q端數(shù)據(jù)進(jìn)入內(nèi)部數(shù)據(jù)總線,在與累加器A進(jìn)行邏輯運(yùn)算之后,結(jié)果又送回P0的口鎖存器并出現(xiàn)在引腳。讀口鎖存器可以避免因外部電路原因使原口引腳的狀態(tài)發(fā)生變化造成的誤讀。

在執(zhí)行“MOV”類輸入指令時(shí)(如:MOVA,P0),內(nèi)部產(chǎn)生的操作信號(hào)是“讀引腳”。注意,在執(zhí)行該類輸入指令前要先把鎖存器寫入“1”,使場(chǎng)效應(yīng)管T2截止,使引腳處于懸浮狀態(tài),可以作為高阻抗輸入。

否則,在作為輸入方式之前曾向鎖存器輸出過“0”,則T2導(dǎo)通會(huì)使引腳箝位在“0”電平,使輸入高電平“1”無法讀入。所以,P0口在作為通用I/O口時(shí),屬于準(zhǔn)雙向口。2、P0用作地址/數(shù)據(jù)總線

當(dāng)系統(tǒng)進(jìn)行片外的ROM擴(kuò)展或進(jìn)行片外RAM擴(kuò)展,P0用作地址/數(shù)據(jù)總線時(shí)。

在這種情況下,單片機(jī)內(nèi)硬件自動(dòng)使C=1,MUX開關(guān)接向反相器的輸出端,這時(shí)與門的輸出由地址/數(shù)據(jù)線的狀態(tài)決定。CPU在執(zhí)行輸出指令時(shí),低8位地址信息和數(shù)據(jù)信息分時(shí)地出現(xiàn)在地址/數(shù)據(jù)總線上。P0.X引腳的狀態(tài)與地址/數(shù)據(jù)線的信息相同。CPU在執(zhí)行輸入指令時(shí),首先低8位地址信息出現(xiàn)在地址/數(shù)據(jù)總線上,P0.X引腳的狀態(tài)與地址/數(shù)據(jù)總線的地址信息相同。然后,CPU自動(dòng)地使轉(zhuǎn)換開關(guān)MUX撥向鎖存器,并向P0口寫入FFH,同時(shí)“讀引腳”信號(hào)有效,數(shù)據(jù)經(jīng)緩沖器進(jìn)入內(nèi)部數(shù)據(jù)總線。P0口作為地址/數(shù)據(jù)總線使用時(shí)是一個(gè)真正的雙向口。2.5.2

P2口的結(jié)構(gòu)控制位C0:P2用作通用I/O口1:P2用作地址總線1、P2用作通用I/O口

當(dāng)不在單片機(jī)芯片外部擴(kuò)展程序存儲(chǔ)器,只擴(kuò)展256B的片外RAM時(shí),僅用到了地址線的低8位,P2口仍可以作為通用I/O口使用。

執(zhí)行輸出指令時(shí),內(nèi)部數(shù)據(jù)總線的數(shù)據(jù)在“寫鎖存器”信號(hào)的作用下由D端進(jìn)入鎖存器,經(jīng)反相器后送至場(chǎng)效應(yīng)管T,再經(jīng)T反相,在P2.X引腳出現(xiàn)的數(shù)據(jù)正好是內(nèi)部總線的數(shù)據(jù)。P2口用作輸入時(shí),數(shù)據(jù)可以讀自口的鎖存器,也可以讀自口的引腳。這要根據(jù)輸入操作采用的是“讀鎖存器”指令還是“讀引腳”指令來決定。

執(zhí)行“讀—修改—寫”類輸入指令時(shí)內(nèi)部產(chǎn)生的“讀鎖存器”操作信號(hào)使鎖存器Q端數(shù)據(jù)進(jìn)入內(nèi)部數(shù)據(jù)總線,在與累加器A進(jìn)行邏輯運(yùn)算之后,結(jié)果又送回P2的口鎖存器并出現(xiàn)在引腳。

執(zhí)行“MOV”類輸入指令時(shí),內(nèi)部產(chǎn)生的操作信號(hào)是“讀引腳”。應(yīng)在執(zhí)行輸入指令前要把鎖存器寫入“1”,從而使引腳處高阻抗輸入狀態(tài)。P2口在作為通用I/O口時(shí),屬于準(zhǔn)雙向口。2、P2用作地址總線

當(dāng)需要在單片機(jī)芯片外部擴(kuò)展程序存儲(chǔ)器或擴(kuò)展的RAM容量超過256字節(jié)時(shí),單片機(jī)內(nèi)硬件自動(dòng)使控制C=1,MUX開關(guān)接向地址線,這時(shí)P2.X引腳的狀態(tài)正好與地址線的信息相同。2.5.3P1口x的結(jié)構(gòu)

一、

P1口的結(jié)構(gòu)

P1口由一個(gè)輸出鎖存器、兩個(gè)三態(tài)輸入緩沖器和輸出驅(qū)動(dòng)電路組成。輸出驅(qū)動(dòng)電路與P2口相同,內(nèi)部設(shè)有上拉電阻。P1口是通用的準(zhǔn)雙向I/O口。輸出高電平時(shí),能向外提供拉電流負(fù)載,不必再接上拉電阻。當(dāng)口用作輸入時(shí),須向口鎖存器寫入1。2.P1口的位結(jié)構(gòu)與功能1)P1口也是—個(gè)準(zhǔn)雙向I/O口2)應(yīng)用:通常作一般I/O口用,如驅(qū)動(dòng)LED,連接按鍵SETB

P1.0CLRP1.1MOVP1,#00HMOVP1,#0FFH2.5.4

P3口的結(jié)構(gòu)

P3用作通用I/O口:W=1P3用作第二功能:Q=11、P3用作第一功能(通用I/O口)

對(duì)P3口進(jìn)行字節(jié)或位尋址時(shí),單片機(jī)內(nèi)部的硬件自動(dòng)將第二功能輸出線的W置1。這時(shí),對(duì)應(yīng)的口線為通用I/O口方式。輸出時(shí),鎖存器的狀態(tài)(Q端)與輸出引腳的狀態(tài)相同;輸入時(shí),要先向口鎖存器寫入1,使引腳處于高阻輸入狀態(tài)。輸入的數(shù)據(jù)在“讀引腳”信號(hào)的作用下,進(jìn)入內(nèi)部數(shù)據(jù)總線。

P3口作為通用I/O口時(shí),屬于準(zhǔn)雙向口。P3.0:RXD(串行口輸入);P3.1:TXD(串行口輸出);P3.2:外部中斷0輸入;P3.3:外部中斷1輸入;P3.4:T0(定時(shí)器0的外部輸入);P3.5:T1(定時(shí)器1的外部輸出);P3.6:(片外數(shù)據(jù)存儲(chǔ)器“寫”選通控制輸出);P3.7:(片外數(shù)據(jù)存儲(chǔ)器“讀”選通控制輸出)。2、P3用作第二功能使用

當(dāng)CPU不對(duì)P3口進(jìn)行字節(jié)或位尋址時(shí),內(nèi)部硬件自動(dòng)將口鎖存器的Q端置1。這時(shí),P3口作為第二功能使用。2.5.5并行口的負(fù)載能力

P0、P1、P2、P3口的電平與CMOS和TTL電平兼容。P0口的每一位口線可以驅(qū)動(dòng)8個(gè)LSTTL負(fù)載。在作為通用I/O口時(shí),由于輸出驅(qū)動(dòng)電路是開漏方式,由集電極開路(OC門)電路或漏極開路電路驅(qū)動(dòng)時(shí)需外接上拉電阻;當(dāng)作為地址/數(shù)據(jù)總線使用時(shí),口線輸出不是開漏的,無須外接上拉電阻。P1、P2、P3口的每一位能驅(qū)動(dòng)4個(gè)LSTTL負(fù)載。它們的輸出驅(qū)動(dòng)電路設(shè)有內(nèi)部上拉電阻,所以可以方便地由集電極開路(OC門)電路或漏極開路電路所驅(qū)動(dòng),而無須外接上拉電阻。

由于單片機(jī)口線僅能提供幾毫安的電流,當(dāng)作為輸出驅(qū)動(dòng)一般的晶體管的基極時(shí),應(yīng)在口與晶體

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論