单片机搭建环境烧录方法_单片机仿真器的工作原理解析

 仿真器出现的原因

1、早期的单片机内部没有ROM,比如8031、8032,这种单片机只能外部扩展紫外擦除的EPROM存储器,就是芯片上带窗口的ROM。紫外擦除的ROM需要用紫外灯照射较长时间(10分钟或者更多)才能擦掉芯片中的内容以便写入新的程序。

2、有的单片机内部ROM是一次写入成型的,比如8751,程序写入单片机的ROM之后就不能被擦除。

3be64f7cea9ae145cc71c5bc74d69a41.png

仿真器的种类

1、软件仿真器

这种方法主要是使用计算机软件来模拟运行,实际的单片机运行因此仿真与硬件无关的系统具有一定的优点。用户不需要搭建硬件电路就可以对程序进行验证,特别适合于偏重算法的程序。软件仿真的缺点是无法完全仿真与硬件相关的部分,因此最终还要通过硬件仿真来完成最终的设计。

2、硬件仿真器

使用附加的硬件来替代用户系统的单片机并完成单片机全部或大部分的功能。使用了附加硬件后用户就可以对程序的运行进行控制,例如单步,全速。

9289aff1ba50c07f34dfebc2401edaad.png

单片机仿真器是什么

单片机仿真器是指以调试单片机软件为目的而专门设计制作的一套专用的硬件装置。

单片机仿真器的作用

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

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

b402bf713679a5c62c0f1c5243a000c4.png

单片机仿真器的工作原理

仿真器内部的P口等硬件资源和51系列单片机基本是完全兼容的。仿真主控程序被存储在仿真器芯片特殊的指定空间内,有一段特殊的地址段用来存储仿真主控程序,仿真主控程序就象一台电脑的操作系统一样控制仿真器的正确运转。

仿真器和电脑的上位机软件(即KEIL)是通过串口相连的,通过仿真器芯片的RxD和TxD端口和电脑的串行口做联机通讯,RxD负责接收电脑主机发来的控制数据,TxD负责给电脑主机发送反馈信息。控制指令由KEIL发出,由仿真器内部的仿真主控程序负责执行接收到的数据,并且进行正确的处理。进而驱动相应的硬件工作,这其中也包括把接收到的BIN或者其他格式的程序存放到仿真器芯片内部用来存储可执行程序的存储单元(这个过程和把程序烧写到51芯片里面是类似的,只是仿真器的擦写是以覆盖形式来做的),这样就实现了类似编程器反复烧写来试验的功能!

不同的是,通过仿真主控程序可以做到让这些目标程序,做特定的运行,比如单步、指定端点、指定地址的等,并且通过KEIL可是时时观察到单片机内部各个存储单元的状态。仿真器和电脑主机联机后就象是两个精密的齿轮互相咬合的关系,一旦强行中断这种联系(比如强行给仿真器手动复位或者拔去联机线等),电脑就会提示联机出现问题,这也体现了硬件仿真的鲜明特性,即“所见即所得”。这些都是编程器无法做到的。这些给调试、修改、以及生成最终程序创造了比较有力的保证,从而实现较高的效率。

56fd0efa78aba139be73bf1d57d183f5.png

单片机仿真器的发展

最早的单片机仿真器是一套独立装置,具有专用的键盘和显示器,用于输入程序并显示运行结果;随着PC机的普及,新一代的仿真器大多数都是利用PC机作为标准的输入输出装置,而仿真器本身成为微机和目标系统之间的接口而已,仿真方式也从最初的机器码发展到汇编语言、C语言仿真,仿真环境也与PC机上的高级语言编程与调试环境非常类似了。

仿真机一般具有一个仿真头,用于取代目标系统中的单片机,也就是用这个插头模仿单片机,这也是单片机仿真器名称的由来。

