C51-III单片机仿真器(新版!)<br /><br />全套制作资料,含SCH,PCB,HEX,C51源代码!MON51通讯协议,是目前网上此类仿真机的极品。监控程序99%采用C语言编写,移植方便!不提供技术支持!<br /><br />(此产品,一经出售,概不退货!)<br /><br />C51_III 仿 真 器 用 户 手 册(www.mon51.cn)<br />一、 C51-III仿真器主要性能<br /><br /> C51_III仿真机是在第2代的基础上,用C语言全新开发的。纠正了第2代的一些BUG,整体程序结构更加紧凑,执行速度更快!它与网上大量<br /><br />销售的SST公版仿真机有本质的区别!<br /><br /> C51_III仿真器使用两片单片机来实现仿真功能,仿真时通过USB与用户的PC机连接。用户可以开发63K的应用程序,并具有384个外部(在MCU内部)XRAM字节,可以使用,内部数据全部用XRAM保存(用SPI口传送到89S52单片机中保存也可以,但整体速度会降低!)。<br />C51_III仿真器可以极速单步与专业仿真机相当:<br /><br /> 现在所有的Mon51简易仿真机均采用IAP方式写入用户程序。这样不可避免地降低了单片机中FLASHROM的寿命,尤其是单步仿真时。要频繁在FLASHROM(ExEcBuf[9])处写入要单步执行的代码,此空间会因反复擦写而降低了工作寿命!为了克服这个问题,特开辟了一个512字节的执行区(C51_II仿真器只使用128个字节),采用环形方式写入,这样将FLASHROM的寿命延长了56倍(512/9=56)。彻底解决了问题!可以将缓存区扩展到1K到4K,寿命就可以提高上百倍。因此C51_III仿真器是一个不用再考虑寿命的仿真机!用户可以随时单步运行。单步执行的命令是无法用RAM来完成的,这是MCS51系列单片机寻址限制的。<br /><br />//****************************************************************<br />//如果OP_MODE=1 采用单步执行方式 ,于10个断点比较<br />void Step_Into(void){<br /> SendMsgToPC();<br /> Option.SendStation=1;<br /> Option.ProcMode=0; //全部是单步执行!<br /><br /> do{<br /> InTrace(); //单步执行 没有做:SaveAllData<br /> }while(CmpBrkAll(CUR_BRK)==0); //始终与第11个断点比较!<br />}//*********************************************************<br />//跨步执行,将用户下一条指令的地址写入第11个断点,并修改<br />//用户的程序Lcall<br />//USE_PC_H,USE_PC_L =下一条指令的地址<br />//将此地址放入第11个断点区!<br />void Jb_Step_Over (void){<br /><br /> SetBrk(1,CUR_BRK,UsePc.PC); //放入第11个断点标志=1<br /><br /> if((Option.OP_MODE & 0x04)==0){<br /> //在第11个断点,指定的位置处放入lcall<br /> //用户的程序处,被改成lcall<br /> //遇到LCALL 后进入STOP 处理程序,再自动返回MON51<br /> PaceBrkToROM(CUR_BRK);<br /> Going();<br /> }else{<br /> Step_Into( );<br /> }<br />}<br />/********************************************************<br />10#-->jmp @a+dptr<br />*********************************************************/<br />void Jmp_a_Dptr (void){<br />// UsePc.PC =xSfr.A+(xSfr.PCH<<8 |xSfr.PCL);<br /> UsePc.PC =xSfr.A+(xSfr.DPH<<8 |xSfr.DPL);<br />}<br />//3#-->跳转指令,直接将用户的下个数据,放入DPTR<br />//此时 USE_PC_H,USE_PC_L,指向下一条指令的地址<br />//r5r6=(LJMP 或LCALL 下2个字节的内容,实际是目标地址)<br />//***********************************************<br />void Ljmp_Do (void){<br /> UsePc.PC=UsePc.Code[1]<<8 |UsePc.Code[2];<br />}<br /><br />//*******************************************************<br />//将用户的PC地址压入模拟堆栈<br />void PUSH_UsePcToxRAM(void){<br /> PUSH_Mem(UsePc.PC);<br /> PUSH_Mem(UsePc.PC>>8);<br />}<br />/*******************************************************<br />//ret<br />A=sp的数据 保存用户的地址指针(已经-2)<br />*******************************************************/<br />void Ret_Do (void){<br /> UsePc.PC=POP_Mem()<<8;<br /> UsePc.PC |=POP_Mem();<br />}<br /><br /> <br /><br />最新技术:<br />1:C51_III仿真器采用Monitor-51 V8.0的驱动。支持Keil V7.0以上 uVision2、uVision3。<br />2:采用USB口通讯,可以方便地与笔记本连接,方便现场调试!<br />3:零资源占用,彻底释放UART口和T2定时器,可方便仿真串口。<br />4:极速下载和快速单步仿真。<br />5:单片机无寿命之忧。所有断点数据,临时数据全部放在XDATA中,不像其它网站上的全部放在FLASHROM中。<br />6:断点数量增加到20个。<br />C51_III仿真器的主要性能简介和说明:<br />1、 直接支持 KEIL C51 的 IDE 开发仿真环境。<br />2、 可单步、断点、全速运行调试程序、可参考变量、RAM变量。<br />3、 支持汇编、C语言混合调试。<br />4、 片内 63K 程序空间可以随时进行在线程序更新。<br />以上实际上是Keil的功能。全是废话!见笑。<br />5、 完全仿真51系列单片机的各种功能!零资源占用!<br />6、 仿真机工作频率:1-40MHz,可由用户自行设定,通讯波特率:115.2Kb/S 。<br />7、 仿真时仅2个SP占用,仿真更加全面真实。此功能实际上并无很大用处,试想谁做的软件只留2个字节的堆栈?但为了增加对比性,也特此提出。实现这个功能实际非常简单,借用单片机内部不用的寄存器来保存ACC,DPTR就行,根本谈不上技术。例如:WTD(看门狗寄存器),控制IAP操作的寄存器组:SFAL、FAH、SFDT等。<br />8、 无需用复位键复位仿真机,即可N次下载仿真!C51_III仿真器上电并不删除用户程序,而是采用数据比较后采用扇区删除,因此不必复位<br /><br />9、有脱机运行用户程序模式,这时仿真机就相当于目标板上烧好的一个芯片,可以完全真实的运行用户程序。原来C51_II仿真器采用软件方法进入用户程序,是因为没有多余的硬件,不得以而为之,现在采用双MCU,有多余的IO脚。所以C51_III仿真器采用短接跳针的方式进入用户程序,更快捷,方便!<br />10、片上带有256个IDAT和384字节的XDATA,您可以在仿真时使用它们。当要访问外部的XDATA RAM时,请注意地址必须要从0X300开始,因为仿真机内部有768个字节的XDATA RAM。<br />C51-III仿真机的仿真机芯片是采用SST89E516ED2,大家可以到http://www.sst.com/products.xhtml/embedded_controllers/89/SST89E516RD2<br /><br />查看它的资料!在此只简单说明几个寄存器的使用:<br />AUXR (地址:8EH)<br />它的D1: EXTRAM =1 可以访问用户自己扩展的外部RAM(0-64K),EXTRAM =0则可以访问MCU内部768个字节+64768(外部)=64K 的RAM。<br /> D0:AO=1 可以输出ALE标准信号,AO=0 关闭ALE输出。<br />AUXR1 (地址:A2H)<br />它的D0: DPS=1 选择DPTR1; DPS=0 选择DPTR0;<br />用户只要改变这两个寄存器,就可以做到:仿真双DPTR;仿真去除ALE信号。<br />这也是SST单片的功能,并不是什么新的技术!<br /> C51-III仿真机内部保护了上述2个寄存器。因此可以使用它们的功能!当用户使用自己扩展的外部RAM时,地址可以从00H开始,连续存放,C51-III仿真机会自动将数据保存到内部XDATA 中,但是当用户使用内部的XDATA时,必须注意要跳开0x180—0x2FF的地址空间。<br />11、监控程序和用户代码分离,并采用双重保护:<br />11.1、监控代码被硬件锁定,不可能被删除篡改,这是SST公司芯片自身的特点。有些网站自称是最新技术。非常好笑!<br />11.2、Monitor-51 V5.0的驱动,具有对用户程序范围判断功能,如果用户程序超出63K的范围。会发出图1的警告说明。从而禁止用户程序覆盖Mon51监控程序。即便用户程序跑飞,覆盖了高端1K的代码。Mon51监控程序在上电是都会检测,自行修复!这才是最新的技术。<br />12、所有的断点数据,变量,全部在XDATA RAM中,运行如飞。可以与专业的仿真机匹敌。<br />13、断点数量增加到20个,使调试更简单。<br />14、仿真晶振可以方便调换!<br />15、采用无忧针脚设计,折断后,可以自行更换!<br />C51_III仿真器在仿真空间的大小、仿真速度上都具有专业仿真机的性能!<br />二、安装<br />2.1 C51_III仿真器软件安装<br />C51_III的仿真软件安装,就是Keil C51_III V7.0(或以上版本)软件的安装。(请自行安装!)<br />2.2 C51_III仿真器硬件连接<br />§C51_III仿真器直接插入用户的应用板MCU的位置。<br />§C51_III仿真器上电后,LED指示灯会闪烁3下。<br />§仿真器由USB口提供电源(5V),但它的第40脚并不向目标板提供电源!这样是为了防止用户的PCB板有故障,而损坏USB端口。如果用户需要使用USB口的电源,请自行将+5V与40脚短接在一起。但由此而带来的损失,本人不负任何责任!<br />§C51_III仿真器的仿真频率默认是22.1184MHz,用户可以通过跳线任意改变(见图)。<br /><br />
|