文档库 最新最全的文档下载
当前位置:文档库 › 从SST89C58转成SST89E58RD2的注意事项说明

从SST89C58转成SST89E58RD2的注意事项说明

弘微科技有限公司(SPAC)

从SST89C58转成SST89E58RD2的注意事项说明

目 录

1屏蔽SST89E58RD2的768字节的内部扩展RAM (2)

1.1硬件说明 (2)

1.2用汇编语言: (2)

1.3用C51语言: (2)

2WDG看门狗 (2)

2.1 看门狗控制寄存器(WDTC)的比较: (2)

2.2 看门狗数据寄存器(WDTD)的比较: (3)

3FLASH的操作 (3)

3.1地址空间 (3)

3.2软件映射操作说明 (3)

3.3FLASH寄存器的比较 (4)

3.3.1FLASH寄存器列表 (4)

3.3.2不同的FLASH寄存器 (4)

FLASH配置寄存器(SFCF)的比较: (4)

FLASH命令寄存器(SFCM)的比较: (5)

FLASH状态寄存器(SFST)的比较: (5)

辅助寄存器(AUXR)的比较: (6)

Web: Tel: 0755-******** Email: andy.tian@https://www.wendangku.net/doc/7f18176219.html,

弘微科技有限公司(SPAC )

Web: Tel: 0755-******** Email: andy.tian@https://www.wendangku.net/doc/7f18176219.html,

1 屏蔽SST89E58RD2的768字节的内部扩展RAM

1.1 硬件说明

如果产品中的P0口作为数据总线外挂有类似RAM 的器件(例如:6264,8255,RC500,并口的液晶模块,LCD 控制芯片等等),就必须将单片机内部扩展的768 BYTE 的扩展RAM 屏蔽掉,即将AUXR(8EH)的D1(EXTRAM)位置1,这样才能使用外部的芯片,系统得以正常工作.在程序一开始就加入EXTRAM=1的语句

1.2 用汇编语言:

START:

MOV 8EH,#02H ;程序一开始,就置AUXR 的EXTRAM=1,

;使程序访问外部的;RAM 器件,而不是单片机内部的768扩展RAM

1.3 用C51语言:

sfr AUXR = 0x8E; //声明sst89e516RD2的AUXR 寄存器

main(void) { AUXR = 0x02; //程序一开始,就置AUXR 的EXTRAM=1,

//程序访问外部的RAM 器件,而不是单片机内部的768扩展RAM

......

}

2 WDG 看门狗

2.1 看门狗控制寄存器(WDTC)的比较:

SST89C58 SST89E58RD2 转换的操作

地址

0C0H 0C0H D7 NC

NC D6 NC

NC D5 NC

NC D4 NC WDOUT: 1-看门狗复位信号出现在RST 管脚上

D3 WDRE: 1-看门狗复位使能 WDRE: 1-看门狗复位使能 D2 WDTS: 看门狗溢出时置1 WDTS: 看门狗溢出时置1 D1 WDT:软件置1,强制刷新看门狗 WDT:软件置1,强制刷新看门狗 位定义 D0 SWDT: 1-看门狗开始运行 SWDT: 1-看门狗开始运行

SST89E58RD2多出一个WDOUT 控制位,在软件中将此位置0,可与SST89C58兼容: ANL WDTC,#0EFH

弘微科技有限公司(SPAC )

Web: Tel: 0755-******** Email: andy.tian@https://www.wendangku.net/doc/7f18176219.html,

2.2 看门狗数据寄存器(WDTD)的比较:

SST89C58 SST89E58RD2 转换的操作

地址

086H 085H 位定义 D7-D0 看门狗定时器的定时常数 看门狗定时器的定时常数

将WDTD 的定义地址更改为085H

3 FLASH 的操作

3.1 地址空间

SST89C58 SST89E58RD2

空间大小

4K BYTE 8K BYTE 绝对地址

0F000H-0FFFFH 0E000H -0FFFFH 映射地址

00000H-0FFFH 00000H-1FFFH 3.2 软件映射操作说明

SFCF[1:0] SST89C58 SST89E58RD2 SST89E516RD2 00 BLOCK1不映射

(B1:F000H-1FFFH)

8K 映射

(B1:0-1FFFH) 8K 映射

(B1:0-1FFFH)

01 BLOCK1中的1K 映射

(B1:0-3FFH)

BLOCK1不映射, (E000H-FFFFH)区域可见

(可用IAP 指令访问E000H-FFFFH 的B1的存储单元)

BLOCK1不映射,也不可见(可用IAP 指令访问0-1FFFH 的B1的存储单元)

10

BLOCK1中的2K 映射(B1:0-7FFH)

BLOCK1不映射,也不可见

(可用IAP 指令访问E000H-FFFFH 的B1的存储单元)

BLOCK1不映射,也不可见 (可用IAP 指令访问0-1FFFH 的B1的存储单元) 11

BLOCK1中的4K 映射(B1:0-FFFH)

BLOCK1不映射, 也不可见

(可用IAP 指令访问E000H-FFFFH 的B1的存储单元)

BLOCK1不映射,也不可见 (可用IAP 指令访问0-1FFFH 的B1的存储单元)

弘微科技有限公司(SPAC )

