打印

请教 仿真器制作

[复制链接]
4882|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
nehc88|  楼主 | 2009-7-7 18:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好!新手请教些问题!!

网上很多的有关仿真器制作的资料!我也准备自己做一个!可是前几天在网上看到,说是自己制作的仿真器(用sst89系列)需要占用单片机的RXD(P3.0)和TXD(P3.1)!如果这样的话,那想制作多机通讯的东东就不能用了!我想做通讯的人也不会少吧!这样的问题有人能解决吗?有人告诉我,说是贵点的仿真器是不占用单片机资源的!

所以我想请教高手们有办法吗?能制作个吗!?

相关帖子

沙发
古道热肠| | 2009-7-8 10:17 | 只看该作者

多机通讯部分直接下程序测试就行了.

较难做出与商品化的仿真器一样性能的仿真器吗?难度很大.

使用特权

评论回复
板凳
nehc88|  楼主 | 2009-7-8 14:35 | 只看该作者

请教 仿真器制作

有没有好的办法 避免这种情况啊???

使用特权

评论回复
地板
chunyang| | 2009-7-8 22:10 | 只看该作者

新手不适合自制仿真器

    新手即便是动手能力非常好、悟性高超的也无法独立设计、制作出可应付绝大多数仿真需求的仿真器,网上的一些简单资料所及“仿真器”基本上没有多大实用价值,不如在具体的项目设计中学习、锻炼,比做个简单的仿真器有价值。
    我入行MCU设计就不是靠仿真器的,而现在的很多MCU都支持ISP、IAP,只要不是仅有OTP的型号系列,仿真器就不是必须。

使用特权

评论回复
5
古道热肠| | 2009-7-9 15:25 | 只看该作者

chunyang分析得有理,建议楼主学会软件仿真

软件仿真,无剑胜有剑.

使用特权

评论回复
6
icecut| | 2009-7-13 12:39 | 只看该作者

我们不推荐用.

不过你可以使用支持仿真的单片机.sst的的确可以.不过占用串口.有些简单的仿真器卖给学校的还占用定时器..

要不你直接学arm吧.仿真比较好.不过仿真器也不便宜.相对单片机可能便宜点.

或者用mega16.也不错.实在不行sst芯片也可以.

使用特权

评论回复
7
mohanwei| | 2009-7-13 13:32 | 只看该作者

对于51,建议用C8051最小板+调试器

最小板上只焊晶振、电容,管脚全部引出,甚至可以搞成标准DIP40……
USB调试器好像是90块……

以前初学的时候就考虑过这个方案,后来没用上,因为发现没必要。

使用特权

评论回复
8
cauhorse| | 2009-7-18 16:19 | 只看该作者

不整了

像SST那样支持Soft-ice的片子,头一回用上觉着还可以,像个片上仿真的,等真做东西了,还是习惯用带ISP的片子一回一回不厌其烦地烧写。。。

使用特权

评论回复
9
mon51| | 2009-7-19 09:01 | 只看该作者

有不占用串口的仿真机,自制也很简单。

www.mon51.cn

使用特权

评论回复
10
mon51| | 2009-7-19 09:04 | 只看该作者

图片

https://bbs.21ic.com/upfiles/img/20097/200971985951427.jpg
http://item.taobao.com/auction/item_detail.jhtml?item_id=07553e6c82120d1793d231328d04e4a5&x_id=0db2

使用特权

评论回复
11
mon51| | 2009-7-19 09:05 | 只看该作者

完全可以自制

C51-III单片机仿真器(新版!)

全套制作资料,含SCH,PCB,HEX,C51源代码!MON51通讯协议,是目前网上此类仿真机的极品。监控程序99%采用C语言编写,移植方便!不提供技术支持!

(此产品,一经出售,概不退货!)

C51_III 仿 真 器 用 户 手 册(www.mon51.cn)
一、 C51-III仿真器主要性能

   C51_III仿真机是在第2代的基础上,用C语言全新开发的。纠正了第2代的一些BUG,整体程序结构更加紧凑,执行速度更快!它与网上大量

销售的SST公版仿真机有本质的区别!

   C51_III仿真器使用两片单片机来实现仿真功能,仿真时通过USB与用户的PC机连接。用户可以开发63K的应用程序,并具有384个外部(在MCU内部)XRAM字节,可以使用,内部数据全部用XRAM保存(用SPI口传送到89S52单片机中保存也可以,但整体速度会降低!)。
