PROTEUS编译51汇编实例

合集下载

实验八 Proteus仿真软件使用方法

实验八 Proteus仿真软件使用方法

实验八 Proteus仿真软件使用方法1.实验目的:(1)了解Proteus仿真软件的使用方法。

(2)了解51单片机编程器Keil与Proteus仿真软件的联用方法。

2.实验要求:通过讲授和操作练习,学会正确使用Proteus仿真软件及Keil编程及其联合调试。

3.实验内容:(1)Proteus 仿真软件介绍Proteus 软件是由英国LabCenter Electronics 公司开发的EDA工具软件,由ISIS和ARES两个软件构成,其中ISIS是一款便捷的电子系统仿真平台软件,ARES是一款高级的布线编辑软件。

它集成了高级原理布线图、混合模式SPICE电路仿真、PCB设计以及自动布线来实现一个完整的电子设计。

通过Proteus ISIS软件的VSM(虚拟仿真技术), 用户可以对模拟电路、数字电路、模数混合电路,以及基于微控制器的系统连同所有外围接口电子元器件一起仿真。

图8-1是Proteus ISIS的编辑窗口:图8-1 ISIS的编辑界面图中最顶端一栏是“标题栏”,其下的“File View Edit ……”是“菜单栏”,再下面的一栏是“命令工具栏”,最左边的一栏是“模式选择工具栏”;左上角的小方框是“预览窗口”,其下的长方框是“对象选择窗口”,其右侧的大方框是“原理图编辑窗口”。

选择左侧“模式选择工具栏”中的图标,并选择“对象选择窗口”中的P按钮,就会出现如图8-2的元器件选择界面:图8-2 元器件库选择界面在元器件列表框中点击你需要的器件类型(例如:电阻-Resistors,单片机芯片-MicroprocessorICs, LED-Optoelectronics)或在左上角的关键字(Keywords)框中输入你需要的器件名称的关键字(如:信号源 - Clock, 运放 - CA3140等),就会在图8-2中间的大空白框列出你所需的一系列相关的元件。

此时,你可用鼠标选中你要的元件,则图8-2右上角的预览框会显示你所要元件的示意图,若就是你要的元器件,则点击OK按钮,该元器件的名称就会列入位于图8-1左侧的“对象选择窗口”中(参见图1左侧下方框)。

51汇编实现比较三个数的大小,并排序.doc

51汇编实现比较三个数的大小,并排序.doc

51汇编实现比较三个数的大小,并排序.doc例题1:比较三个无符号数的大小,按照从大到小的顺序排列关键的语句是:无符号数,因此所用语句是JAE实现跳转:此外比较两个操作数所用的是CMP,交换两个操作数的是XCHG 书上的代码:代码1:这样写法比较占用寄存器,但是寄存器之间交换数值比较快代码2:这样的写法只用了AL,但是寄存器与存储器操作数指教的操作比较慢例题2:写一个实现一位十六进制的数转换为对应的ASCII码的程序;程序功能,实现16进制数值转换成对应的ASCII码;原理:但十六进制数值为0到9的时候,对应的ASCII=x+30H ;当十六进制为10到15的时候,对应的ASCII=x+37H这里关键的语句是JA,大于9的话,转移之后便是程序跳转指令:JMP,但标号很多的时候,可以用LAB1,LAB2,LAB3这种类型的标号例题3:写一个程序实现ASCII转换成对应的十六进制利用地址表实现多向分支当要根据某个变量的值,进行多种不同的处理时,就会产生了多向分支,多向分支在高级语言中常常用switch实现,在汇编语言中是使用地址表实现的DSEGSEGMENT……………………COMTABDWCOMA,COMB,COMC,COMDDWCOME,COMF,COMG,COMHDSEGENDS……………………计算如果地址表内的地址,之后调用路口地址表即可之后跳转指令用这个JMPCOMTAB[BX]循环程序设计:例题1:用计数法控制循环本例程中所用的关键指令为LOOP,LOOP指令使用的方法是在初始化CX的初值,每次执行一次LOOP,CX寄存器会减一此外,还用了SI这个源地址指针,因为定义的变量时字,所以SI在循环的时候,调用了两次INC,在得到校验和的时候,重新设置了数据段寄存器,以便于保存校验和。

