(三)MCS-51單片機的結構

1. MCS-51 系列單片機的結構原理


1> 運行部件

以算術邏輯運算單元 ALU 爲核心,包含累加器 ACC ,B 寄存器,暫存器,標誌寄存器 PSW 等許多部件,能夠實現算術運算,邏輯運算,位運算,數據傳輸等處理


2> 算術邏輯運算單元 ALU

可對一位二進制數據進行置位,清零,求反,測試,轉移及位邏輯“與”“或”等處理


3> 累加器 ACC ( 簡稱 A )


4> 標誌寄存器 PSW

8 位寄存器,用於保存指令執行結果的狀態,以供程序查詢判別


5> 進位標誌位 C ( PSW .7 )

執行算術運算和邏輯運算指令時,用於記錄最高位的進位或錯位


6> 輔助進位標誌位 AC ( PSW .6 )

用於記錄在進行加法和減法運算時,低 4 位向高 4 位是否有進位或錯位


7> OV ( PSW .2 )溢出標誌位

進行加減法運算,結果超出 8 位二進制範圍, OV 置 1 ,標誌溢出


8> P ( PSW .0 )奇偶標誌位

A 中 1 的個數爲奇數,置位


*****************************************************************************************


1.壓縮 BCD 碼 = 8421 碼


2.分析以下指令執行後,累加器 A ,標誌位 C ,AC ,OV ,P 的值


MOV A , # 67 67 H = 01100111 B

ADD A , # 58 58 H = 01011000 B


相加得:

10111111 B --> OBF H


最高位沒有發生進位, C = 0

低四位沒有向前進位, AC = 0

OV = 1,因爲範圍是( -128 ~ 127 ) 發生溢出

P = 1,因爲 1 的個數爲奇數


*****************************************************************************************


2. MCS-51 單片機的存儲器結構


分爲 程序存儲器 ROM 和 數據存儲器 RAM


1> 程序存儲器

用於存放單片機工作的程序,單片機工作時先由用戶編制好程序和表格常數,把它存放到程序存儲器中,然後在控制器的控制下,依次從程序存儲器中取出指令送到 CPU 執行,實現功能。爲此,設計了一個專用寄存器 -- 程序計數器 PC ,用以存放要執行的指令的地址( 16 位,64kb )


2> 數據存儲器

用於存放取出程序執行時所需的數據


1> 片內數據存儲器

工作寄存器組區,位尋址區,一般 RAM 區和特殊功能寄存區,堆棧區


*****************************************************************************************


● 重點


1.怎麼區分程序存儲器片內片外


根據引腳 EA(非)電平的高低來決定,接低電平時,則從片外程序存儲器取指,接高電平,則從片內取指


2.區分 64 kb 的程序存儲器和 64 kb 片外數據存儲器


① 根據信號區分

片外數據存儲器 RD(非) WR(非)

程序存儲器 PSEN


② 根據指令區分

片外數據存儲器 MOVX

程序存儲器 MOVC


3.區分片內數據存儲器和片外數據存儲器低 256 地址空間重疊


根據指令的不同

片內數據存儲器 MOV

片外數據存儲器 MOVX


*****************************************************************************************


3. MCS-51 系列單片機外部引腳及片外總線


1> 輸入輸出引腳


① P0 口( 39 - 32 引腳 )

唯一能夠外接電阻, P0 口分時複用爲低 8 位地址總線和雙向數據總線


② P1 口( 1 - 8 引腳 )

可作爲準雙向 I/O 接口使用


③ P2 口( 21 - 28 引腳 )

高 8 位地址總線


④ P3 口( 10 - 17 引腳 )

準雙向 I/O 接口使用,每一位還具有獨立的第二功能


2> 復位方式


MCS-51 單片機有一個復位引腳 RST ,高電平有效,當外部電路使得 RST 端出現 2 個機器週期( 24 個時鐘週期 )以上的高電平,系統內部復位


3> 程序執行方式


程序復位後, PC 指針總指向 0000 H,所以程序總是從 0000 H 開始執行


4> 中斷


MCS-51 單片機的中斷系統規定,從中斷服務程序中返回之後,至少要再執行一條指令,才能重新進入中斷


5> 機器週期


包含 S1,S2,···S6 六個狀態,每個狀態有 P1,P2 兩拍,每一個拍稱爲一個時鐘週期


① 一個機器週期包含 12 個時鐘週期

② 振盪週期:晶振平率 fosc 的倒數 == 時鐘週期

③ 1 個機器週期:12 個震盪週期

④ 1 個指令週期:1,2,4 個機器週期

⑤ ALE 的頻率:1/6 的時鐘週期

= 2 * 機器週期


機器週期 = 12 * 時鐘週期( 振盪週期 )













發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章