C51_III仿真器可以极速单步与专业仿真机相当:

   现在所有的Mon51简易仿真机均采用IAP方式写入用户程序。这样不可避免地降低了单片机中FLASHROM的寿命,尤其是单步仿真时。要频繁在FLASHROM(ExEcBuf[9])处写入要单步执行的代码,此空间会因反复擦写而降低了工作寿命!为了克服这个问题,特开辟了一个512字节的执行区(C51_II仿真器只使用128个字节),采用环形方式写入,这样将FLASHROM的寿命延长了56倍(512/9=56)。彻底解决了问题!可以将缓存区扩展到1K到4K,寿命就可以提高上百倍。因此C51_III仿真器是一个不用再考虑寿命的仿真机!用户可以随时单步运行。单步执行的命令是无法用RAM来完成的,这是MCS51系列单片机寻址限制的。

//****************************************************************
//如果OP_MODE=1 采用单步执行方式 ,于10个断点比较
void Step_Into(void){
 SendMsgToPC();
 Option.SendStation=1;
 Option.ProcMode=0; //全部是单步执行!

 do{
  InTrace();   //单步执行 没有做:SaveAllData
 }while(CmpBrkAll(CUR_BRK)==0); //始终与第11个断点比较!
}//*********************************************************
//跨步执行,将用户下一条指令的地址写入第11个断点,并修改
//用户的程序Lcall
//USE_PC_H,USE_PC_L =下一条指令的地址
//将此地址放入第11个断点区!
void Jb_Step_Over (void){

 SetBrk(1,CUR_BRK,UsePc.PC); //放入第11个断点标志=1

 if((Option.OP_MODE & 0x04)==0){
  //在第11个断点,指定的位置处放入lcall
  //用户的程序处,被改成lcall
  //遇到LCALL 后进入STOP 处理程序,再自动返回MON51
  PaceBrkToROM(CUR_BRK);
  Going();
 }else{
  Step_Into( );
 }
}
/********************************************************
10#-->jmp @a+dptr
*********************************************************/
void Jmp_a_Dptr (void){
// UsePc.PC =xSfr.A+(xSfr.PCH<<8 |xSfr.PCL);
 UsePc.PC =xSfr.A+(xSfr.DPH<<8 |xSfr.DPL);
}
//3#-->跳转指令,直接将用户的下个数据,放入DPTR
//此时 USE_PC_H,USE_PC_L,指向下一条指令的地址
//r5r6=(LJMP 或LCALL 下2个字节的内容,实际是目标地址)
//***********************************************
void Ljmp_Do (void){
 UsePc.PC=UsePc.Code[1]<<8 |UsePc.Code[2];
}

//*******************************************************
//将用户的PC地址压入模拟堆栈
void PUSH_UsePcToxRAM(void){
 PUSH_Mem(UsePc.PC);
 PUSH_Mem(UsePc.PC>>8);
}
/*******************************************************
//ret
A=sp的数据 保存用户的地址指针(已经-2)
*******************************************************/
void Ret_Do (void){
 UsePc.PC=POP_Mem()<<8;
 UsePc.PC |=POP_Mem();
}

 

最新技术:
1:C51_III仿真器采用Monitor-51 V8.0的驱动。支持Keil V7.0以上  uVision2、uVision3。
2:采用USB口通讯,可以方便地与笔记本连接,方便现场调试!
3:零资源占用,彻底释放UART口和T2定时器,可方便仿真串口。
4:极速下载和快速单步仿真。
5:单片机无寿命之忧。所有断点数据,临时数据全部放在XDATA中,不像其它网站上的全部放在FLASHROM中。
6:断点数量增加到20个。
C51_III仿真器的主要性能简介和说明:
1、 直接支持 KEIL C51 的 IDE 开发仿真环境。
2、 可单步、断点、全速运行调试程序、可参考变量、RAM变量。
3、 支持汇编、C语言混合调试。
4、 片内 63K 程序空间可以随时进行在线程序更新。
以上实际上是Keil的功能。全是废话!见笑。
5、 完全仿真51系列单片机的各种功能!零资源占用!
6、 仿真机工作频率:1-40MHz,可由用户自行设定,通讯波特率:115.2Kb/S 。
7、 仿真时仅2个SP占用,仿真更加全面真实。此功能实际上并无很大用处,试想谁做的软件只留2个字节的堆栈?但为了增加对比性,也特此提出。实现这个功能实际非常简单,借用单片机内部不用的寄存器来保存ACC,DPTR就行,根本谈不上技术。例如:WTD(看门狗寄存器),控制IAP操作的寄存器组:SFAL、FAH、SFDT等。
8、 无需用复位键复位仿真机,即可N次下载仿真!C51_III仿真器上电并不删除用户程序,而是采用数据比较后采用扇区删除,因此不必复位

