乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      8051系列單片機

       ly5019的圖書館 2016-02-12

      MCS-51單片機在物理結(jié)構(gòu)上有四個存儲空間:
      1、片內(nèi)程序存儲器
      2、片外程序存儲器
      3、片內(nèi)數(shù)據(jù)存儲器
      4、片外數(shù)據(jù)存儲器
      但在邏輯上,即從用戶的角度上,8051單片機有三個存儲空間:
      1、片內(nèi)外統(tǒng)一編址的64K的程序存儲器地址空間(MOVC)
      2、256B的片內(nèi)數(shù)據(jù)存儲器的地址空間(MOV)
      3、以及64K片外數(shù)據(jù)存儲器的地址空間(MOVX)
      在訪問三個不同的邏輯空間時,應(yīng)采用不同形式的指令(具體我們在后面的指令系統(tǒng)學習時將會講解),以產(chǎn)生不同的存儲器空間的選通信號。
      程序存儲器
      一個微處理器能夠聰明地執(zhí)行某種任務(wù),除了它們強大的硬件外,還需要它們運行的軟件,其實微處理器并不聰明,它們只是完全按照人們預(yù)先編寫的程序而執(zhí)行之。那么設(shè)計人員編寫的程序就存放在微處理器的程序存儲器中,俗稱只讀程序存儲器(ROM)。程序相當于給微處理器處理問題的一系列命令。其實程序和數(shù)據(jù)一樣,都是由機器碼組成的代碼串。只是程序代碼則存放于程序存儲器中。
      MCS-51具有64kB程序存儲器尋址空間,它是用于存放用戶程序、數(shù)據(jù)和表格等信息。對于內(nèi)部無ROM的8031單片機,它的程序存儲器必須外接,空間地址為64kB,此時單片機的EA端必須接地。強制CPU從外部程序存儲器讀取程序。對于內(nèi)部有ROM的8051等單片機,正常運行時,則需接高電平,使CPU先從內(nèi)部的程序存儲中讀取程序,當PC值超過內(nèi)部ROM的容量時,才會轉(zhuǎn)向外部的程序存儲器讀取程序。
      當EA=1時,程序從片內(nèi)ROM開始執(zhí)行,當PC值超過片內(nèi)ROM容量時會自動轉(zhuǎn)向外部ROM空間。
      當EA=0時,程序從外部存儲器開始執(zhí)行,例如前面提到的片內(nèi)無ROM的8031單片機,在實際應(yīng)用中就要把8031的EA引腳接為低電平。
      程序內(nèi)存ROM
      尋址范圍:0000H ~ FFFFH 容量64KB
      EA = 1,尋址內(nèi)部ROM;EA = 0,尋址外部ROM
      地址長度:16位
      作用: 存放程序及程序運行時所需的常數(shù)。
      下圖是ROM的地址分配圖:


      8051片內(nèi)有4kB的程序存儲單元,其地址為0000H—0FFFH,單片機啟動復位后,程序計數(shù)器的內(nèi)容為0000H,所以系統(tǒng)將從0000H單元開始執(zhí)行程序。但在程序存儲中有些特殊的單元,這在使用中應(yīng)加以注意:
      其中一組特殊是0000H—0002H單元,系統(tǒng)復位后,PC為0000H,單片機從0000H單元開始執(zhí)行程序,從上圖中大家可以看到,0000H-0002H,只有三個存儲單元,3個存儲單元在我們的程序存放時是存放不了實際意義的程序的,通常我們在實際編寫程序時是在這里安排一條ORG指令,通過ORG指令跳轉(zhuǎn)到從0033H開始的用戶ROM區(qū)域,再來安排我們的程序語言。從0033開始的用戶ROM區(qū)域用戶可以通過ORG指令任意安排,但在應(yīng)用中應(yīng)注意,不要超過了實際的存儲空間,不然程序就會找不到。
      另一組特殊單元是0003H—002AH,這40個單元各有用途,它們被均勻地分為五段,它們的定義如下:
      0003H—000AH 外部中斷0中斷地址區(qū)。
      000BH—0012H 定時/計數(shù)器0中斷地址區(qū)。
      0013H—001AH 外部中斷1中斷地址區(qū)。
      001BH—0022H 定時/計數(shù)器1中斷地址區(qū)。
      0023H—002AH 串行中斷地址區(qū)。
      可見以上的40個單元是專門用于存放中斷處理程序的地址單元,中斷響應(yīng)后,按中斷的類型,自動轉(zhuǎn)到各自的中斷區(qū)去執(zhí)行程序。從上面可以看出,每個中斷服務(wù)程序只有8個字節(jié)單元,用8個字節(jié)來存放一個中斷服務(wù)程序顯然是不可能的。因此以上地址單元不能用于存放程序的其他內(nèi)容,只能存放中斷服務(wù)程序。但是通常情況下,我們是在中斷響應(yīng)的地址區(qū)安放一條無條件轉(zhuǎn)移指令,指向程序存儲器的其它真正存放中斷服務(wù)程序的空間去執(zhí)行,這樣中斷響應(yīng)后,CPU讀到這條轉(zhuǎn)移指令,便轉(zhuǎn)向其他地方去繼續(xù)執(zhí)行中斷服務(wù)程序。
      數(shù)據(jù)存儲器
      數(shù)據(jù)存儲器也稱為隨機存取數(shù)據(jù)存儲器。數(shù)據(jù)存儲器分為內(nèi)部數(shù)據(jù)存儲和外部數(shù)據(jù)存儲。MCS-51內(nèi)部RAM有128或256個字節(jié)的用戶數(shù)據(jù)存儲(不同的型號有分別),片外最多可擴展64KB的RAM,構(gòu)成兩個地址空間,訪問片內(nèi)RAM用“MOV”指令,訪問片外RAM用“MOVX”指令。它們是用于存放執(zhí)行的中間結(jié)果和過程數(shù)據(jù)的。MCS-51的數(shù)據(jù)存儲器均可讀寫,部分單元還可以位尋址。
      MCS-51單片機的內(nèi)部數(shù)據(jù)存儲器在物理上和邏輯上都分為兩個地址空間,即:
      數(shù)據(jù)存儲器空間(低128單元);
      特殊功能寄存器空間(高128單元);
      這兩個空間是相連的,從用戶角度而言,低128單元才是真正的數(shù)據(jù)存儲器。下面我們就來詳細的與大家講解一下:
      內(nèi)部數(shù)據(jù)存儲器RAM
      物理上分為兩大區(qū):00H ~ 7FH即128B內(nèi)RAM 和 SFR區(qū)。
      作用:作數(shù)據(jù)緩沖器用。


      從上圖中我們可以看到,8051單片機片內(nèi)RAM共有256個單元(00H-FFH),這256個單元共分為兩部分。其一是地址從00H—7FH單元(共128個字節(jié))為用戶數(shù)據(jù)RAM。從80H—FFH地址單元(也是128個字節(jié))為特殊寄存器(SFR)單元。從圖1中可清楚地看出它們的結(jié)構(gòu)分布。
      低128單元:
      片內(nèi)數(shù)據(jù)存儲器為8位地址,所以最大可尋址的范圍為256個單元地址,對片外數(shù)據(jù)存儲器采用間接尋址方式,R0、R1和DPTR都可以做為間接尋址寄存器,R0、R1是8位的寄存器,即R0、R1的尋址范圍最大為256個單元,而DPTR是16位地址指針,尋址范圍就可達到64KB。也就是說在尋址片外數(shù)據(jù)存儲器時,尋址范圍超過了256B,就不能用R0、R1做為間接尋址寄存器,而必須用DPTR寄存器做為間接尋址寄存器。
      1、通用寄存器區(qū)(00H-1FH)
      在00H—1FH共32個單元中被均勻地分為四塊,每塊包含八個8位寄存器,均以R0—R7來命名,我們常稱這些寄存器為通用寄存器。這四塊中的寄存器都稱為R0—R7,那么在程序中怎么區(qū)分和使用它們呢?聰明的INTEL工程師們又安排了一個寄存器——程序狀態(tài)字寄存器(PSW)來管理它們,CPU只要定義這個寄存的PSW的D3和D4位(RS0和RS1),即可選中這四組通用寄存器。對應(yīng)的編碼關(guān)系如下表所示。惹程序中并不需要用4組,那么其余的可用做一般的數(shù)據(jù)緩沖器,CPU在復位后,選中第0組工作寄存器。

      RS1 RS0

      R0

      R1

      R2

      R3

      R4

      R5

      R6

      R7

      0

      1

      2

      3

      0     0

      0     1

      1     0

      1     1

      00H

      08H

      10H

      18H

      01H

      09H

      11H

      19H

      02H

      0AH

      12H

      1AH

      03H

      0BH

      13H

      1BH

      04H

      0CH

      14H

      1CH

      05H

      0DH

      15H

      1DH

      06H

      0EH

      16H

      1EH

      07H

      0FH

      17H

      1FH

      2、位尋址區(qū)(20H-2FH)
      片內(nèi)RAM的20H—2FH單元為位尋址區(qū),既可作為一般單元用字節(jié)尋址,也可對它們的位進行尋址。位尋址區(qū)共有16個字節(jié),128個位,位地址為00H—7FH。位地址分配如下表所示:

      RAM位尋址區(qū)地址表

      單元地址

      MSB         位地址         LSB

       

      2FH

      7FH

      7EH

      7DH

      7CH

      7BH

      7AH

      79H

      78H

       

      2EH

      77H

      76H

      75H

      74H

      73H

      72H

      71H

      70H

       

      2DH

      6FH

      6EH

      6DH

      6CH

      6BH

      6AH

      69H

      68H

       

      2CH

      67H

      66H

      65H

      64H

      63H

      62H

      61H

      60H

       

      2BH

      5FH

      5EH

      5DH

      5CH

      5BH

      5AH

      59H

      58H

       

      2AH

      57H

      56H

      55H

      54H

      53H

      52H

      51H

      50H

       

      29H

      4FH

      4EH

      4DH

      4CH

      4BH

      4AH

      49H

      48H

       

      28H

      47H

      46H

      45H

      44H

      43H

      42H

      41H

      40H

       

      27H

      3FH

      3EH

      3DH

      3CH

      3BH

      3AH

      39H

      38H

       

      26H

      37H

      36H

      35H

      34H

      33H

      32H

      31H

      30H

       

      25H

      2FH

      2EH

      2DH

      2CH

      2BH

      2AH

      29H

      28H

       

      24H

      27H

      26H

      25H

      24H

      23H

      22H

      21H

      20H

       

      23H

      1FH

      1EH

      1DH

      1CH

      1BH

      1AH

      19H

      18H

       

      22H

      17H

      16H

      15H

      14H

      13H

      12H

      11H

      10H

       

      21H

      0FH

      0EH

      0DH

      0CH

      0BH

      0AH

      09H

      08

      H

       

      20H

      07H

      06H

      05H

      04H

      03H

      02H

      01H

      00H

       

      CPU能直接尋址這些位,執(zhí)行例如置“1”、清“0”、求“反”、轉(zhuǎn)移,傳送和邏輯等操作。我們常稱MCS-51具有布爾處理功能,布爾處理的存儲空間指的就是這些為尋址區(qū)。
      3、用戶RAM區(qū)(30H-7FH)
      在片內(nèi)RAM低128單元中,通用寄存器占去32個單元,位尋址區(qū)占去16個單元,剩下的80個單元就是供用戶使用的一般RAM區(qū)了,地址單元為30H-7FH。對這部份區(qū)域的使用不作任何規(guī)定和限制,但應(yīng)說明的是,堆棧一般開辟在這個區(qū)域。
      高128單元:(80H-FFH)

      符號

      地址

      功能介紹

      B

      F0H

      B寄存器

      ACC  

      E0H

      累加器

      PSW  

      D0H

      程序狀態(tài)字

      IP  

      B8H

      中斷優(yōu)先級控制寄存器

      P3  

      B0H

      P3口鎖存器

      IE  

      A8H

      中斷允許控制寄存器

      P2  

      A0H

      P2口鎖存器

      SBUF

      99H

      串行口鎖存器

      SCON

      98H

      串行口控制寄存器

      P1  

      90H

      P1口鎖存器

      TH1  

      8DH

      定時器/計數(shù)器1(高8位)

      TH0

      8CH

      定時器/計數(shù)器1(低8位)

      TL1

      8BH

      定時器/計數(shù)器0(高8位)

      TL0  

      8AH

      定時器/計數(shù)器0(低8位)

      TMOD

      89H

      定時器/計數(shù)器方式控制寄存器

      TCON

      88H

      定時器/計數(shù)器控制寄存器

      DPH  

      83H

      數(shù)據(jù)地址指針(高8位)

      DPL

      82H

      數(shù)據(jù)地址指針(低8位)

      SP

      81H

      堆棧指針

      P0

      80H

      P0口鎖存器

      PCON

      87H

      電源控制寄存器

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多