>
初学单片机的人可以在动手自己制作的过程中得到到动手能力的锻炼,而且往往动手过程要比只坐在那里写程序而言更为有趣味些。尤其是这个过程中往往多少经历些失败挫折最终获得成功。
学单片机呢,仿真器往往是最为让人着迷的了,因为它可以帮助人更好理解和学习程序知晓程序的运行程序的结构,并能从中获得更多成功的喜悦---亲眼一步一步地看到自己程序的运行,而自制仿真器也是一件很有挑战和好玩的事了。
自己也亲手做过51和AVR单片机的仿真器,这里先介绍51单片机的Moniter-51仿真器,能在Keil编译环境中对51单片机仿真。
下图为用万用板焊的Moniter-51仿真器,由于不是做板焊的,多少看起来是有点.....
不过毕竟是自己初学单片机时焊的,值得原谅了吧。本文附件中有Moniter-51制作的资料包括电路图和调试程序等。
其实光是焊好还并不代表好使,之后的软件配置和烧写过程还颇费些力气的。
下面就介绍在XP系统中利用Keil编译器的仿真器配置文件INSTALL.BAT来生成自己做的仿真器所需要的配置文件。这个文件在\Keil\C51\MON51中,同意文件夹下还有INSTALL.A51和MON_BANK.A51,这两个文件是Moniter-51的资源配置文件,用户需要修改相关的参数后才能使得仿真器正常运行。
首先由“开始”-->“运行”-->“CMD”进入XP系统的DOS状态,在进入提示界面光标闪烁处键入“CD C:\Keil\C51\MON51 ”(其中C:\为Keil所在的硬盘,可以根据你自己的电脑所安装的路径修改)然后敲”回车“进入MON51所在的文件夹。
然后在下一行的光标闪烁处键入”install.bat 0 7f 0"再敲回车中途按提示按一次任意键就OK了(其中参数0 7f 0 是可更改的,需要根据自己的仿真器的电路来设置。第一个0所在参数是用于设置单片机串口相关的参数,为0~12的正整数;7f所在参数用于指定Moniter-51监控程序的外部存储单元的页号,取值为0x00~0xFF,第二个0所在参数用于设定监控程序代码在程序存储器的起始页,取值为0x00~0xF0之间的十六进制数,缺省值为0x00;另有BANK参数是可选项可不写,用于为代码区分组的应用程序的安排,可通过INSTALL.A51来修改)如下图所示:
执行完上述的操作后就会在INSTALL.BAT所在的文件夹中生成一个MON51.HEX文件,将其用烧写器烧写到仿真器的仿真控制器(一片51单片机比如89C51或者52S系列如AT89S52后就完成仿真器部分的工作了。INSTALL.A51文件中的内容如下图所示:
可以修改PC机与仿真器之间的通信波特率,通常为9600bit/s