版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第2章 C51C51單片機(jī)的硬件結(jié)構(gòu)單片機(jī)的硬件結(jié)構(gòu)1u 2.1 C51單片機(jī)的內(nèi)部結(jié)構(gòu)單片機(jī)的內(nèi)部結(jié)構(gòu)u 2.2 C51單片機(jī)的存儲(chǔ)器結(jié)構(gòu)單片機(jī)的存儲(chǔ)器結(jié)構(gòu)u 2.3 C51單片機(jī)的并行輸入單片機(jī)的并行輸入/輸出接口輸出接口u 2.4 C51單片機(jī)的工作方式單片機(jī)的工作方式2 89C51單片機(jī)的內(nèi)部結(jié)構(gòu)單片機(jī)的內(nèi)部結(jié)構(gòu) 振蕩器和時(shí)鐘電路程序存儲(chǔ)器4KB ROM數(shù)據(jù)存儲(chǔ)器128B RAM/SCPU兩個(gè)16位定時(shí)/計(jì)數(shù)器中斷系統(tǒng)64K字節(jié)總線擴(kuò)展控制并行I/O端口全雙工串行口外部時(shí)鐘源外部時(shí)鐘源 外部計(jì)數(shù)脈沖外部計(jì)數(shù)脈沖外中斷外中斷 控制控制 外部設(shè)備外部設(shè)備 串行通信串行通信 2.1 C51單
2、片機(jī)的內(nèi)部結(jié)構(gòu)單片機(jī)的內(nèi)部結(jié)構(gòu)3l 中央處理器(中央處理器(CPU)l 程序存儲(chǔ)器(程序存儲(chǔ)器(ROM)l 數(shù)據(jù)存儲(chǔ)器(數(shù)據(jù)存儲(chǔ)器(RAM)l 兩個(gè)兩個(gè)16位的定時(shí)器位的定時(shí)器/計(jì)數(shù)器(計(jì)數(shù)器(T0和和T1)l 4個(gè)個(gè)8位的并行位的并行I/0口(口(P0、P1、P2和和P3)l 串行口串行口l 振蕩電路振蕩電路l 總線總線4單片機(jī)的內(nèi)部基本組成:單片機(jī)的內(nèi)部基本組成:2.1.1 單片機(jī)的內(nèi)部基本組成單片機(jī)的內(nèi)部基本組成5運(yùn)算部件運(yùn)算部件l中央處理器(中央處理器(CPU)中央處理器中央處理器由運(yùn)算部件運(yùn)算部件和控制器控制器組成,是單片機(jī)的核心。 算術(shù)運(yùn)算單元算術(shù)運(yùn)算單元ALU 累加器累加器ACC
3、 寄存器寄存器B 程序狀態(tài)字程序狀態(tài)字PSW 兩個(gè)暫存器兩個(gè)暫存器 位處理器位處理器 6PSENALERESETXLAT1P0.0P0.7P2.0P2.7RAM地址寄存器RAMP0鎖存器P2鎖存器EPROM或ROM程序地址寄存器緩沖器B寄存器ACC暫存器2暫存器1ALUPSWSPPC增量器PCDPTRP0驅(qū)動(dòng)器P2驅(qū)動(dòng)器特殊功能寄存器指令寄存器定時(shí)及控制P1鎖存器P3鎖存器P1驅(qū)動(dòng)器P3驅(qū)動(dòng)器振蕩器VssP1.0P1.7P3.0P3.7EAXLAT2Vcc7 算術(shù)運(yùn)算單元算術(shù)運(yùn)算單元ALU:是一個(gè)8位運(yùn)算器,可以完成二進(jìn)制數(shù)據(jù)加、減、乘、除等基本算術(shù)運(yùn)算,還可以完成8位二進(jìn)制數(shù)“與”、“或”、
4、“異或”、循環(huán)移位、求補(bǔ)、清零等邏輯運(yùn)算,并具有數(shù)據(jù)傳輸、程序轉(zhuǎn)移等功能。ALU還有一個(gè)位運(yùn)算器,它可以對一位二進(jìn)制數(shù)據(jù)進(jìn)行置位、清零、求反及位邏輯“與”、“或”等處理。 累加器累加器ACC:是一個(gè)8位的寄存器,是CPU中使用最頻繁的寄存器,進(jìn)行運(yùn)算時(shí),絕大多數(shù)時(shí)候數(shù)據(jù)都取自累加器ACC,結(jié)果也常保存在累加器ACC。 寄存器寄存器B:是為乘法和除法指令設(shè)置的。在乘法運(yùn)算時(shí),累加器A和寄存器B在乘法運(yùn)算前存放乘數(shù)和被乘數(shù),運(yùn)算結(jié)束后存放結(jié)果;除法運(yùn)算時(shí),運(yùn)算前累加器A和寄存器B存入被除數(shù)和除數(shù),運(yùn)算后用于存放商和余數(shù)。8程序狀態(tài)字程序狀態(tài)字PSW:是一個(gè)8位的寄存器,它用于保存指令執(zhí)行結(jié)果的狀態(tài)
5、,以供程序查詢和判別。 D7D6D5D4D3D2D1D0CACF0RS1RS0OV-PC(PSW.7):進(jìn)位標(biāo)志位。 AC(PSW.6):輔助進(jìn)位標(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的個(gè)數(shù)為奇數(shù),則P置位,若累加器A中1的個(gè)數(shù)為偶數(shù),則P清零。 RS1RS0工作寄存器組000組(00H-07H)011組(08H-0FH)102組(10H-17H)113組(18H-1FH)9【例例2-1】 試分析下面指令執(zhí)行后,累加器A,標(biāo)志位C、AC、OV、P的值?
6、 MOV A,#67H ADD A,#58H分析:第一條指令執(zhí)行時(shí)把立即數(shù)67H送入累加器A,第二條指令執(zhí)行時(shí)把累加器A中的立即數(shù)67H與立即數(shù)58H相加,結(jié)果回送到累加器A中。加法運(yùn)算過程如下: 67H=01100111B 58H=01011000B 0 1 1 0 0 1 1 1B+ 0 1 0 1 1 0 0 0B 1 0 1 1 1 1 1 1=0BFH 則執(zhí)行后累加器A中的值為0BFH,由相加過程得: C=0、AC=0、OV=1、P=1。OV位的判斷:位的判斷:最高位與次高位進(jìn)位的異或異或關(guān)系10二、控制部件二、控制部件 控制部件是單片機(jī)的控制中心,它包括: 它以振蕩信號為基準(zhǔn)產(chǎn)生C
7、PU的時(shí)序,從ROM中取出指令到指令寄存器,然后在指令譯碼器中對指令進(jìn)行譯碼,產(chǎn)生指令,執(zhí)行所需的各種控制信號,送到單片機(jī)內(nèi)部的各功能部件,指揮各功能部件產(chǎn)生相應(yīng)的操作,完成對應(yīng)的功能。 定時(shí)和控制電路定時(shí)和控制電路 指令寄存器指令寄存器 指令譯碼器指令譯碼器 程序計(jì)數(shù)器程序計(jì)數(shù)器PC 堆棧指針堆棧指針SP 數(shù)據(jù)指針數(shù)據(jù)指針DPTR 信息傳送控制部件信息傳送控制部件11uI/O口u內(nèi)部數(shù)據(jù)存儲(chǔ)器u內(nèi)部程序存儲(chǔ)器u定時(shí)器計(jì)數(shù)器u串行口u 中斷控制u時(shí)鐘電路其余資源:其余資源:122.1.2 MCS-51系列單片機(jī)的外部引腳及片外總線系列單片機(jī)的外部引腳及片外總線P1.0P1.1P1.2P1.3P
8、1.4P1.5P1.6P1.7RST/VpdP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7XTAL2XTAL1VssVccP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.012345678910111214151617181920403938373635343332313029282726252423222180C3180C5189C51RXDTXDINT0INT1T0T1WRRDP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.7P2.6P2
9、.5P2.4P2.3P2.2P2.1P2.0P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7PSENEAALERST用戶I /O控制總線(CB)鎖存器A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0地址總線數(shù)據(jù)總線(AB)(DB)VccVssVccVss131輸入輸入/輸出引腳輸出引腳(1)P0口(3932腳):P0.0P0.7統(tǒng)稱為P0口。在不接片外存儲(chǔ)器與不擴(kuò)展I/O口時(shí),作為雙向輸入/輸出口。在接有片外存儲(chǔ)器或擴(kuò)展I/O口時(shí),P0口分時(shí)復(fù)用為低8位地
10、址總線和雙向數(shù)據(jù)總線。(2)P1口(18腳):P1.0P1.7統(tǒng)稱為P1口,可作為準(zhǔn)雙向I/O口使用。對于52子系列,P1.0與P1.1還有第二功能:P1.0可用作定時(shí)器/計(jì)數(shù)器2的計(jì)數(shù)脈沖輸入端T2,P1.1可用作定時(shí)器/計(jì)數(shù)器2的外部控制端T2EX。(3)P2口(2128腳):P2.0P2.7統(tǒng)稱為P2口,一般可作為準(zhǔn)雙向I/O口使用;在接有片外存儲(chǔ)器或擴(kuò)展I/O口且尋址范圍超過256字節(jié)時(shí),P2口用作高8位地址總線。(4)P3口(1017腳):P3.0P3.7統(tǒng)稱為P3口。除作為準(zhǔn)雙向I/O口使用外,還可以將每一位用于第二功能,而且P3口的每一條引腳均可獨(dú)立定義為第一功能的輸入輸出或第二
11、功能。142控制線控制線(1)ALE/PROG(30腳):地址鎖存信號輸出端。ALE在每個(gè)機(jī)器周期內(nèi)輸出兩個(gè)脈沖。 (2)PSEN(29腳):片外程序存儲(chǔ)器讀選通信號輸出端,低電平有效。 (3)RST/VPD(9腳):RST即為RESET,VPD為備用電源。當(dāng)單片機(jī)振蕩器工作時(shí),該引腳上出現(xiàn)持續(xù)兩個(gè)機(jī)器周期的高電平,就可實(shí)現(xiàn)復(fù)位操作,使單片機(jī)回復(fù)到初始狀態(tài)。上電時(shí),考慮到振蕩器有一定的起振時(shí)間,該引腳上高電平必須持續(xù)10 ms以上才能保證有效復(fù)位。(4) /VPP(31腳):EA為片外程序存儲(chǔ)器選用端。該引腳低電平時(shí),選用片外程序存儲(chǔ)器,高電平或懸空時(shí)選用片內(nèi)程序存儲(chǔ)器。3主電源引腳主電源引腳
12、VCC(40腳):接+5 V電源正端。VSS(20腳):接+地。154外接晶體引腳外接晶體引腳XTAL1、XTAL2(19、18腳):當(dāng)使用單片機(jī)內(nèi)部振蕩電路時(shí),這兩個(gè)引腳用來外接石英晶體和微調(diào)電容,如圖2-10(a)。在單片機(jī)內(nèi)部,它是一個(gè)反相放大器的輸入端,這個(gè)放大器構(gòu)成了片內(nèi)振蕩器。當(dāng)采用外部時(shí)鐘時(shí),對于HMOS單片機(jī),XTAL1引腳接地,XTAL2接片外振蕩脈沖輸入(帶上拉電阻);對于CHMOS單片機(jī),XTAL2引腳接地,XTAL1接片外振蕩脈沖輸入(帶上拉電阻),如圖2-11(b)和(c)。 XTAL1XTAL2外部振蕩信號XTAL1XTAL2VccVssR外部振蕩信號XTAL2XT
13、AL1VccVssR(a)內(nèi)部時(shí)鐘方式 (b)HMOS工藝外接時(shí)鐘 (c)CHMOS工藝外接時(shí)鐘16 C51單片機(jī)存儲(chǔ)器結(jié)構(gòu)與一般微機(jī)的存儲(chǔ)器結(jié)構(gòu)不同,分為程序存儲(chǔ)器ROM和數(shù)據(jù)存儲(chǔ)器RAM。程序存儲(chǔ)器:程序存儲(chǔ)器:存放程序、固定常數(shù)和數(shù)據(jù)表格。數(shù)據(jù)存儲(chǔ)器:數(shù)據(jù)存儲(chǔ)器:用作工作區(qū)及存放數(shù)據(jù)。 程序存儲(chǔ)器程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器各有自己的尋址方式、尋址空間和控制系統(tǒng)。這種結(jié)構(gòu)對于“面向控制”的單片機(jī)極為方便、有利。 C51單片機(jī)不僅有一定容量的程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器和特殊功能的寄存器,而且有極強(qiáng)的外部存儲(chǔ)器擴(kuò)展能力,尋址范圍可達(dá)64KB。2.2 C51單片機(jī)存儲(chǔ)器結(jié)構(gòu)單片機(jī)存儲(chǔ)器結(jié)構(gòu)17
14、p 在物理上存儲(chǔ)器分為四個(gè)存儲(chǔ)空間在物理上存儲(chǔ)器分為四個(gè)存儲(chǔ)空間程序存儲(chǔ)器程序存儲(chǔ)器片內(nèi)程序存儲(chǔ)器片外程序存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器片內(nèi)數(shù)據(jù)存儲(chǔ)器片外數(shù)據(jù)存儲(chǔ)器p 在邏輯上分為三個(gè)存儲(chǔ)器地址空間在邏輯上分為三個(gè)存儲(chǔ)器地址空間片內(nèi)外統(tǒng)一的64KB程序存儲(chǔ)器地址空間;片內(nèi)128字節(jié)的數(shù)據(jù)存儲(chǔ)器地址空間;片外64KB的數(shù)據(jù)存儲(chǔ)器地址空間。程序存儲(chǔ)器分為片內(nèi)存儲(chǔ)和片外存儲(chǔ)兩部分,可通過/EA引腳的電平確定。182.2.1程序存儲(chǔ)器程序存儲(chǔ)器在C51系列單片機(jī)中,不同的芯片其片內(nèi)程序存儲(chǔ)器的容量是各不相同的。80C31內(nèi)部是不含ROM,80C51內(nèi)部含有4KB的ROM,89C51含有4KB的ROM,89
15、C52含有8KB的ROM。隨著器件集成度的提高,片內(nèi)程序存儲(chǔ)器的容量做的越來越大,已達(dá)64KB。191程序存儲(chǔ)器的編址與訪問程序存儲(chǔ)器的編址與訪問u 內(nèi)部沒有ROM的80C31,只能擴(kuò)展外部ROM,最多可擴(kuò)展64K,地址范圍為0000HFFFFH;u 內(nèi)部有ROM的,可以擴(kuò)展外部ROM,但內(nèi)部ROM和外部ROM共用64K存儲(chǔ)空間;51子系列重疊區(qū)域?yàn)?000H0FFFH,52子系列重疊區(qū)域?yàn)?000H1FFFH。片 外ROMEA=0片 外ROMEA=0片 內(nèi)ROMEA=1片 外ROM0000HFFFFH0000H0FFFH1000HFFFFH片 外ROMEA=0片 內(nèi)ROMEA=1片 外ROM
16、0000H1FFFH2000HFFFFH(a)片內(nèi)無ROM(b)片內(nèi)有4K ROM(c)片內(nèi)有8K ROM202程序存儲(chǔ)器的程序存儲(chǔ)器的7個(gè)特殊地址個(gè)特殊地址 單片機(jī)復(fù)位后,PC的內(nèi)容為0000H,故單片機(jī)復(fù)位后將從0000H單元開始執(zhí)行程序。程序存儲(chǔ)器的0000H單元地址是系統(tǒng)程序的啟動(dòng)地址,在這里一般放絕對轉(zhuǎn)移指令,轉(zhuǎn)到用戶程序。 6個(gè)中斷源的地址之間僅隔8個(gè)單元,存放中斷服務(wù)程序往往不夠用,這是通常放一條絕對轉(zhuǎn)移指令,轉(zhuǎn)到真正的中斷服務(wù)程序,真正的中斷服務(wù)程序放到后面。中斷源入口地址復(fù)位或非屏蔽中斷0000H外部中斷00003H定時(shí)/計(jì)數(shù)器0000BH外部中斷10013H定時(shí)/計(jì)數(shù)器10
17、01BH串行口0023H定時(shí)/計(jì)數(shù)器2(僅52子系列有)002BH212.2.2 數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器片內(nèi)數(shù)據(jù)存儲(chǔ)器片外數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器由RAM構(gòu)成,用來存放隨機(jī)數(shù)據(jù)和表格。對于51子系列:前者有128字節(jié),編址為00H7FH;后者也占128個(gè)字節(jié),編址為80HFFH;二者連續(xù)不重疊。對于52子系列:前者有256字節(jié),編址為00HFFH;后者也有128字節(jié),編址為80HFFH;后128字節(jié)編址重疊的,訪問時(shí)通過不同的指令相區(qū)分。 片內(nèi)數(shù)據(jù)存儲(chǔ)器按功能為:片內(nèi)數(shù)據(jù)存儲(chǔ)器按功能為:l 工作寄存器組區(qū)(通用寄存器)l 位尋址區(qū);l 用戶RAM區(qū);l 特殊功能寄存器區(qū),其中還包
18、含堆棧區(qū)。 221 .通用寄存器通用寄存器 內(nèi)部RAM 的前32個(gè)單元作為寄存器使用,共分為4個(gè)工作組,每組8個(gè)寄存器,編號分別為R0R7,寄存器通常用于存放操作數(shù)和中間結(jié)果。圖2-5 內(nèi)部數(shù)據(jù)存儲(chǔ)器的結(jié)構(gòu) 2. 位尋址區(qū)位尋址區(qū)20H2FH為位尋址區(qū),共16字節(jié),128位。這128位每位都可以按位方式使用,每一位都有一個(gè)位地址,位地址范圍為00H7FH 。23字節(jié)地址位地址765432102FH7FH7EH7DH7CH7BH7AH79H78H2EH77H76H75H74H73H72H71H70H2DH6FH6EH6DH6CH6BH6AH69H68H2CH67H66H65H64H63H62H6
19、1H60H2BH5FH5EH5DH5CH5BH5AH59H58H2AH57H56H55H54H53H52H51H50H29H4FH4EH4DH4CH4BH4AH49H48H28H47H46H45H44H43H42H41H40H27H3FH3EH3DH3CH3BH3AH39H38H26H37H36H35H34H33H32H31H30H25H2FH2EH2DH2CH2BH2AH29H28H24H27H26H25H24H23H22H21H20H23H1FH1EH1DH1CH1BH1AH19H18H22H17H16H15H14H13H12H11H10H21H0FH0HH0DH0CH0BH0AH09H0
20、8H20H07H06H05H04H03H02H01H00H2.位尋址區(qū)位尋址區(qū) 20H2FH為位尋址區(qū),共16字節(jié),128位。這128位每位都可以按位方式使用,每一位都有一個(gè)位地址,位地址范圍為00H7FH 。243.一般一般RAM區(qū)區(qū) 30H7FH是一般RAM區(qū),也稱為用戶RAM區(qū),共80字節(jié),對于52子系列,一般RAM區(qū)從30HFFH單元。用戶RAM區(qū),用作堆棧、存放各種數(shù)據(jù)和中間結(jié)果,起到數(shù)據(jù)緩沖的作用,可以采用直接字節(jié)尋址方式直接字節(jié)尋址方式訪問。 由于通用寄存器區(qū)、位尋址區(qū)、RAM區(qū)為統(tǒng)一編址,使用統(tǒng)一指令訪問,這三個(gè)區(qū)既有自己獨(dú)特的地方,又可獨(dú)立使用。因此,對于通用寄存器區(qū)和位尋址
21、區(qū)中未使用的單元也可作為數(shù)據(jù)緩沖區(qū)使用。對于89C52型單片機(jī),還有高128字節(jié)的數(shù)據(jù)RAM區(qū)。這一區(qū)域只能采用間接字節(jié)尋間接字節(jié)尋址方式址方式訪問。254.特殊功能寄存器區(qū)特殊功能寄存器區(qū)SFR 特殊功能寄存器(SFR)也稱專用寄存器,專門用于控制、管理片內(nèi)算術(shù)邏輯部件、并行I/O口、串行口、定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)等功能模塊的工作,用戶在編程時(shí)可以給其設(shè)定值,但不能移作它用。 位于片內(nèi)RAM的80HFFH地址空間。 除PC外,51子系列有18個(gè)特殊功能寄存器,其中3個(gè)為雙字節(jié),共占用21個(gè)字節(jié);52子系列有21個(gè)特殊寄存器,其中5個(gè)為雙字節(jié),共占用26個(gè)字節(jié)。它們的分配情況如下:26序號標(biāo)示
22、符名稱字節(jié)地址位地址1*ACC累加器0E0H0E0H0E7H2*BB寄存器0F0H0F0H0F7H3*PSW程序狀態(tài)字0D0H0D0H0D7H4SP堆棧指針81H 5DPTR數(shù)據(jù)指針(DPH、DPL)83H、82H 6*P0P0口80H80H87H7*P1P1口90H90H97H8*P2P2口0A0H0A0H0A7H9*P3P3口0B0H0B0H0B7H10*IP中斷優(yōu)先級控制0B8H0B8H0BFH11*IE中斷使能控制0A8H0A8H0AFH12TMOD定時(shí)器/計(jì)數(shù)器模式控制89H 13*TCON定時(shí)器/計(jì)數(shù)器控制88H88H8FH14TH0定時(shí)器/計(jì)數(shù)器0(高字節(jié))8CH 15TL0定時(shí)
23、器/計(jì)數(shù)器0(低字節(jié))8AH 16TH1定時(shí)器/計(jì)數(shù)器1(高字節(jié))8DH 17TL1定時(shí)器/計(jì)數(shù)器1(低字節(jié))8BH 18PCON電源控制/波特率選擇寄存器97H 19*SCON串行口控制98H98H9FH20SBUF串行數(shù)據(jù)緩沖99H 21*T2CON定時(shí)器/計(jì)數(shù)器2控制0C8H0C8H0CFH22TH2定時(shí)器/計(jì)數(shù)器2(高字節(jié))0CDH 23TL2定時(shí)器/計(jì)數(shù)器2(低字節(jié))0CCH 24RCAP2H定時(shí)器/計(jì)數(shù)器2自動(dòng)裝載(高字節(jié))0CBH 25RCAP2L定時(shí)器/計(jì)數(shù)器2自動(dòng)裝載(低字節(jié))0CAH 表2.4 MCS-51單片機(jī)專用寄存器一覽表專用寄存器不是連續(xù)地分布在內(nèi)部RAM的高128
24、單元中,且剩余空閑的寄存器,用戶不能使用。21個(gè)專用寄存器都可尋址,唯獨(dú)程序計(jì)數(shù)器(PC)不能尋址,此程序計(jì)數(shù)器在物理上是獨(dú)立的,不占用RAM單元。只能采用直接尋址方式訪問專用寄存器。在指令中既可使用寄存器符號表示,也可使用寄存器地址表示。27專用寄存器字節(jié)尋址問題的幾點(diǎn)說明:專用寄存器字節(jié)尋址問題的幾點(diǎn)說明:285片外數(shù)據(jù)存儲(chǔ)器片外數(shù)據(jù)存儲(chǔ)器 當(dāng)內(nèi)部數(shù)據(jù)存儲(chǔ)器容量不夠時(shí),可外部擴(kuò)展外部數(shù)據(jù)存儲(chǔ)器。外部數(shù)據(jù)存儲(chǔ)器最多64KB,地址范圍為0000H0FFFFH。通過DPTR作指針間接方式訪問,對于低端的256字節(jié),地址范圍為00H0FFH,可通過R0和R1間接方式訪問。擴(kuò)展的外部設(shè)備占用片外數(shù)據(jù)
25、存儲(chǔ)器空間,通過用訪問片外數(shù)據(jù)存儲(chǔ)器的方法訪問。 說明:說明:第一,64K的程序存儲(chǔ)器和64K的片外數(shù)據(jù)存儲(chǔ)器地址空間都為0000H0FFFFH,地址空間是重疊的,它們?nèi)绾螀^(qū)分呢? C51單片機(jī)是通過不同信號對片外數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器進(jìn)行讀、寫控制;片外數(shù)據(jù)存儲(chǔ)器是通過RD和WR信號來控制,程序存儲(chǔ)器的讀通過PSEN信號控制;且通過用不同指令來實(shí)現(xiàn),片外數(shù)據(jù)存儲(chǔ)器用MOVX指令,程序存儲(chǔ)器用MOVC指令。 29第二,片內(nèi)數(shù)據(jù)存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器的低256字節(jié)的地址空間是重疊的,它們?nèi)绾螀^(qū)分呢? 片內(nèi)數(shù)據(jù)存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器的低256字節(jié)通過不同的指令訪問,片內(nèi)數(shù)據(jù)存儲(chǔ)器用MOV指令,片外
26、數(shù)據(jù)存儲(chǔ)器用MOVX指令。因此在訪問時(shí)不會(huì)產(chǎn)生混亂。 302.2.3 C51單片機(jī)的堆棧操作單片機(jī)的堆棧操作堆棧堆棧是:按先入后出、后入先出先入后出、后入先出的原則進(jìn)行管理的一段存儲(chǔ)區(qū)域。堆棧是用片內(nèi)數(shù)據(jù)存儲(chǔ)器的一段區(qū)域,在具體使用時(shí)應(yīng)避開工作寄存器、位尋址區(qū),一般設(shè)在2FH以后的單元,如工作寄存器和位尋址區(qū)未用,也可開辟為堆棧。數(shù)據(jù)寫入堆棧成為入棧(push),數(shù)據(jù)的讀出成為出棧(pop);堆棧的功能:堆棧的功能:為子程序調(diào)用和中斷操作設(shè)立保護(hù)斷點(diǎn)和現(xiàn)場。 無論是執(zhí)行子程序還是執(zhí)行中斷操作,都要返回到主程序,因此需要在轉(zhuǎn)去執(zhí)行子程序或中斷程序前,預(yù)先保護(hù)主程序的斷點(diǎn),使得程序能正確返回到主程
27、序中,即保護(hù)斷點(diǎn)。為了能夠?qū)崿F(xiàn)多級中斷嵌套及多重子程序,一般要求堆棧具有足夠的容量(堆棧深度)。此外,堆棧也可用于存放臨時(shí)數(shù)據(jù)。31u堆棧的設(shè)置:堆棧的設(shè)置:堆棧只能設(shè)置在單片機(jī)的內(nèi)部數(shù)據(jù)存儲(chǔ)器。優(yōu)點(diǎn):是操作速度快,但容量有限。u 堆棧的狀態(tài)指示:堆棧的狀態(tài)指示:堆棧有兩種操作入棧和出棧,但無論是入棧還是出棧都是對堆棧的棧頂單元進(jìn)行操作,即對棧頂數(shù)據(jù)的讀和寫u 為了指示棧頂?shù)刂?,設(shè)置堆棧指示器(SP,Stack Pointer)。u SP的內(nèi)容就是棧頂單元的地址。u堆棧的類型:堆棧的類型:堆棧有兩種類型向上生長型向上生長型和向下生長型向下生長型 向上生長型:入棧: SP先加1,后寫入數(shù)據(jù);出棧
28、:先讀出數(shù)據(jù), SP后減1。 向下生長型:入棧: SP先減1,后寫入數(shù)據(jù);出棧:先讀出數(shù)據(jù), SP后加1。u堆棧的使用方式:堆棧的使用方式:自動(dòng)方式和指令方式自動(dòng)方式是斷點(diǎn)自動(dòng)入棧,或自動(dòng)彈回PC。指令方式是使用專用的堆棧操作指令,PUSH、POP。322.3 C51單片機(jī)的并行輸入單片機(jī)的并行輸入/輸出接口輸出接口 C51系列單片機(jī)有4個(gè)8位的并行I/O接口:P0、P1、P2和P3口。它們是特殊功能寄存器中的4個(gè)。這4個(gè)口,既可以作輸入,也可以作輸出,既可按8位處理,也可按位方式使用。輸出時(shí)具有鎖存能力,輸入時(shí)具有緩沖功能。 P0口:是一個(gè)三態(tài)雙向口,可作地址數(shù)據(jù)分時(shí)復(fù)用口,也可作通用的I/
29、O口。當(dāng)控制信號為 “1”時(shí),P0口作地址數(shù)據(jù)分時(shí)復(fù)用總線使用,當(dāng)控制信號為低電平“0”時(shí),P0口作通用I/O接口使用。331P0口口P0口是一個(gè)三態(tài)雙向口,可作為地址數(shù)據(jù)分時(shí)復(fù)用口,也可作為通用的I/O接口。它包括一個(gè)輸出鎖存器、兩個(gè)三態(tài)緩沖器、輸出驅(qū)動(dòng)電路和輸出控制電路組成。21&DQCLK鎖存器讀鎖存器寫鎖存器內(nèi)部總線讀引腳地址控制VccGNDP0.xV2V134M UX它的一位結(jié)構(gòu)如圖 :3435 當(dāng)控制信號為高電平“1”,P0口作為地址數(shù)據(jù)分時(shí)復(fù)用總線用。分為兩種情況:一種是從P0口輸出地址或數(shù)據(jù),另一種是從P0口輸入數(shù)據(jù)。控制信號為高電平“1”,使轉(zhuǎn)換開關(guān)MUX把反相器4的
30、輸出端與V1接通,把與門3打開。如果從P0口輸出地址或數(shù)據(jù),當(dāng)為“1”時(shí),經(jīng)反相器4使V1截止,而經(jīng)與門3使V2導(dǎo)通,P0.x引腳上出現(xiàn)相應(yīng)的高電平“1”;當(dāng)為“0”時(shí),經(jīng)反相器4使V1導(dǎo)通而V2截止,引腳上出現(xiàn)相應(yīng)的低電平“0”,這樣就將地址/數(shù)據(jù)的信號輸出。若從P0口輸入數(shù)據(jù),輸入數(shù)據(jù)從下方的三態(tài)輸入緩沖器進(jìn)入內(nèi)部總線。 當(dāng)控制信號為低電平“0”,P0口作為通用I/O口使用??刂菩盘枮椤?”,轉(zhuǎn)換開關(guān)MUX把輸出級與鎖存器Q端接通,在CPU向端口輸出數(shù)據(jù)時(shí),因與門3輸出為“0”,使V2截止,此時(shí),輸出級是漏極開路電路。當(dāng)寫入脈沖加在鎖存器時(shí)鐘端CLK上時(shí),與內(nèi)部總線相連的D端數(shù)據(jù)取反后出現(xiàn)
31、在Q端,又經(jīng)輸出V2反相,P0引腳上的數(shù)據(jù)正好是內(nèi)部總線的數(shù)據(jù)。當(dāng)要從P0口輸入數(shù)據(jù)時(shí),引腳信號仍經(jīng)輸入緩沖器進(jìn)入內(nèi)部總線 P0口的使用應(yīng)注意以下幾點(diǎn):P0口的輸出級是漏極開路電路,必須外接上拉電阻。P0口在輸入數(shù)據(jù)前,應(yīng)先向P0口寫“1”,此時(shí)鎖存器的Q端為“0”,使輸出級的兩個(gè)場效應(yīng)管V1、V2均截止,引腳處于懸浮狀態(tài),才可作高阻輸入。另外,P0口的輸出級具有驅(qū)動(dòng)8個(gè)LSTTL負(fù)載的能力,輸出電流不大于800A 36372P1口口 P1口是準(zhǔn)雙向口,它只能作通用I/O接口使用。P1口的結(jié)構(gòu)與P0口不同,它的輸出只由一個(gè)場效應(yīng)管V1,且與內(nèi)部上拉電阻組成,如圖 21DQCLK鎖存器讀鎖存器寫
32、鎖存器內(nèi)部總線讀引腳VccGNDP1.xV1內(nèi) 部 上 拉 電阻輸入輸出特性與P0口作為通用I/O接口一樣,當(dāng)其輸出時(shí),可以提供電流負(fù)載,不必像P0口需要外接上拉電阻。P1口具有驅(qū)動(dòng)4個(gè)LSTTL負(fù)載的能力。383P2口口 P2口也是準(zhǔn)雙向口,它有兩種用途:通用I/O接口和高8位地址線。它的1位的結(jié)構(gòu)如圖2.8,與P1口相比,它在輸出驅(qū)動(dòng)電路上比P1口多了一個(gè)模擬轉(zhuǎn)換開關(guān)MUX和反相器3。 21DQCLK鎖存器讀鎖存器寫鎖存器內(nèi)部總線讀引腳地址控制VccGNDP2.xV1MUX內(nèi)部上拉電阻339 當(dāng)控制信號為高電平“1”,轉(zhuǎn)換開關(guān)接上側(cè),P2口作為訪問片外存儲(chǔ)器的高8位地址總線A8A15。若系
33、統(tǒng)擴(kuò)展了ROM,單片機(jī)工作時(shí)一直不斷地取指令,P2口將不能作通用I/O口。若系統(tǒng)僅擴(kuò)展RAM,分幾種情況:當(dāng)片外RAM容量不超過256字節(jié),在訪問RAM時(shí),只須P0口送低8位地址,P2口仍可作為通用I/O口;當(dāng)片外RAM容量大于256字節(jié)時(shí),需要P2口提供高8位地址,這時(shí)P2口不能作通用I/O口 。當(dāng)控制信號為高電平“0”,轉(zhuǎn)換開關(guān)接下側(cè),P2口作為準(zhǔn)雙向通用I/O口。其工作原理與P1相同,只是P1口輸出端由鎖存器/Q接V1,而P2口是由鎖存器Q端經(jīng)反相器3接V1,也具有輸入、輸出、端口操作三種工作方式,負(fù)載能力也與P1相同。404P3口口P3口1位的結(jié)構(gòu)如圖2.9。它的輸出驅(qū)動(dòng)由與非門3、V
34、1組成,輸入比P0、P1、P2口多了一個(gè)緩沖器4。41P3口除了作為準(zhǔn)雙向通用I/O口外,它的每一根線還具有第二種功能。P3口第二功能P3.0RXD 串行口輸入端P3.1TXD 串行口輸出端P3.2INT0 外部中斷0請求輸入端,低電平有效P3.3INT1 外部中斷1請求輸入端,低電平有效P3.4T0 定時(shí)/計(jì)數(shù)器0外部計(jì)數(shù)脈沖輸入端P3.5T1 定時(shí)/計(jì)數(shù)器0外部計(jì)數(shù)脈沖輸入端P3.6WR 外部數(shù)據(jù)存儲(chǔ)器寫信號,低電平有效P3.7RD 外部數(shù)據(jù)存儲(chǔ)器讀信號,低電平有效42 當(dāng)P3口作為第二功能時(shí),鎖存器的Q輸出端必須為高電平,否則V1管導(dǎo)通,引腳將被箝位在低電平,無法實(shí)現(xiàn)第二功能。當(dāng)鎖存器Q
35、端為高電平,P3口的狀態(tài)取決于第二功能輸出線的狀態(tài)。單片機(jī)復(fù)位時(shí),鎖存器的輸出端為高電平。P3口第二功能中輸入信號RXD、/INT0、/INT1、T0、T1經(jīng)緩沖器4輸入,可直接進(jìn)入芯片內(nèi)部。 當(dāng)P3口作為通用I/O接口時(shí),第二功能輸出線為高電平,與非門3的輸出取決于鎖存器的狀態(tài)。這時(shí),P3是一個(gè)準(zhǔn)雙向口,它的工作原理、負(fù)載能力與P1、P2口相同。nC51單片機(jī)有111條指令,CPU在執(zhí)行這些指令時(shí),各控制信號按時(shí)序工作,時(shí)序由四種周期構(gòu)成。 振蕩周期(T):晶體振蕩器產(chǎn)生的振蕩信號的周期 。 時(shí)鐘周期(S):一個(gè)時(shí)鐘周期等于兩個(gè)振蕩周期,即對振蕩信號進(jìn)行二分頻得到時(shí)鐘信號。 機(jī)器周期:完成一個(gè)基本操作所需的時(shí)間。一個(gè)機(jī)器周期等于6個(gè)時(shí)鐘周期,12個(gè)振蕩周期。 指令周期(IC):執(zhí)行一條指令所需的時(shí)間。C51單片機(jī)的指令周期一般為1、2、4個(gè)機(jī)器周期。432.4 C51系列單片機(jī)的工作方式系列單片機(jī)的工作方式2.4.1 CPU時(shí)序時(shí)序44S1P1P2S2P1P2S3P1P2S4P1P2S5P1P2S6P1P2時(shí)鐘信號單機(jī)器周期指令的時(shí)序單機(jī)器周期指令的時(shí)序S1S2S3S4S5S6讀操作碼讀無效(丟失)單字節(jié)單機(jī)器周期指令 S1S2S3S4S
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 切削技術(shù)對比
- 青少年皮膚去角質(zhì)產(chǎn)品使用方法
- 胃腸減壓的護(hù)理質(zhì)量評價(jià)
- 2026-2032年中國有刷電機(jī)驅(qū)動(dòng)器行業(yè)市場動(dòng)態(tài)分析及發(fā)展?jié)摿ρ信袌?bào)告
- 分級診療服務(wù)技術(shù)方案
- 跨行業(yè)的企業(yè)資源管理模板
- 分類培訓(xùn)課程
- 分析檢驗(yàn)技術(shù)課件
- 色彩肌膚護(hù)理與季節(jié)變化
- 航模飛行原理
- 北京市公路挖掘及路產(chǎn)損壞賠償指導(dǎo)標(biāo)準(zhǔn)2025
- 北京市通州區(qū)2024-2025學(xué)年八年級下學(xué)期學(xué)業(yè)質(zhì)量檢測生物考試題目及答案
- 雅詩蘭黛新人培訓(xùn)
- 2025年高考(甘肅卷)地理真題(學(xué)生版+解析版)
- 中醫(yī)男科學(xué)理論知識考核試題及答案
- 中移動(dòng)薪酬管理辦法
- GB/T 45758-2025室內(nèi)照明環(huán)境下光催化材料細(xì)菌減少率的測定半干法估算實(shí)際環(huán)境細(xì)菌污染表面抗菌活性
- 護(hù)理教學(xué)如何融入思政
- 宮腔鏡手術(shù)并發(fā)癥的預(yù)防與處理
- 放療患者的飲食指導(dǎo)及護(hù)理
- 工程投標(biāo)工作匯報(bào)
評論
0/150
提交評論