原创 WS51F0030 系列物联网 MCU的架构和产品信息

2021-11-19 10:33 1564 11 11 分类: 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 位表示,ACCBDPTR 及进位 C 隐含在指令码中。因此,寄存器寻址也包含一种隐含寻址方式。工作寄存器工作区由状态寄存器 PSW RS1RS0 决定。指令操作数的寄存器均指当前工作区的寄存器。 INC R0 R0 中的数据+1 写回 R0

相对寻址

相对寻址是将程序计数器 PC 中的当前值与指令第二字节给出的数相加,其结果作为转移指令的转移地址。转移地址也成为转移目的地址,PC 中的当前值成为基地址,指令第二字节给出的数成为偏移量。由于目的地址是相对于 PC 中的基地址而言,所以这种寻址方式成为相对寻址。偏移量为带符号的数,所能表示的范围为+127--128。这种寻址方式主要用于转移指令。JC $+50H (表示若进位位 C 0,则程序计数器 PC 中的内容不改变,即不转移。若进位位 C 1,则以 PC 中的当前值及基地址,加上偏移量 50H 后得到的结果作为该转移指令的目的地址)

 

变址寻址

在变址寻址方式中,指令操作数制定一个存放变址基址的变址寄存器。变址寻址时,偏移量与变址基值相加,其结果作为操作数的地址。变址寄存器有程序计数器 PC 和地址寄存器 DPTRMOVC 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 内部 RAM1KB 外部 RAM、特殊功能寄存器(SFR)128B EEPROM2KB 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 指令可访问

文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /2 下一条