单片机的单CPU仿真器的设计
单片机以它的廉价、体积小、可塑性强、稳定性高的特性,有着广阔的市场前景。 在用单片机开发产品时,虽然许多厂家设计了可编程ISP单片机,但是从安全与便捷方面考虑,单片机仿真器仍然是开发人员不可或缺的工具。单片机仿真器在产品开发阶段可用来替代单片机进行软硬件调试,从而迅速发现、纠正程序中的错误,大大缩短单片机开发的周期。但实际中仿真器过于昂贵,因此,设计制作出一款廉价且实用的仿真器有着广泛的市场。<BR><BR>       传统的单片机仿真器硬件系统一般有三种实现方法。一、采用专用仿真的单片机。二、采用两套单片机,一个单片机用于仿真,并完成诸如通讯,中断等功能;另一个单片机则用于目标单片机,这样其资源不会被占用。三、用目标单片机作为仿真器,单片机即仿真器也作目标机的单片机用,其实质是一种ROM监控器。第三种方法会占用单片机的部分资源,但结构简单,对于特定的开发者来说,实用性强,性价比高,且易于自行制作。本文开发设计的仿真器正是基于第三种原理,巧妙实现了数据空间与程序空间的互换,设计出一款实用廉价的仿真器,工程实践性强。
<P><STRONG><FONT color=#ff0033>      </FONT><FONT color=#000000> 原理及系统结构<BR></FONT></STRONG><BR>       仿真器工作时,要把程序从PC机下载到仿真器的存储器中。在此先详细分析51单片的存储器结构和寻址方法,再分析片外存储器的扩展,最后给出设计原理并分析系统结构。<BR><BR></P>
<P align=center><IMG style="WIDTH: 250px; HEIGHT: 166px" height=166 alt=存储空间分布 hspace=0 src="http://www.dzdqw.com/jishu/UploadFiles_9637/200610/20061010225421614.gif" width=250 border=0><BR>图1 存储空间分布</P>
<P><STRONG>       51单片机存储器结构分析<BR></STRONG><BR>       8051单片机的存储器在物理结构上分为程序存储器空间和数据存储器空间,共有4个存储空间:片内程序存储器、片外程序存储器以及片内数据存储器、片外数据存储器空间。这种程序存储和数据存储分开的结构形式被称为哈佛结构。但从用户的角度,8051存储器地址空间可分为3类:片内、片外统一编址0000H~FFFFH的64KB程序存储器地址空间(用16位地址);64KB片外数据存储器地址空间,地址也从0000H~FFFFH(用16位地址)编址;256B片内数据存储器地址空间(用8位地址)。<BR><BR>       上述4个存储空间地址是重叠的,如图1所示。8051的指令系统设计了不同的数据传送指令以区别这4个不同的逻辑空间:CPU访问片内、片外ROM指令用MOVC,访问片外RAM指令用MOVX,访问片内RAM指令用MOV。<BR><BR>       程序存储器用于存放编好的程序和表格常数。程序通过16位程序计数器寻址,寻址能力为64KB。这使得指令能在64KB的地址空间内任意跳转,但不能使程序从程序存储器空间转移到数据存储器空间。<BR><BR>       实际上,当引脚EA接高电平时,8051的程序计数器PC执行片内ROM中的程序,当指令地址超过片内ROM地址时,就自动转向片外ROM中去取指令。当引脚EA接低电平(接地)时,8051片内ROM不起作用,CPU只能从片外ROM中取指令,地址可以从0000H开始编址。8051从片内程序存储器和片外程序存储器取指时的执行速度相同。<BR><BR><STRONG>       存储器外扩</STRONG><?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><v:shapetype id=_x0000_t75 stroked="f" filled="f" path="mʄʅlʄᤋʉᤋʉʅxe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> <v:shapetype id=_x0000_t75 stroked="f" filled="f" path="mʄʅlʄᤋʉᤋʉʅxe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"></v:shapetype></v:shapetype>  </P>
相关资讯