历史上的今天
返回首页

历史上的今天

今天是:2025年04月13日(星期日)

正在发生

2018年04月13日 | 基于单片机仿真器的设计详解

2018-04-13 来源:eefocus

  仿真器是什么

  仿真器(emulator)以某一系统复现另一系统的功能。与计算机模拟系统(Computer SimulaTIon)的区别在于,仿真器致力于模仿系统的外在表现、行为,而不是模拟系统的抽象模型。

  仿真器可以替代你的目标系统中的MCU,仿真其运行。 仿真器运行起来和实际的目标处理器一样,但是增加了其它功能,使你能够通过桌面计算机或其它调试界面来观察MCU中的程序和数据,并控制MCU的运行。

  单片机仿真器的作用

  单片机仿真器是一种在电子产品开发阶段代替单片机芯片进行软硬件调试的开发工具。配合集成开发环境使用仿真器可以对单片机程序进行单步跟踪调试,也可以使用断点、全速等调试手段,并可观察各种变量、RAM及寄存器的实时数据,跟踪程序的执行情况。同时还可以对硬件电路进行实时的调试。

  利用单片机仿真器可以迅速找到并排除程序中的逻辑错误,大大缩短单片机开发的周期。在现场只利用烧录器反复烧写单片机,通过肉眼观察结果进行开发的方法大大增加了调试的难度,延长了整个开发周期,并且不容易发现程序中许多隐含的错误,特别对于单片机开发经验不丰富的初学者来说更加困难,由此可见,单片机仿真器单片机系统开发中发挥着重要的作用。本文主要跟大家分享基于SST89C54/58单片机仿真器的设计详解。

  仿真器的作用是什么_基于单片机仿真器的设计详解

  基于SST89C54/58单片机仿真器的设计

  一、概述

  SST89C54/58(简称89C54/58)是美国SST公司推出的多用途51系列单片机,片内集成了20 kB/36 kB的SuperFlashE‘PROM程序存储器,分为BLOCK0(16kB/32kB)和BLOCKl(4kB)两块。其中,BLOCKl可以映射(Mapping)到64kB存储空间的最高端或最低端,而且,对于程序计数器来说可以是不可见的。由于其存储结构上独特的优点,使得89C54/58非常适合于用做单片机仿真器。

  二、SST89C54/58的程序存储结构

  1、存储器结构

  89C54/58片内的存储块BLOCK0占据从0000H到3FFFH/7FFFH的存储空间,BLOCKl占据从F000H到FFFFH的存储空间。89C54/58存储结构如图1所示。

  仿真器的作用是什么_基于单片机仿真器的设计详解

  当EA#=1时,对于程序计数器来说,BLOCK0始终是可见的,用于代码的存取;BLOCKl代码的存取是通过特殊功能寄存器SFCM,SFCF,SFAL,SFAH,SFDT和SFST来实现的。当SFCF=1时,BLOCKl是可见的。

  2、存储器再映射(Re-mapping)

  89C54/58的存储器再映射功能使得对BLOCK0进行编程时,其系统中断向量区依然可用(普通8051系列单片机无此特点)。89C54/58提供4种存储器再映射方式,存储器再映射数量的大小由MAP_ENCl:0)控制,当MAP-

  三、基于SST89C58的单片机仿真器的设计

  1、设计原理简介

  仿真器电路设计如图2所示。图中U2为串行通信接口芯片MAX232,U1为89C54/58。89C54/58的监控程序通过PC机串行口与KEILC51进行通信,实现实时仿真功能。

  2、仿真器监控程序的加栽

  SST公司提供的89C54/58仿真器监控程序SoftlCE(Softwareln-CircuitEmulator)可通过SST公司提供的BSL(Boot-StrapLoader)加载或通过支持SST89C54/58的第三方编程器写入。

  仿真器的作用是什么_基于单片机仿真器的设计详解

  3、仿真器性能简介

  基于89C54/58的单片机仿真器除不支持串行口仿真外,具有通用仿真器的所有功能。与KEIL软件相结合,可完成大部分单片机应用系统的仿真设计。

  其具体性能如下:

  (1)可下载IntelHEX格式文件。

  (2)支持汇编及C51源代码调试。

  (3)支持在线汇编。

  (4)支持单步(Step)功能。

  (5)支持步越(StepOver)功能。

  (6)最大可设置10个固定断点和一个临时断点。

  (7)支持读写数据存储器。

  (8)支持读写程序存储器。

  (9)支持读写特殊功能寄存器。

  (10)支持读写端口。

  (11)具有IAP(1n-ApplicaTIonProgramming)功能。

  4、KEIL软件及设置

  KEIL C51是德国KEIL公司推出的Windows版的8051系列单片机开发套件,可用于编译C源程序、汇编源程序,链接和定位目标文件和库,创建HEX文件以及调试目标程序,并内嵌有RTX51实时操作系统,可 简化复杂的多任务实时应用系统的设计。与89C54/58仿真器配合时,在KEIL开发环境中设置如下:

  (1)创建项目,并选择SST单片机SST89C54/58。

  (2)从菜单选择“OpTIons for,Target 1/。

  (3)在”OpTIonsforTarget,Targetl“窗口中,选择使用KEILMonitor-51Driver,如图3所示。

  (4)双击图3中Settings键,设置目标参数如图4所示,即可编译调试目标程序。

  仿真器的作用是什么_基于单片机仿真器的设计详解

  四、结语

  综上所述,由于SST89C54/58独特的存储器结构,使得89C54/58除用做通用的51单片机外,只需配以少量的外围电路,即可做成51系列单片机仿真器。与功能强大的KEIL软件相结合,为单片机工程师提供实时仿真开发环境,可完成大部分单片机应用系统的设计。


