自制51芯片仿真器完全手册

2013-10-29 14:28:00
  • 很多朋友来索要pcb图纸,在这我把它出来,有需要的朋友可以下载查看。04033101_1_s51.rar初学51单片机或是业余玩玩单片机开发,每次总要不断的调试程序,如没有仿真器又不喜欢用软件仿真,那只有每次把编译好的程序烧录到芯片上,然后在应用电路

很多朋友来索要pcb图纸,在这我把它出来,有需要的朋友可以下载查看。04033101_1_s51.rar初学51单片机或是业余玩玩单片机开发,每次总要不断的调试程序,如没有仿真器又不喜欢用软件仿真,那只有每次把编译好的程序烧录到芯片上,然后在应用电路或实验板上观察程序运行的结果,对于一些小程序这样的做好也可以很快找到程序上的错误,但是程序大了,变量也会变的很多,而直接烧片就很难看到这些变量的值了,在修改程序时还要不断的烧片实验,确实很麻烦,这时如果有一台仿真器就会变得很好方便了。但一台好的仿真器对于业余爱好者来说确实有一些贵,在这里介绍这种易于自制的51芯片仿真器虽然有一些地方不够完善,但还是非常适于初学51单片机的朋友和经济能力不是很好的业余爱好者。

这个仿真器的仿真cpu是使用sst公司的sst89c58或sst89c54(其它相容的芯片也可,这里主要讲述sst89c58),对于没有可以烧写sst89c58芯片的朋友应该选用ca版本的sst89c58芯片,这个ca型号的芯片出厂时已内置了bsl1.1e的固件程序。那什么是bsl呢?bsl就是英文boot-strap loader,意思就是可引导装载,形象来说就像电脑用dos起动盘起动后可以装载应用程序并运行。只不过sst89c58是用串口来输入程序资料的。为了能把编译好的单片机程序hex或bin文件下载到sst89c58芯片上,sst公司还提供了一种叫easyiap的软件,iap为in-application programming,有了这个软件就可以把sst89c54变为在线下载的实验器。在这里不详述easyiap的使用,只讲述如何利用它去把sst89c58升级为带softice固件程序的51仿真器。一、制作带串口的的最小化应用板

无论是easyiap还是仿真器,都需要用串行口使sst89c58芯片和pc上位机进行通讯传输数据,因此我们先要制作一个带rs232/ttl转换的应用板,如果你的51实验电路板或目标电路板已带有这样的电路那么你就可以跳过这一段了。图二是笔者所设计的可以用于制作sst89c58/54仿真器、s51系列下载器或51系列实验应用的小型应用板。(做个广告,这板子将在本站进行发售)它的电路是很简单的,用两个npn的小功率三极管和一些电阻二极管做rs232/ttl转换其它元件则做复位和时钟振荡电路。图三是我以前做的51应用板,刚好可以用就拿来用了,省却了用万用板做图四那样的东西,但这块应用板不能像图4那个可以当芯片插到目标板上。在晶振方面最好使用11.0592m或12m。二、有编程器的做法

做好以上所说的电路后,那么就可以把仿真cpu的hex文件烧到sst89c58里面,再把它插到上面的电路中就可以了。因为sst89c58有两个程序存储区,在这里要注意的是在烧写时就把仿真监控程序烧到sst89c58的第二个存储区也就是的rb1。烧写时要求用支持sst89c58的编程器,站长所用的是top2000。烧写设置画面如图五,在这里要注意的是如果你要烧写bsl固件程序做iap在线下载器是不要对加密位sb1-3进行加密,并设存储位为rb1,否则无法用iap功能。各编程器的设置不一样具体参看编程口的说明书。图五 top2000b烧写sst89c58做仿真器时的设置文件下载文件名称说明softice58.hexsst89c58仿真监控程序softice54.hexsst89c54仿真监控程序ssteasyiap11f.exeeasyiap11f在线下载控制程序softice_58.zip压缩包内包含softice58.hex,ssteasyiap11f.exeeasyiap_58_11.zip包含11.0592m的bsl3,easyiap11eeasyiap_58_12.zip包含12m的bsl3,easyiap11eeasyiap54_12.zip包含11.0592m的58,bsl3,easyiap11eeasyiap_54_11.zip包含12m的bsl3,easyiap11ebsl1.1f_user's_guide.pdfbsl5 easyiap11f使用手册softice-ug.pdfsoftice-ug.pdf使用手册三、没有编程器的做法

