用SST89E516RD自制51单片机仿真器

用SST89E516RD自制51单片机仿真器

----LYY

SST89E516RD片内有两块SuperFlash EEPROM,分为64K主块(Block0)和8K次块(Block1)。Block0的地址范围是0000h~ffffh;Block1的地址范围是10000h~11fffh。做仿真器时Block1存储区烧写SoftICE仿真监控程序。

二、仿真器电路和工作原理

仿真器上的晶振输出选择用跳线方式,需要使用目标板的晶振时,可将跳线断开。 三、仿真器的制作

资料下载地址: http://www.microchip.com/pagehandler/zh-cn/family/8051legacy/resources/software.html 1、 下载网页软件列表中的SoftICE 516.zip文件,解压缩后即可得到SSTFlashFlex51.exe目标文件; 2、 下载网页软件列表中的BSL_SST89E516RD.zip文件,解压缩后即可得到

BSL_SST89E516RD_IAPEXT_BF_91_V12.hex目标文件。

3、 用能够烧写SST89E516RD芯片的编程器将BSL_SST89E516RD_IAPEXT_BF_91_V12.hex目标文件

烧入Block1程序存储区。烧写时注意两点a.加载目标文件时缓冲区开始地址要改为10000;b.加密位SB1、SB2、SB3和配置位SC0等都不要勾选。

4、 将芯片安装到已经做好的仿真器上,然后上电,打开SSTFlashFlex51.exe文件,如图操作

选择单片机的型号,点击OK

选择串口参数,Detect MCU

点击确定,SSTFlashFlex51.exe会自动连接你的仿真器

5、连接上之后,选择SoftICE然后DownLoad SoftICE,确定之后,仿真器就做好了。

制作好的仿真器照片参考:

四、使用Keil μVision2进行仿真调试

仿真器做好以后就可以配合Keil μVision2进行仿真调试,设置过程如下:

写一段简单的跑马灯程序,设置断点,测试一下

在菜单Project中选择Optionsfor Target'Targetl',在\对话框的Debug 页面里,选择\:KeilMonitor-51 Driver\。

然后单击\选择要使用的计算机串行端口。Keil μ Vision2默认设置为COM1/9600。仿真器在一定范围内对串行通信波特率是自适应的,晶振频率为11.0592MHz时波特率可在4800~38400 之间选择。一般取最大值,以提高串口通信速度。最后单击\确定\按钮保存设定。仿真器或目标板也可以选择其他频率的晶振,比如晶振频率为6MHz时波特率可在2400~19200之间选择。如果使用目标板上的晶振,波特率要根据目标板上的晶振频率确定。

打开项目test.Uv2,完成上述设置后就可以进行仿真调试了。先单击工具栏上的Build target按钮 编

译项目,编译成功后将生成目标代码。将仿真器按正确的方向插在目标板上,串口和计算机连接好后接通目标板的电源,按一下仿真器的复位键S1,再单击Start/Stop Debug session按钮

,启动仿真调试环境,这

时目标代码将被自动下载到仿真器的Block0用户程序空间。连接成功会后出现如图7所示的画面,连接过程中 我们会发现发光二极管D1/D2在闪烁。连接不成功时请检查软件设置和硬件电路。 仿真时使用的主要调试按钮的功能如下:

进入仿真调试环境后,按一下全速运行按钮

,目标板上的8个发光二极管就会轮流点亮,表示运行成

你会发现程序运行到断点后停止向下执

功。如果我们在delay(100)前插入一个断点,按一下全速运行按钮行,只有第一个发光二极管点亮;再按一下全速运行按钮退出仿真时,请先按仿真器的复位键,然后再点一下按钮

,刚轮流到第二个发光二极管点亮,以此类推。 ,就回到编辑模式,修改程序后重新编译,可

以再次进入仿真调试环境。注意每次进入仿真调试环境前都要先按一下仿真器的复位按钮S1。 使用仿真器时请注意下面两点:

1.仿真器占用了仿真单片机的串行通信接口和用作波特率发生器的定时器2的资源,只有在全速运行时才释放这些资源,因此当目标板使用这些资源时就不能进行单步、跨步、断点等运行。这也是这个仿真器的一个不足之处。

2.仿真器监控芯片的SuperFlashEEPROM擦写寿命一般为每个存储单元1万次,而每一个单步执行都将擦写一次存储单元,因此应尽量少使用单步执行,多使用断点、跨步、断点和执行到光标行等节省擦写次数的功能,以延长仿真器的使用寿命。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4