STC8F系列技术手册 官方网站: www.STCMCU.com / www.GXWMCU.com 技术支持: 13922809991/13922805190
PWM7T2H PWM7T2数值高字节 PWM7T2L PWM7CR
PWM7T2数值低节 PWM7控制寄存器
FF72H FF73H FF74H FF75H FE80H FE81H
-
ENC7O - ENI2C EMSI
C7INI - MSSL - MSIF ESTAI STAIF
- - ERXI RXIF
- - ETXI TXIF
- -
x000,0000 0000,0000 EC7I EC7T2SI EC7T1SI 00x0,0000 -
HC7H
HC7L
xxxx,xx00 0000,0000 MSCMD[2:0] - -
0xxx,x000 C7_S[1:0] -
-
PWM7HLD PWM7电平保持控制寄存器 I2CCFG I2CMSCR I2CMSST I2CSLCR I2CSLST
I2C配置寄存器 I2C主机控制寄存器 I2C主机状态寄存器 I2C从机控制寄存器 I2C从机状态寄存器
MSSPEED[6:1]
- - ESTOI STOIF
FE82H MSBUSY FE83H FE84H FE85H FE86H FE87H FE10H FE11H FE12H FE13H FE14H FE15H FE16H FE17H FE18H FE19H FE1AH FE1BH FE1CH FE1DH FE1EH FE1FH FE00H FE01H
FE02H ENIRC24M FE03H
ENXOSC
MSACKI MSACKO 00xx,xx00 - SLBUSY
- SLRST x000,0xx0 TXING SLACKI SLACKO 0000,0000 I2CSLADR I2C从机地址寄存器 I2CTXD I2CRXD P0PU P1PU P2PU P3PU P4PU P5PU P6PU P7PU P0NCS P1NCS P2NCS P3NCS P4NCS P5NCS P6NCS P7NCS CKSEL CLKDIV
I2C数据发送寄存器 I2C数据接收寄存器 P0口上拉电阻控制寄存器 P1口上拉电阻控制寄存器 P2口上拉电阻控制寄存器 P3口上拉电阻控制寄存器 P4口上拉电阻控制寄存器 P5口上拉电阻控制寄存器 P6口上拉电阻控制寄存器 P7口上拉电阻控制寄存器 P0口施密特触发控制寄存器 P1口施密特触发控制寄存器 P2口施密特触发控制寄存器 P3口施密特触发控制寄存器 P4口施密特触发控制寄存器 P5口施密特触发控制寄存器 P6口施密特触发控制寄存器 P7口施密特触发控制寄存器 时钟选择寄存器 时钟分频寄存器
SLADR[6:0]
MCLKODIV[3:0]
- XITYPE
-
- - -
- - -
- - -
- - -
- - -
MCLKO_S
MA 0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 0000,0000 - MCKSEL[1:0] 0000,0000 0000,0100 IRC24MCR 内部24M振荡器控制寄存器 XOSCCR
外部晶振控制寄存器
IRC24MST 1xxx,xxx0 XOSCST 00xx,xxx0 IRC32KST 0xxx,xxx0 IRC32KCR 内部32K振荡器控制寄存器 FE04H ENIRC32K
南通国芯微电子有限公司 总机: 0513-5501 2928/2929/2966 传真: 0513-5501 2926/2956/2947 - 32 -
STC8F系列技术手册 官方网站: www.STCMCU.com / www.GXWMCU.com 技术支持: 13922809991/13922805190
6 增强型双数据指针
STC8F系列的单片机内部集成了两组16位的数据指针。通过程序控制,可实现数据指针自动递增或递减功能以及两组数据指针的自动切换功能
相关的特殊功能寄存器
位地址与符号 符号 DPL DPH DPL1 DPH1 DPS TA 描述 数据指针(低字节) 数据指针(高字节) 第二组数据指针(低字节) 第二组数据指针(高字节) DPTR指针选择器 DPTR时序控制寄存器 地址 B7 82H 83H E4H E5H E3H AEH ID1 ID0 TSL B6 B5 B4 AU1 AU0 - - SEL B3 B2 B1 B0 0000,0000 0000,0000 0000,0000 0000,0000 0000,0xx0 0000,0000 复位值 第1组16位数据指针寄存器(DPTR0)
符号
DPL DPH
地址
82H 83H
B7 B6 B5 B4
B3 B2 B1 B0
DPL为低8位数据(低字节) DPH为高8位数据(高字节)
DPL和DPH组合为第一组16位数据指针寄存器DPTR0 第2组16位数据指针寄存器(DPTR1) 符号
DPL1 DPH1
地址
E4H E5H
B7 B6 B5 B4
B3 B2 B1 B0
DPL1为低8位数据(低字节) DPH1为高8位数据(高字节)
DPL1和DPH1组合为第二组16位数据指针寄存器DPTR1 数据指针控制寄存器
符号
DPS
地址
E3H
B7
ID1
B6
ID0
B5
TSL
B4
AU1
B3
AU0
B2
-
B1
-
B0
SEL
ID1:控制DPTR1自动递增方式
0:DPTR1自动递增 1:DPTR1自动递减 ID0:控制DPTR0自动递增方式
0:DPTR0自动递增 1:DPTR0自动递减
TSL:DPTR0/DPTR1自动切换控制(自动对SEL进行取反)
南通国芯微电子有限公司
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 33 -
STC8F系列技术手册 官方网站: www.STCMCU.com / www.GXWMCU.com 技术支持: 13922809991/13922805190
0:关闭自动切换功能 1:使能自动切换功能
当TSL位被置1后,每当执行完成相关指令后,系统会自动将SEL位取反。 与TSL相关的指令包括如下指令:
MOV DPTR,#data16 INC DPTR MOVC A,@A+DPTR MOVX A,@DPTR MOVX @DPTR,A AU1/AU0:使能DPTR1/DPTR0使用ID1/ID0控制位进行自动递增/递减控制
0:关闭自动递增/递减功能 1:使能自动递增/递减功能
注意:在写保护模式下,AU0和AU1位无法直接单独使能,若单独使能AU1位,则AU0位也会
被自动使能,若单独使能AU0,没有效果。若需要单独使能AU1或者AU0,则必须使用TA寄存器触发DPS的保护机制(参考TA寄存器的说明)。另外,只有执行下面的3条指令后才会对DPTR0/DPTR1进行自动递增/递减操作。3条相关指令如下: MOVC A,@A+DPTR MOVX A,@DPTR MOVX @DPTR,A SEL:选择DPTR0/DPTR1作为当前的目标DPTR
0:选择DPTR0作为目标DPTR 1:选择DPTR1作为目标DPTR
SEL选择目标DPTR对下面指令有效:
MOV DPTR,#data16 INC DPTR MOVC A,@A+DPTR MOVX A,@DPTR MOVX @DPTR,A JMP @A+DPTR 数据指针控制寄存器
符号
TA
地址
AEH
B7 B6 B5 B4
B3 B2 B1 B0
TA寄存器是对DPS寄存器中的AU1和AU0进行写保护的。由于程序无法对DPS中的AU1和AU0进行单独TA寄存器是只写寄存器。 的写入,所以当需要单独使能AU1或者AU0时,必须使用TA寄存器进行触发。当需要对AU1或者AU0进行单独使能时,必须按照如下的步骤进行操作:
CLR MOV
MOV
MOV
EA
TA,#0AAH
TA,#55H
DPS,#xxH
;关闭中断(必需) ;写入触发命令序列1
;此处不能有其他任何指令 ;写入触发命令序列2
;此处不能有其他任何指令
;写保护暂时关闭,可向DPS中写入任何值 ;DSP再次进行写保护状态
南通国芯微电子有限公司 总机: 0513-5501 2928/2929/2966 传真: 0513-5501 2926/2956/2947 - 34 -
STC8F系列技术手册 官方网站: www.STCMCU.com / www.GXWMCU.com 技术支持: 13922809991/13922805190
SETB
EA ;打开中断(如有必要)
示例代码1:将程序空间1000H~1003H的4个字节数据反向复制到扩展RAM的0100H~0103H中,即
C:1000H -> X:0103H C:1001H -> X:0102H C:1002H -> X:0101H C:1003H -> X:0100H 汇编代码如下: MOV DPS,#00100000B MOV DPTR,#1000H MOV DPTR,#0103H MOV DPS,#10111000B MOV R7,#4 COPY_NEXT: CLR A MOVC A,@A+DPTR MOVX @DPTR,A DJNZ R7,COPY_NEXT
;使能TSL,并选择DPTR0
;将1000H写入DPTR0中,执行完成后选择DPTR1为DPTR ;将0103H写入DPTR1中
;设置DPTR1为递减模式,DPTR0为递加模式,使能TSL以及 ;AU0和AU1,并选择DPTR0为当前的DPTR ;设置数据复制个数
;
;从DPTR0所指的程序空间读取数据,
;完成后DPTR0自动加1并将DPTR1设置为下一个目标DPTR ;将ACC的数据写入到DPTR1所指的XDATA中,
;完成后DPTR1自动减1并将DPTR0设置为下一个目标DPTR ;
示例代码2:将扩展RAM的0100H~0103H中的数据依次发送到P0口
汇编代码如下: CLR EA MOV TA,#0AAH MOV TA,#55H MOV DPS,#00001000B SETB EA MOV DPTR,#0103H MOV A,@DPTR MOV P0,A MOV A,@DPTR MOV P0,A MOV A,@DPTR MOV P0,A MOV A,@DPTR MOV P0,A
;关闭中断
;写入DPS写保护触发命令1 ;写入DPS写保护触发命令2
;DPTR0递增,单独使能AU0,并选择DPTR0 ;打开中断
;将0103H写入DPTR0中
;从DPTR0所指的XRAM读取数据,完成后DPTR0自动加1 ;数据输出到P0口
;从DPTR0所指的XRAM读取数据,完成后DPTR0自动加1 ;数据输出到P0口
;从DPTR0所指的XRAM读取数据,完成后DPTR0自动加1 ;数据输出到P0口
;从DPTR0所指的XRAM读取数据,完成后DPTR0自动加1 ;数据输出到P0口
南通国芯微电子有限公司 总机: 0513-5501 2928/2929/2966 传真: 0513-5501 2926/2956/2947 - 35 -
STC8F系列技术手册 官方网站: www.STCMCU.com / www.GXWMCU.com 技术支持: 13922809991/13922805190
7 时钟、复位与电源管理
7.1 系统时钟控制
系统时钟控制器为单片机的CPU和所有外设系统提供时钟源,系统时钟有3个时钟源可供选择:内部高精度24MHz的IRC、内部32KHz的IRC(误差较大)、外部晶体振荡器或外部时钟信号。用户可通过程序分别使能和关闭各个时钟源,以及内部提供时钟分频以达到降低功耗的目的。
单片机进入掉电模式后,时钟控制器将会关闭所有的时钟源
MCLKO_S0内部24MHz外部晶振或者外部时钟信号内部32KHzMCLKODIV[3:0]0001CLKDIV[7:0]10111P5.4P1.6系统时钟SYSclk主时钟MCLKMCKSEL[1:0] 系统时钟结构图 相关寄存器 位地址与符号 符号 CKSEL CLKDIV 描述 时钟选择寄存器 时钟分频寄存器 地址 B7 FE00H FE01H FE02H ENIRC24M FE03H ENXOSC 复位值 B6 B5 B4 B3 MCLKO_S B2 - B1 B0 0000,0000 0000,0100 MCLKODIV[3:0] - XITYPE - - - - - - - MCKSEL[1:0] IRC24MCR 内部24M振荡器控制寄存器 XOSCCR 外部晶振控制寄存器 - - - - - - - - - IRC24MST 1xxx,xxx0 XOSCST 00xx,xxx0 IRC32KST 0xxx,xxx0 IRC32KCR 内部32K振荡器控制寄存器 FE04H ENIRC32K CKSEL(系统时钟选择寄存器)
符号
CKSEL
地址
FE00H
B7 B6 B5 B4 B3
MCLKO_S
B2 B1
MCKSEL[1:0]
B0
MCLKODIV[3:0]
MCLKODIV[3:0]:主时钟输出分频系数
MCLKODIV[3:0] 主时钟分频输出频率
0000 0001 001x 010x 011x 100x 101x 110x
南通国芯微电子有限公司
不输出时钟 MCLK/1 MCLK/2 MCLK/4 MCLK/8 MCLK/16 MCLK/32 MCLK/64
总机: 0513-5501 2928/2929/2966
传真: 0513-5501 2926/2956/2947
- 36 -