Web: Tel: 0755-******** Email: andy.tian@https://www.wendangku.net/doc/7f18176219.html,

3.3 FLASH 寄存器的比较

3.3.1 FLASH 寄存器列表

寄存器名称 寄存器地址 含义

说明 1 SFCF 0B1H FLASH 的配置寄存器 不同 2 SFCM 0B2H FLASH 的命令寄存器

不同 3 SFAL 0B3H FLASH 的低8位地址寄存器 完全相同 4 SFAH 0B4H FLASH 的高8位地址寄存器 完全相同 5 SFDT 0B5H FLASH 的8位数据寄存器 完全相同 6 SFST

0B6H FLASH 的状态寄存器 不同

3.3.2 不同的FLASH 寄存器

FLASH 配置寄存器(SFCF)的比较:

SST89C58 SST89E58RD2 转换的操作

地址

0B1H 0B1H D7 VIS: 1--BLOCK1可见

NC D6 IAPEN: IAP 在线编程允许 IAPEN: IAP 在线编程允许

D5 NC NC

D4 NC NC D3 NC NC

D2 NC NC D1 MAP_EN1:映射使能1 SWR:0->1:软件复位,从0000H 开始执行程序 位定义 D0 MAP_EN0:映射使能0 BSEL: 编程块切换控制.

0--BLOCK1:0000H 1—BLOCK1:0E000H MAP_EN[1:0]=

/(RE_MAP[1:0]): =00: 0K 映射 =01: 1K 映射 =10: 2K 映射 =11: 4K 映射 SFCF[1:0]=/(SC1.SC0): =00: 8K 映射 =01: 不映射,0E000-0FFFFH 可见 =10: 不映射,不可见 =11: 不映射,不可见 1. 将原来SST89C58的映射命令更改为SST89E58的映射命令(主要是SFCF 的D7,D1,D0

三位) 2. 在编程器中的配置位,也进行相应

的改变.(C58是编

程为映射,E58相反,编程SC0为不

映射)

3. 常规下,编程器选

项为: SC[1:0]=01:两块都可见,地址不重叠 SB[3:1]=010:两块都软

锁,可相互编程. CLOCK=0:12时钟周期

弘微科技有限公司(SPAC )

Web: Tel: 0755-******** Email: andy.tian@https://www.wendangku.net/doc/7f18176219.html,

FLASH 命令寄存器(SFCM)的比较:

SST89C58 SST89E58RD2 转换的操作

地址

0B2H 0B2H D7 FIE: =1,INT1分配给IAP, IAP 操

作完成产生INT1中断 FIE: =1,INT1分配给IAP, IAP 操作完成产生INT1中断 位定

义 D6-D0 FCM[6:0]:

01H: 片擦 0BH: 扇擦 0DH: 块擦 0CH: 字节校验 0EH: 字节编程 06H: 快速编程

FCM[6:0]: 01H: 片擦

0BH: 扇擦

0DH: 块擦

0CH: 字节校验 0EH: 字节编程 06H: 无定义,没有快速编程命令 09H: 编程SC0,SC1 0FH: 编程SB1 03H: 编程SB2 05H: 编程SB3

08H: 编程双倍速(6CLOCK) SST89E58RD2多出SC1,SC0,SB1,SB2,SB3,CLOCK_DOUBLE 的软件编程命令. 没有了SST89C58的快速编程命令—06H

FLASH 状态寄存器(SFST)的比较:

SST89C58 SST89E58RD2 转换的操作

地址

0B6H 0B6H D7 SECD2: 加密位1的状态,与SB1

的反数, 读到为1,说明已编程 SB1_i: 加密位1的状态,与SB1的反数, 读到为1,说明已编程 D6 SECD1: 加密位2的状态,与SB2的反数, 读到为1,说明已编程 SB2_i: 加密位2的状态,与SB2的

反数, 读到为1,说明已编程 D5 SECD0: 加密位3的状态,与SB3的反数, 读到为1,说明已编程 SB3_i: 加密位3的状态,与SB3的

反数, 读到为1,说明已编程 D4 NC NC

D3 BUSY:=1:快速编程的忙标志 EDC: 双倍速标志

=0: 12时钟周期

=1: 双倍速的6个时钟周期

D2 FLASH_BUSY: =1: IAP 的忙标志; =0: IAP 操作完成 FLASH_BUSY:

=1: IAP 的忙标志; =0: IAP 操作完成 D1 NC NC 位定

义 D0 NC NC 将原来SST89C58的快速编程标志(BUSY)改成了SST89E58RD2的双倍速标志--EDC

弘微科技有限公司(SPAC )

Web: Tel: 0755-******** Email: andy.tian@https://www.wendangku.net/doc/7f18176219.html,

辅助寄存器(AUXR)的比较:

SST89C58 SST89E58RD2

转换的操作

地址 无AUXR 辅助寄存器

08EH D7-D2

NC NC D1 NC

EXTRAM: 片外RAM =0: 使用内部的768字节RAM =1: 使用片外的RAM

位定义 D0 NC AO: 关闭ALE 的输出

=0: 与标准相同,始终有ALE 输出

=1: 只有使用MOVX 和MOVC 才有ALE 输出

在程序开始就屏蔽掉片内的扩展RAM:

EXTRAM=1.

3.4 2

相关文档