1. 程式人生 > 其它 >WS51F0030 系列物聯網 MCU的架構和產品資訊

WS51F0030 系列物聯網 MCU的架構和產品資訊

1 產品資訊

1.1 產品資源

1.2 WS51F0030管腳定義

封裝型別:TSSOP20

2 WS51F0030總體架構

2.1 8051 核心

2.1.1 簡介

標準 8051 即 MCS-51 為 12 週期的 8051 CPU,而 WS51F0030 系列晶片採用的是單週期 8051 CPU,完全相容MCS-51 指令集。

2.1.2 定址方式

8051 的核心定址方式有:立即定址、直接定址、間接定址、暫存器定址、相對定址、變址定址和位定址。

立即定址

立即定址是在指令運算元中直接給出參與運算的運算元,指令舉例如下:

MOV A, #60H (這條指令把 60H 直接送到累加器 A

直接定址

直接定址指令運算元給出的是參與運算運算元的地址。直接定址方式只能用於特殊功能暫存器、內部資料區和位地址空間,而特殊功能暫存器和位地址空間只能用直接定址方式訪問。指令舉例如下:

ANL 50H#91H (把 50H 單元中的數與 91H 相“與”,結果存放在 50H 單元中,其中 50H 為內部 RAM的地址)

間接定址

間接定址採用 R0 或 R1 前新增”@”符號來表示。假設 R1 中的資料是 40H,內部資料儲存器 40H 單元的資料為 55H,則指令為MOV A@R1 (把資料 55H 傳送至累加器 A

暫存器定址

暫存器定址對選定的工作暫存器 R7-R0、累加器 A、通用暫存器 B、地址暫存器和進位 C 中的數進行操作,其中暫存器 R7-R0 由指令碼的低 3 位表示,ACC、B、DPTR 及進位 C 隱含在指令碼中。因此,暫存器定址也包含一種隱含定址方式。工作暫存器工作區由狀態暫存器 PSW 的 RS1、RS0 決定。指令運算元的暫存器均指當前工作區的暫存器。 INC R0

R0 中的資料+1 寫回 R0

相對定址

相對定址是將程式計數器 PC 中的當前值與指令第二位元組給出的數相加,其結果作為轉移指令的轉移地址。轉移地址也成為轉移目的地址,PC 中的當前值成為基地址,指令第二位元組給出的數成為偏移量。由於目的地址是相對於 PC 中的基地址而言,所以這種定址方式成為相對定址。偏移量為帶符號的數,所能表示的範圍為+127--128。這種定址方式主要用於轉移指令。JC $+50H (表示若進位位 C 0,則程式計數器 PC 中的內容不改變,即不轉移。若進位位 C 1,則以 PC 中的當前值及基地址,加上偏移量 50H 後得到的結果作為該轉移指令的目的地址)

變址定址

在變址定址方式中,指令運算元制定一個存放變址基址的變址暫存器。變址定址時,偏移量與變址基值相加,其結果作為運算元的地址。變址暫存器有程式計數器 PC 和地址暫存器 DPTR。MOVC A@A+DPTR (表示累加器 A 為偏移量暫存器,其內容與地址暫存器 DPTR 中的內容相加,其結果作為運算元的地址,取出該單元中的數送入累加器 A 中)

位定址

位定址是指對一些可進行位操作的內部 RAM 和特殊功能暫存器進行位操作時的定址方式。在進行位操作時,藉助於進位位 C 作為位操作累加器,指令運算元直接給出該位的地址,然後根據操作碼對該位進行位操作。MOV C20H (將地址為 20H 的位操作暫存器值送入進位位 C 中)

2.1.3 暫存器描述

程式計數器 PC

程式計數器 PC 暫存器為 16 位,是專門用來控制指令執行順序的暫存器,它沒有暫存器地址。微控制器上電或復位後,PC 值為 0,微控制器從零地址開始執行程式。

累加器 ACC

累加器 ACC 是一個常用的專用暫存器,指令系統中採用 A 作為累加器的助記符,常用於存放算術或邏輯運算的運算元及運算結果。

通用暫存器 B

B 在乘除法運算中需要和 ACC 配合使用。MUL AB 指令把 ACC 和 B 中 8 位無符號數相乘,所得的 16 位乘積的低位元組存放在 A 中,高位元組存放在 B 中。DIV AB 指令用 B 除以 A,整數商存放在 A 中,餘數存放在 B 中。暫存器 B 還可以用作通用暫存暫存器。

堆疊指標 SP

堆疊指標 SP 是一個 8 位專用暫存器。它指示出堆疊頂部在內部 RAM 塊中的位置。系統復位後,SP 初始化位 07H,使得堆疊事實上由 08H 單元開始,考慮 08H-1FH 單元分別屬於工作暫存器組 1-3,若在程式設計中用到這些區,則SP 改變為 80H 或更大的為宜。在程式除錯中,經常出現堆疊溢位的情況,為了方便找到程式故障,設定了一個記錄堆疊的暫存器 SPMAX,可以通過 Debug 介面讀出,地址 0x1A。

資料指標 DPTR

資料指標 DPTR0/DPTR1 是兩個 16 位專用暫存器,它們的高位位元組暫存器用 DP0H/DP1H表示,低位位元組暫存器用 DP0L/DP1L 表示,通過 DPS(PSW.1)可選擇使用 DPTR0/DPTR1。每個 DPTR 既可以作為一個 16 位暫存器來處理,也可以作為 2 個獨立的 8 位暫存器 DP0H/DP1H 和 DP0L/DP1L 來處理。

狀態暫存器 PSW

狀態暫存器 PSW 是 CPU 的狀態暫存器。在 CPU 做算術運算或者邏輯運算時,對應的 PSW 狀態位會發生改變。

2.3 儲存器分佈

WS51F0030 系列晶片內含 256B 內部 RAM、1KB 外部 RAM、特殊功能暫存器(SFR)、128B EEPROM、2KB NVR 和 16KB Flash ROM,儲存器地址分配如下:

l 低 128B 的內部 RAM(地址:00H - 7FH)可直接定址或間接定址

l 高 128B 的內部 RAM(地址:80H - FFH)只能間接定址

l 1KB 的外部 RAM(地址:0000H - 03FFH)可通過 MOVX 指令間接定址,可對映到程式地址空間 8000H-83FFH,也可直接作為程式空間 0000H-03FFH

l 特殊功能暫存器(SFR)(地址:80H - FFH)可直接定址

l 擴充套件特殊功能暫存器(XSFR)(從 8000H 開始),通過 MOVX 指令定址

l 128B EEPROM 用於儲存資料,不需要擦除操作,直接改寫即可

l 2KB NVR 包含 16 個扇區,主要用於系統配置資料

l 16KB Flash ROM(地址:0000H-3FFFH),通過 MOVC 指令可訪問