单片机的单CPU仿真器的设计
图2 仿真器原理图
仿真器原理与结构
由于现在以8051为内核的单片机几乎都带有内部的FLASH程序存储器。如本设计中要用到的AT89C51或AT89S51均自带4KB的FLASH程序存储器,有的单片机带有20KB甚至更大容量的程序存储器。因此在单片机开发中,很少用专门的程序存储器芯片来扩展外部程序存储器,通常也没有必要。基于以上这些因素,下面分析本文中的仿真器实现的原理。
下载程序时,EA接高电平,单片机执行内部ROM中的程序,把PC机的程序数据下载到片外的RAM62256中;当程序数据下载完后,在保持RAM62256不掉电的情况下,将单片机的EA接低电平,并把单片机复位。这样单片机就只能从片外存储器中读数据。然后利用RD与PSEN相“与”来选通RAM62256的读允许片选端OE,使得单片机能够从RAM62256中读出程序。这样就实现了仿真功能。因为单片机从片内程序存储器和片外程序存储器取指时的执行速度相同,所以这个设计方案下的仿真器性能比起传统仿真器毫不逊色。
总系统电路原理如图2所示,系统由单片机AT89C51、地址锁存器74LS373、片外存储器62256、接口电平转换芯片MAX232和相关控制电路组成。
其中AT89C51就是仿真器的核心部件,晶体振荡电路和复位电路与普通单片机系统相同。不同的是:EA接一个单刀双投开关,表面上没有扩展ROM。 RAM62256的与OE普通单片机系统的接法有所不同,系统中把RD与PSEN相“与”,令其选通RAM62256的读允许片选端OE,就能促成 RAM(注意:整个过程中RAM不掉电)由数据空间的角色向程序空间的角色转换。在执行MOVX指令时,产生RD,WR信号,写入程序信息。在执行RAM 中的程序时,由PSEN信号与RD信号选通RAM62256的OE端,实现从RAM62256中程序的读入。