版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第2章單片機硬件結(jié)構(gòu)單片機原理及應(yīng)用2.1邏輯結(jié)構(gòu)及信號引腳2.2內(nèi)部存儲器2.3并行輸入/輸出口電路2.4電路與時序2.5工作方式7/26/20231第2章單片機硬件結(jié)構(gòu)單片機原理及應(yīng)用2.1邏輯第2章一、教學(xué)目標(biāo):1、了解MCS-51單片機芯片基本特征及內(nèi)部架構(gòu)2、熟悉外部引腳及部分引腳功能3、熟悉存儲結(jié)構(gòu)體系及部分特殊功能寄存器4、掌握I/O電路原理及應(yīng)用二、教學(xué)重難點:三、教學(xué)時數(shù):8課時四、習(xí)題:P40三2.5.7.87/26/20232電信學(xué)院第2章一、教學(xué)目標(biāo):7/24/20232電信學(xué)院2.1.1結(jié)構(gòu)框圖2.1.2內(nèi)部邏輯結(jié)構(gòu)2.1.3信號引腳2.1邏輯結(jié)構(gòu)及信號引腳7/26/202332.1.1結(jié)構(gòu)框圖2.1邏輯結(jié)構(gòu)及信號引腳7/22.1.1結(jié)構(gòu)框圖8031無7/26/202342.1.1結(jié)構(gòu)框圖8031無7/24/20234圖2-2MCS-51單片機的內(nèi)部結(jié)構(gòu)框圖7/26/20235圖2-2MCS-51單片機的內(nèi)部結(jié)構(gòu)框圖7/24/2022.1.2內(nèi)部邏輯結(jié)構(gòu)CPU運算器電路CPU控制器電路CPU控制器電路7/26/202362.1.2內(nèi)部邏輯結(jié)構(gòu)CPU運算器電路CPU控制器電路C1.CPU(中央處理器)完成單片機的運算和控制能力
運算器控制器ALU、ACC、寄存器B、暫存器、PSW寄存器、十進制調(diào)整電路等定時控制邏輯、指令寄存器、譯碼器、信息傳輸控制部件7/26/202371.CPU(中央處理器)完成單片機的運算和控制能力運算器控制MCS—51CPUCPU內(nèi)部結(jié)構(gòu):(1)運算器電路:運算部件以算術(shù)邏輯運算單元ALU為核心,包含累加器ACC、B寄存器、暫存器、標(biāo)志寄存器PSW等許多部件,它能實現(xiàn)算術(shù)運算、邏輯運算、位運算、數(shù)據(jù)傳輸?shù)忍幚?。算術(shù)運算單元ALU是一個8位的運算器,它不僅可以完成8位二進制數(shù)據(jù)加、減、乘、除等基本的算術(shù)運算,還可以完成8位二進制數(shù)據(jù)邏輯“與”、“或”、“異或”、循環(huán)移位、求補、清零等邏輯運算,并具有數(shù)據(jù)傳輸、程序轉(zhuǎn)移等功能。ALU還有一個一般微型計算機沒有的位運算器,它可以對一位二進制數(shù)據(jù)進行置位、清零、求反、測試轉(zhuǎn)移及位邏輯“與”、“或”等處理。這對于控制方面很有用。累加器ACC(簡稱為A)為一個8位的寄存器,它是CPU中使用最頻繁的寄存器,ALU進行運算時,數(shù)據(jù)絕大多數(shù)時候都來自于累加器ACC,運算結(jié)果也通常送回累加器ACC。7/26/20238MCS—51CPUCPU內(nèi)部結(jié)構(gòu):(1)運算器寄存器B稱為輔助寄存器,它是為乘法和除法指令而設(shè)置的。在乘法運算時,累加器A和寄存器B在乘法運算前存放乘數(shù)和被乘數(shù),運算完后,通過寄存器B和累加器A存放結(jié)果。除法運算時,運算前,累加器A和寄存器B存入被除數(shù)和除數(shù),運算后用于存放商和余數(shù)。標(biāo)志寄存器PSW是一個8位的寄存器,它用于保存指令執(zhí)行結(jié)果的狀態(tài),以供程序查詢和判別。D7D6D5D4D3D2D1D0CACF0RS1RS0OV-PC(PSW.7):進位標(biāo)志位。AC(PSW.6):輔助進位標(biāo)志位。F0(PSW.5):用戶標(biāo)志位。RS1、RS0(PSW.4、PSW.3):寄存器組選擇位。OV(PSW.2):溢出標(biāo)志位。P(PSW.0):奇偶標(biāo)志位。若累加器A中1的個數(shù)為奇數(shù),則P置位,若累加器A中1的個數(shù)為偶數(shù),則P清零。
7/26/20239寄存器B稱為輔助寄存器,它是為乘法和除法指令而設(shè)置的(2)控制器電路:
MCS—51CPU
控制部件是單片機的控制中心,它包括定時和控制電路、指令寄存器、指令譯碼器、程序計數(shù)器PC、堆棧指針SP、數(shù)據(jù)指針DPTR以及信息傳送控制部件等。它先以振蕩信號為基準(zhǔn)產(chǎn)生CPU的時序,從ROM中取出指令到指令寄存器,然后在指令譯碼器中對指令進行譯碼,產(chǎn)生指令執(zhí)行所需的各種控制信號,送到單片機內(nèi)部的各功能部件,指揮各功能部件產(chǎn)生相應(yīng)的操作,完成對應(yīng)的功能。7/26/202310(2)控制器電路:MCS—51CPU控2.內(nèi)部存儲器程序存儲器ROM數(shù)據(jù)存儲器RAM
存放程序指令,常數(shù)和數(shù)據(jù)表格(只讀)存放數(shù)據(jù),分為內(nèi)部和外部數(shù)據(jù)存儲器(隨機)單片機內(nèi)有256個RAM單元,作為寄存器被用戶使用的只有前128個單元,后128個被專用寄存器占用內(nèi)部RAM指的是前128單元7/26/2023112.內(nèi)部存儲器程序存儲器ROM數(shù)據(jù)存儲器RAM存放程3.定時與中斷系統(tǒng)MCS-51單片機內(nèi)有兩個16位的定時器/計數(shù)器:實現(xiàn)定時和計數(shù),并將其結(jié)果作為查詢和中斷的控制憑據(jù);MCS-51單片機內(nèi)有5個中斷源(2個中斷優(yōu)先級)2個外部中斷源2個定時器/計數(shù)器中斷源1個串行口中斷源
7/26/2023123.定時與中斷系統(tǒng)7/24/2023124.并行I/O口4個8位的并行I/O口(P0P1P2P3)實現(xiàn)數(shù)據(jù)并行輸入輸出5.串行I/O口一個全雙工的串行口實現(xiàn)與外部的串行數(shù)據(jù)傳送6.時鐘電路為單片機產(chǎn)生時鐘脈沖序列,協(xié)調(diào)和控制單片機的工作.MCS-51單片機內(nèi)部有時鐘電路(但是需外接石英晶體振蕩器和微調(diào)電容)最高時鐘頻率為12MHZ7/26/2023134.并行I/O口7/24/202313圖2-380C51單片機引腳圖7/26/202314圖2-380C51單片機引腳圖7/24/2023142.2.1程序存儲器2.2.2數(shù)據(jù)存儲器2.2.3堆棧操作2.2內(nèi)部存儲器7/26/2023152.2.1程序存儲器2.2內(nèi)部存儲器7/24/20MCS—51單片機存儲器可以分成兩大類:RAM,CPU在運行時能隨時進行數(shù)據(jù)的寫入和讀出,但在關(guān)閉電源時,其所存儲的信息將丟失。它用來存放暫時性的輸入輸出數(shù)據(jù)、運算的中間結(jié)果或用作堆棧。ROM是一種寫入信息后不易改寫的存儲器。斷電后,ROM中的信息保留不變。用來存放固定的程序或數(shù)據(jù),如系統(tǒng)監(jiān)控程序、常數(shù)表格等。7/26/202316MCS—51單片機存儲器可以分成兩大類:7/24/20231MCS-51單片機把程序存儲器和數(shù)據(jù)存儲器分開,具有各自的尋址系統(tǒng)和控制信號。1.內(nèi)部程序存儲器(ROM)存放程序和表格常數(shù)8051為4KB8052為8KB2.內(nèi)部數(shù)據(jù)存儲器(RAM)存放運算過程中的數(shù)據(jù)8051/8031為128B8052/8032為256B3.外部程序存儲器(ROM)存放程序最大可擴展為64KB(包括內(nèi)部ROM)4.外部數(shù)據(jù)存儲器(RAM)存放大量數(shù)據(jù)最大可擴展為64KB(不包括內(nèi)部RAM)7/26/202317MCS-51單片機把程序存儲器和數(shù)據(jù)存儲器分開,具有各自的2.2.4存儲器結(jié)構(gòu)特點普林斯頓結(jié)構(gòu):
程序和數(shù)據(jù)共用一個存儲器邏輯空間,統(tǒng)一編址。哈佛結(jié)構(gòu):
程序與數(shù)據(jù)分為兩個獨立存儲器邏輯空間,分開編址。7/26/2023182.2.4存儲器結(jié)構(gòu)特點普林斯頓結(jié)構(gòu):物理上4個存儲器地址空間:片內(nèi)程序存儲器片外程序存儲器片內(nèi)數(shù)據(jù)存儲器片外數(shù)據(jù)存儲器邏輯上3個存儲器地址空間:64KB程序存儲器256B片內(nèi)數(shù)據(jù)存儲器64KB片外數(shù)據(jù)存儲器8031805164KB7/26/202319物理上4個存儲器地址空間:8031805164KB7/24/圖2-4MCS-51單片機系統(tǒng)的存儲器結(jié)構(gòu)和存儲器空間分布7/26/202320圖2-4MCS-51單片機系統(tǒng)的存儲器結(jié)構(gòu)和存儲器空間分2.2.1程序存儲器
對于8051來說,程序存儲器(ROM)的內(nèi)部地址為0000H~0FFFH,共4KB;外部地址為1000H~FFFFH,共60KB。當(dāng)程序計數(shù)器由內(nèi)部0FFFH執(zhí)行到外部1000H時,會自動跳轉(zhuǎn)。
=1時,單片機讀內(nèi)部ROM,若超出范圍,CPU自動讀外部ROM=0時,CPU完全讀取外部ROM當(dāng)讀取外部ROM時,變?yōu)榈碗娖疆?dāng)讀取內(nèi)部ROM時,保持為高電平7/26/2023212.2.1程序存儲器=1時,單片機讀內(nèi)部ROM,若超出范2.2.2MCS-51單片機的數(shù)據(jù)存儲器
數(shù)據(jù)存儲器地址空間由內(nèi)部和外部數(shù)據(jù)存儲器空間組成。內(nèi)部和外部數(shù)據(jù)存儲器空間存在重疊,通過使用不同的指令可予以區(qū)別。當(dāng)訪問片內(nèi)RAM時,用MOV類指令;當(dāng)訪問片外RAM時,則用MOVX類指令,所以地址重疊不會造成操作混亂。
片內(nèi)數(shù)據(jù)存儲器在物理上又可分成3部分:低128BRAM高128BRAM(僅8032/8052才有)和特殊功能寄存器(SFR)。7/26/2023222.2.2MCS-51單片機的數(shù)據(jù)存儲器
數(shù)據(jù)存儲器用戶RAM區(qū)00H07H20H1FH2FH30H7FHR7R6R5R4R3R2R1R0寄存器0,1,2,3組位尋址區(qū)內(nèi)部數(shù)據(jù)存儲器的結(jié)構(gòu)分為三個區(qū)域:1.寄存器區(qū):
4組寄存器(寄存器陣列)。即4個工作寄存器0區(qū)~3區(qū)。每組8個寄存單元(每單元8位),以R0~R7作寄存器名,暫存運算數(shù)據(jù)和中間結(jié)果。字節(jié)地址為00H~1FH。2.位尋址區(qū):
字節(jié)地址為20H~2FH,既可作RAM,也可位操作。共有16個RAM單元,共128位,位地址為00H~7FH。3.用戶RAM區(qū):
32個單元,地址為30H~7FH,在一般應(yīng)用中常作堆棧區(qū)。7/26/202323用戶RAM區(qū)00H07H20H2FH30H7FHR7R6R57/26/2023247/24/202324
2.特殊功能寄存器區(qū)(80H~FFH)
該區(qū)用于存放相應(yīng)功能部件的控制命令狀態(tài)或數(shù)據(jù)。因為這些寄存器的功能已作專門規(guī)定,故而稱為特殊功能寄存器(SFR)。MCS-51特殊功能寄存器共有22個,其中可字節(jié)尋址的只有21個,其地址及符號見表2-4。
7/26/2023252.特殊功能寄存器區(qū)(80H~FFH)
該區(qū)用于存表2-4特殊功能寄存器及其地址分配表7/26/202326表2-4特殊功能寄存器及其地址分配表7/24/202327/26/2023277/24/202327(1)
程序計數(shù)器PC(16位):CPU總是按PC的指示讀取程序。PC是一個16位的計數(shù)器。其內(nèi)容為將要執(zhí)行的指令地址(即下一條指令地址),可自動加1。因此CPU執(zhí)行程序一般是順序方式。當(dāng)發(fā)生轉(zhuǎn)移、子程序調(diào)用、中斷和復(fù)位等操作,PC被強制改寫,程序執(zhí)行順序也發(fā)生改變。復(fù)位時,PC=0000H。7/26/202328(1)程序計數(shù)器PC(16位):7/24/202328(2)
累加器ACC(8位):累加器Acc是一個最常用的專用寄存器,為8位寄存器。累加器的功能較多,地位重要。其具有的功能概括如下:.累加器用于存放操作數(shù),是ALU數(shù)據(jù)輸入的一個重要來源,大部分單操作指令的一個操作數(shù)取自累加器,很多雙操作數(shù)指令中的—個操作數(shù)也取自累加器;.累加器是從刀運算結(jié)果的暫存單元,用于存放運算的中間結(jié)果;.累加器是數(shù)據(jù)傳送的中轉(zhuǎn)站,單片機中的大部分?jǐn)?shù)據(jù)傳送都通過累加器進行;7/26/202329(2)累加器ACC(8位):累加器Acc是一.在變址尋址方式中把累加器作為變址寄存器使用。單片機中大部分的數(shù)據(jù)操作都會通過累加器Acc進行,在程序比較復(fù)雜的運算中,累加器成了制約軟件效率的“瓶頸”,很容易出現(xiàn)阻塞現(xiàn)象。為此在80c51中設(shè)置了一些不經(jīng)過累加器的數(shù)據(jù)傳送指令,例如,寄存器與直接尋址單元之間的數(shù)據(jù)傳送指令,直接尋址單元與間接尋址單元之間的數(shù)據(jù)傳送指令,寄存器、直接尋址單元、間接尋址單元與立即數(shù)之間的數(shù)據(jù)傳送指令等,以緩和累加器的擁堵。以至于后來發(fā)展的單片機,有的集成了多累加器結(jié)構(gòu),或者使用寄存器陣列末代替累加器,即賦予更多寄存器以累加器的功能,目的是解決累加器的“交通堵塞”問題。提高單片機的軟件效率。7/26/202330.在變址尋址方式中把累加器作為變址寄存器使用。7/24/20(3)
寄存器B(8位):B是一個8位的寄存器,可以作為通用寄存器,存放各種數(shù)據(jù)。在乘除法指令中,乘法指令中的兩個操作數(shù)分別取自累加器A和寄存器B,B為乘數(shù),乘法操作后其結(jié)果存放于朋寄存器對中,B中存放高八位。除法指令中,被除數(shù)取自累加器A,除數(shù)取自寄存器B,結(jié)果商存放于累加器A,余數(shù)存放于寄存器B中。此外,B寄存器也可以作為一股數(shù)據(jù)寄存器使用。7/26/202331(3)寄存器B(8位):B是一個8位的寄存器,(4)
程序狀態(tài)字PSW(8位):程序狀態(tài)字是一個8位寄存器,用于存放程序運行的狀態(tài)信息,這個寄存器的一些位可由軟件設(shè)置,有些位則由硬件運行時根據(jù)指令執(zhí)行結(jié)果自動設(shè)置。功能說明如表所示。位序D7D6D5D4D3D2D1D0位符號CYACF0RS1RS0OVF1P.cY或c7——進位標(biāo)志位cY有兩個功能,一是存放執(zhí)行某些算數(shù)運算時,存放進位標(biāo)志,可被硬件或軟件置位或清零;一是在位操作中作累加位使用,在位傳送、位與、位或等位操作中都要使用進位標(biāo)志。當(dāng)進行字節(jié)的加法(或減法)運算時,cY作為進位(或借位)標(biāo)志位。如果運算結(jié)果的最高位(D7)有進位(或借位)時,cY育l,反之則為o。在進行布爾運算時,cY作為“位累加器”使用。運算前應(yīng)存放一位操作數(shù),運算后自動存放運算結(jié)果。7/26/202332(4)程序狀態(tài)字PSW(8位):程序狀態(tài)字是一個8位寄.AC——輔助進位標(biāo)志位進行加、減運算時,當(dāng)有低4位向高4位進位或信位時,Ac由硬件置位,否則被渭零。在進行十進制數(shù)運算時需要十進制調(diào)整,此時要用到Ac位狀態(tài)進行判斷。Ac輔助進位位也常用于十進制調(diào)整。.F0——用戶標(biāo)志位為通用的“位”存儲器,由用戶定義的狀態(tài)標(biāo)志,四可用軟件置位或復(fù)位,也可以靠軟件測試四的狀態(tài)以控制程序的執(zhí)行順序。開機時該位為“0”。.Rs1、Rs0:寄存器組選擇控制位7/26/202333.AC——輔助進位標(biāo)志位7/24/202333.ov——溢出標(biāo)志位主要反映帶符號數(shù)運算的結(jié)果是否正確。帶符號加減運算中,超出了累加器A所能表示的符號數(shù)有效范圍(一128——127)時,即產(chǎn)生溢出,ov=l。表明運算結(jié)果錯誤。如果ov=0,表明運算結(jié)果正確,即無溢出產(chǎn)生。執(zhí)行加法指令A(yù)DD時,當(dāng)位6向位7進位,而位7不向c進位時ov=1;或者位6不向位7進位,而位7向c進位時,同樣ov=1。乘法指令,乘積超過255時,ov=1。表面乘積在AB寄存器對中。若ov=0,則說明表面乘積沒有超過255,乘積應(yīng)在累加器A中。除法指令,ov=l,表示除數(shù)為o,運算不被執(zhí)行。否則ovzo。7/26/202334.ov——溢出標(biāo)志位7/24/202334
(5)
堆棧指針SP:棧指針是一個8位專用寄存器,用于指示棧項在內(nèi)部RAM中的位置。它總是指出棧項的位置。在進行壓棧操作時,sP自動加一,在進行出棧操作時,sP自動減一。當(dāng)調(diào)用于程序或進入中斷服務(wù)程序時,堆棧都要自動保持主程序的斷點地址,以便在于程序結(jié)束時能夠正確返回到主程序。在復(fù)位狀態(tài)時,sP為07H,堆棧區(qū)符由08H單元開始向上延伸??梢酝ㄟ^指令修改sP的內(nèi)容,另行指定堆棧區(qū)的位置。.P———奇偶校驗位聲明累加器A的臺偶性,每個指令周期都由硬件來置位或清零,當(dāng)Acc中有奇數(shù)個時,P=1,否則為0。在串行通信時,常作為一鎖數(shù)據(jù)的奇偶校驗位。.PSw.1是保留位,末使用7/26/202335(5)堆棧指針SP:棧指針是一個8位專用
(6)
數(shù)據(jù)指針DPTR
(16位):(7)并行的I/O接口P0、P1、P2、P3均為8位。通過對這4個寄存器的讀/寫,可以實現(xiàn)數(shù)據(jù)從相應(yīng)接口的輸入/輸出。
(8)其余的特殊功能寄存器將在以后的章節(jié)中詳細(xì)介紹。7/26/202336(6)數(shù)據(jù)指針DPTR(16位):(7)并行
注意:21個可字節(jié)尋址的專用寄存器是不連續(xù)地分散在內(nèi)部RAM高128單元之中,共83個可尋址位。盡管還剩余許多空閑單元,但用戶并不能使用。在22個專用寄存器中,唯一一個不可尋址的PC。PC不占據(jù)RAM單元,它在物理上是獨立的,因此是不可尋址的寄存器。對專用寄存器只能使用直接尋址方式,書寫時既可使用寄存器符號,也可使用寄存器單元地址。7/26/202337注意:7/24/202337MCS—51共有四個8位的雙向并行I/O口,分別記作P0、P1、P2和P3。實際上它們已被歸入專用寄存器之列??谑且粋€綜合概念,是一個集數(shù)據(jù)輸入緩沖、數(shù)據(jù)輸出驅(qū)動及鎖存等多項功能為一體的I/O電路。對于口有時也稱為端口。2.3并行輸入/輸出口電路7/26/202338MCS—51共有四個8位的雙向并行I/O口,分別記作PP0口:一個數(shù)據(jù)輸出鎖存器和兩個三態(tài)數(shù)據(jù)輸入緩沖器。一個多路轉(zhuǎn)接電路MUX在控制信號的作用下,MUX可以分別接通鎖存器輸出或地址/數(shù)據(jù)線。當(dāng)作為通用的I/O口使用時,內(nèi)部的控制信號為低電平,封鎖與門將輸出驅(qū)動電路的上拉場效應(yīng)管(FET)截止,同時使MUX接通鎖存器~Q端的輸出通路。7/26/202339P0口:一個數(shù)據(jù)輸出鎖存器和兩個三態(tài)數(shù)據(jù)輸入緩沖器。P0用作通用I/O口當(dāng)系統(tǒng)不進行片外的ROM擴展,也不進行片外RAM擴展時,P0用作通用I/O口。在這種情況下,單片機硬件自動使控制C=0,MUX開關(guān)接向鎖存器的反相輸出端。另外,與門輸出的“0”使輸出驅(qū)動器的上拉場效應(yīng)管T1處于截止?fàn)顟B(tài)。因此,輸出驅(qū)動級工作在需外接上拉電阻的漏極開路方式。漏極開路是驅(qū)動電路的輸出三極管的發(fā)射極開路,可以通過外接的上拉電阻提高驅(qū)動能力。7/26/202340P0用作通用I/O口漏極開路是驅(qū)動電路的輸出三極管的發(fā)射極開作輸出口時,CPU執(zhí)行口的輸出指令,內(nèi)部數(shù)據(jù)總線上的數(shù)據(jù)在“寫鎖存器”信號的作用下由D端進入鎖存器,經(jīng)鎖存器的反向端送至場效應(yīng)管T2,再經(jīng)T2反向,在P0.X引腳出現(xiàn)的數(shù)據(jù)正好是內(nèi)部總線的數(shù)據(jù)。作輸入口時,數(shù)據(jù)可以讀自口的鎖存器,也可以讀自口的引腳。這要根據(jù)輸入操作采用的是“讀鎖存器”指令還是“讀引腳”指令來決定。7/26/202341作輸出口時,CPU執(zhí)行口的輸出指令,內(nèi)部數(shù)據(jù)總線上的P0用作通用I/O口CPU在執(zhí)行“讀—修改—寫”類輸入指令時,內(nèi)部產(chǎn)生的“讀鎖存器”操作信號,使鎖存器Q端數(shù)據(jù)進入內(nèi)部數(shù)據(jù)總線,在與累加器A進行邏輯運算之后,結(jié)果又送回P0的口鎖存器并出現(xiàn)在引腳(如:ANLP0,A)。讀口鎖存器可以避免因外部電路原因使原口引腳的狀態(tài)發(fā)生變化造成的誤讀。7/26/202342P0用作通用I/O口7/24/202342CPU在執(zhí)行“MOV”類輸入指令時,內(nèi)部產(chǎn)生的操作信號是“讀引腳”(如:MOVA,P0)。注意,在執(zhí)行該類輸入指令前要先把鎖存器寫入“1”,使場效應(yīng)管T2截止,使引腳處于懸浮狀態(tài),可以作為高阻抗輸入。否則,在作為輸入方式之前曾向鎖存器輸出過“0”,則T2導(dǎo)通會使引腳箝位在“0”電平,使輸入高電平“1”無法讀入。所以,P0口在作為通用I/O口時,屬于準(zhǔn)雙向口。7/26/202343CPU在執(zhí)行“MOV”類輸入指令時,內(nèi)部產(chǎn)生的操作信P0用作地址/數(shù)據(jù)總線當(dāng)系統(tǒng)進行片外的ROM擴展或進行片外RAM擴展,P0用作地址/數(shù)據(jù)總線時。在這種情況下,單片機內(nèi)硬件自動使C=1,MUX開關(guān)接向反相器的輸出端,這時與門的輸出由地址/數(shù)據(jù)線的狀態(tài)決定。CPU在執(zhí)行輸出指令時,低8位地址信息和數(shù)據(jù)信息分時地出現(xiàn)在地址/數(shù)據(jù)總線上。P0.X引腳的狀態(tài)與地址/數(shù)據(jù)線的信息相同。CPU在執(zhí)行輸入指令時,首先低8位地址信息出現(xiàn)在地址/數(shù)據(jù)總線上,P0.X引腳的狀態(tài)與地址/數(shù)據(jù)總線的地址信息相同。然后,CPU自動地使轉(zhuǎn)換開關(guān)MUX撥向鎖存器,并向P0口寫入FFH,同時“讀引腳”信號有效,數(shù)據(jù)經(jīng)緩沖器進入內(nèi)部數(shù)據(jù)總線。
P0口作為地址/數(shù)據(jù)總線使用時是一個真正的雙向口。7/26/202344P0用作地址/數(shù)據(jù)總線7/24/202344P1口:作通用I/O口使用,輸入輸出原理特性與P0口作為通用I/O接口使用時一樣。在電路結(jié)構(gòu)上與P0口有一些不同之處。首先它不再需要多路轉(zhuǎn)接電路MUX;其次是電路的內(nèi)部有上拉電阻,與場效應(yīng)管共同組成輸出驅(qū)動電路。這樣,作為輸出口使用時,已能向外提供推拉電流負(fù)載,無需再外接上拉電阻。P1口是通用的準(zhǔn)雙向I/O口。輸出高電平時,能向外提供拉電流負(fù)載,不必再接上拉電阻。當(dāng)口用作輸入時,須向口鎖存器寫入1。7/26/202345P1口:作通用I/O口使用,輸入輸出原理特性與P0口P2口:P2口電路中比P1口多了一個多路轉(zhuǎn)換電路MUX,這又正好與P0口一樣。P2口也可以作為通用I/O口使用。這時多路轉(zhuǎn)接開關(guān)倒向鎖存器的Q端。但通常應(yīng)用情況下,P2口是作為高位地址線使用,此時多路轉(zhuǎn)接開關(guān)應(yīng)倒向相反方向。7/26/202346P2口:P2口電路中比P1口多了一個多路轉(zhuǎn)換電路MUP2用作通用I/O口當(dāng)不需要在單片機芯片外部擴展程序存儲器,只需擴展256B的片外RAM時,只用到了地址線的低8位,P2口仍可以作為通用I/O口使用。CPU在執(zhí)行輸出指令時,內(nèi)部數(shù)據(jù)總線的數(shù)據(jù)在“寫鎖存器”信號的作用下由D端進入鎖存器,經(jīng)反相器反相后送至場效應(yīng)管T,再經(jīng)T反相,在P2.X引腳出現(xiàn)的數(shù)據(jù)正好是內(nèi)部總線的數(shù)據(jù)。P2口用作輸入時,數(shù)據(jù)可以讀自口的鎖存器,也可以讀自口的引腳。這要根據(jù)輸入操作采用的是“讀鎖存器”指令還是“讀引腳”指令來決定。7/26/202347P2用作通用I/O口7/24/202347P2用作地址/數(shù)據(jù)總線當(dāng)需要在單片機芯片外部擴展程序存儲器或擴展的RAM容量超過256字節(jié)時,單片機內(nèi)硬件自動使控制C=1,MUX開關(guān)接向地址線,這時P2.X引腳的狀態(tài)正好與地址線的信息相同。CPU在執(zhí)行“讀—修改—寫”類輸入指令時內(nèi)部產(chǎn)生的“讀鎖存器”操作信號使鎖存器Q端數(shù)據(jù)進入內(nèi)部數(shù)據(jù)總線,在與累加器A進行邏輯運算之后,結(jié)果又送回P2的口鎖存器并出現(xiàn)在引腳。CPU在執(zhí)行“MOV”類輸入指令時,內(nèi)部產(chǎn)生的操作信號是“讀引腳”。應(yīng)在執(zhí)行輸入指令前要把鎖存器寫入“1”,從而使引腳處高阻抗輸入狀態(tài)。所以,P2口在作為通用I/O口時,屬于準(zhǔn)雙向口。7/26/202348P2用作地址/數(shù)據(jù)總線CPU在執(zhí)行“讀—修改—寫”類P3口:P3口的特點在于為適應(yīng)引腳信號第二功能的需要。對于第二功能為輸出的信號引腳,當(dāng)作為I/O使用時,第二功能信號引線應(yīng)保持高電平,與非門開通,以維持從鎖存器到輸出端數(shù)據(jù)輸出通路的暢通。當(dāng)輸出第二功能信號時,該位的鎖存器應(yīng)置“1”,使與非門對第二功能信號的輸出是暢通的,從而實現(xiàn)第二功能信號的輸出。7/26/202349P3口:P3口的特點在于為適應(yīng)引腳信號第二功能的需要P3用作第一功能的通用I/O口當(dāng)CPU對P3口進行字節(jié)或位尋址時(多數(shù)應(yīng)用場合是把幾條口線設(shè)為第二功能,另外幾條口線設(shè)為第一功能,這時宜采用位尋址方式),單片機內(nèi)部的硬件自動將第二功能輸出線的W置1。這時,對應(yīng)的口線為通用I/O口方式。7/26/202350P3用作第一功能的通用I/O口7/24/202350P3用作第一功能的通用I/O口作為輸出時,鎖存器的狀態(tài)(Q端)與輸出引腳的狀態(tài)相同;作為輸入時,也要先向口鎖存器寫入1,使引腳處于高阻輸入狀態(tài)。輸入的數(shù)據(jù)在“讀引腳”信號的作用下,進入內(nèi)部數(shù)據(jù)總線。
P3口在作為通用I/O口時,也屬于準(zhǔn)雙向口。7/26/202351P3用作第一功能的通用I/O口P3口在作為通用I/O口時,也P3用作第二功能使用當(dāng)CPU不對P3口進行字節(jié)或位尋址時,內(nèi)部硬件自動將口鎖存器的Q端置1。這時,P3口作為第二功能使用。P3.0:RXD(串行口輸入);P3.1:TXD(串行口輸出);P3.2:外部中斷0輸入;P3.3:外部中斷1輸入;P3.4:T0(定時器0的外部輸入);P3.5:T1(定時器1的外部輸出);P3.6:(片外數(shù)據(jù)存儲器“寫”選通控制輸出);P3.7:(片外數(shù)據(jù)存儲器“讀”選通控制輸出)。7/26/202352P3用作第二功能使用7/24/2023527/26/2023537/24/202353端口小結(jié):P0、P1、P2、P3口的電平與CMOS和TTL電平兼容。P0口的每一位口線可以驅(qū)動8個LSTTL負(fù)載。在作為通用I/O口時,由于輸出驅(qū)動電路是開漏方式,由集電極開路(OC門)電路或漏極開路電路驅(qū)動時需外接上拉電阻;當(dāng)作為地址/數(shù)據(jù)總線使用時,口線輸出不是開漏的,無須外接上拉電阻。P1、P2、P3口的每一位能驅(qū)動4個LSTTL負(fù)載。它們的輸出驅(qū)動電路設(shè)有內(nèi)部上拉電阻,所以可以方便地由集電極開路(OC門)電路或漏極開路電路所驅(qū)動,而無須外接上拉電阻。由于單片機口線僅能提供幾毫安的電流,當(dāng)作為輸出驅(qū)動一般的晶體管的基極時,應(yīng)在口與晶體管的基極之間串接限流電阻。7/26/202354端口小結(jié):P0、P1、P2、P3口的電平與CMOS和端口小結(jié):(1)系統(tǒng)總線:
地址總線(16位):P0(地址低8位)、P2口(地址高8位)數(shù)據(jù)總線(8位):P0口(地址/數(shù)據(jù)分時復(fù)用,借助ALE);
控制總線(6根):P3口的第二功能和9、29、30、31腳;(2)供用戶使用的端口:P1口、部分未作第二功能的P3口;(3)P0口作地址/數(shù)據(jù)時,是真正的雙向口,三態(tài),負(fù)載能力為8個LSTTL電路;P1~P3是準(zhǔn)雙向口,負(fù)載能力為4個LSTTL電路。(4)P0~P3在用作輸入之前必須先寫“1”,即: (P0)=FFH~(P3)=FFH。7/26/202355端口小結(jié):(1)系統(tǒng)總線:7/24/202355
2.4電路與時序
CPU的功能,就是以不同的方式執(zhí)行各種指令。不同的指令其功能各異。有的指令涉及CPU各寄存器之間的關(guān)系;有的指令涉及單片機核心電路內(nèi)部各功能部件的關(guān)系;有的則與外部器件發(fā)生關(guān)系。則是通過復(fù)雜的時序電路完成不同的指令功能的。事實上,控制器按照指令的功能發(fā)出一系列在時間上有一定次序的信號,控制和啟動一部分邏輯電路,完成某種操作*在什么時候發(fā)生什么控制信號,去啟動何種部件動作,這就是CPU的時序。CPU芯片設(shè)計一旦完成,CPU時序就固定了。MCS—51時序圖如下圖所示。7/26/2023562.4電路與時序CPU的功能,就是以不同的2.4電路與時序2.4.1時鐘電路
Mcs—51系列的單片機片內(nèi)部有一個高增益反相放大器,其XTAL1端和XTAL2端用于外接石英晶體和微調(diào)電容,構(gòu)成振蕩器。電容c1和c2對頻率有微調(diào)作用,電容容量的選擇范圍為5-30pF。XTAL1單片機XTAL2
內(nèi)部時鐘方式外部時鐘方式1。.。XTAL1單片機XTAL2
外部時鐘源+5V7/26/2023572.4電路與時序2.4.1時鐘電路XTAL2.4電路與時序2.4.1時鐘電路時鐘頻率范圍要求在1.2MHz~12MHz之間。1.內(nèi)部時鐘方式:內(nèi)部一個高增益反相放大器與片外石英晶體或陶瓷諧振器構(gòu)成了一個自激振蕩器。晶體振蕩器的振蕩頻率決定單片機的時鐘頻率。XTAL1單片機XTAL2
內(nèi)部時鐘方式在引腳XTALl和XTAL2外接晶振,就構(gòu)成了內(nèi)部振蕩方式。由于單片機內(nèi)部有一個高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時鐘脈沖。電容器cl和c2起穩(wěn)定振蕩頻率、快速起振的作用,其電容值一般在5—30pF。晶振頻率的典型值為12MHz,采用6MHz的情況也比較多。內(nèi)部振蕩方式所得的時鐘信號比較穩(wěn)定。實用電路中使用較多。7/26/2023582.4電路與時序2.4.1時鐘電路XTAL2.4電路與時序2.外部時鐘方式:
外部振蕩方式是把外部已有的時鐘信號引入單片機內(nèi)。這種方式適宜用來使單片機的鐘與外部信號保持同步。在使用外部時鐘時,8051的XTAL2用來輸入外時鐘信號,而XTALl接地;對于CHMOS型80c51單片機,此時鐘信號必須從XTALl輸入,而XTALl2懸空。外部時鐘方式1。.。XTAL28051XTAL1
外部時鐘源+5V7/26/2023592.4電路與時序2.外部時鐘方式:外部時鐘方式1。2.4.2時序定時單位時鐘周期:振蕩周期的2倍。機器周期:完成一個基本操作所需要的時間。一個機器周期由6個時鐘周期組成。指令周期:一條指令的執(zhí)行時間。以機器周期為單位:可包含1個~4個機器周期。思考題:
設(shè)應(yīng)用單片機晶振頻率為12MHz,問機器周期為多少?fosc=12MHZT機器=12*T時鐘=12*1/12*106=10-6s7/26/2023602.4.2時序定時單位時鐘周期:振蕩周期的2倍。思考
MCS—51系列單片機的一個機器周期包含12個時鐘周期(振蕩周期),這12個周期分為6個狀態(tài),分別為S1—S6,其中每個狀態(tài)又分為2拍,分別為Pl和P2。因此,一個機器周期中的12個時鐘周期表示為SlPl、S1P2、…、S6N、6P2。2.4.3典型指令時序7/26/202361MCS—51系列單片機的一個機器周期振蕩脈沖并不直接使用,由XTAL2端送往內(nèi)部時鐘電路(fosc):經(jīng)過2分頻,向CPU提供2相時鐘信號P1和P2(f拍節(jié)=1/2fosc);再經(jīng)3分頻,產(chǎn)生ALE時序(fALE=1/6fosc);經(jīng)過12分頻,成為機器周期信號(MC=12/fosc),如下圖所示。需要指出的是,CPU的運算操作在P1期間,數(shù)據(jù)傳送在P2期間。(80C51)(80C51)(80C51)7/26/202362振蕩脈沖并不直接使用,由XTAL2端送往內(nèi)部時鐘電路(fos典型指令的取指和執(zhí)行時序:通常,每個機器周期,ALE兩次有效,第1次發(fā)生在S1P2和S2P1期間,第2次在S4P2和S5P1期間。每一條指令的執(zhí)行都可以包括取指和執(zhí)行兩個階段。在取指階段,CPU從程序存儲器ROM取出指令操作碼及操作數(shù),然后再執(zhí)行這條指令的邏輯功能。對于絕大部分指令,在整個指令執(zhí)行過程中,ALE兩次有效,第1次發(fā)生在S1P2和S2P1期間,第2次在S4P2和S5P1期間。ALE信號的有效寬度為1個s狀態(tài)。每出現(xiàn)一次觀信號,CPU就進行一次取指操作。在MCS—51指令系統(tǒng)中,有單字節(jié)指令、雙字節(jié)指令和三字節(jié)指令。每條指令執(zhí)行的時間都要占1個或幾個機器周期。單字節(jié)指令和雙字節(jié)指令都可能是單周期和雙周期,而三字節(jié)指令都是雙周期,只有乘除法指令占4個周期。7/26/202363典型指令的取指和執(zhí)行時序:通常,每個機器周期,ALE7/26/2023647/24/202364
訪問外部數(shù)據(jù)存貯器的指令MOVX的時序,它是一條單字節(jié)雙周期指令。在第1機器周期S5開始時,送出外部數(shù)據(jù)存貯器的地址,隨后讀或?qū)憯?shù)據(jù)。讀寫期間在ALE端不輸出有效信號,在第2機器周期,即外部數(shù)據(jù)存貯器已被尋址和選通后,也不產(chǎn)生取指操作。7/26/202365訪問外部數(shù)據(jù)存貯器的指令MOVX的時序,它是MCS—51單片機時序12111234567891012S1P2S2P1S4P2S5P1可通過測量ALE確定CPU是否工作,ALE有時鐘的特點。7/26/202366MCS—51單片機時序12111234567891012S180C517/26/20236780C517/24/202367復(fù)位、程序執(zhí)行、單步執(zhí)行、掉電保護、低功耗以及EPROM編程和校驗等六種工作方式。2.5.1復(fù)位方式和復(fù)位電路單片機系統(tǒng)在工作時,經(jīng)常會進入復(fù)位工作狀態(tài),在啟動單片機運行時也需要復(fù)位,用戶應(yīng)知道其復(fù)位狀態(tài)。所謂復(fù)位狀態(tài),是指CPU和系統(tǒng)中的其他部件都處于一個確定的初始狀態(tài),單片機的軟、硬件就從這個狀態(tài)開始工作。復(fù)位是單片機的初始化操作,主要功能是把PC初始化為0000H,使單片機從0000H單元開始執(zhí)行程序。新啟動。RST引腳是復(fù)位信號的輸入端,復(fù)位信號是高電平有效,其有效時間應(yīng)持續(xù)24個振蕩脈沖周期(即二個機器周期)以上。例:若使用頻率為6MHz的晶振,則復(fù)位信號持續(xù)時間應(yīng)超過4μs才能完成復(fù)位操作。2.5工作方式7/26/202368復(fù)位、程序執(zhí)行、單步執(zhí)行、掉電保護、低功耗以及EPR產(chǎn)生復(fù)位信號的電路邏輯如圖復(fù)位引腳RST/Vpd通過片內(nèi)施密特觸發(fā)器與片內(nèi)復(fù)位電路相連。復(fù)位電路在每一個機器周期的S5P2去采樣施密特觸發(fā)器的輸出。欲使單片機可靠復(fù)位,要求RsT/Vpd復(fù)位端保持兩個機器周期以上的高電平。作為對外部復(fù)位信號的響應(yīng),CPU進行內(nèi)部各種復(fù)位操作不影響片內(nèi)RW的內(nèi)容,當(dāng)vcc上電后,RW的內(nèi)容是隨機的。但復(fù)位操作使PSEN和ALE兩個控制引腳信號為高電平,處于準(zhǔn)備工作狀態(tài)。7/26/202369產(chǎn)生復(fù)位信號的電路邏輯如圖復(fù)位引腳RST/Vp單片機復(fù)位后,內(nèi)部各寄存器,PC及SFR進入復(fù)位,其狀態(tài)如表。特殊功能寄存器初始內(nèi)容特殊功能寄存器初始內(nèi)容A0000HTCON00HPC0000HTL000HB00HTH000HPSW00HTL100HSP07HTH100HDPTR0000HSCON00HP0~P3FFHSBUFXXXXXXXXBIPXX000000BPCON0XXX0000BIE0X000000BTMOD00H在表中“x”表示狀態(tài)任意。記住一些特殊功能寄存器復(fù)位后的主要狀態(tài),對于了解單片機的初態(tài),減少應(yīng)用程序中的初始化部分是十分必要的。7/26/202370單片機復(fù)位后,內(nèi)部各寄存器,PC及SFR進入復(fù)位,其上電自動復(fù)位和按鍵手動復(fù)位:上電自動復(fù)位——通過電容充電來實現(xiàn)的,Vcc的上升時間不超過1ms,就可以實現(xiàn)自動上電復(fù)位。按鍵脈沖復(fù)位——利用RC微分電路產(chǎn)生的正脈沖來實現(xiàn)的。7/26/202371上電自動復(fù)位和按鍵手動復(fù)位:上電自動復(fù)位——通過電容充電來實2.5.2程序執(zhí)行方式程序執(zhí)行方式是單片機的基本工作方式。由于復(fù)位后PC=0000H,因此程序執(zhí)行總是從地址0000H開始,但一般程序并不是真正從0000H開始,為此就得在0000H開始的單元中存放一條無條件轉(zhuǎn)移指令,以便跳轉(zhuǎn)到實際程序的入口去執(zhí)行。7/26/2023722.5.2程序執(zhí)行方式程序執(zhí)行方式是單片機的基本單步執(zhí)行方式所謂單步執(zhí)行,是指在外部單步脈沖的作用下,使單片機一個單步脈沖執(zhí)行一條指令后就暫停下來,再一個單步脈沖再執(zhí)行一條指令后又暫停下來。它通常用于調(diào)試程序、跟蹤程序執(zhí)行和了解程序執(zhí)行過程。單片機沒有單步執(zhí)行中斷,MCS-51單片機的單步執(zhí)行也要利用中斷系統(tǒng)完成。MCS-51的中斷系統(tǒng)規(guī)定,從中斷服務(wù)程序中返回之后,至少要再執(zhí)行一條指令,才能重新進入中斷。將外部脈沖加到INT0引腳,平時讓它為低電平,通過編程規(guī)定INT0為電平觸發(fā)。那么,不來脈沖時INT0總處于響應(yīng)中斷的狀態(tài)。在INT0的中斷服務(wù)程序中安排下面的指令:PAUSE0:JNBP3.2,PAUSE0;若INT0=0,不往下執(zhí)行PAUSE1:JBP3.2,PAUSE1;若INT0=1,不往下執(zhí)行RETI;返回主程序執(zhí)行下一條指令7/26/202373單步執(zhí)行方式所謂單步執(zhí)行,是指在外部單步脈沖的作用下2.5.3掉電保護方式單片機系統(tǒng)在運行過程中,如發(fā)生掉電故障,將會丟失RAM和寄存器中的程序和數(shù)據(jù),其后果有時是很嚴(yán)重的。掉電保護處理——先把有用信息轉(zhuǎn)存,然后再啟用備用電源維持供電。信息轉(zhuǎn)存:
所謂信息轉(zhuǎn)存是指當(dāng)電源出現(xiàn)故障時,應(yīng)立即將系統(tǒng)的有用信息轉(zhuǎn)存到內(nèi)部RAM中。信息轉(zhuǎn)存是通過中斷服務(wù)程序完成的。7/26/2023742.5.3掉電保護方式單片機系統(tǒng)在 系統(tǒng)中設(shè)置一個電壓檢測電路,一旦檢測到電源電壓下降,立即通過INT0/1產(chǎn)生外部中斷請求,中斷響應(yīng)后執(zhí)行中斷服務(wù)程序,并將有用信息送內(nèi)部RAM中保護起來,即通常所說的“掉電中斷”。 掉電后時鐘電路和CPU皆停止工作,只有內(nèi)部只RAM單元和專用寄存器繼續(xù)工作,以保持其內(nèi)容。7/26/202375 系統(tǒng)中設(shè)置一個電壓檢測電路,一旦檢測到電
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026西安市胸科醫(yī)院招聘腎內(nèi)科醫(yī)師筆試參考題庫及答案解析
- 2026年國潮風(fēng)中的春節(jié)奇遇
- 2026年掌握建筑市場的動態(tài)政策與市場趨勢
- 2026上半年海南事業(yè)單位聯(lián)考三亞市營商環(huán)境建設(shè)局下屬事業(yè)單位招聘工作人員4人第1號筆試模擬試題及答案解析
- 2025年九江人事考試及答案
- 2025年北票醫(yī)療系統(tǒng)事業(yè)編報名考試及答案
- 2025年體育老師選調(diào)考試筆試及答案
- 2026年歡樂元旦與愛同行
- 2025年蔚來顧問校招筆試及答案
- 2025年普洱市人事考試及答案
- 電梯井道腳手架搭設(shè)方案
- DL∕T 622-2012 立式水輪發(fā)電機彈性金屬塑料推力軸瓦技術(shù)條件
- 傳染病學(xué)-病毒性肝炎
- 電氣試驗報告模板
- 重慶市沙坪壩小學(xué)小學(xué)語文五年級上冊期末試卷
- 陶瓷巖板應(yīng)用技術(shù)規(guī)程
- 中藥制劑技術(shù)中職PPT完整全套教學(xué)課件
- 龍虎山正一日誦早晚課
- WORD版A4橫版密封條打印模板(可編輯)
- 1比較思想政治教育
- 藝術(shù)課程標(biāo)準(zhǔn)(2022年版)
評論
0/150
提交評論