例题2:不用乘法指令实行乘法运算假设乘法时234*125,不用乘法指令,可以有移位和累加两种方法方法一:累加,可以看成是125个234相加,因此循环的时候,循环次数是CX=125,这里用的指令时XOR,自己和自己异或等于0,还有JCXZ这条指令,JCXZ表示但cx寄存器为0的时候跳转。

Proteus 常见问题解答及经验总结

Proteus 常见问题解答及经验总结

Proteus 51汇编源码调试proteus的调试器很有特色,使用很方便。

网上有很多的仿真实例。

有的调试的时候会出现源代码窗口。

这是使用Proteus自带汇编器,如ASEM51时,它将产生SDI文件,所以当你单步调试时,源代码窗口就出现SDI文件。

SDI文件是用Proteus里面ASEMDDX.exe生成,用来显示汇编源码。

ASEMDDX.exe是个命令行程序。

使用方法是先用ASEM51编译汇编程序,生成hex和lst文件,再在命令行方式下输入:ASEMDDX 文件名ASEMDDX会查找文件名对应的lst文件。

然后生成SDI文件。

(只能用于ASEM51生成的lst文件,不支持其他编译器生成的lst文件)我们用keil编译的汇编文件能实现源码仿真吗?只要在Keil编译时生成omf文件取代hex文件,将其加载给CPU,就可以实现Proteus下的源码仿真,而不需要同时打开Keil。

必须注意,不同的编译器产生的omf文件格式不尽相同,因此,并不是所有的omf文件在Proteus 中都支持源代码调试,但可以肯定的是Keil生成的omf是支持源代码调试的。

当你使用Keil编译时,选择生成omf文件(omf51格式文件是Keil中生成的带调试信息的目标文件),如下图所示:然后在Proteus加载生成的omf文件,源代码窗口将可以打开相应的源代码文件。

包括汇编代码和C代码。

使用Proteus自带汇编编译器的注意事项(1) 因为Proteus中自带的汇编编译器都是使用命令行命令进行编译。

在菜单Source->Define code generation tools打开的对话框中,有一项参数是Command Line,对于代码生存工具ASEM51来说,默认的命令行参数可能类似于%1 /INCLUDES:C:\Program Files\Labcenter Electronics\Proteus 7Professional\TOOLS\ASEM51,其中%1代表的是源代码,/INCLUDES:后面跟着的是包含路径,该路径下的*.mcu文件即是通常的SFR定义文件。

MCS-51单片机的汇编语言

MCS-51单片机的汇编语言

绝对地址段选择伪指令
CSEG
[AT
address]
DSEG
[AT
address]
ISEG
[AT
address]
BSEG
[AT
address]
XSEG
[AT
address]
分别为程序存储器、内部数据存储器、间接寻址的内部数据存 储器、位寻址区和外部数据存储器的使用指定绝对地址
1.5 通用的转移和调用语句
MCS-51汇编器允许程序员使用通用的转移和调用助记符JMP 与CALL
用来代替SJMP、AJMP、LJMP和ACALL、LCALL
汇编产生的未必是最优化的结果
1.6 条件汇编
将一个软件的多个版本保存在同一组源程序文件中 使用IF、ELSEIF、ELSE、ENDIF IF或ELSEIF后的表达式通常为关系表达式 当IF或ELSEIF后的数值表达式的值非零时,汇编其后的语句组;
1.4 伪指令语句
ORG伪指令
ORG
பைடு நூலகம்
expression
设置汇编计数器的值,指定其后语句的起始地址
伪指令语句
END伪指令
应当是源程序的最后一条语句 通知汇编程序汇编过程应在此结束 汇编器不理会END后面的文件内容
每个程序文件都应以END结束
伪指令语句
EQU和SET伪指令
symbol
单片机原理与应用
MCS-51单片机的汇编语言
INTS SET
IF ELSE ENDIF
INTS = 1 MAIN_START
MAIN_START
NUM1 DATA NUM2 DATA
DSEG AT
STACK: DS
20H

基于Proteus仿真的51单片机数字频率计

基于Proteus仿真的51单片机数字频率计