推荐阅读

史海拾趣

DBLECTRO公司的发展小趣事

进入21世纪后,随着全球对环保和可持续发展的关注度不断提高,迪贝电子也积极响应这一趋势,将环保和社会责任融入到企业的经营理念中。公司投入大量资金研发更加环保、节能的产品,并积极参与各种环保公益活动。同时,迪贝电子还积极推广绿色制造理念,通过优化生产流程、降低能耗和减少废弃物排放等措施,实现了企业的可持续发展。

Ecera Comtek Corp公司的发展小趣事

随着公司实力的不断增强,Ecera Comtek Corp公司开始寻求更广阔的发展空间。公司决定进军国际市场,拓展海外业务。然而,国际市场的竞争更加激烈,Ecera Comtek Corp公司面临着来自全球各地的强大竞争对手。为了应对这一挑战,Ecera Comtek Corp公司加强了与国际合作伙伴的联系,共同研发新产品,开拓新市场。同时,公司还加大了对海外市场的宣传力度,提高了品牌的知名度和美誉度。经过几年的努力,Ecera Comtek Corp公司的产品逐渐在国际市场上获得了认可,海外业务也取得了显著的进展。

EMLSI公司的发展小趣事

人才是企业发展的根本动力。EMLSI公司深知这一点,因此始终将人才战略作为企业发展的重要支撑。公司建立了完善的人才培养体系,为员工提供广阔的发展空间和良好的职业前景。同时,EMLSI还注重引进外部优秀人才,为企业注入新的活力和创新力。这种对人才的重视和投入让EMLSI在激烈的市场竞争中始终保持领先地位。

DB Lectro Inc公司的发展小趣事

为了满足亚洲市场的需求,DB Lectro Inc决定在中国上海设立子公司及工厂。这一战略举措不仅使公司能够更贴近亚洲客户,还大大降低了生产成本。在上海工厂的建设过程中,公司充分考虑到环保和可持续性发展的要求,采用了先进的生产工艺和设备。随着工厂的投产和产能的不断提升,DB Lectro Inc的产品在亚洲市场的占有率也稳步上升。

Communications & Power Industries公司的发展小趣事

随着环保意识的日益增强,CPI积极响应国家号召,将绿色环保理念融入公司的经营发展中。公司加大了对环保技术的研发投入,推出了一系列低能耗、低排放的通信设备和电源产品。同时,CPI还加强了对生产过程的环保管理,通过引进先进的环保设备和技术,实现了生产废弃物的减量化、资源化和无害化处理。这些举措不仅提升了CPI的社会形象,也为公司的可持续发展注入了新的动力。

Dynawave Incorporated公司的发展小趣事

Dynawave Incorporated的创始人李明,是一位在电子行业有着丰富经验的工程师。他深知随着科技的发展,无线通信技术将成为未来发展的重要方向。因此,李明带领一支技术团队,夜以继日地研发新型无线通信技术。经过数月的努力,他们成功开发出了一种具有高效能、低能耗特点的无线传输技术,这一技术为Dynawave在行业中赢得了初步声誉。

问答坊 | AI 解惑

中国运营商转型已经走过一半

中国运营商转型已经走过一半 2006-6-20     “全球电信业的转型项目有70%以失败告终。”麦肯锡全球董事合伙人魏蔚说。而从1997年到2004年,麦肯锡在全球共实施了2758个电信咨询项目。     即使如此,中国电信企业还 ...…

查看全部问答>

新手学堂开可拉

本人回陆续把收级到的资料发给大家,给大家分享!!!!!…

查看全部问答>

Smith192(完整版!元件个数无限制,支持s2p导入导出)

这个是个完整版(license过了,解开就能用) …

查看全部问答>

双向晶闸管怎么断开?

双向晶闸管怎么断开啊?接的是交流电!…

查看全部问答>

关于一款手机的硬件结构

如题,我这几天在研究三星的一款手机,GT-I8320,国外是沃达丰定制的H1,不知各位大侠对这款手机的cpu及硬件构架有没有研究?有的话能不能介绍下啊,因为官方给的硬件参数里没有cpu这块儿,所以请高手看看有没有相关资料? 我把拆机后的那些芯片上 ...…

查看全部问答>

有没有 上海嵌入式开发QQ群或者msn群?

如题! 加我125996378 jiangnan_0923@hotmail.com…

查看全部问答>

Socket OnRecvive事件函数中对窗体上TextBox设置输入焦点不成功

大虾们,帮帮忙 有一个自己封装的TCPSocket类,其中定义了一个接收数据的事件. 现在在一个窗体中处理这个事件,在这个事件函数中,对窗体上的一个TextBox设置输入焦点:TextBox.Focus();但是运行过这段代码后,并没有将输入焦点设到这个TextBox上. 请 ...…

查看全部问答>

WinCE5.0触摸屏驱动源码

开发平台:2440  WinCE 5.0 触摸屏驱动源码 下载地址:http://www.itxxh.cn/Down/view.asp?id=16 …

查看全部问答>

怎样把blatform builder 编译出来的nk.bin 转为.img文件 这样能把它烧写到瘦客户机子上

怎样把blatform builder 编译出来的nk.bin 转为.img文件 这样能把它烧写到瘦客户机子上…

查看全部问答>

WinCE下串口通信问题

我用了EVC高级编程里面的串口通讯类 接收数据时字符变量可以正常显示,我想接收16进制的数据应该怎么显示。 在发送数据的时候,我在电脑上用ASCII码显示数据时,只能显示第一个字符,用HEX编码显示时能都显示出来但是在每个两个字符中间都加了00 ...…

查看全部问答>