




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第二章單片微機的基本結(jié)構(gòu)浙江大學(xué)電氣學(xué)院彭勇剛第二章單片微機的基本結(jié)構(gòu)2.180C51單片微機的內(nèi)部結(jié)構(gòu)單片機的8大部件:中央處理器(CPU)、數(shù)據(jù)存儲器(RAM)、程序存儲器(ROM/EPROM)、并行輸入/輸出口(P0口-P3口)、串行口、定時/計數(shù)器、中斷系統(tǒng)及特殊功能寄存器??傊?,單片機是由片內(nèi)總線連接8大部件構(gòu)成。2.2MCS-51單片機的引腳及片外總線結(jié)構(gòu)
1.MCS-51單片機的引腳(40引腳PDIP封裝)P0.0—P0.78P1.0—P1.78P2.0—P2.78P3.0—P3.78引腳名稱引腳個數(shù)Vcc,GND2XTAL1,XTAL22RESET1EA/Vpp1ALE/PROG1PSEN1電源端,接+5V;接地端片內(nèi)振蕩電路輸入/輸出端復(fù)位信號輸入端讀片外ROM控制端/編程電源輸入端低8位地址鎖存允許信號輸出端/編程脈沖輸入端讀片外程序存儲器選通信號輸出端4組8位并行I/O口⑴地址總線AB(AddressBus)地址線A0~A15共16位,P2口提供高8位地址A8~A15,P0口經(jīng)地址鎖存器提供低8位地址A0~A7。片外存儲器可尋址范圍達(dá)64KB(即=65536個字節(jié))。⑵數(shù)據(jù)總線DB(DataBus)
數(shù)據(jù)線D0-D7共8位,由P0口提供。所以,P0口分時輸送低8位地址(通過地址鎖存器鎖存)和8位數(shù)據(jù)信息。⑶控制總線CB(ControlBus)
控制總線由P3口的第二功能(P3.6)、(P3.7)和3根獨立的控制線、ALE和組成。2、MCS-51單片機的片外三總線結(jié)構(gòu)
所謂總線,就是連接單片機與系統(tǒng)中各部件的一組公共的信號線。2.380C51CPU的結(jié)構(gòu)圖2.380C51CPU的結(jié)構(gòu)和特點2.3.1CPU的組成
(1)運算器
8位算術(shù)邏輯運算單元ALU
累加器A(ACC)寄存器B
程序狀態(tài)字寄存器PSW
(2)控制器程序計數(shù)器PC
堆棧指針SP
數(shù)據(jù)指針DPTR
指令寄存器IR
定時與控制邏輯完成算術(shù)運算、邏輯運算和位操作。a、以主振頻率為基準(zhǔn)產(chǎn)生時鐘信號,控制取指令、執(zhí)行指令、存取操作數(shù)或運算結(jié)果等操作。b、向其他部件發(fā)出各種微控制信號,使各部件自動協(xié)調(diào)工作。是程序中最繁忙的特殊功能寄存器,功能是向ALU提供操作數(shù)、存放運算的中間結(jié)果、數(shù)據(jù)傳送的中轉(zhuǎn)站。
主要用于乘、除運算8位寄存器,用于存放指令執(zhí)行狀態(tài),供程序查詢和判斷
16位自動加1功能的計數(shù)器8位專用寄存器,存放堆棧棧頂存儲單元的地址
存放16位地址,用特定指令來訪問片外數(shù)據(jù)存儲器或程序存儲器
2.3.2
指令執(zhí)行的基本過程向存儲器裝入程序執(zhí)行指令取指令執(zhí)行指令程序——為了完成某項工作,將一系列指令有序地組合指令——要求單片機執(zhí)行某種操作的命令從存儲器中取出指令,對指令進(jìn)行譯碼,明確該指令執(zhí)行何種操作,以及操作數(shù)的存放地址,再根據(jù)這個地址獲取操作數(shù)按操作碼指明的操作類型對獲取的操作數(shù)進(jìn)行操作程序計數(shù)器PC(ProgramCounter)——16位自動加1功能的計數(shù)器。PC中的內(nèi)容總是CPU將要執(zhí)行的那條指令所存放的存儲單元的首地址,在CPU從存儲單元取指令的過程中,每取1個字節(jié)的內(nèi)容,程序計數(shù)器PC就自動加1,在取完這條指令后,PC的內(nèi)容是下一條要執(zhí)行的指令所存放的存儲單元的首地址。2.3.3單片機硬件最小系統(tǒng)
單片機最小系統(tǒng)指單片機正常工作需要的最少元件,以一以AT89C51最小系統(tǒng)為例,常為4部分:工作電源、時鐘電路、復(fù)位電路、存儲器設(shè)置電路。單片機硬件系統(tǒng)通常以最小系統(tǒng)作為基本部分,配以不同的外圍電路,實現(xiàn)不同的電路功能。單片機最小控制系統(tǒng)的結(jié)構(gòu)圖
X1X2P0P1P2P3TXDRXDINT0INT1返回CPURAMROM中斷系統(tǒng)串行口并行口定時計數(shù)器振蕩電路T0T1外設(shè)外設(shè)外設(shè)RST+5V單片機最小硬件系統(tǒng)CPURAMROM定時中斷串口CBP2P3P1P0P0P2P3P1鎖存器
ALE單片機擴(kuò)展系統(tǒng)的結(jié)構(gòu)圖RST+5VX1X2ABDB存儲器I/O口外設(shè)返回2.3.3.1時鐘電路用于產(chǎn)生單片機工作所需要的時鐘信號單片機芯片內(nèi)部有一個高增益反向放大器,通過引腳XTAL1和XTAL2,接晶體振蕩器CYS和微調(diào)電容器C1、C2形成反饋電路(通常取值在20~30pF),構(gòu)成穩(wěn)定的自激振蕩器并產(chǎn)生振蕩脈沖。振蕩電路產(chǎn)生的振蕩脈沖不直接使用,而是經(jīng)分頻后為系統(tǒng)所用。fosc
外部振蕩方式:引入外部脈沖信號作為單片機的振蕩脈沖,對于80C51單片機而言,這時外部脈沖信號是經(jīng)XTAL1引腳注入,而XTAL2引腳懸空,這種方式常用于多塊芯片同時工作,這樣便于同步。1、節(jié)拍與狀態(tài)把振蕩脈沖的周期定義為節(jié)拍(用“P”表示)。振蕩脈沖經(jīng)過二分頻后,就是單片機的時鐘信號,把時鐘信號的周期定義為狀態(tài)(用“S”表示)。這樣,一個狀態(tài)就包含兩個拍節(jié),其前半周期對應(yīng)的節(jié)拍叫節(jié)拍1(P1),后半周期對應(yīng)的節(jié)拍叫節(jié)拍2(P2)。2、機器周期規(guī)定一個機器周期的寬度為6個狀態(tài),并依次表示為:S1~S6。由于一個狀態(tài)又包括兩個節(jié)拍,因此一個機器周期總共有12個節(jié)拍,分別記作S1P1、S1P2、……S6P12。由于一個機器周期共有12個振蕩脈沖周期,因此機器周期就是振蕩頻率的十二分頻。2.3.3.2時序與時序定時單位3、指令周期指令周期是最大的時序定時單位,執(zhí)行一條指令所需要的時間稱之為指令周期。指令周期以機器周期的數(shù)目來表示,MCS-51的指令周期根據(jù)指令的不同,可包含有一(單周期)、二(雙周期)、三或四個機器周期。指令的運算速度和指令所包含的機器周期數(shù)有關(guān),機器周期數(shù)越少的指令執(zhí)行速度越快。例如當(dāng)振蕩脈沖頻率為12MHz時,一個機器周期為1微秒,當(dāng)振蕩脈沖頻率為6MHz時,一個機器周期為2微秒。對于振蕩脈沖頻率為12MHz的單周期指令、雙周期指令、三周期指令和四周期指令其指令的執(zhí)行時間分別為:1微秒、2微秒、3微秒和4微秒。
各種周期之間的關(guān)系P1P2S1振蕩周期狀態(tài)周期機器周期機器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2P2時序要點:一個指令周期=1,2或者4個機器周期一個機器周期=12個晶振周期一個機器周期輸出兩個ALE脈沖即:ALE的輸出頻率fALE=(1/6)fOSC如果使用晶振頻率為12MHZ,則fALE=2MHZ,指令執(zhí)行時間=1,2,4微秒。例:單片機外接晶振頻率12MHZ時,求各時序單位的值。振蕩周期=狀態(tài)周期=機器周期=指令周期=1/fosc=1/12MHZ=0.0833us2/fosc=2/12MHZ=0.1667us12/fosc=12/12MHZ=1us(1~4)機器周期=1~4us2023/2/520a)單字節(jié)單周期;b)雙字節(jié)單周期指令;c)單字節(jié)雙周期字節(jié);d)單字節(jié)雙周期指令2023/2/521時序的共同點:
每一次ALE信號有效,CPU均從ROM中讀取指令碼(包括操作碼和操作數(shù)),但不一定有效,讀了之后再丟棄(假讀)。有效時,PC+1→PC(程序計數(shù)器PC加1);無效時不變。其余時間用于執(zhí)行指令操作功能,但在時序中沒有完全反映出。如雙字節(jié)單機器周期,分別在S1、S4讀操作碼和操作數(shù),執(zhí)行指令就一定在S2、S3、S5、S6中完成。2.3.3.3MCS-51單片機的復(fù)位復(fù)位操作通常有兩種基本形式:上電自動復(fù)位、手動按鍵復(fù)位接通電源后自動實現(xiàn)復(fù)位操作電源接通的條件下,在單片機運行期間,用按鈕開關(guān)操作使單片機復(fù)位如何進(jìn)行復(fù)位呢?在8C051單片機的RST引腳上輸入高電平并至少保持兩個機器周期(即24個振蕩周期)以上時,復(fù)位過程即可完成。如果RST引腳持續(xù)保持高電平,單片機就處于循環(huán)復(fù)位狀態(tài)。使系統(tǒng)回復(fù)到初始狀態(tài)的操作上電瞬間,RST獲得高點平,隨著電容C的充電,RST上的高電平逐漸下降。想一想,如果12M晶振,高電平維持的時間至少多少?MCS-51單片機復(fù)位后的狀態(tài)寄存器復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)PC0000HTCON00HA00HT2CON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP0~P3FFHSCON00HIPXX000000BSBUFXXHIE0X000000BPCON0XXX0000BTMOD00H2.4MCS-51存儲器結(jié)構(gòu)和地址空間計算機的兩種不同結(jié)構(gòu)——馮·諾依曼型:中央處理器(CPU)輸入/輸出部件存儲器邏輯部件(ALU)控制部件計算機的兩種不同結(jié)構(gòu)——哈佛型:中央處理器(CPU)輸入/輸出部件程序存儲器邏輯部件(ALU)控制部件數(shù)據(jù)存儲器單片機的存儲器——幾個有關(guān)的概念:
計算機中的存儲器就是一個用來存放貨物(包括數(shù)據(jù)和程序)的倉庫,倉庫中有很多用來存放貨物(數(shù)據(jù))的貨架,貨架分成很多格子,格子的大小是1個字節(jié),這就是存儲器中的存儲單元。
在這個倉庫中存放數(shù)據(jù)可以一個字節(jié)一個字節(jié)的放、也可以一個位一個位的放,為了存取貨物(數(shù)據(jù))方便,每個格子都有一個編號,這個編號被稱為地址,即存儲單元地址,地址用一個2位或4位的十六進(jìn)制數(shù)來表示。MCS51單片機存儲器結(jié)構(gòu)及地址空間MCS-51單片機存儲器可分為5類:片內(nèi)程序存儲器,片外程序存儲器,片內(nèi)數(shù)據(jù)存儲器,片外數(shù)據(jù)存儲器,特殊功能寄存器。
MCS-51單片機存儲器的地址空間可分為3個:1、片內(nèi)片外統(tǒng)一編址的64KB程序存儲器地址空間(用16位地址);2、片內(nèi)數(shù)據(jù)存儲器與特殊功能寄存器統(tǒng)一編址的256字節(jié)內(nèi)部數(shù)據(jù)存儲器地址空間(用8位地址);3、64KB片外數(shù)據(jù)存儲器地址空間(16位地址)低4KB(0000H~0FFFH)的片外程序存儲器和4K的片內(nèi)程序存儲器的地址空間是公共的,控制信號EA來區(qū)分片內(nèi)和片外程序存儲器程序存儲器的某些單元是保留給系統(tǒng)使用的:1、0000H-0002H單元,系統(tǒng)的啟動單元,即是所有執(zhí)行程序的入口地址。單片機復(fù)位后,程序計數(shù)器PC的內(nèi)容為0000H,使單片機必然從0000H單元取指令執(zhí)行程序。2、0003H-002AH單元,中斷服務(wù)程序的入口地址,共40個單元,分成5段,每段8個單元,分配給5個中斷源。用戶程序不應(yīng)該進(jìn)入這個區(qū)域。因此,一般從0000H開始,存放一條絕對轉(zhuǎn)移指令,用戶程序則由轉(zhuǎn)移后的地址開始執(zhí)行,從而避開以上給系統(tǒng)使用的ROM單元。64KB數(shù)據(jù)存儲器RAM在地址上是和64KB程序存儲器ROM的地址重疊,8051通過不同的信號來選通RAM和ROM:當(dāng)對片外RAM讀、寫數(shù)據(jù)時,用讀、寫控制信號RD或WR來選通;當(dāng)對片外ROM取指令時,采用選通信號PSEN程序存儲器的0000H-002AH共43個單元用作存儲特定程序的入口地址。
0000H-0002H這3個單元是系統(tǒng)的啟動單元;
0003H-002AH共40個單元是中斷服務(wù)程序地址區(qū),它被分為五段,每段8個單元,分別分配給5個中斷源:0003H-000AH
外部中斷0中斷服務(wù)程序地址區(qū);000BH-OO12H
定時/計數(shù)器0中斷服務(wù)程序地址區(qū);0013H-001AH
外部中斷1中斷服務(wù)程序地址區(qū);001BH-0022H
定時/計數(shù)器1中斷服務(wù)程序地址區(qū);0023H-002AH
串行口中斷服務(wù)程序地址區(qū)。2FH存儲器配置(片內(nèi)RAM):片內(nèi)RAM128字節(jié)(00H—7FH)00H20H7FH1FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)SFR分布在80H-FFH其中92個位可位尋址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ū)存儲器配置(片內(nèi)RAM):工作寄存器區(qū)(00H—1FH)1FH存儲器配置(片內(nèi)RAM)位尋址區(qū)(20H—2FH)可按位尋址它們的位地址為:00H—7FH(128位)00H20H2FH7FH30H80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)7F7E7D7C7B7A797827H22H21H20H26H24H25H23H28H2FH單元字節(jié)地址07060504030201000F0E0D0C0B0A090817161514131211101F1E1D1C1B1A191827262524232221202F2E2D2C2B2A292837363534333231303F3E3D3C3B3A39384746454443424140位地址MCS51單片機的特殊功能寄存器(SFR):特殊功能寄存器SFR(專用寄存器)是一類專門用于控制、選擇、管理、存放單片機內(nèi)部各部分的工作方式、條件、狀態(tài)、結(jié)果的寄存器。不同的SFR管理不同的硬件模塊,負(fù)責(zé)不同的功能,各司其職換而言之:要讓單片機實現(xiàn)預(yù)訂的功能,必須有相應(yīng)的硬件和編寫相應(yīng)的軟件,而編寫軟件中最重要的一項工作就是對SFR進(jìn)行設(shè)置。特殊功能寄存器(SFR)80C51有21個SFR(地址碼尾數(shù)為0或8的11個單元具有位尋址能力)與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ù)器相關(guān)寄存器TMOD,TCON,T0,T1各特殊功能寄存器的符號及地址表標(biāo)識符名稱地址*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)先級寄存器B8H*IE中斷控制寄存器A8HTMOD定時器方式寄存器89H*TCON定時器控制寄存器88H標(biāo)識符名稱地址TH0計數(shù)器0高位8CHTL0計數(shù)器0低位8AHTH1計數(shù)器1高位8DHTL1計數(shù)器1低位8BH*SCON串行口控制98HSBUF串行數(shù)據(jù)緩沖器99HPCON電源控制97H位地址的表示法例:位名稱
CY、RS0
寄存器名加序號PSW.7ACC.1
字節(jié)地址加序號20H.3
直接位地址 00H第二章2---37特殊功能寄存器地址空間特殊功能寄存器(A、B、P0—P3、SP):P0、P1、P2、P3等四個8位I/O口分別由名為P0、P1、P2、P3四個SFR代表。堆棧指針寄存器
SP(StackPointer):
總是指向堆棧的棧頂。累加器ACC:
8位寄存器,地址:E0H,具有位尋址能力。用于數(shù)據(jù)傳送中存放中間數(shù)據(jù)、數(shù)學(xué)邏輯運算中存放運算數(shù)據(jù),是數(shù)據(jù)傳送的中轉(zhuǎn)站。
寄存器B:經(jīng)常與ACC配合在一起使用的特殊功能寄存器(乘法、除法中存放另一個運算數(shù)據(jù)),此外,它也經(jīng)常當(dāng)作普通寄存器使用。程序狀態(tài)字存儲器(PSW):程序狀態(tài)字存儲器PSW:
用于存放在程序執(zhí)行過程中產(chǎn)生的一些特殊狀態(tài)(進(jìn)位、溢出、借位等)。CYACF0RS0OVPRS1PSW.7PSW.0PSW.6PSW.5CY(PSW.7)進(jìn)位/借位標(biāo)志位。若ACC在運算過程中發(fā)生了進(jìn)位或借位,則CY=1;否則=0。同時它也是布爾處理器的位累加器,可用于布爾操作,即位操作。AC(PSW.6)輔助進(jìn)位/借位標(biāo)志位。若ACC在運算過程中,D3位向D4位發(fā)生了進(jìn)位或借位,則AC=1,否則=0。機器在執(zhí)行“DAA”指令時自動要判斷這一位。F0(PSW.5)可由用戶定義的標(biāo)志位。程序狀態(tài)字存儲器(PSW):RS1和RS0:
RS1和RS0的組合用于對工作寄存器區(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)字存儲器(PSW):OV
(PSW.2)溢出標(biāo)志位。OV=1時特指累加器A在進(jìn)行帶符號數(shù)(-128—+127)運算時出錯(超出范圍);OV=0時未出錯。P(PSW.0)奇偶標(biāo)志位。P=1表示累加器A中“1”的個數(shù)為奇數(shù)P=0表示累加器A中“1”的個數(shù)為偶數(shù)CPU隨時監(jiān)視著ACC中的“1”的個數(shù),并反映在PSW中CYACF0RS0OVPRS1PSW.7PSW.0PSW.2PSW.1一個重要的寄存器(PC):程序計數(shù)器PC(ProgramCounter)PC不是一個特殊功能寄存器SFR,但其作用又十分重要和特殊!!!PC在計算機中用于對程序的執(zhí)行進(jìn)行控制特點:▼它是16位的按機器周期自動增1計數(shù)器▼總指向下一條指令所在首地址(當(dāng)前PC值)▼一切分支/跳轉(zhuǎn)/調(diào)用/中斷/復(fù)位等操作的本質(zhì)就是:改變PC值MCS51單片機的堆棧:什么是堆棧?在片內(nèi)RAM中,常常要指定一個專門的區(qū)域來存放某些特別的數(shù)據(jù),
它只允許在其一端進(jìn)行數(shù)據(jù)的插入(寫入)和刪除(讀出)操作,這端稱為棧頂,SP始終指向棧頂,它遵循先進(jìn)后出和后進(jìn)先出(LIFO/FILO)的原則,這個RAM區(qū)叫堆棧,堆棧的另外一端稱為棧底。堆棧的作用是什么?1)子程序調(diào)用和中斷服務(wù)時CPU自動將當(dāng)前PC值入棧保存,返回時自動將出棧,將原來保存過PC值復(fù)原。2)保護(hù)現(xiàn)場/恢復(fù)現(xiàn)場3)數(shù)據(jù)傳輸MCS51單片機的堆棧:堆棧區(qū)通過特殊功能寄存器SP(堆棧指針)進(jìn)行管理(SP始終指向堆棧的棧頂),堆棧區(qū)可以安排在RAM區(qū)任意位置,但為了防止數(shù)據(jù)區(qū)的沖突,所以一般不安排在片內(nèi)RAM的工作寄存器區(qū)和位尋址區(qū),通常放在片內(nèi)RAM的通用RAM區(qū)。1FH30H20H2FHMCS51單片機的堆棧的操作: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指向下一個單元,然后將數(shù)據(jù)放進(jìn)堆棧的棧頂單元,按照這樣的規(guī)則,SP再自動增1,仍指著棧頂,數(shù)據(jù)進(jìn)?!?FH30H20H2FHMCS51單片機的堆棧:00H7FH80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)初始SPSP棧頂出棧:取出的數(shù)據(jù)是最近放進(jìn)去的一個數(shù)據(jù),也就是當(dāng)前棧頂?shù)臄?shù)據(jù)。然后SP再自動減1,按照這樣的規(guī)則,取棧頂數(shù)據(jù),SP再自動減1
……當(dāng)前要出棧的數(shù)據(jù)數(shù)據(jù)出棧1FH30H20H2FHMCS51單片機的堆棧:00H7FH80HFFH52子系列才有的RAM區(qū)普通RAM區(qū)位尋址區(qū)工作寄存器區(qū)初始SPSP棧頂數(shù)據(jù)出棧SP-1指向新的棧頂,也就是下一個要出棧的數(shù)據(jù)出棧:取出的數(shù)據(jù)是最近放進(jìn)去的一個數(shù)據(jù),也就是當(dāng)前棧頂?shù)臄?shù)據(jù)。然后SP再自動減1,按照這樣的規(guī)則,取棧頂數(shù)據(jù),SP再自動減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ò)展時,P0用作通用I/O口。
在這種情況下,單片機硬件自動使C=0,MUX開關(guān)接向鎖存器的反相輸出端。
另外,與門輸出的“0”使輸出驅(qū)動器的上拉場效應(yīng)管T1處于截止?fàn)顟B(tài)。因此,輸出驅(qū)動級工作在需外接上拉電阻的漏極開路方式。作輸出口時,CPU執(zhí)行口的輸出指令,內(nèi)部數(shù)據(jù)總線上的數(shù)據(jù)在“寫鎖存器”信號的作用下由D端進(jìn)入鎖存器,經(jīng)鎖存器的反向端送至場效應(yīng)管T2,再經(jīng)T2反向,在P0.X引腳出現(xiàn)的數(shù)據(jù)正好是內(nèi)部總線的數(shù)據(jù)。作輸入口時,數(shù)據(jù)可以讀自口的鎖存器,也可以讀自口的引腳。這要根據(jù)輸入操作采用的是“讀鎖存器”指令還是“讀引腳”指令來決定。
執(zhí)行“讀—修改—寫”類輸入指令時(如:ANLP0,A),內(nèi)部產(chǎn)生的“讀鎖存器”操作信號,使鎖存器Q端數(shù)據(jù)進(jìn)入內(nèi)部數(shù)據(jù)總線,在與累加器A進(jìn)行邏輯運算之后,結(jié)果又送回P0的口鎖存器并出現(xiàn)在引腳。讀口鎖存器可以避免因外部電路原因使原口引腳的狀態(tài)發(fā)生變化造成的誤讀。
在執(zhí)行“MOV”類輸入指令時(如:MOVA,P0),內(nèi)部產(chǎn)生的操作信號是“讀引腳”。注意,在執(zhí)行該類輸入指令前要先把鎖存器寫入“1”,使場效應(yīng)管T2截止,使引腳處于懸浮狀態(tài),可以作為高阻抗輸入。
否則,在作為輸入方式之前曾向鎖存器輸出過“0”,則T2導(dǎo)通會使引腳箝位在“0”電平,使輸入高電平“1”無法讀入。所以,P0口在作為通用I/O口時,屬于準(zhǔn)雙向口。2、P0用作地址/數(shù)據(jù)總線
當(dāng)系統(tǒng)進(jìn)行片外的ROM擴(kuò)展或進(jìn)行片外RAM擴(kuò)展,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)緩沖器進(jìn)入內(nèi)部數(shù)據(jù)總線。P0口作為地址/數(shù)據(jù)總線使用時是一個真正的雙向口。2.5.2
P2口的結(jié)構(gòu)控制位C0:P2用作通用I/O口1:P2用作地址總線1、P2用作通用I/O口
當(dāng)不在單片機芯片外部擴(kuò)展程序存儲器,只擴(kuò)展256B的片外RAM時,僅用到了地址線的低8位,P2口仍可以作為通用I/O口使用。
執(zhí)行輸出指令時,內(nèi)部數(shù)據(jù)總線的數(shù)據(jù)在“寫鎖存器”信號的作用下由D端進(jìn)入鎖存器,經(jīng)反相器后送至場效應(yīng)管T,再經(jīng)T反相,在P2.X引腳出現(xiàn)的數(shù)據(jù)正好是內(nèi)部總線的數(shù)據(jù)。P2口用作輸入時,數(shù)據(jù)可以讀自口的鎖存器,也可以讀自口的引腳。這要根據(jù)輸入操作采用的是“讀鎖存器”指令還是“讀引腳”指令來決定。
執(zhí)行“讀—修改—寫”類輸入指令時內(nèi)部產(chǎn)生的“讀鎖存器”操作信號使鎖存器Q端數(shù)據(jù)進(jìn)入內(nèi)部數(shù)據(jù)總線,在與累加器A進(jìn)行邏輯運算之后,結(jié)果又送回P2的口鎖存器并出現(xiàn)在引腳。
執(zhí)行“MOV”類輸入指令時,內(nèi)部產(chǎn)生的操作信號是“讀引腳”。應(yīng)在執(zhí)行輸入指令前要把鎖存器寫入“1”,從而使引腳處高阻抗輸入狀態(tài)。P2口在作為通用I/O口時,屬于準(zhǔn)雙向口。2、P2用作地址總線
當(dāng)需要在單片機芯片外部擴(kuò)展程序存儲器或擴(kuò)展的RAM容量超過256字節(jié)時,單片機內(nèi)硬件自動使控制C=1,MUX開關(guān)接向地址線,這時P2.X引腳的狀態(tài)正好與地址線的信息相同。2.5.3P1口x的結(jié)構(gòu)
一、
P1口的結(jié)構(gòu)
P1口由一個輸出鎖存器、兩個三態(tài)輸入緩沖器和輸出驅(qū)動電路組成。輸出驅(qū)動電路與P2口相同,內(nèi)部設(shè)有上拉電阻。P1口是通用的準(zhǔn)雙向I/O口。輸出高電平時,能向外提供拉電流負(fù)載,不必再接上拉電阻。當(dāng)口用作輸入時,須向口鎖存器寫入1。2.P1口的位結(jié)構(gòu)與功能1)P1口也是—個準(zhǔn)雙向I/O口2)應(yīng)用:通常作一般I/O口用,如驅(qū)動LED,連接按鍵SETB
P1.0CLRP1.1MOVP1,#00HMOVP1,#0FFH2.5.4
P3口的結(jié)構(gòu)
P3用作通用I/O口:W=1P3用作第二功能:Q=11、P3用作第一功能(通用I/O口)
對P3口進(jìn)行字節(jié)或位尋址時,單片機內(nèi)部的硬件自動將第二功能輸出線的W置1。這時,對應(yīng)的口線為通用I/O口方式。輸出時,鎖存器的狀態(tài)(Q端)與輸出引腳的狀態(tài)相同;輸入時,要先向口鎖存器寫入1,使引腳處于高阻輸入狀態(tài)。輸入的數(shù)據(jù)在“讀引腳”信號的作用下,進(jìn)入內(nèi)部數(shù)據(jù)總線。
P3口作為通用I/O口時,屬于準(zhǔn)雙向口。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ù)存儲器“讀”選通控制輸出)。2、P3用作第二功能使用
當(dāng)CPU不對P3口進(jìn)行字節(jié)或位尋址時,內(nèi)部硬件自動將口鎖存器的Q端置1。這時,P3口作為第二功能使用。2.5.5并行口的負(fù)載能力
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)在口與晶體
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 各種奧數(shù)考試題及答案
- 高速飆車考試題及答案大全
- 2025江蘇無錫市第二人民醫(yī)院編外員工招聘80人考前自測高頻考點模擬試題附答案詳解(模擬題)
- 鋼結(jié)構(gòu)簡單考試題及答案
- 2025年日語專業(yè)考核題庫及答案
- 南通面試語文真題及答案
- 食品安全誠信承諾責(zé)任書(6篇)
- 傳統(tǒng)技藝革新承諾書7篇
- 浙江省寧波市聯(lián)合教研體2025-2026學(xué)年高一上學(xué)期10月聯(lián)考地理試題(含答案)
- 項目管理進(jìn)度監(jiān)控預(yù)警通知模板
- 牙源性鼻竇炎的臨床特征
- 人居環(huán)境科學(xué)導(dǎo)論1
- 高中化學(xué)實驗改進(jìn)與創(chuàng)新案例
- 軍隊文職考試《公共科目》試題及解答參考(2025年)
- TDT1075-2023光伏發(fā)電站工程項目用地控制指標(biāo)
- 學(xué)位英語4000詞(開放大學(xué))
- 南京市29中2024-2025八年級上學(xué)期第一次月考物理試卷及答案
- 臨床常見操作-灌腸
- 梅花鹿同期發(fā)情人工輸精技術(shù)規(guī)程
- 檢驗科降低檢測報告超時率PDCA持續(xù)改進(jìn)案例
- 2024年4自考現(xiàn)代管理學(xué)試卷真題+解析
評論
0/150
提交評論