




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第 2章 增強型MCS-51單片機結構 第 2章 增強型MCS-51單片機結構 2.1 內部結構和引腳功能內部結構和引腳功能 2.2 輸入輸入/輸出輸出(I/O)口口2.3 存儲器系統存儲器系統2.4 MCS-51外部存儲器的連接外部存儲器的連接2.5 操作時序操作時序2.6 復位及復位電路復位及復位電路 2.7 節電運行狀態和掉電運行狀態節電運行狀態和掉電運行狀態 第 2章 增強型MCS-51單片機結構 1. 增強型增強型MCS-51單片機主要特征單片機主要特征 1996年3月Intel公司推出了增強型MCS-51內核的8XC5X(包括80C52、80C54、80C58、87C52、87C5
2、4、87C58、80C32等型號)系列單片機芯片,標志著增強型MCS-51內核8位單片機時代的開始,也意味著標準MCS-51內核8位單片機時代的終結,此后不久Intel、Philips等公司不再生產標準MCS-51內核的8位單片機芯片(如8051/8052、8751/8752、8031/32等型號)。與標準MCS-51內核芯片相比,增強型MCS-51內核單片機芯片具有如下特征: 第 2章 增強型MCS-51單片機結構 (1) 與標準MCS-51保持100%兼容,即可以使用增強型MCS-51芯片替換相應型號的標準MCS-51芯片,如用80C32取代8031/2、用87C51/2取代8751/2。
3、 (2) 片內集成了3個16位定時/計數器,其中T0、T1的功能與標準MCS-51系列相同;T2除了保留標準MCS-52子系列中定時/計數器T2功能外,還增加了向下計數和時鐘輸出功能。 (3) 采用增強型全雙工串行口,即增強型MCS-51串行口除了具有標準MCS-51串行口功能外,還具有幀錯誤偵測和自動地址識別功能。 (4) Philips、Temic Seconductor Technology公司的8XC5X、8XC5XX2芯片具有雙數據指針DPTR(為此增加了輔助功能寄存器AUXR1),方便了外部RAM不同存儲單元之間的數據傳送。 第 2章 增強型MCS-51單片機結構 (5) 為了降低
4、電磁輻射,允許關閉地址鎖存信號ALE。為此,增加了輔助功能寄存器AUXR。 (6) 擴展了中斷控制器功能,可以管理具有4個中斷優先級的6個中斷源。為此,增加了高8位中斷優先級控制寄存器IPH。 (7) 普遍采用CHMOS工藝,工作電壓低、范圍寬(1.8 V6.0 V),可用電池供電,方便了野外作業使用。 (8) 改進了電源管理功能,即允許通過外部中斷方式喚醒掉電模式。 (9) 提高了時鐘頻率,標準MCS-51最高時鐘頻率為12MHz,而增強型MCS-51最高時鐘頻率可達33 MHz。 (10) 片內程序存儲器以TOP ROM和Flash ROM為主。 第 2章 增強型MCS-51單片機結構 2
5、. 增強型增強型MCS-51內核主流芯片內核主流芯片 表2-1 增強型MCS-51主流芯片性能指標 第 2章 增強型MCS-51單片機結構 表2-1 增強型MCS-51主流芯片性能指標 第 2章 增強型MCS-51單片機結構 2.1 內部結構和引腳功能內部結構和引腳功能 2.1.1 內部結構內部結構P0口驅動器P0.0P0.7P0鎖存器RAMRAM地址寄存器寄存器B累加器Acc暫存器1暫存器2ALUP2鎖存器P2口驅動器P2.0P2.7特殊功能寄存器組堆棧指針SP片內程序存儲器PSW定時/計數及控制指令寄存器振蕩器PDRSTPSENP / ALEPPV / EAXTAL1XTAL2P1口驅動器
6、P1.0P1.7P1鎖存器P3鎖存器P3口驅動器P3.0P3.7程序地址寄存器緩沖器PC加1PC數據指針DPTR8168VCCVSSIR圖2-1 增強型MCS-51 CPU內部結構 第 2章 增強型MCS-51單片機結構 2.1.2 引腳功能引腳功能 圖圖2-2 增強型增強型MCS-51 CPU常常見封裝形式引腳見封裝形式引腳排列排列(a) DIP封裝;封裝;(b) PLCC封裝;封裝;(c) PQFP封裝封裝 1P1.0P1.12P1.23P1.34P1.45P1.56P1.67P1.78RESET9RXD / P3.010TXD / P3.1111213T0 / P3.414T1 / P3
7、.5151617X218X119GND20P3.2 /INT0P3.3 /INT1P3.6 /WRP3.7 /RD40VCCP0.039P0.138P0.237P0.336P0.435P0.534P0.633323130292827262524232221P0.7PPV /EAP / ALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0標準MCS -51芯片(8051 / 8751)PDIP40或CDIP40封裝引腳排列1P1.0 / T2P1.1 / T2EX2P1.23P1.34P1.45P1.56P1.67P1.78RESET9RXD / P3.010TXD /
8、 P3.1111213T0 / P3.414T1 / P3.5151617X218X119GND20P3.2 /INT0P3.3 /INT1P3.6 /WRP3.7 /RD40VCCP0.039P0.138P0.237P0.336P0.435P0.534P0.633323130292827262524232221P0.7VP /EAP / ALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0增強型MCS-51(8XC51系列)芯片PDIP40或CDIP40封裝引腳排列(a)Pin123456789101112131415FunctionNIC*P1.0 / T2P1.
9、1 / T2EXP1.2P1.3P1.4P1.5P1.6P1.7RSTP3.0 / RxDNIC*P3.1 / TxDINT0 /P3.2INT1 /P3.3* NIC表示內部沒有連接的空腳Pin161718192021222324252627282930FunctionP3.4 / T0XTAL2XTAL1VSSNIC*P2.0 / A8P2.1 / A9P2.2 / A10WR /P3.6RD /P3.7Pin3132333435363738394041424344FunctionP2.7 / A15ALENIC*P0.7 / AD7P3.5 / T1P2.3 / A11P2.4 / A1
10、2P2.5 / A13P2.6 / A14P0.6 / AD6P0.5 / AD5P0.4 / AD4P0.3 / AD3P0.2 / AD2P0.1 / AD1P0.0 / AD0VCCPSENPPV / EA(b)Pin123456789101112131415FunctionP1.5P1.6P1.7RSTP3.0 / RxDNIC*P3.4 / T0P3.1 / TxDWR /P3.6Pin161718192021222324252627282930FunctionVSSP2.0 / A8P2.1 / A9P2.2 / A10Pin3132333435363738394041424344
11、FunctionALENIC*P0.7 / AD7NIC*P2.3 / A11P2.4 / A12P2.5 / A13P2.6 / A14P0.6 / AD6P0.5 / AD5P0.4 / AD4P0.3 / AD3P0.2 / AD2P0.1 / AD1P0.0 / AD0VCCPPV / EA(c)INT0 /P3.2INT1 /P3.3P3.5 / T1RD /P3.7XTAL2XTAL1P2.7 / A15PSENNIC*P1.0 / T2P1.1 / T2EXP1.2P1.3P1.4PQFP122211144343323LCC717182829396140第 2章 增強型MCS-5
12、1單片機結構 圖2-3 增強型MCS-51 CPU引腳邏輯符號 VCCVSSRDWRT1PORT 0數據/地址總線PORT 1T2T2EXPORT 2高8位地址總線PORT 3T0INT1INT0TxDRxDRSTPPV / EAPSENPROG / ALEXTAL2XTAL1第 2章 增強型MCS-51單片機結構 表表2-2 引腳功能引腳功能 第 2章 增強型MCS-51單片機結構 表表2-2 引腳功能引腳功能 第 2章 增強型MCS-51單片機結構 表表2-2 引腳功能引腳功能 第 2章 增強型MCS-51單片機結構 圖2-4 增強型MCS-51振蕩電路及連接 5-30 pFC2C1晶體振
13、蕩器XTAL2XTAL1內部電阻內部電阻接片內時鐘電路與非門APD內部電阻第 2章 增強型MCS-51單片機結構 2.2 輸入輸入/輸出(輸出(I/O)口)口 圖2-5 MCS-51 I/O口等效電路(a) P1口;(b) P0口;(c) P2口;(d) P3口 三態門讀鎖存器DQCLKQP1.X腳鎖存器內部總線寫鎖存器讀引腳三態門V2VCC上拉電阻P1.X引腳(a)三態門讀鎖存器DQCLKQP0.X腳鎖存器內部總線寫鎖存器讀引腳三態門V2VCCP0.X引腳(b)地址/數據與門V1控制信號(0/1)多路開關三態門讀鎖存器DQCLKQP2.X腳鎖存器內部總線寫鎖存器讀引腳三態門V2VCCP2.X
14、引腳(c)地址A15A8控制信號(0/1)多路開關上拉電阻三態門讀鎖存器DQCLKQP3.X腳鎖存器內部總線寫鎖存器讀引腳三態門V2VCCP3.X引腳(d)第二功能輸出第二功能輸入上拉電阻與非門第 2章 增強型MCS-51單片機結構 2.2.1 P1口內部結構及使用口內部結構及使用 圖2-6 P1.X作為輸入引腳的示意圖 MCS51P1.X(輸入)輸入低電平RCVCCNPNRb第 2章 增強型MCS-51單片機結構 圖2-7 驅動三極管基極時I/O引腳被鉗位 MCS-51P1.X(輸出)RCVCC第 2章 增強型MCS-51單片機結構 2.2.2 P0口內部結構及使用口內部結構及使用 1作為作
15、為I/O端口時端口時 P0口作為I/O端口使用時,多路開關“控制”信號為“0”(低電平),與門輸出低電平,V1管截止,同時多路開關轉向鎖存器反相輸出端。輸出時,寫鎖存器脈沖CLK有效,輸出信號經內部總線鎖存器輸入端D反相輸出端多路開關V2 柵極V2漏極到輸出端。由于V1管截止,所以作為輸出口時,P0口是漏極開路輸出,類似于OC門,當驅動拉電流負載時,需要外接上拉電阻,P0口帶有鎖存器,因此具有輸出鎖存功能。P0作為輸入口時,與P1口類似,也必須先執行寫端口指令,如:SETB P0.X或MOV P0,#0FFH將P0口鎖存器置“1”,端輸出低電平,使V2管截止(這時V1、V2均截止,P0.X引腳
16、懸空),否則P0.X引腳也有可能被鉗位在低電平狀態。在讀引腳信號作用下,輸入信息經P0.X引腳讀引腳三態門電路到內部總線。第 2章 增強型MCS-51單片機結構 2. 作為地址作為地址/數據總線時數據總線時 在訪問外部存儲器時,P0口作為地址/數據總線使用, 這時多路開關“控制”信號為“1”,與門解鎖,與門輸出信號電平由“地址/數據”線信號決定;同時多路開關與反相器的輸出端相連,地址信號經“地址/數據”線反相器V2柵極V2 漏極輸出,例如地址信號為“0”,與門輸出低電平,V1管截止;反相器輸出高電平,V2管導通,輸出引腳的地址信號為低電平。反之,地址信號為“1”, 與門輸出高電平,V1管導通;
17、反相器輸出低電平,V2管截止,輸出引腳的地址信號為高電平。可見,在輸出“地址/數據”信息時,V1、V2交替導通,負載能力很強, 可以直接與存儲器地址線相連,無需增加總線驅動器。 第 2章 增強型MCS-51單片機結構 同時P0口又作為數據總線使用,在訪問外部程序存儲器時,P0口輸出低8 位地址信息后,將變為數據總線,以便讀指令碼(輸入)。在取指令期間,“控制”信號為“0”,V1管截止,多路開關也跟著轉向鎖存器反相輸出端;同時,CPU 自動將0FFH寫入P0口鎖存器,使V2管截止,在讀引腳信號控制下,通過讀引腳三態門電路將指令碼讀到內部總線。 如果該指令是輸出數據,如“MOVX DPTR,A”(
18、將累加器A內容通過P0口數據總線傳送到外部RAM中),則多路開關“控制”信號為“1”,與門解鎖, 與輸出地址信號類似,數據由“地址/數據”線反相器V2柵極V2漏極輸出。 第 2章 增強型MCS-51單片機結構 如果該指令是輸入數據(讀外部數據存儲器或程序存儲器),如“MOVX A,DPTR”(將外部RAM某一存儲單元內容通過P0口數據總線輸入到累加器A中),則輸入的數據仍通過讀引腳三態門到內部總線,其過程類似于讀指令碼。 通過以上分析,可以看出當P0口作為地址/數據總線使用時, 在讀指令碼或輸入數據前,CPU自動向P0口鎖存器寫入0FFH,破壞了P0口原來的狀態。因此, 不能再作為通用I/O端
19、口,這點在系統硬件設計時務必注意,即程序中不能再含有以P0 口作為操作數(包括源操作數和目的操作數)的指令。 第 2章 增強型MCS-51單片機結構 2.2.3 P2口內部結構及使用口內部結構及使用 1. 作為作為I/O端口時端口時 沒有外部程序存儲器或雖然有外部數據存儲器,但容量不大于256字節,不需要高8位地址時(在這種情況下,不能通過數據地址寄存器DPTR讀寫外部數據存儲器),P2口可以作為I/O端口使用。這時,“控制”信號為“0”,多路開關轉向鎖存器同相輸出端Q,輸出信號經內部總線鎖存器輸出端Q反相器V2管柵極V2管漏極輸出。由于V2管漏極帶有上拉電阻,可以提供一定的上拉電流,負載能力
20、約為4個TTL與非門;作為輸入口前,同樣需要向鎖存器寫入“1”,使反相器輸出低電平,V2管截止,即引腳懸空時為高電平,防止引腳被鉗位在低電平。讀引腳信號有效后,輸入信息經讀引腳三態門電路到內部數據總線。 第 2章 增強型MCS-51單片機結構 2. 作為地址總線時作為地址總線時 P2口作為地址總線時,“控制”信號為“1”,多路開關轉向“地址”線,地址信息經反相器V2管柵極漏極輸出。由于P2口輸出高8位地址,與P0口不同,無需分時使用,因此P2口上的地址信息(程序存儲器的A15A8)或數據地址寄存器高8位DPH保存時間長,無需鎖存,關于這點可參看如圖2-19所示的外部存儲器讀寫時序。 第 2章
21、增強型MCS-51單片機結構 2.2.4 P3口內部結構及使用口內部結構及使用 P3口內部結構如圖2-5(d)所示,不過P3口是個多功能口,它除了可以作為一般的I/O口外,還具有第二功能,如表2-2所示。 作為I/O口時,第二功能輸出控制信號為高電平,與非門等效為一個反相器,與P2 口情況類似。此外,作為第二功能輸出時,CPU會自動向鎖存器寫入“1”,打開與非門,這時與非門同樣等效于一個反相器,第二功能輸出信號經與非門V2管的柵極漏極P3.X引腳;作為第二功能輸入時,“第二功能輸出”控制端、鎖存器輸出端均為“1”, 與非門輸出低電平,V2管截止,輸入信號經引腳緩沖器第二功能輸入。 第 2章 增
22、強型MCS-51單片機結構 2.2.5 I/O口負載能力口負載能力 圖2-8 P1P3口驅動三極管電路 8XC5X CPUP1.XRCVCCV(a)8XC5X CPUP1.XRCVCCV(b)8XC5X CPUP1.XReVCCV(c)RbRb4.3 k9.1 k第 2章 增強型MCS-51單片機結構 2.2.6 讀鎖存器和讀引腳指令讀鎖存器和讀引腳指令 當把P0P3口作為輸入引腳使用時,以I/O口作為源操作數的數據傳送指令、算術及邏輯運算指令、位測試轉移指令等屬于讀引腳指令,如: MOVC, P1.0; 將P1.0引腳信號讀到位累加器C中 MOVA, P1; 將P1口的P1.0P1.7引腳信
23、號讀到 累加器A中第 2章 增強型MCS-51單片機結構 ANLA, P1 ; 將P1口的P1.0P1.7引腳信號與累加器A相與ADDA, P1; 將P1口的P1.0P1.7引腳信號與累加器A相加JBP1.0, LOOP; P1.0引腳信號為1,則轉移JNB P1.0, LOOP ; P1.0引腳信號為0,則轉移而所有的“讀改寫”指令均讀I/O口鎖存器,如:JBC P1.0 , LOOP ; P1.0鎖存器為1轉移,且將P1.0鎖存器 清零DEC P1INC P1 CPL P1.0 第 2章 增強型MCS-51單片機結構 2.3 存儲器系統存儲器系統 圖圖2-9 8XC5X/8XC5XX2系列
24、單片機存儲器結構系列單片機存儲器結構 外部ROM外部ROMFFFFH0000H0EA 片內ROM4 KB32 KB1EA 低128字節內部RAM00H高128字節內部RAM7FH80HFFH特殊功能寄存器0000H外部數據存儲器空間FFFFH(a)外部ROM外部ROM4 KBFFFFH0000H0EA 片內ROM4 KB1EA 00H7FH80HFFH特殊功能寄存器0000H外部數據存儲器空間FFFFH(b)1000H0FFFH內部RAM第 2章 增強型MCS-51單片機結構 在8XC32/8XC52/54/58系列中,盡管高128字節內部RAM地址空間與特殊功能寄存器地址空間重疊,但使用不同
25、尋址方式訪問,也不會造成混亂,例如: MOV R0, #90H MOV R0,A ; 把累加器A內容送內部RAM 90H單元。MCS-51規定,對于高128 ; 字節內部RAM只能用寄存器間接尋址方式訪問 MOV 90H,A ; 把累加器A內容送地址為90H的特殊功能寄存器(即P1口)。MCS-51 ; 規定特殊功能寄存器只能用直接尋址方式讀寫 第 2章 增強型MCS-51單片機結構 2.3.1 程序存儲器程序存儲器 對于帶有片內ROM的MCS-51系列單片機來說,片內程序存儲器和外部程序存儲器地址空間重疊。如果 /VPP引腳為高電平,且程序計數器PC小于等于片內ROM的地址空間時,將從片內程
26、序存儲器取指令(在這種情況下,信號無效);而當PC超出片內ROM地址空間時,自動到外部程序存儲器取指令, 即在P0口輸出低8位地址(A0A7),在P2口輸出高8位地址(A15A8)。當/VPP引腳為低電平時,一律從外部程序存儲器取指令。因此對于不帶ROM或EPROM的80C31、80C32 CPU來說,/VPP引腳一律接地。 EA第 2章 增強型MCS-51單片機結構 增強型MCS-51系列單片機保留給系統使用的程序存儲器地址空間如下:系統復位0000H外部中斷0()服務程序入口地址0003H定時器0中斷服務程序入口地址000BH外部中斷1()服務程序入口地址0013H定時器1中斷服務程序入口
27、地址001BH串行口中斷服務程序入口地址0023H定時器2中斷服務程序入口地址002BH 第 2章 增強型MCS-51單片機結構 復位后,程序計數器PC為0000H,即從程序存儲器的0000H單元讀出第一條指令,因此可在0000H單元內放置一條跳轉指令,如LJMP XXXX(XXXX表示主程序入口地址)。由于系統給每一中斷服務程序預留了8個字節,因此,用戶主程序一般存放在0033H單元以后,如:ORG 0000H;用偽指令ORG指示隨后的指令碼從0000H單元開 始存放LJMP Main;在0000H單元放一條長跳轉指令,共3個字節ORG 0003HLJMP INT0;跳到外中斷服務程序的入口
28、地址;其他中斷入口地址初始化ORG 50H ;主程序代碼從50H單元開始存放 Main:;Main是主程序入口地址標號 第 2章 增強型MCS-51單片機結構 2.3.2 片內數據存儲器片內數據存儲器 1. 片內片內RAM 8XC51、8XC31芯片內部RAM容量為128字節,根據用途可劃分為工作寄存器區、位尋址區和用戶數據存儲器區(可作用戶RAM和堆棧區),如表2-3所示;對于8XC52/54/58芯片來說,內部RAM的容量為256字節,除了低128字節內部RAM外,還具有高128 字節(80HFFH)內部RAM,可作為內部用戶數據存儲區和堆棧區,即8XC52/54/58芯片內部用戶RAM的
29、容量多了128字節。但由于高128字節RAM的地址編碼與特殊功能寄存器重疊,因此,只能通過寄存器間接尋址方式讀寫。 第 2章 增強型MCS-51單片機結構 表表2-3 內部內部RAM地址空間地址空間 字節地址高128字節內部RAMFFH80H用戶RAM和堆棧區7FH30H第 2章 增強型MCS-51單片機結構 續表 第 2章 增強型MCS-51單片機結構 2. 特殊功能寄存器特殊功能寄存器 由于單片機內集成了一些常用的I/O接口電路,如并行I/O端口、串行口、定時器/計數器、中斷控制器等,因此這些I/O接口單元電路內的寄存器也就位于CPU內部, 統稱為特殊功能寄存器(SFR,即Special
30、Function Registers)。 MCS-51 CPU與通用微處理不同,除了給I/O接口電路寄存器,如定時/計數器控制寄存器TCON分配字節地址外,CPU內的寄存器也有字節地址,如累加器Acc字節為0E0H。增強型MCS-51系列單片機內共有27個特殊功能寄存器,其地址分散在80HFFH之間,如表2-4所示。 第 2章 增強型MCS-51單片機結構 表2-4 特殊功能寄存器地址映象 第 2章 增強型MCS-51單片機結構 表2-4 特殊功能寄存器地址映象 第 2章 增強型MCS-51單片機結構 表2-4 特殊功能寄存器地址映象 第 2章 增強型MCS-51單片機結構 1) 累加器Acc
31、 CPU內部特有的寄存器, 常用于存放參加算術或邏輯運算的兩個操作數中的一個及運算結果,即用于存放目的操作數,例如: ADD A,30H ;在指令中,累加器Acc常簡寫為“A” 該指令的含義是以累加器Acc內容作為被加數,加數存放在內部RAM的30H單元中,相加后的結果,即和再存放到累加器Acc中。 由于早期的CPU沒有乘法運算功能,乘法運算需要通過多次加法運算實現, 而在多次加法運算中,寄存器Acc總是存放中間結果,即起了累加功能, 因此也就用“累加器”來稱呼該寄存器。 第 2章 增強型MCS-51單片機結構 2) B寄存器 B寄存器也是CPU內特有的一個寄存器,主要用于乘法和除法運算。在乘
32、法運算中,被乘數放在累加器Acc中,乘數放在B寄存器中,積的高8位存放B寄存器中,低8位放在累加器Acc中,如: MUL AB ; BAAB 在除法運算中,被除數放在累加器Acc中,除數放在B寄存器中。運算后,商放在累加器Acc中,而余數放在B寄存器中。 第 2章 增強型MCS-51單片機結構 3) 程序狀態字寄存器PSW 程序狀態字寄存器有時也稱為“標志寄存器”,由一些標志位組成,用于存放指令運行的狀態,MCS-51中PSW寄存器各位含義如下: b7b6b5b4b3b2b1b0CyACF0RS1RS0OV-P Cy:進位標志。在進行加法運算時,當最高位即b7位有進位,或執行減法運算最高位有借
33、位時,Cy為1;反之為0。 第 2章 增強型MCS-51單片機結構 AC:輔助進位標志。在進行加法運算時,當b3位有進位,或執行減法運算b3位有借位時,AC為1,反之為0。設置輔助進位標志AC的目的是為了便于BCD碼加法、減法運算的調正。 OV: 溢出標志。在計算機內,帶符號數一律用補碼表示。在8位二進制中,補碼所能表示的范圍是-128+127,而當運算結果超出這一范圍時,OV 標志為1,即溢出;反之為0。 P: 奇偶標志。該標志位始終體現累加器Acc中“1”的個數的奇偶性。 如果累加器Acc中“1”的個數為奇數,則P位置1;當累加器A中“1”的個數為偶數(包括 0個)時,P位為“0”,即MC
34、S-51采用奇校驗方式。 第 2章 增強型MCS-51單片機結構 【例2.1】 分析執行如下指令后,PSW寄存器各標志位的值。 MOV A,#10101101B ; 把立即數0ADH傳送到累加器A中, 由于立即數0ADH 中共; 有5個“1”,因此該指令執行后,奇偶 標志位P為“1”ADD A,#01111101B ; 0ADH與7DH相加,結果存放在A中 1 0 1 0 1 1 0 1 ; 173(無符號數);-83(帶符號數)+ 0 1 1 1 1 1 0 1 ; 125(無符號數);+125(帶符號數) 1 0 0 1 0 1 0 1 0 ; 作為無符號數時,和為12AH(由于結 果超出
35、FFH,前面的“1” ; 自然丟失,寄存器A的內容為2AH), 即298;作為有符號數時, ; 和為2AH,即42 第 2章 增強型MCS-51單片機結構 【例2.2】 分析執行如下指令后,PSW寄存器各標志位的值。MOV A,#10101101B; 把立即數0ADH傳送到累加器A中,由于立 即數0ADH 中共; 有5個“1”,因此該指令執行后,奇偶標志 位P為“1”ADD A,#10011101B; 0ADH與9DH相加,結果存放在A中 1 0 1 0 1 1 0 1 ; 173(無符號數);-83(帶符號數) + 1 0 0 1 1 1 0 1 ; 157(無符號數);-99(帶符號數)
36、1 0 1 0 0 1 0 1 0 ; 作為無符號數時,和為14AH(由于結果超出 FFH,前面的“1”; 自然丟失,寄存器A內容為4AH),即330; 作為有符號數時,; 和為-182 第 2章 增強型MCS-51單片機結構 由于b7位向前進位,因此Cy為“1”;b3位也有進位,AC位也為“1”;而作為帶符號數時,結果為4AH,即+74,顯然不對,因為兩個負數相加結果為正數是不可能的。之所以出錯,是因為-83加-99的結果為-182,超出-128+127。因此,OV標志位為“1”。 兩個同號數相加,結果可能溢出,而當OV標志位為“1”時,說明存放在目的操作數中的結果不正確。 不難發現:兩個同
37、號數相加,結果可能溢出;兩個異號數相加,結果肯定不會溢出。兩個同號數相減,結果肯定不會溢出;而兩個異號數相減,結果可能溢出。而當溢出標志OV為1時,結果不正確。 第 2章 增強型MCS-51單片機結構 RS1、RS0:工作寄存器組選擇位,前面已介紹過。 F0:用戶標志位,可通過位操作指令將該位置1或0。 PSW.1:保留位。 在計算機中, 對于沒有定義的位或字節,我們必須注意是否存在物理存儲單元與之對應。當存在物理存儲單元與之對應時,用戶就可以讀寫。而沒有相應物理存儲單元與之對應時, 則不能使用,否則讀操作結果將不確定,而寫入的數據將丟失,如特殊功能寄存器地址映象空間內80HFFH中,許多單元
38、并沒有相應的物理存儲器。 第 2章 增強型MCS-51單片機結構 4) 堆棧指針SP 在計算機內,需要一塊具有“先進后出”(First In Last Out,簡稱FILO)特性的存儲區,用于存放子程序調用(包括中斷響應)時程序計數器PC的當前值,以及需要保存的CPU內各寄存器的值(即現場),以便子程序或中斷服務程序執行結束后能正確返回主程序。這一存儲區稱為堆棧區。為了正確存取堆棧區內的數據,需要一個寄存器來指示最后進入堆棧的數據所在存儲單元的地址,堆棧指針SP寄存器就是為此設計的。 在增強型MCS-51系列單片機中,SP可以指向內部RAM中任一單元,且堆棧向上生長,即將數據壓入堆棧后,SP寄
39、存器內容增大。假設SP當前值為2FH,則入堆指令“PUSH B”(將寄存器B內容壓入堆棧)的執行過程如圖2-10所示。 第 2章 增強型MCS-51單片機結構 圖2-10 “PUSH B”指令的執行過程(a) PUSH B指令執行前;(b)SP加1;(c) 寄存器B存入SP指定的單元中 32H31H30H2FHSP(a)32H31H30H2FHSP(b)32H31H30H2FHSP(c)B第 2章 增強型MCS-51單片機結構 圖2-11 “POP B”指令的執行過程(a) POP B指令執行前;(b) 將SP指定單元內容傳送到寄存器B中;(SP減1 (a)(b)(c)32H31H30H2FH
40、SPB32H31H30H2FHSP32H31H30H2FHSP第 2章 增強型MCS-51單片機結構 數據入棧的操作過程為:先將SP加1(即SPSP+1),然后將要入棧的數據存放在SP指定的存儲單元中。而將數據從堆棧中彈出時,先將SP寄存器指定的存儲單元內容傳送到POP指令給定的寄存器或內部RAM單元中,然后SP減1(即SPSP-1)。 另外,可以看出堆棧的底部是固定的,而堆棧的頂部則隨著數據入棧和出棧而上下浮動。 第 2章 增強型MCS-51單片機結構 系統復位后,PSW的b4、b3位為00,即選擇了工作寄存器區中的0區作為當前工作寄存器區,SP寄存器的初值為07H,當有數據進入堆棧時,將從
41、08H單元開始存放,這一般是不允許的,因為08H1FH屬于工作寄存器區,不宜占用;20H2FH是位地址區,也需要部分或全部保留。因此,必須通過數據傳送指令重新設置SP的初值,將堆棧底部設在30H7FH(對于只有128字節內部RAM的8XC31/8XC51)或30HFFH(對于具有256字節內部RAM的8XC32/8XC52/54/58)之間,如: MOV SP,#5FH ; 將堆棧設在60H單元之后 第 2章 增強型MCS-51單片機結構 CPU內30HFFH單元既可以作為堆棧區,同時也是用戶數據存儲區。由于單元數量有限,必須充分利用,因此應認真考慮將堆棧底部設在何處。隨著入棧數據的增多,對于
42、僅有低128字節內部RAM的80C31、80C51來說,當SP超出7FH時發生上溢,這將出現不可預料的后果。因此,在設置SP初值時,必須考慮堆棧最大深度。子程序或中斷嵌套層數越多,所需的堆棧深度就越大。為了避免堆棧頂部進入用戶數據存儲區而造成混亂, 一般將堆棧設在用戶數據存儲區之上。如在某一應用系統中,需要32個字節作為用戶 數據存儲區(如30H4FH), 則初始化時將堆棧底部設在50H,即堆棧深度為48個字節(50H7FH)。 第 2章 增強型MCS-51單片機結構 MOV SP, #4FH;SP初值為4FH 對于具有高128字節的8XC32、8XC52/54/58等CPU來說,最好將堆棧區
43、設在80H0FFH之間的高128字節內部RAM中,而將具有直接尋址功能的低128字節內部RAM作為用戶數據存儲區,以便可用多種尋址方式存取用戶數據。當然,SP也不允許超出0FFH,否則同樣發生上溢。例如預計某系統所需最大堆棧深度為32字節,可通過如下指令將棧底設在0E0H處。 MOV SP, #0DFH ;SP初值為0DFH 涉及入棧出棧操作的指令有: PUSH direct ; 將內部RAM單元壓入堆棧中 POP direct ; 從堆棧中將數據彈入內部RAM單元中 第 2章 增強型MCS-51單片機結構 5) 數據指針DPTR 數據指針DPTR是一個16位的專用寄存器,由DPH(數據指針高
44、8位)和DPL(數據指針低8位)組成,用于存放外部數據存儲器的存儲單元地址。由于DPTR是16位的寄存器,因此通過DPTR寄存器間接尋址方式可以訪問0000HFFFFH全部64 KB的外部數據存儲器空間。 例如,可用如下指令將累加器A的內容傳送到外部數據存儲器的107FH單元中: MOV DPTR,#107FH ; 將外部數據存儲地址107FH以立即數方式 傳送到DPTR寄存器 MOVX DPTR,A ; 將累加器A的內容傳送到DPTR 寄存器內容 指定的外部數據存儲器; 單元中 第 2章 增強型MCS-51單片機結構 為了方便外部RAM之間的數據塊傳送,增強型MCS-51采用雙數據指針,由輔
45、助功能寄存器1(AUXR1)控制,該寄存器各位含義如下: AUXR1(字節為0A2H) b7b6b5b4b3b2b1b0-GF20-DPS第 2章 增強型MCS-51單片機結構 其中: GF2可作為用戶標志位。 DPS數據指針切換位。當DPS=0時,DPTR寄存器對應物理指針DPTR0;當DPS=1時,DPTR寄存器對應物理指針DPTR1。 b2位恒為0,且不能寫入。這樣就可以通過INC AUXR1指令快速切換數據指針,而不影響GF2標志(由于b2位不能寫入,加1操作時,b1向b2進位將自動丟失,影響不到b7b3位)。 第 2章 增強型MCS-51單片機結構 6) I/O端口寄存器 P0、P1
46、、P2、P3口寄存器實際上就是P0P3口對應的I/O端口鎖存器,用于鎖存通過端口輸出的數據。 在增強型MCS-51中,特殊功能寄存器分別隸屬于CPU內不同的單元電路,具體如下: CPU單元包含的寄存器:Acc、B、SP、PSW、DPTR、AUXR、AUXR1和程序計數器PC。 PC是一個16位的地址寄存器,用于存放當前指令碼在程序存儲器中的地址,但PC不屬于特殊功能寄存器,它沒有物理地址。 第 2章 增強型MCS-51單片機結構 另外,MCS-51系列單片機有些特別,CPU單元內的寄存器,如累加器A、寄存器B、堆棧指針SP、程序狀態字PSW,以及工作寄存器組R7R0等具有字節地址,這樣在匯編語
47、言指令中,對這些寄存器操作時,可以使用寄存器名,也可以直接引用這些寄存器對應的字節地址。例如: MOV A,#30H ; 將立即數30H傳送到累加器A中,這條指 令的目的操作數使用了寄存器; 尋址方式 MOV 0E0H,#30H ; 將立即數30H傳送到直接地址0E0H 中,這條指令的目的操作數使用了 直接; 尋址方式 第 2章 增強型MCS-51單片機結構 定時/計數器單元包含的寄存器:TMOD、TCON、T2CON、T2MOD、TH0與TL0(分別是定時器T0的高8位和低8位) 、TH1與TL1(分別是定時器T1的高8位和低8位)、TH2與TL2(分別是定時器T2的高8位和低8位)以及定時
48、器T2的重裝捕捉寄存器RCAPL2、RCAPH2。 并行I/O端口寄存器:P0P3。 中斷單元電路內的寄存器:IE、IP、IPH。 串行通訊單元電路內的寄存器:SCON、SBUF、PCON、SADDR、SADEN。 第 2章 增強型MCS-51單片機結構 3. 內部數據存儲器之間的數據傳送及尋址方式內部數據存儲器之間的數據傳送及尋址方式 (1) 00H7FH共128字節的內部RAM存儲器, 可以通過直接尋址方式或寄存器間接尋址方式讀寫,如: MOV 30H,#35H ;直接尋址方式 該指令將立即數35H寫入內部數據存儲器地址編碼為30H的單元中。所謂直接尋址,就是在指令中直接給出了內部RAM單
49、元的地址編碼。 MOV R0,#35H ;寄存器間接尋址方式 該指令將立即數35H寫入由R0寄存器內容指定的內部RAM單元中。如果該指令執行前,R0的內容為30H,則上述兩條指令執行后,效果相同,均把立即數35H寫入內部RAM的30H單元內。所謂寄存器間接尋址,就是將內部RAM的地址存放在寄存器R0或R1中。 第 2章 增強型MCS-51單片機結構 (2) 對于特殊功能寄存器只能使用直接尋址方式訪問,如: MOV 0E0H,#35H ;直接給出累加器Acc的地址 對于特殊功能寄存器來說,使用直接尋址方式不夠直觀。由于每一個特殊功能寄存器均有一個與之相應的寄存器名,因此在指令中最好直接引用特殊功
50、能寄存器名,如累加器用Acc,P1、AUXR1等取代對應的特殊功能寄存器地址,例如上述指令可以寫作: MOV Acc,#35H ;指令中直接給出特殊功能寄存器名 又如:MOV 90H,#0FFH指令也可以寫作: MOV P1,#0FFH 第 2章 增強型MCS-51單片機結構 其實,對于特殊功能寄存器來說,用直接地址和寄存器名尋址沒有區別,匯編時,匯編程序將通過查表方式將寄存器名換成直接地址。但必須注意引用特殊功能寄存器名,僅是為了提高程序的可讀性,與寄存器尋址方式不同,例如: MOV Acc,#35H ; 用特殊功能寄存器名,在本質上目的操 作數屬于直接尋址,該指令 ; 操作碼為:75H,E
51、0H,35H。其中75H是 操作碼,E0H是Acc的地址, ; 35H 是立即數 MOV A,#35H ; 寄存器尋址,操作碼為74H,35H。同 樣,35H也是立即數 第 2章 增強型MCS-51單片機結構 (3) 高128字節(80HFFH)內部RAM的訪問。對于具有256字節內部RAM的52系列來說,高128字節內部RAM地址空間與特殊功能寄存器的地址重疊,讀寫時需要通過不同的尋址方式加以區別:規定用寄存器間接尋址方式訪問高128字節(80HFFH)的內部RAM; 用直接尋址方式訪問特殊功能寄存器。如在52系列中,“MOV 0E0H,#35H”指令的含義是將立即數35H寫入累加器A中,與
52、“MOV A,#35H ”含義相同,而不是把立即數 35H 寫入內部RAM的0E0H單元中。將立即數35H傳送到內部RAM的0E0H單元中只能通過如下指令進行:MOV R0,#0E0H ;將內部RAM地址E0H寫入R0寄存器中 MOV R0,#35H ;高128字節內部RAM只能通過寄存器間接 尋址訪問 第 2章 增強型MCS-51單片機結構 (4) 位尋址區。MCS-51系列單片機既是8位機,同時也是一個功能完善的一位機。 作為一位機時,它有自己的CPU、位存儲區(位于內部RAM的20H2FH單元)、位寄存器, 如將進位標志Cy作為“位累加器”,以及具有完整的位操作指令,包括置1、清零、非(
53、取反)、與、或、異或、傳送、測試轉移等。 對于位存儲器(即20H2FH單元中的128個位),只能使用直接尋址方式確定操作數所在的存儲單元,如: 第 2章 增強型MCS-51單片機結構 MOV C,23H ; 位傳送指令,即將位地址23H單元(對應20H字節 單元的b3位)內容傳送到; 位累加器C中 CLR 23H ; 位清零指令,即將位地址23H單元清零 SETB 23H ; 位置1指令,即將位地址23H單元置1 CPL 23H ; 位取反操作,即將位地址23H單元內容取反 ORL C,23H ; 或運算,23H位單元與位累加器C相或, 結果存 放在位累加器C中 ANL C,23H ; 與運算
54、,23H位單元與位累加器C相與, 結果存 放在位累加器C中 第 2章 增強型MCS-51單片機結構 對于具有位地址的特殊功能寄存器中的位,除了使用位地址尋址外,還可以使用“位定義名”或“寄存器名.位”表示,如將程序狀態字寄存器PSW中的b3 位置0,可以用: CLR D3H ; 位地址方式 CLR RS0 ; 位定義名方式(作為一個良好的習慣,建議使用 位定義名方式) CLR PSW.3 ;“寄存器名.位”方式 盡管書寫形式不同,但匯編時,匯編程序均自動將它們轉換成位地址方式,因此這三條指令完全等效,不過使用“位定義名”和“寄存器名.位”的方式更容易理解。 第 2章 增強型MCS-51單片機結
55、構 2.3.3 外部數據存儲器外部數據存儲器 通過P0、P2口最多可以連接64 KB的外部數據存儲器,有關外部數據存儲器的連接及讀寫方式參閱“外存儲器連接”部分。 第 2章 增強型MCS-51單片機結構 2.4 MCS-51外部存儲器的連接外部存儲器的連接 由于下列原因,在MCS-51系列單片機系統中,可能需要擴展外部程序存儲器,尤其是外部數據存儲器或I/O端口:部分型號CPU,如80C31、80C32沒有內置EPROM或OTP ROM,需要外部程序存儲器;片內數據存儲器容量小,當需要大容量的數據存儲器時,就需要擴展外部數據存儲器;MCS-51可用的I/O引腳數目有限,常需要擴展I/O口,而在
56、MCS-51中,擴展I/O端口是外部數據存儲器空間的一部分。因此,在MCS-51系列單片機控制系統中,不可避免地涉及存儲器的擴展問題。 第 2章 增強型MCS-51單片機結構 在單片機系統中,一般只使用EPROM、EEPROM、Flash ROM以及靜態RAM存儲器芯片擴展系統存儲器,很少使用動態RAM。因此,外存儲器芯片與CPU的接口電路較簡單,只需考慮如下幾個問題即可: (1) CPU三總線(地址總線、數據總線、控制總線)的負載能力。CPU三總線可直接驅動一個到數個TTL門電路,或者說CPU三總線的負載能力為一個或數個TTL負載門。而存儲器多為MOS器件,直流輸入阻抗大,直流負載很小,但輸
57、入電容較大。因此,當存儲器芯片與CPU連接時,主要考慮交流負載能力。 第 2章 增強型MCS-51單片機結構 (2) 確定存儲器三總線與CPU三總線之間的連接方式。即需要確定存儲器地址總線與CPU地址總線的連接方式,存儲器數據總線與CPU數據總線的連接方式,存儲器控制線(讀/寫控制信號、片選信號、輸出允許信號)與CPU相應控制線的連接方式。 (3) CPU讀寫時序與存儲器存取速度的匹配問題。存儲器的讀寫速度應與CPU要求的讀寫速度相同或更快,否則必須降低CPU時鐘信號頻率或選用讀寫速度更快的存儲器芯片。因為在單片機系統中,CPU讀寫時序不是通過插入等待狀態來存取低速的外存儲器。 第 2章 增強
58、型MCS-51單片機結構 2.4.1 CPU地址線與存儲器地址線的連接地址線與存儲器地址線的連接 1. 全譯碼法全譯碼法 圖圖2-12 存儲器與存儲器與CPU的連接方式一的連接方式一(全譯碼法全譯碼法) A0A1109A28A37A46A55A64A73A825A924A102123226222027VPP1A11A12A13OECEPGM27128IC2D0D1D2D3D4D5D6D71112131516181917A0A1109A28A37A46A55A64A73A825A924A102123226222027VPP1A11A12A13OECEPGM27128IC1D0D1D2D3D4D5
59、D6D71112131516181917A13A0PSEN5 VY0Y1Y2Y3456774LS139123ABEA14A15D7D0第 2章 增強型MCS-51單片機結構 2. 部分譯碼法部分譯碼法 圖2-13 存儲器與CPU的連接方式二(部分譯碼法) A0A1109A28A37A46A55A64A73A825A924A102123226222027VPP1A11A12A13OECEPGM27128IC2D0D1D2D3D4D5D6D71112131516181917A0A1109A28A37A46A55A64A73A825A924A102123226222027VPP1A11A12A13O
60、ECEPGM27128IC1D0D1D2D3D4D5D6D71112131516181917A13A0PSEN5 VA14D7D021IC3A7404第 2章 增強型MCS-51單片機結構 3. 線選法線選法 圖圖2-14 存儲器與存儲器與CPU的連接方式三(線選法)的連接方式三(線選法) A0A1109A28A37A46A55A64A73A825A924A1021232222726CS220A11A12OEWECS16264IC2D0D1D2D3D4D5D6D71112131516181917A12A0WRA13D7D0A0A1109A28A37A46A55A64A73A825A924A10
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030中國城市空中交通行業深度分析及發展前景與發展戰略研究報告
- 2025-2030中國堅果行業市場深度調研及發展趨勢與投資前景研究報告
- 2025-2030中國地毯市場深度調查研究報告
- 機房設施維護合同范本
- 杭州桐廬縣中醫院醫共體招聘護理人員考試真題2024
- 2025年注冊驗船師歷年真題答案
- 微量元素與兒童生長發育-全面剖析
- 人工礁石養殖技術-全面剖析
- 度假村旅游體驗提升-全面剖析
- 脂質氧化應激與心血管疾病關聯-全面剖析
- 特種工作作業人員體格檢查表
- 清遠市城市樹木修剪技術指引(試行)
- 廣州國際文化中心詳細勘察報告正文-171229end
- 警察禮儀(PPT53頁)
- 《關于加強高等學校食堂管理工作的意見》解讀
- 《尚藝發型標準剪裁》PPT課件
- 中國現代文學史00537
- 110kV升壓站電氣施工工藝及方案培訓資料(共107頁)
- 年產萬噸碳酸飲料廠的工藝設計
- 流砂過濾器設計說明書
- T∕CISA 065-2020 高爐循環冷卻水系統節能技術規范
評論
0/150
提交評論