【CPU零地址仿真】是指在计算机或微控制器(如8031单片机)启动时,不占用从地址0000H开始的存储空间,而是将其留给用户程序使用。这种技术通常应用于开发系统中,以便在系统上电复位后能够立即进入监控程序,同时确保用户程序在零地址空间的正常运行。
在8031单片机的实例中,CPU上电复位后会从地址0000H开始执行程序,而监控程序则被安排在较高的地址空间,如E000H到FFFFH。用户程序则可以存储在0000H到DFFFH的RAM区域,通过编程工具下载。为了实现零地址仿真,需要设计一种硬件电路来模拟CPU在零地址执行程序的行为,但实际执行的是监控程序。
硬件设计中,通常使用可编程逻辑器件(如GAL20V8)并采用硬件描述语言(如ABEL-HDI)来构建仿真电路。这个电路包括两个RAM芯片(RAM1和RAM2),一个EPROM(E2764)和一些控制逻辑。在系统启动时,只有EPROM被选中,CPU执行其中的监控程序。监控程序通常包含了通信、键盘扫描、显示处理以及命令解释等功能。
电路中,R-S触发器(如由U2A和U2B组成的)用于控制芯片的选择。在上电复位时,触发器的Q端为0,使得所有RAM芯片的片选信号无效,而EPROM的片选信号(NMONCS)有效,确保CPU执行EPROM中的监控程序。监控程序开始处会有一条跳转指令(LJMP addr16),将PC指针设置为EPROM内的某个地址(addr16),从而在适当的时候,当R-S触发器的Q端变为1,CPU可以继续在EPROM的空间内执行,而不影响地址总线的其他设备。
这种零地址仿真的方法不仅适用于MCS-51系列,还可以扩展到其他类型的CPU,对于设计电路和仿真器具有一定的参考价值。通过合理利用存储空间和控制逻辑,可以在降低成本的同时实现对零地址空间的仿真,使得系统能够灵活地在监控模式和用户程序模式之间切换,这对于嵌入式系统的开发和调试具有重要意义。