Proteus软件中的汇编语言程序设计的5个注意事项
21ic 2024-07-08

Proteus虚拟仿真软件由英国Labcenter公司开发,集电路原理图设计、印制电路板设计和实物仿真等功能于一体,可以利用软件模拟各种硬件(如:电阻、电容等模拟器件,单片机、微处理器等数字器件,示波器、万用表等仪器设备),并支持对模拟硬件的软件编程和虚拟仿真调试。这使得用户可以在没有硬件支持的情况下,以电路原理为基础搭建虚拟模型,进行系统统仿真和调试,并可以看到系统运行的模拟效果。由于可节约成本、提高研发效率,利用Proteus软件进行单片机系统辅助设计的方式已经被很多高校和研发机构采用。

Proteus软件具有良好的人机交互功能,该软件启动后将自动进入ISIS功能界面(见图9-1),其中多数工具栏的位置可以通过鼠标拖动来调整。

图9-1 Proteus ISIS 7.1界面

Proteus软件主要由ISIS和ARES两部分构成,其中ISIS用于电路原理图设计和仿真,ARES用于印制电路板(PCB)设计。

Proteus软件自带汇编语言程序编辑器和编译器,用户可以在Proteus软件中完成汇编语言程序设计的全部工作,且不需要第三方软件的辅助。

1.汇编语言程序的设计

在Proteus仿真环境中进行汇编语言程序设计的步骤如下。

(1)选择编译器

首先,用鼠标左键单击“Source”→“Add/Remove Source files…”子菜单,在弹出的“Add/Remove Source files…”(添加/移除源程序文件)对话框(见图9-11a)中的“Code Generation Tool”编译器列表中选择“ASME51”,这是Proteus软件自带的MCS-51单片机汇编语言编译器。另外,还可以单击“Source”→“Define Code Generation Tools…”(见图9-11b)菜单,并在弹出的“Add/Remove Generation Tools”对话框中查看和更换编译器。

图9-11建立和载入汇编语言程序文件

a)添加/移除源程序文件对话框b)“Source”菜单c)源程序编辑窗口

(2)载入汇编语言程序文件

在“添加/移除源程序文件”对话框中单击“New”按钮,在之后弹出的“New Source

File”对话框中确定汇编语言程序文件存放的路径,并输入文件名称。如果文件不存在,则生成新文件并载入,否则直接载入该文件。源程序文件载入后,其文件名将出现在主菜单“Source”最后一项(见图9-11b),单击这一项可以打开源程序编辑窗口(见图9-11c),可在其中添加或修改程序。

(3)建立可执行目标文件

单击“Source”→“Build All”子菜单(见图9-11b),即可编译和链接已载入的程序文件,并弹出“Build Log”(建立记录)界面(见图9-12a),该界面可以显示编译和链接的结果。如果源程序没有错误,则建立HEX格式的目标文件,否则,在建立记录界面中给出错误信息(见图9-12b),以便程序员更正错误。

图9-12“Build Log”(建立记录)界面

a)源程序无错误时的记录b)源程序有错误时的记录

2.汇编语言程序的调试

汇编语言的调试过程与9.1.2节所介绍的几乎一致,需先将HEX文件载入单片机模型,然后利用Proteus软件“Debug”菜单提供的调试工具进行程序调试。不同的是,Proteus软件的编译器在进行程序链接时会生成扩展名为SDI的调试文件,使得程序调试时可以同步查看汇编语言程序的源代码。

仿真调试时,单击“仿真运行工具栏”中的图标“

”,或单击子菜单“Debug”→“Start/Restart Debugging”或“Debug”→“8051 CPU”→“Source Code”(见图9-10a),可以

打开“源代码观察窗口(8051 CPU Source Code)”(见图9-13a)。在“源代码观察窗口”中单击鼠标右键,将弹出图9-13b所示菜单,可用于断点设置等操作。

图9-13源代码观察窗口“8051 CPU Source Code”

a)观察窗口的显示界面b)设置观察窗口的菜单

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • C语言
  • 编程
  • 软件开发
  • 程序
  • python计算平均数的IPO模式

    求平均值的方法:首先新建一个python文件;然后初始化sum总和的值;接着循环输入要计算平均数的数,并计算总和sum的值;最后利用“总和/数量”的公式计算出平均数即可。65a220812a55465d245f518b81fb68d2.png本文操作...

    07-18
  • 怎么理解RPC远程过程调用?

    一.什么是RPC?RPC(remote process call),中文是远程过程调用的意思。怎么理解这个远程过程调用呢?可以这样理解,可以与本地的过程调用对比下,本地过程调用,也就是调用函数或者是调用方法,比如说,在单体架...

    07-18
  • 磁带驱动器备份数据的5个常见问题解决方案

    磁带驱动器是一种用于读写磁带的工具。磁带驱动器(tape drive)是存储计算机中的数据到磁带上的设备,其主要目的是数据备份和归档。磁带驱动器,注意当你的时候意味着要更换磁盘驱动器里的磁盘而且要备份一整夜?我们...

    07-18
  • 局域网是如何连接形成更大范围的信息处理系统的?

    本地电话网是在一个封闭编号区内,由端局(或端局、汇接局)、局间中继线、长市中继线以及端局的用户线、电话机、用户交换机所组成的自动电话网。 每个本地电话网均为自动电话交换网,有一个单独的长途区号,一个长...

    07-18
  • 如何使用数字滤波器进行信号处理

    数字滤波器是由数字乘法器、加法器和延时单元组成的一种算法或装置。数字滤波器的功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。 如果采用通用的计算机,随时编写程序就能进行信号处理...

    07-18
  • 宽带智能网多媒体业务运营成本降低策略

    宽带智能网,是研究在以atm为基础的宽带网络上利用智能网技术如何开发各种多媒体业务。宽带智能网不是简单地将多种业务集成,它的目的是要实现一个可编程的业务平台,实现业务的灵活加载、扩展和新业务的增加。与以...

    07-18
  • DSL技术如何解决“最后一公里”传输瓶颈问题?

    所谓领域专用语言(domain specific language / DSL),其基本思想是“求专不求全”,不像通用目的语言那样目标范围涵盖一切软件问题,而是专门针对某一特定问题的计算机语言。DSL之于程序员正如伽南地之于以色列人,是...

    07-18
  • 基于muduo高性能网络库+Protobuf开发

    前言介绍基于c++的分布式网络框架,项目基于muduo高性能网络库+Protobuf开发,实现的主要功能是通过

    07-12
  • spdlog 的高效性5个方面

    线程池线程池本质上一组事先创建的子线程,用于并发完成特定任务的机制,避免运行过程中频繁创建、销毁线程,从而降低

    07-12
  • Linux环境下Libevent 的工作流程

    一.Libevent简介I/O 框架库以库函数的形式,封装了较为底层的系统调用,给应用程序提供了一组更便于使用

    07-12
下载排行榜
更多
评测报告
更多
EE直播间
更多
广告