单片机编程工具DIY
自制51芯片仿真器(下)

🏠 首页 《无线电》杂志 2004年 🔗 第10期 🔗 第36页 分类:电脑与单片机 🔗 温正伟 🔗

上期,笔者为大家介绍了在没有SST编程器的情况下如何用CA版的芯片制作仿真器CPU的方法,本期将介绍在没有SST编程器和CA版SST89C58芯片的情况下用非CA版的SST芯片制作仿真器CPU的方法有SST编程器情况下的制作方法以及如何使用这款自制的仿真器。

如果芯片内部没有BSL可引导装载程序,又没支持SST89C58的编程器,要运行BSL程序,只能用EPROM编程器将BSL程序烧入EPROM中,再把SST89C58运行在使用片外程序存储器的系统中。这样首先要有支持EPROM的编程器,然后EPROM要选择32K大小的,如27C256、AT29C256等,还要按图15所示电路图制作出使用SST89C58运行片外程序的电路。在http://www.sst.com/products/software_utils/bsl/InternalMemMode_C5x.zip下载文件,解压后把文件F51MBLI5.HEX写到EPROM中,电路工作后可以用上期介绍的步骤进行升级并下载仿真监控固件程序。升级过程中要注意SST89C58的第31脚(EA/VPP)要接地,这样才能使SST89C58运行片外的程序。

图1
图1 🔍原图 (850×777)

如果有SST编程器,就可以直接把仿真监控程序的HEX文件烧到SST89C58中,再把它插到上面的电路中即可。因为SST89C58有两个程序存储区,注意在烧写时应该把仿真监控程序烧到SST89C58的第二个存储区,也就是RB1。烧写时要求用支持SST89C58的编程器,笔者所用的是TOP2000,烧写设置画面见图16。这里要注意如果要烧写BSL固件程序,制作IAP在线下载器时不要对加密位SB1~SB3进行加密,并设存储位为RB1,否则无法用IAP功能。读者可以到SST的官方网站http://www.sst.com/products/software_utils/softice/index.xhtml上下载一个名为SoftICE_58.zip的压缩包,解压后就有SoftIce58.hex、SSTEaspIAP11F.EXE等文件在其中,用编程器读取仿真监控程序SoftIce58.hex后就可以烧入芯片中了。

如何与Keil UV2连接使用

制作好的仿真器要连接功能强大的Keil UV2单片机集成开发软件才能发挥它所有的性能。使用前要安装Keil UV2,个人学习使用时可以到国内代理商的网址http://www.zlgmcu.com/KeilC51/keil_website.asp下载评估版的软件,该软件可以编译2K的HEX程序,用于学习和小开发足够了。使用时先用串口线把仿真器连接到电脑的串口上,再把仿真器接到目标板上,仿真器所需电源是通过40和20脚在目标板上取得,如目标板上有串口电路,则把仿真器拨码开关1和2关掉,转用目标板上的串口接入电脑。目标板有晶振时应关掉3和4。如果目标板上有完整的时钟、复位和串口电路,则可以直接把带有仿真监控程序的SST89C58芯片插到目标板上使用。

在使用本文介绍的仿真器时可能会遇到不能复位的情况,因为仿真器上的复位电路和目标板上的复位电路有冲突,造成复位电平过低,解决办法是暂时断开目标板上的复位电路。

笔者再介绍一下Keil基本设置和应用,点击图17中的项目设置菜单进行程序项目的设置。

图2
图2 🔍原图 (266×260)

在项目设置Debug页中选择对应本仿真器的KeilMon51驱动,如图18中1所示。图18的3中是选择在仿真时能使用的工具窗口,如内存显示、断点等。按2进行图19中的仿真器设置。设置好串口号、波特率,晶振为11.0592M时选38400。选取Cache Options后会加快仿真的运行速度。

图3
图3 🔍原图 (387×443)
图4
图4 🔍原图 (367×353)

设好上述项目后编译运行程序就可以连接仿真器了,连接成功时会出现图20的画面。如连接不成功就出现图21,这时可以先复位电路再按“Try Again”,还连接不成功则应检查软件设置和硬件电路。

图5
图5 🔍原图 (280×330)
图6
图6 🔍原图 (389×180)

图20中1指示仿真器的固件版本为F-MON51V3.4版。点击3所示小红点位置时为设置和取消断点,点击2所示处则运行到下一个断点。这款仿真器自制很方便,笔者用它调试过不少程序实例,有兴趣的读者可以到笔者的网站http://www.cdle.net上了解更完整的信息,下载实例程序以及参与相关讨论。

(文/温正伟)