目前,随着单片机的小型化,贴片化和具有ISP,IAP等功能的单片机的广泛应用,传统单片机仿真器的应用范围也有所缩小。而软件单片机仿真器(即单片机仿真程序)的应用逐渐广泛,单片机仿真程序即在个人计算机上运行的特殊程序,可在一定程度上模拟单片机运行的硬件环境,并在该环境下运行单片机目标程序,并可对目标程序进行调试、断点、观察变量等操作,可大大提升单片机系统的调试效率。纯软件单片机仿真器往往与硬件设计程序集成在一起发布,使得开发者可以对单片机硬件与软件进行同步开发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式存储图解_BERT的youxiu变体:ALBERT论文图解介绍

作者:amitness编译:ronghuaiyang正文共: 3116 字 21 图预计阅读时间: 9 分钟原文链接:BERT的youxiu变体:ALBERT论文图解介绍​mp.weixin.qq.comALBERT作为BERT的一个变体,在保持性能的基础上&am…

数据分析转软件测试,(转)性能测试用户模型(三):基础数据分析、场景数据...

作者:薛定谔的破猫基础数据分析以下图表均取自互联网,本文是在“已经获取所需数据”的前提下,讲解性能测试的一些设计思路。至于如何才能取得这些数据,将在后续的文章中说明。系统访问量分布由系统的日访问量分布图,可…

王者体验服服务器注册人数已满,王者官方大厅奖励有多难获得?服务器直接崩溃,玩家:别发红包了...

可乐要加冰,乔妹在你心,大家好我是小乔妹,每天为您分享有趣的王者资讯,感谢您的关注。王者荣耀一直以来都有许许多多的活动,有限时活动也有长久活动,但官方专属大厅奖励活动确实王者史上第一次奖励&#xf…

cmd输入pip报错_使用Pip管理Python的包

这是我的Python教程的第2篇文章第1篇文章在这里:Python安装0x01Pip介绍Pip是Python的包管理程序,负责Python的包的查找,下载,安装,卸载工作;使用Pip可以轻松的管理Python成千上万的第三包,使你在Python程序的开发如鱼得水0x02使用Pip确保已经把Python的路径添加进系统路径右键我…

jenkins部署流程图_一文教你使用 Jenkins 设计多环境、多项目持续集成环境!

自动化部署主要是为了解决项目多、环境多、持续集成慢、部署操作麻烦、手动操作易出错、自动化运维等问题。Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。目标:支持多分支、多环境、…

udp 使用connect优点_一文搞懂TCP和UDP的区别

TCP(Transmission Control Protocol,传输控制协议)和UDP(User Data Protocol ,用户数据报协议)都属于TCP/IP协议簇。TCP/IP协议集包括了超文本传输协议(HTTP)、文本传输协议(FTP)、远程登录协议(Telnet)、internet协议(IP)、internet控制信息协议(IMCP)等&#xff0…

小森生活显示无可用服务器,《小森生活》无可用游戏服务器解决教程 无可用网关服务器怎么办...

导读小森生活无可用网关服务器是什么意思?怎么解决?小森生活无可用网关服务器这个提示在进入游戏中会出现哦,很多玩家都无法正常进入游戏怎么解决呢,现在就来告诉给大家详细解决方法吧~小森生活无可用游戏服务器...小森生活无可用…

矢量归一化_浅析矢量网络分析仪误差模型及校准

最近跟业界一位同仁讨论了矢量网络分析仪的误差模型及校准过程,简单整理了一下,分享给大家,欢迎一起讨论。矢网的误差模型确实不太好理解,一般只有研发矢网或者专攻测试技术的人员才会深入探究。使用矢网测试之前,都是…

数据库表名大小写_某教程学习笔记(一):09、MYSQL数据库漏洞

她其实并不喜欢你,只是在寂寞的时候,你刚好撞上去,刚好你对她好,刚好你能入她眼,刚好她来着不拒,这所有都是刚好。。。---- 网易云热评一、MYSQL语句创建数据库create database test;选择要操作的数据库use…

arcgis几何修复有作用吗_修复损坏的 shapefile

