您当前的位置:五五电子网电子知识电子制作仪表-仪器自制51仿真器 正文
自制51仿真器

自制51仿真器

点击数:7275 次   录入时间:03-04 12:01:16   整理:http://www.55dianzi.com   仪表-仪器

  初学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仿真器.

  图一 SST89C58

  一、制作带串口的的最小化应用板   无论是EasyIAP还是仿真器,都需要用串行口使SST89C58芯片和PC上位机进行通讯传输数据,因此我们先要制作一个带RS232/TTL转换的应用板,如果你的51实验电路板或目标电路板已带有这样的电路那么你就可以跳过这一段了.用两个NPN的小功率三极管和一些电阻二极管做RS232/TTL转换,或者直接用max232芯片来做RS232/TTL转换,其它元件则做复位和时钟振荡电路.在晶振方面最好使用11.0592M或12M.图二是本人做的51仿真器,见笑只是用万用板搭的~

  图二 本人用万用板做的仿真器

  图三 用两个NPN的小功率三极管和一些电阻二极管做RS232/TTL转换的51仿真器电路图

  图四 对应图三的PCB图

  图五 用max232做RS232/TTL转换的51仿真器电路图

  二、有编程器的做法   做好以上所说的电路后,那么就可以把仿真CPU的HEX文件烧到SST89C58里面,再把它插到上面的电路中就可以了.因为SST89C58有两个程序存储区,在这里要注意的是在烧写时就把仿真监控程序烧到SST89C58的第二个存储区也就是的RB1.烧写时要求用支持SST89C58的编程器,站长所用的是TOP2000.烧写设置画面如图五,在这里要注意的是如果你要烧写BSL固件程序做IAP在线下载器是不要对加密位SB1-3进行加密,并设存储位为RB1,否则无法用IAP功能.各编程器的设置不一样具体参看编程口的说明书.

  图六 TOP2000B烧写SST89C58做仿真器时的设置

  文件下载

  12M的BSL3,EasyIAP11E,EasyIAP11F在线下载控制程序

  还有一些其他的文件,本站不提供下载,如果有需要者请到原文处下载,不过我觉得有上面的3个文件就够用了~

  特别说明一下使用LAB TOOL-48型编程器的烧写过程,这种型号的编程器相信国内不少人在用,本人就是其中一个,这种型号的编程器的好处...俺就不表了,嘿嘿,好了下面进入正题!

  用LabTool-48直接对其编程,如果只是默认的做法,写进去的程序就只支持从"0000"开始了,怎么也不从"F000"开始了,由于仿真程序在BLOCk1块,要从"F000"运行,自然就不能运行仿真程序了,折磨了一会,答案马上揭晓~

  首先要找到对 Remap 编程的菜单选项,如图所示:

  点击弹出对话窗口,如下图示:

  编程器驱动程序显示RB0、RB1为 SC0、SC1

  上图只是"设置",下图"Proct"按钮才是最终执行操作

  特别提示:Remap编程必须单独操作,即使你首先设置好了才执行代码编程操作,Remap位也没有生效,相反每次代码编程操作之后,Remap位都恢复到"11"Normal态了,所以要想从"F000"开始运行程序,则必须在代码下载完成后单独进行Remap位编程操作,当Remap位被编程为"00"选两个"勾"编程之后,必须等再次片Erase变为"11"之后才能被编程为其它状态.

  看到这里可能有的朋友已经晕乎了,嘿嘿,不着急,写个步骤就清楚了.

  1 点config 按钮 ,在弹出的对话框中选中rb0 rb1,就是把rb0 rb1前面的对号挑上.(我试验了一下,只选中rb1也是可以的)

  2 装入 F51MBLE3.hex 文件.

  3 插上sst 89c58芯片,写入

  4 按一下 proct 按钮

  5 拔下芯片,完成了~

  然后按照 【三、没有编程器的做法】 一步一步的做下去就行了.~

  另附来自"老古"网站上的"sst89c58_iap"资料:可以参考一下~

  使用SST89C58的IAP功能进行在线下载程序的步骤

  1. 我从SST公司网站(www.ssti.com)上下载easyiap_58_11.zip(晶振为11.0592M)文件(包含SSTEasyIAP.exe,F51MBLE3.a51,F51MBLE3.bin,F51MBLE3.hex文件).

  2. 使用通用支持SST89C58的编程器将F51MBLE3.hex烧录到SST89C58芯片中.

  3. 使用编程器对SST89C58的REMAP BIT0(RB0)位进行编程(支持SST89C58的编程器的菜单中都有这个编程选项,请仔细查找)--影射0F000H之后的1K空间到0000H空间这时编程完毕的SST89C58芯片便具有了在线编程的功能.(CA版本的SST89C58在芯片出厂时已经预先将以上这些步骤完成了,可以不必使用编程器而直接在线下载).

  4. 使用RS232连线将PC和SST89C58的硬件产品连接起来.具体RS232硬件电路部分参考Bsl_schematic.pdf中的线路图.

  5. 上电.在PC上运行SSTEasyIAP.exe程序.

  6. 打开SSTEasyIAP.exe,执行Auto DetectChip菜单,根据提示,确定并同时手动复位SST89C58硬件,如果在界面中没有看到检测到SST89C58的信息.说明PC与SST89C58没有连接起来.请重新检查硬件连接.

  7. 如果在右上角看到SST89C58的版本信息.即可进行DOWNLOAD功能.

  8. 具体信息请参考UserGuideEasyIAP.pdf文件中的介绍进行操作.




本文关键字:仿真器  仪表-仪器电子制作 - 仪表-仪器