目录前言 (1)正文 (1)2.1 设计目的和意义 (1)2.2 设计方法和步骤 (1)2.2.1 数字频率计概述 (1)2.2.2 频率测量仪的设计思路与频率的计算 (1)2.2.3 基本设计原理 (2)3.1数字频率计(低频)的硬件结构设计 (2)3.1.1 系统硬件的构成 (2)3.1.2 系统工作原理图 (2)3.1.3 AT89C51单片机及其引脚说明 (3)3.2 信号调理及放大整形模块 (5)3.3 时基信号产生电路 (5)3.4 PROTEUS仿真电路图 (7)3.5 显示模块 (7)3.6 软件设计 (9)总结 (10)参考文献 (11)附录汇编源程序代码 (12)前言本应用系统设计的目的是通过在“单片机原理及应用”课堂上学习的知识,以及查阅资料,培养一种自学的能力。

并且引导一种创新的思维,把学到的知识应用到日常生活当中。

在设计的过程中,不断的学习,思考和同学间的相互讨论,运用科学的分析问题的方法解决遇到的困难,掌握单片机系统一般的开发流程,学会对常见问题的处理方法,积累设计系统的经验,充分发挥教学与实践的结合。

全能提高个人系统开发的综合能力,开拓了思维,为今后能在相应工作岗位上的工作打下了坚实的基础。

正文2.1 设计目的和意义数字频率计以其可靠性高,体积小,价格低,功能全等优点,广泛用于各种智能仪器中。

这些智能仪器的操作在进行仪器校核以及测量控制的过程中,达到了自动优化,传统仪器面板上的开关和按钮被键盘所代替,测试人员在测量时只需按需要的键,省掉了许多繁琐的人工调节。

智能仪器通常能自动选择量程自动校准,这样不仅方便了操作,也提高了测量精度。

2.2 设计方法和步骤2.2.1 数字频率计概述数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。

它是一种用十进制数字显示被测信号频率的数字测量仪器。

它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。

单片机原理及应用——C51编程+Proteus仿真(第3版)课件第4章-keil与Proteus的使

单片机原理及应用——C51编程+Proteus仿真(第3版)课件第4章-keil与Proteus的使
图4-20 hex文件生成的提示信息
35
占用程序存储器共89字节。最后生成的.hex文件名为“流水灯.hex”,至 此,整个程序编译过程就结束了,生成的.hex文件就可在后面介绍的 Proteus环境下进行虚拟仿真时,装入单片机运行。
下面对用于编译、连接时的快捷按钮
与 作简要说明:
(1) 用于编译正在操作的文件。。
这些图标大多数是与菜单栏命令【Debug】下拉菜单中的各项子命令是 相对应的,只是快捷按钮图标要比下拉菜单使用起来更加方便快捷。
24
图4-15与图4-16中常用的快捷按钮图标的功能介绍图4-14中各个窗口的开与关。
25
(2)各调试功能的快捷按钮
片机可以运行的二进制文件(.hex格式文件),文件的扩展名为.hex。 (2)Select Folder for objects—选择最终的目标文件所在的文件夹,默认
与项目文件在同一文件夹中,通常选默认。 (3)Name of Executable—用于指定最终生成的目标文件的名字,默认与
项目文件相同,通常选默认。
(2) 按钮—用于编译修改过的文件,并生成相应的目标程序(.hex文 件),供单片机直接下载。
(3) 按钮—用于重新编译当前项目中的所有文件,并生成相应的目标 程序(.hex文件),供单片机直接下载。主要用在当项目文件有改动时 ,来全部重建整个项目。
36
因为一个项目不止一个文件,当有多个文件时,可用本按钮进行编译。 用C51编写的源代码程序不能直接使用,一定要对该源代码程序编译,生
窗口会出现一个空白的文件编辑画面,用户可在这里输入编写的程序源 代码。
11
(2)单击图4-1中快捷按钮
图4-7 建立新文件
(2)单击图4-1中快捷按钮 ,保存用户程序文件,这时会弹出如图4-8 所示窗口。,保存用户程序文件,这时会弹出如图4-8所示窗口。

Proteus学习51单片机之AD转换

Proteus学习51单片机之AD转换