9、有脱机运行用户程序模式,这时仿真机就相当于目标板上烧好的一个芯片,可以完全真实的运行用户程序。原来C51_II仿真器采用软件方法进入用户程序,是因为没有多余的硬件,不得以而为之,现在采用双MCU,有多余的IO脚。所以C51_III仿真器采用短接跳针的方式进入用户程序,更快捷,方便!
10、片上带有256个IDAT和384字节的XDATA,您可以在仿真时使用它们。当要访问外部的XDATA RAM时,请注意地址必须要从0X300开始,因为仿真机内部有768个字节的XDATA RAM。
C51-III仿真机的仿真机芯片是采用SST89E516ED2,大家可以到http://www.sst.com/products.xhtml/embedded_controllers/89/SST89E516RD2

查看它的资料!在此只简单说明几个寄存器的使用:
AUXR (地址:8EH)
它的D1: EXTRAM =1 可以访问用户自己扩展的外部RAM(0-64K),EXTRAM =0则可以访问MCU内部768个字节+64768(外部)=64K 的RAM。
    D0:AO=1 可以输出ALE标准信号,AO=0 关闭ALE输出。
AUXR1 (地址:A2H)
它的D0: DPS=1 选择DPTR1; DPS=0 选择DPTR0;
用户只要改变这两个寄存器,就可以做到:仿真双DPTR;仿真去除ALE信号。
这也是SST单片的功能,并不是什么新的技术!
    C51-III仿真机内部保护了上述2个寄存器。因此可以使用它们的功能!当用户使用自己扩展的外部RAM时,地址可以从00H开始,连续存放,C51-III仿真机会自动将数据保存到内部XDATA 中,但是当用户使用内部的XDATA时,必须注意要跳开0x180—0x2FF的地址空间。
11、监控程序和用户代码分离,并采用双重保护:
11.1、监控代码被硬件锁定,不可能被删除篡改,这是SST公司芯片自身的特点。有些网站自称是最新技术。非常好笑!
11.2、Monitor-51 V5.0的驱动,具有对用户程序范围判断功能,如果用户程序超出63K的范围。会发出图1的警告说明。从而禁止用户程序覆盖Mon51监控程序。即便用户程序跑飞,覆盖了高端1K的代码。Mon51监控程序在上电是都会检测,自行修复!这才是最新的技术。
12、所有的断点数据,变量,全部在XDATA RAM中,运行如飞。可以与专业的仿真机匹敌。
13、断点数量增加到20个,使调试更简单。
14、仿真晶振可以方便调换!
15、采用无忧针脚设计,折断后,可以自行更换!
C51_III仿真器在仿真空间的大小、仿真速度上都具有专业仿真机的性能!
二、安装
2.1 C51_III仿真器软件安装
C51_III的仿真软件安装,就是Keil C51_III V7.0(或以上版本)软件的安装。(请自行安装!)
2.2 C51_III仿真器硬件连接
§C51_III仿真器直接插入用户的应用板MCU的位置。
§C51_III仿真器上电后,LED指示灯会闪烁3下。
§仿真器由USB口提供电源(5V),但它的第40脚并不向目标板提供电源!这样是为了防止用户的PCB板有故障,而损坏USB端口。如果用户需要使用USB口的电源,请自行将+5V与40脚短接在一起。但由此而带来的损失,本人不负任何责任!
§C51_III仿真器的仿真频率默认是22.1184MHz,用户可以通过跳线任意改变(见图)。

使用特权

评论回复
12
nehc88|  楼主 | 2009-7-24 14:45 | 只看该作者

仿真器制作

太谢谢各位了

使用特权

评论回复
13
古道热肠| | 2009-7-24 16:30 | 只看该作者

不用谢,您还是把软仿真学好吧

再就是用好printf这个函数,开发板程序运行到什么状态,只要printf到PC机就全明白了.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

12

帖子

0

粉丝