一、SHP文件Shapefile文件(简称SHP)作为ESRI一种经典的数据格式,被很多其他软件所支持,如CAD、MapGIS等,虽然也有一些限制(如无法进行拓扑分析、字段长度为10个字符等),但其仍然是广泛使用的空间数据格式。用得多了,有…

服务器存档修改,云服务器存档修改器

云服务器存档修改器 内容精选换一换修改云服务器信息,目前支持修改云服务器名称及描述。您可以在API Explorer中直接运行调试该接口。PUT /v2.1/{project_id}/servers/{server_id}参数说明请参见表1。参数说明参数是否必选描述project_id是项目ID。获取方法请参见获…

contains方法_【原创】Pandas数据处理系列(二):常用处理方法笔记

Pandas的魅力在于处理数据的灵活性,但是由于太灵活,会导致使用者很容易忘记各类方法。在Pandas学习这件事情上,真正体现了好记性不如烂笔头的方法特性。故特用此文章记录Pandas常用的数据处理方法,需要用的时候,打开此…

模板多个列表级联_如何使用word制作模版?word怎样使用模板?

Word模板的使用教程:使用Word预设模板首次打开Word时,显示的第一个窗口会询问您要打开的文件。有几种选择。您可以打开一个新文档,这意味着将打开一个没有文本或样式的新文件。在新的空白文档中显示的唯一样式是在空白文件模板中设置的样式。…

联想gen系列服务器,Hpe Microserver Gen10 Plus开箱

Hpe Microserver Gen10 Plus开箱2021-04-19 10:53:2325点赞69收藏83评论心水很久的gen10 plus终于到了,关注了很久终于下手了,在值得买好像都没看到gen10 plus的开箱,那我就来一个开箱吧,本来是一个gen8升级到gen10plus的过程&…

加密选项_Zoom终于为免费账户也提供了端到端通讯加密的选项

受 COVID-19 健康危机的影响,世界各地的人们的工作和日常生活都发生了极大的改变。与此同时,以 Zoom 为代表的云会议解决方案,已经成为了许多人协同工作和网络授课的首选解决方案。问题在于,免费版的 Zoom 服务迟迟未能引入端到端…

c++ map 初始化_如何调整Linux内核启动中的驱动初始化顺序?

如何调整Linux内核启动中的驱动初始化顺序?【问题】此处我要实现的是将芯片的ID用于网卡MAC地址,网卡驱动是enc28j60_init。但是,读取芯片ID的函数,在as352x_afe_init模块中,所以要先初始化as352x_afe_init。此处&…

mysql group_concat去重_mysql 数据库group_concat函数的一些用法

对于group_contact函数一般懂一点sql的人来说,并不算太陌生,它主要配合group by 使用,起着分组时,将涉及行的相应的字段串联成一个字段如下表a:我们按照type分类,并将对应的名称按逗号分隔保存为一个names字…

mysql 5.5 查询_mysql5.5数据库优化--定位慢查询

什么是慢查询mysql记录下查询超过指定时间的语句,被称为“慢查询”;启动慢查询日志1.查询是否把索引的SQL记录到慢查询日志中SHOW VARIABLES LIKE log_queries_%2.将查询到的值若为OFF,表示没有记录,就开启记录SET GLOBAL log_que…

svn mysql认证_SVN基于MySQL认证

SVN的简介和工作原理Subversion(简称svn)是近几年崛起的版本管理软件,是cvs的接班人,目前绝大多数开源软件都使用svn作为代码版本管理软件。Subversion支持linux和windows,但是普通应用在Linux上。SVN主要是通过两种方式来工作:即…

mysql 日期类型比价_MySQL 日期时间类型怎么选?

构建数据库写程序避免不了使用日期和时间,对于数据库来说,有多种日期时间字段可供选择,如 timestamp 和 datetime 以及使用 int 来存储 unix timestamp。不仅新手,包括一些有经验的程序员还是比较迷茫,究竟我该用哪种类…