用TP801A单板机作工业自动控制或组装自动化仪器仪表,其应用程序通常是装入地址为0800H~OFFFH的PROM\(_{1}\)存储区。在没有仿真调试系统的情况下,只能把编好的应用程序放到PROM1中去运行调试。发现问题时,将程序调到地址为2000H~27FFH的RAM\(_{1}\)中进行修改。但是此时程序不能直接在RAM1中运行调试。因为应用程序中往往有一些JP和CALL指令转向的绝对地址。要逐条修改这类指令的转向地址才能运行。调试成功后,固化于EPROM中之前,又要逐条地修改过来。这是一件十分繁琐而且容易发生差错的事。这里介绍一种方法,可以免除上面麻烦,给调试程序带来极大的方便。
此法十分简单易行,只要照图中切断TP801A单板机U\(_{27}\)标有“X”号处的两条线,连接一个双刀双掷开关即可。其原理就是用此开关使地址译码器U24产生的存储区选择信号PROM\(_{1}\)SEL-和RAM1SEL-能互相交换,达到地址范围互换的目的。

使用时当开关掷向a\(_{1}\)、a2时,这是普通状态,相当于单板机未作改动。当开关掷向b\(_{1}\)、b2时RAM\(_{1}\)的地址与PROM1的地址就进行了互换。RAM\(_{1}\)的地址变为0800H~OFFFH,而PROM1的地址变为了2000H~27FFH。
调试应用程序时,先在2800H起始地址的单元打入下面这个数据块传送程序:
2800H 210008 LD HL, 0800H
2803H 110020 LD DE, 2000H
2806H 010008 LD BC, 0800H
2809H ED BO LDIR
280BH CF RST8
执行此程序后,就把PROM\(_{1}\)中的应用程序调到了RAM1中。接着把开关掷向b\(_{1}\)、b2,使RAM\(_{1}\)的地址变成0800H~OFFFH。这样就可以修改RAM1中的程序和直接运行调试了。调试成功后,将开关掷向a\(_{1}\)、a2,让RAM\(_{1}\)的地址又变成了2000H~27FFH,这时加上25伏电压,用“PROM”键就可以将RAM1中的应用程序写入PROM\(_{2}\)的EPROM中。复制PROM1程序时把PROM\(_{1}\)中的程序调入RAM1中,将开关拨向b\(_{1}\)、b2、用“PROM”键就能将其中的程序写入PROM\(_{2}\)的EPROM中。(高永锡)