单片机的单CPU仿真器的设计
软件设计
PC机(上位机)软件可以参考Windows驱动程序开发、串口调试助手等相关书籍;也可以利用现成的KEIL C51的Windows集成开发环境~VISION51和软件仿真器DSCOPE51完成。
下位机软件的主要任务就是设置串口和接收上位机串口发送来的数据,并将数据存入外部“数据”存储器中。
1/2 12下一页尾页
单片机主程序如下:
MOV SCON,#50H ;串口方式 1
MOV TMOD,#20H ;T1 方式 1
MOV TL1,#0FDH ;波特率 9600 的常数
MOV TH1,#0FDH
SETB TR1 ;开中断
SETB ET1
SETB ES
SETB EA
系统“写”时用如下指令:
MOVX @DPTR,A
MOVX @Ri, A
在中断服务子程序中,为区别所接收的信号是联络信号还是字节数、是数据还是校验和,需要设立不同的标志位如下:
FLAG0 BIT 00H ;接收联络信号标志位
FLAG1 BIT 01H ;接收字节数标志位
FLAG2 BIT 02H ;接收数据标志位
FLAG3 BIT 03H ;接收文件结束标志位
程序流程如图3所示,其中R7为接收到的字节数,接收的数据一定要存入片外RAM从0000H开始的单元中。当单片机复位后,把RAM当作程序存储器时,PC是从0000H开始的。
图3 单片机接收中断服务子程序流程图
几点讨论
(1) 系统中不需要单独的仿真器电源,也不需要晶振电路。
(2) 下位机的片外存储器在重复写数时不用擦除,每次重新下载程序时,总是用覆盖的方式。新下载的程序都有END为结束,就算新下载的程序比原来的短,也不会执行多余的代码。
(3) 在实际中,可以进一步改进电路,当文件下载完之后,通过串口备用的信号线产生控制信号来控制和复位,从而使得全过程均由上位机控制。