11
CHIP_ID SAFE_MOD PCON DPH DPL DPTR SP
B寄存器(B):
位 [7:0]
名称 B
访问 RW
描述
算术运算寄存器,主要用于乘法和除法运算,可按位寻址
复位值 00h
A1h 芯片ID识别码(只读) A1h 安全模式控制寄存器(只写) 87h 电源控制寄存器(上电复位状态下) 83h 数据地址指针高8位 82h 数据地址指针低8位 82h DPL和DPH组成16位SFR 81h 堆栈指针
56h 00h 10h 00h 00h 0000h 07h
A累加器(A、ACC):
位 [7:0]
名称 A/ACC
访问 RW
描述
算术运算累加器,可按位寻址
复位值 00h
程序状态寄存器(PSW): 位
名称
访问
描述
进位标志位:执行算术运算和逻辑运算指令时,用于记录最高位的进位或者借位;进行8位加法运算时,最高位进位,则该位置位,否则清零;进行8位减法运算时,若借位,则该位置位,否则清零;逻辑指令可使该位置位或清零
辅助进位标志位:记录加减法运算时,低4位向高4位有进位或借位,AC置位,否则清零
可按位寻址的通用标志位0:使用者可自己定义,可软件清零或置位 寄存器组选择位高位 寄存器组选择位低位
溢出标志位:加减法运算时,运算结果超过8位二进制数,则OV置1,标志溢出,否则清0
可按位寻址的通用标志位1:使用者可自己定义,可软件清零或置位 奇偶标志位:记录指令执行后累加器A中1的奇偶性,奇数个1则P置位,偶数个1则P清零
复位值
7 CY RW 0
6 5 4 3 2 1 0
AC F0 RS1 RS0 OV F1 P
RW RW RW RW RW RW RO
0 0 0 0 0 0 0
处理器的状态保存在状态寄存器PSW中,PSW支持按位寻址。状态字中包括进位标志位,用于BCD码处理的辅助进位标志位,奇偶标志位,溢出标志位,还有用于工作寄存器组选择的RS0和RS1。工作寄存器组所在的区域都可以通过直接或者间接方式进行访问。
表5.3.2 RS1和RS0工作寄存器组选择表
RS1 0 0 1 1
操作
CY
OV
RS0 0 1 0 1 AC
操作
工作寄存器组 0组(00h-07h) 1组(08h-0Fh) 2组(10h-17h) 3组(18h-1Fh)
CY
OV
AC
表5.3.3 影响标志位的操作(X表示标志位与操作结果有关)
12
ADD ADDC SUBB MUL DIV DA A RRC A RLC A CJNE
X X X 0 0 X X X X
X X X X X
X X X
SETB C CLR C CPL C MOV C, bit ANL C, bit ANL C,/bit ORL C, bit ORL C,/bit
1 0 X X X X X X
数据地址指针(DPTR):
位 [7:0] [7:0]
名称 DPL DPH
访问 RW RW
数据指针低字节 数据指针高字节
描述
复位值 00h 00h
DPL和DPH组成16位数据指针DPTR,用于访问xSFR、xBUS、xRAM数据存储器或者程序存储器,实际DPTR对应DPTR0和DPTR1两组物理上的16位数据指针,由XBUS_AUX 中的DPS动态选择。
堆栈指针(SP):
位 [7:0]
名称 SP
访问 RW
描述
堆栈指针,主要用于程序调用和中断调用以及数据进出栈
复位值 07h
堆栈具体功能:保护断点和保护现场,按先入后出的原则进行管理。入栈时SP指针自动加1,保存数据或断点信息;出栈时取SP指针指向数据单元,SP指针自动减1。SP在复位后的初值是07h,相应的默认堆栈存储从08h开始。
5.4 特有寄存器
累加器的高低位倒置值(A_INV):
位 [7:0]
名称 A_INV
访问 RO
描述
累加器的高低位倒置值,位0~位7按位反序的结果, A_INV的位7、位6~位0分别是ACC的位0、位1~位7
复位值 00h
全局配置寄存器(GLOBAL_CFG),仅在安全模式下可写:
位 [7:6]
名称 保留
访问 RO
保留
Boot loader状态位,用于区分ISP引导程序状态或者应用程序状态:电源上电时置1,软件复位时清0。 对于有ISP引导程序的芯片,该位为1说明从未软件复位过,通常是上电后运行的ISP引导程序状态;该位为0说明已经软件复位过,通常是应用程序状态 软件复位控制位:置1导致软件复位,硬件自动清零 Flash-ROM写允许位:
该位为0则写保护;为1则Flash-ROM可写可擦 Flash-ROM的DataFlash区域写允许位:
该位为0则写保护;为1则DataFlash区域可写可擦
描述
复位值 00b
5 bBOOT_LOAD RO 1
4 3 2
bSW_RESET bCODE_WE bDATA_WE
RW RW RW
0 0 0
13
MOVX_@R0/R1 指令访问范围控制位:
该位为0 允许访问全部xdata区域xRAM/xSFR; 该位为1 则专用于访问xSFR,不能访问xRAM
看门狗复位使能位:该位为0看门狗只用作定时器;该位为1允许计时溢出时产生看门狗复位
1 bXIR_XSFR RW 0
0 bWDOG_EN RW 0
安全模式控制寄存器(SAFE_MOD):
位 [7:0]
名称 SAFE_MOD
访问 WO
描述
用于进入或者终止安全模式
复位值 00h
部分SFR仅在安全模式下才能写入数据,而在非安全模式下总是只读状态。进入安全模式步骤: (1)、向该寄存器写入55h; (2)、接着向该寄存器写入AAh;
(3)、此后约13到23个系统主频周期都处于安全模式下,该有效期内可以改写一个或多个安全类
SFR或普通SFR
(4)、超出上述有效期后自动终止安全模式
(5)、或者再向该寄存器写任意值可以提前终止安全模式
6、存储器结构
6.1 存储器空间
CH555寻址空间分为程序存储空间、内部数据存储空间、外部数据存储空间、只读和OTP空间。
图6.1 存储器结构图 Internal Data Address Space FFH 80H 7FH 00H
Upper 128 bytes internal RAM (indirect addressing by @R0/R1) Lower 128 bytes internal RAM (direct or indirect addressing)
SFR
(Direct addressing)
OTP data
Read Only information Program Address Space Configuration information
ROM_CFG_ADDR Boot Loader Code Flash
BOOT_LOAD_ADDR Data Flash or Code Flash
DATA_FLASH_ADDR
Application Code Flash
FFFFH FFFEH FFFDH
F400H F3FFH
F000H EFFFH
0000H
03FH 020H 01FH 000H
External Data Address Space FFFFH
4000H 3FFFH
2000H 1FFFH
0000H
Reserved area @xdata xSFR area @xdata
(indirect addressing by MOVX)
8KB on-chip expanded xRAM @xdata (indirect addressing by MOVX)
14
6.2 程序存储空间
程序存储空间共64KB,如图6.1所示,已全部用于flash-ROM,包括保存指令代码的Code Flash区域、保存非易失数据的Data Flash区域、以及配置信息Configuration Information区域。
Data Flash(EEPROM)地址范围为F000h到F3FFH,支持单字节读(8位)、单字节写(8位)、块写(1~64字节)、块擦除(64字节)操作,芯片掉电后数据保持不变,也可用作Code Flash。
Code Flash包括低地址区域的应用程序代码和高地址区域的引导程序代码,也可将这两块区域以及Data Flash合并用于保存单一应用程序代码。
配置信息Configuration Information共16位数据,由编程器根据需要设定,参考表6.1。
表6.2 flash-ROM配置信息描述 位地址 15
位名称 Code_Protect
说明
flash-ROM中的代码和数据保护模式:
0-允许读出;1-禁止编程器读出,程序保密 使能BootLoader引导代码启动模式: 0-从0000h地址的应用程序启动; 1-从F400h地址的引导程序启动
使能上电复位期间的额外延时复位:
0-标准短复位;1-宽复位,额外增加44mS复位时间 使能P7.1作为手工复位输入引脚:0-禁止;1-使能RST# 保留 保留
(由编程器根据需要自动设定为1) (由编程器根据需要自动设定为0) (由编程器根据需要自动设定为00000b)
选择电源低压检测复位模块LVR的门限电压(误差5%): 000选择2.5V;001选择2.7V;010选择2.9V;011选择3.1V;100选择3.9V;101选择4.1V;110选择4.3V;111选择4.5V
建议值 0/1
14 No_Boot_Load 1
13 12 11 10 9 8 [7:3]
En_Long_Reset En_P71_RESET
Must_1 Must_0 All_0 LV_RST_VOL (Vpot)
0 0 0 0 1 0 00000b [2:0] 000b
6.3 数据存储空间
内部数据存储空间共256字节,如图6.1所示,已全部用于SFR和iRAM,其中iRAM用于堆栈和快速数据暂存,可细分为工作寄存器R0-R7、位变量bdata、字节变量data、idata等。
外部数据存储空间共64KB,如图6.1所示,除了部分用于16KB片内扩充xRAM和xSFR,剩余的4000h到FFFFh地址范围是保留区域。
只读信息和OTP数据各32字节,如图6.1所示,需要通过专用操作实现存取。
6.4 flash-ROM寄存器
表6.4 flash-ROM操作寄存器列表
名称 ROM_DATA_HH ROM_DATA_HL ROM_DATA_HI ROM_BUF_MOD ROM_DAT_BUF
地址 8Fh 8Eh 8Eh 8Fh 8Eh
描述
flash-ROM数据寄存器高字的高字节(只读) flash-ROM数据寄存器高字的低字节(只读) ROM_DATA_HL和ROM_DATA_HH组成16位SFR flash-ROM擦写操作的缓冲区模式寄存器 flash-ROM擦写操作的数据缓冲寄存器
复位值 xxh xxh xxxxh xxh xxh
15
ROM_STATUS ROM_CTRL ROM_ADDR_H ROM_ADDR_L ROM_ADDR ROM_DATA_LH ROM_DATA_LL ROM_DATA_LO
86h 86h 85h 84h 84h 85h 84h 84h
flash-ROM状态寄存器(只读) flash-ROM控制寄存器(只写) flash-ROM地址寄存器高字节 flash-ROM地址寄存器低字节
ROM_ADDR_L和ROM_ADDR_H组成16位SFR flash-ROM数据寄存器低字的高字节(只读) flash-ROM数据寄存器低字的低字节(只读) ROM_DATA_LL和ROM_DATA_LH组成16位SFR
00h 00h xxh xxh xxxxh xxh xxh xxxxh
flash-ROM地址寄存器(ROM_ADDR):
位 [7:0] [7:0]
名称 ROM_ADDR_H ROM_ADDR_L
访问 RW RW
flash-ROM地址高字节 flash-ROM地址低字节
描述
复位值 xxh xxh
flash-ROM数据寄存器(ROM_DATA_HI、ROM_DATA_LO):
位 [7:0] [7:0] [7:0] [7:0]
名称 ROM_DATA_HH ROM_DATA_HL ROM_DATA_LH ROM_DATA_LL
访问 RO RO RO RO
描述
flash-ROM数据寄存器高字(16位)的高字节 flash-ROM数据寄存器高字(16位)的低字节 flash-ROM数据寄存器低字(16位)的高字节 flash-ROM数据寄存器低字(16位)的低字节
复位值 xxh xxh xxh xxh
flash-ROM擦写操作的缓冲区模式寄存器(ROM_BUF_MOD):
位
名称
访问
描述
flash-ROM擦写操作(擦除或编程)的缓冲区模式: 该位为0选择数据块编程模式,待写数据存放于由DPTR指向的xRAM中,编程时CH555自动从xRAM依次取出数据暂存于ROM_DAT_BUF再写入flash-ROM,支持1字节到64字节数据长度,实际长度=MASK_ROM_ADR_END-ROM_ADDR_L[5:0]+1;
为1选择单字节编程或者64字节块擦除模式,待写数据直接存放于ROM_DAT_BUF中 保留
在flash-ROM数据块编程模式下,为flash-ROM块编程操作的结束地址的低6位(含该地址); 在flash-ROM单字节编程或者64字节块擦除模式下,为保留,建议为00h
复位值
7 bROM_BUF_BYTE RW x
6 保留 RW x
[5:0] MASK_ROM_ADDR RW xxh
flash-ROM擦写操作的数据缓冲寄存器(ROM_DAT_BUF):
位 [7:0]
名称 ROM_DAT_BUF 访问 RW
描述
flash-ROM擦写操作的数据缓冲寄存器
复位值 xxh
flash-ROM控制寄存器(ROM_CTRL):