如果你手头上没有支持sst89c58的编程器,那么你就要购卖ca版的sst89c58芯片,当然不是ca版的也是可以做的,只是相对来说比较麻烦这里就不做讨论了,可以对参看红日网友发起的贴子(http://bbs.cdle./dispbbs.asp?boardid=18&id=940&page=1)。

1.首先把ca版的sst89c58芯片插到上面介绍的电路板中,因ca版上已装入了bsl3,你可以先下载easyiap11e,测试一下你的电路板是否是正常工作的。(用easyiap11f也可以)如果你能保证你的电路是正常工作的可以跳过这一步。把你的电路接到电脑串口上,打开easyiap11e软件。图六 easyiap11e

按菜单上的rs232弹出串口设置画面,设好你要用的串口和波特率,选用波特率选用默认的38400就可。确定后按菜单的“auto detectchip”图七中1所示。图七 电路正常程序的画面

当你的电路正常时就会图七的画面,并在2所示位置显示芯片的型号,bsl版本等信息。如果你无法到这一步就请检查你的电路是否有正常的复位和起振,串口电路是否正常或芯片是否损坏等等问题。

2.升级bsl11e到bsl11f。下载easpiap11f并运行。下面是操作截图和注意事项。图八

图八中选中的菜单项是把11e升级到11f的命令,下面一个则可以用检测固件版本连接固件,如固件是11e也会提示是否升级到11f,最上一个则用于11f连接easpiap用。图九图十图十一 提示

一路按确定,到了这一步会提示是否升级11e到11f,按“是”继续升级.图十二 出错提示

如果你用于升级的sst89c58芯片做了加密操作的话就会在升级过程中出现图十二的出错提示,如真是加密了只有用编程器擦除后直接烧入仿真监控程序或bsl11f程序了。出现这样的提示也可能是串口线接触不好,或电路有问题。图十三 提示升级成功图十四 版本提示

一切正常的话就会出现图十三的成功升级11f提示。升级成功后,会在图十四位置中显示v1.1f的固件版本号。到了这一步11e升级就成功升级到11f。

3.下载仿真监控固件程序。从11e升级到11f后就可以进行下面的操作了。下面的操作和上一步基本相同,这里就不详述了。图十五图十六图十七 选择对应你的电路板的晶振频率图十八 下载softice图十九 密码一般不用输入图二十图二十一 升级成功提示

升级成功后就可以把仿真器连接keil uv2或keil uv3进行仿真操作了。 图22 项目设置菜单图23 项目设置在项目设置debug页中选择对应本仿真器的keilmon51驱动,如图23中1所示。图23的3中是选择在仿真时能使用的工具窗口,如内存显示,断点等等。按2进行图24中的仿真器设置。设置好串口号,波特率,晶振为11.0592m时选38400。cache options为仿真缓选取后会加快仿真的运行的速度。 图24 仿真器设置 图25 仿真器连接成功设好后编译运行程序就可以连接仿真器了,连接成功会出现如图25的画面。如连接不成功就出现图26的图,这时可以先复位电路再按'try again',还不成功连接的话则应检查软件设置和硬件电路。图25中1是指示仿真器的固件版本为f-mon51v3.4版。点击3中小红点位置时为设置和取消断点,点击2则运行到下一个断点。图27则是变量和存储器的查看。仿真器在软件大概的使用方法和软件仿真相差不多。图27 连接不成功提示