Proteus学习51单片机之AD转换概述模拟数字转换器(ADC)是将模拟信号转换为数字信号的设备。

我们将在本文中介绍如何在Proteus中使用51单片机进行AD转换。

首先,我们需要了解一些关于ADC的基础知识。

什么是ADC?ADC是模拟数字转换器的缩写。

它是一种将模拟信号( 例如声音或光线)转换为数字信号的设备。

数字信号可以通过数字处理器 例如计算机或嵌入式系统)进行进一步处理。

为什么需要ADC?数字设备不能直接处理模拟信号。

因此,我们需要将模拟信号转换为数字信号,以便数字设备可以处理它。

这就是ADC的作用。

如何使用ADC?ADC一般有以下几个步骤:1.(采样:使用ADC将连续的模拟信号转换为离散的数据点。

2.(量化:将采样结果转换为离散的数字值。

3.(编码:将数字值转换为二进制值。

在51单片机中,ADC转换的基本步骤是:1.(设定ADC电平:在程序中,我们需要将端口设置为读取ADC的电平。

2.(ADC模式设置:通过设定模式,来选择如何采样和量化信号。

3.(读取ADC值:读取ADC的数字输出值。

Proteus中51单片机AD转换的操作步骤下面我们将了解如何在Proteus中使用51单片机进行AD转换。

1.(创建Proteus新工程在Proteus中创建新工程。

从库中选择合适的51单片机,并将其放置在原理图中。

2.(连接一组电压源和电阻连接一组电压源和电阻,以模拟数字模拟转换器(ADC)输入信号。

3.(添加ADC模块前往“Component(Mode” 元器件模式)下,添加ADC模块。

选择合适的ADC元器件,并将其添加到工程中。

4.(连接ADC模块到单片机将ADC模块与单片机相连。

5.(配置ADC将ADC模块属性栏中的ADC模块讯号连接到单片机的相应端口上,设置ADC的属性。

6.(编写程序并上传到单片机根据需要编写程序,并上传到单片机上。

7.(调试调试程序,并检查ADC是否正常工作。

8.(监测ADC输出透过示波器或LED等设备监测ADC的输出值。

单片机Keil C51和PROTEUS实验指导书

单片机Keil C51和PROTEUS实验指导书

目录实验一单片机仿真开发系统的使用 (2)1.1 Keil C51 集成开发环境介绍 (2)1.2 用Proteus仿真软件 (6)1.3 实现单片机最小系统的简单应用。

(8)实验二显示及驱动电路设计用 (10)实验三简单输入/输出实验 (12)实验四外部中断的运用 (14)实验五单片机内部定时/计数器实验 (15)实验六串行口通信设计 (17)实验七直流电机控制 (18)实验八步进马达控制 (19)实验一单片机仿真开发系统的使用1.1 Keil C51 集成开发环境介绍①、运行keil C51编辑软件,软件界面如图1-1所示②、建立一个新的工程项目单击Project菜单,在弹出的下拉菜单中选中New Project选项③、保存工程项目a、选择要保存的文件路径,输入工程项目文件的名称,如保存的路径为C51文件夹,工程项目的名称为C51,如图所示,单击保存b、为工程项目选择单片机型号在弹出的对话框中选择需要的单片机型号,如图所示,这里选择51核单片机中使用较多的89S51,选定型号后,单击确定,出现如图所示的开发平台界面④、新建源程序文件在下图中单击“File”菜单,选择下拉菜单中的New选项,新建文件后得到如图的界面:⑤、保存源程序文件单击“File”菜单,选择下拉菜单中的Save选项,在弹出的对话框中选择保存的路径及源程序的名称,如图所示。

此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时必须键程序录入区域入正确的.扩展名。

注意,如果用C语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.asm)。

然后,单击“保存”按钮⑥、为工程项目添加源程序文件在编辑界面中,单击“Target”前面的“+”,再在“Source Group”上单击右键,得到如图所示的对话框,选择“Add File to Group’Source Group 1’”,弹出如图所示的对话框,选中要添加的源程序文件,单击“Add”,得到如图所示的界面,同时,在“Source Group 1”文件夹中多了一个添加的“Text1.c”文件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档