Keil仿真说明
keil仿真原理

keil仿真原理Keil仿真原理什么是Keil仿真Keil仿真是一种软件仿真技术,可以在电脑上模拟和调试嵌入式系统的运行。
Keil是工业界广泛使用的一款集成开发环境(IDE),它提供了一种方便、高效的方法来编写、编译、调试和测试嵌入式系统的程序。
Keil仿真可以帮助开发人员在提供硬件设备的情况下,将程序在电脑上进行调试,从而提高开发效率和系统可靠性。
Keil仿真原理的基本概念1. 中断中断是一种在程序执行过程中,由硬件或软件触发的一种事件。
当中断发生时,处理器会立即暂停当前任务,执行相应的中断处理程序。
Keil仿真原理中,可以模拟和测试各种中断事件,以验证系统对中断的处理能力。
2. 寄存器寄存器是用来存储和处理数据的特殊的存储器。
Keil仿真原理中,寄存器是用来模拟和调试硬件设备的状态。
开发人员可以通过读取和修改寄存器的值,实时监测和控制硬件设备的行为。
3. 时钟时钟是嵌入式系统中非常重要的一个元件,它用来控制和同步系统中各个部件的运行。
在Keil仿真原理中,可以模拟和调整时钟频率,以测试和优化系统的性能。
4. 断点断点是在程序中设置的一个特殊标记,当程序执行到该位置时,会立即暂停执行,并进入调试模式。
在Keil仿真原理中,可以设置和触发断点,以便开发人员在程序执行到特定位置时进行调试和分析。
Keil仿真原理的具体操作步骤1.编写程序代码:使用Keil IDE编写嵌入式系统的程序代码,包括设置中断处理程序、定义寄存器和时钟相关的操作等。
2.编译程序:将编写的程序代码进行编译,生成可执行文件(通常是二进制或HEX文件)。
3.配置仿真器:将仿真器(如JTAG或SWD等)与开发板连接,并配置相关的仿真参数。
4.加载程序:将生成的可执行文件加载到目标设备中,这可以通过下载、烧写或者仿真器自动完成。
5.设置断点:在程序代码中选择合适的位置设置断点,以便在调试过程中暂停程序执行。
6.启动仿真:开始仿真和调试过程,Keil仿真器按照设定的断点和步骤来执行程序并监测设备状态。
keil-C51各仿真窗口详细介绍

资料来源于互联网,仅供学习使用!!!首先:打开一个已经编译通过的单片机项目(如何新建与编译单片机程序项目这里省略)选择Debug下面的Start/Stop Debug Session,这个选项可以打开调试也可以关闭调试下面具体说说相关子窗口的功能:1:左侧的ProjectWorkspaceRegs是片内内存的相关情况值,Sys是系统一些累加器、计数器等。
Regs很简单就不多说。
具体介绍一下Sysa 累加器ACC,往往在运算前暂存一个操作数(如被加数),而运算后又保存其结果(如代数和)。
b 寄存器B ,主要用于乘法和除法操作spsp_maxdptr 数据指针DPTRPC $states 执行指令的数量sec 执行指令的时间累计(单位秒)psw 程序状态标志寄存器PSW,八位寄存器,用来存放运算结果的一些特征,如有无进位、借位等。
p 奇偶标志P。
反映累加器ACC内容的奇偶性,如果ACC中的运算结果有偶数个1(如11001100B,其中有4个1),则P为0,否则,P=1。
f1ov 溢出标志位OV。
MCS-51反映带符号数的运算结果是否有溢出,有溢出时,此位为1,否则为0。
rsf0ac 辅助进位标志AC。
又称半进位标志,它反映了两个八位数运算低四位是否有半进位,即低四位相加(或减)有否进位(或借位),如有则AC为1状态,否则为0。
cy 进位标志CY(PSW7)。
它表示了运算是否有进位(或借位)。
如果操作结果在最高位有进位(加法)或者借位(减法),则该位为1,否则为0由于PSW存放程序执行中的状态,故又叫程序状态字?运算器中还有一个按位(bit)进行逻辑运算的逻辑处理机(又称布尔处理机)根据指令执行的不同上述值会有相应的变化,也正是为了监测这些在单片机中看不到的值而达到调试的目的。
虽然软件调试无法实现硬件调试那样的信号输出,但是可以通过软件窗口的模拟监测输出信号的高低电平以及单片机相关端口的变化。
上图所示,Port0,Port1,Port2,Port3就对应于单片机的四个P0,P1,P2,P3 口,共32个针脚。
[说明]如何使用KEIL进行软硬件仿真
![[说明]如何使用KEIL进行软硬件仿真](https://img.taocdn.com/s3/m/ac197475cbaedd3383c4bb4cf7ec4afe04a1b1e6.png)
如何在KEIL下使用仿真器
1.在KEIL下使用仿真器,首先设置软件右击Target1,选择Option for Target ‘Target 1’.如下:
2.在Option for Target ‘Target 1’选项中点选DEBUG,如下:
3.在DEBUG下选择USE KEIL Monitor—51 Driver ,其他选择项为默然设置后,点确定。
4.如果选择USE Simulator则为KEIL软件仿真!
5.编译连接如下图:
6. 点红色的D(DEBUG)后,左下脚出现一蓝色的进度条,增至100%后出现如下界面:
如果点选1(GO)则是全速执行,2 3 4 为单步调试!2。
为进入某个函数。
3。
为跳出某个函数。
4。
为运行要某个函数。
一般情况下,我们选择1。
---全速执行。
7.如4所述,软件仿真界面同硬件仿真。
8.下面介绍下,在调试过程中比较实用的技巧!比如遇到按键判断的语句,如:
If(Key == 0)
{
Delaynms();
If(Key == 0)
{
//Add your code here…
}
}
首先在6所述的状态下,用左键选中Key这个变量,右击选择Add ‘Key’to watch Windows #1,
添加到#1后,要调出W A TCH WINDOWS ,先关闭原来的OUTPUT WINDOWS,如下:
双击1或者按F2键即可修改KEY的值,如改为0 再配合单步调试的按扭工具就可以判断键被按下,就可以运行Add your code here 的代码了!。
keilμvision仿真软件使用说明

K e i lμV i s i o n仿真软件使用说明(总19页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除Keil μVision2仿真软件使用说明第一部分μVision2集成开发环境μVision2 IDE是德国Keil公司开发的基于Windows平台的单片机集成开发环境,它包含一个高效的编译器、一个项目管理器和一个MAKE工具。
其中Keil C51是一种专门为单片机设计的高效率C语言编译器,符合ANSI标准,生成的程序代码运行速度极高,所需要的存储器空间极小,完全可以与汇编语言媲美。
1.关于开发环境μVision2的界面如图1-1所示,μVision2允许同时打开、浏览多个源文件。
图1-1 μVision2界面图2.菜单条、工具栏和快捷键下面的表格列出了μVision2菜单项命令,工具栏图标,默认的快捷以及他们的描述。
1)编辑菜单和编辑器命令Edit(如表1-1所示)菜单工具栏快捷键描述Home 移动光标到本行的开始End 移动光标到本行的末尾Ctrl+Home 移动光标到文件的开始Ctrl+End 移动光标到文件的结束Ctrl+<- 移动光标到词的左边 Ctrl+-> 移动光标到词的右边 Ctrl+A 选择当前文件的所有文本内容 Undo Ctrl+Z 取消上次操作 Redo Ctrl+Shift+Z 重复上次操作CutCtrl+X Ctrl+Y 剪切所选文本剪切当前行的所有文本 Copy Ctrl+C 复制所选文本 Paste Ctrl+V粘贴Indent Selected Text将所选文本右移一个制表键的距离Unindent Selected Text将所选文本左移一个制表键的距离Toggle Bookmark Ctrl+F2 设置/取消当前行的标签 Goto Next Bookmark F2 移动光标到下一个标签处 GotoPrevious bookmark Shift+F2移动光标到上一个标签处 Clear All Bookmarks清除当前文件的所有标签 Find在当前文件中查找文本 F3 向前重复查找 Shift+F3 向后重复查找Ctrl+F3 查找光标处的单词Ctrl+]寻找匹配的大括号、圆括号、方括号(用此命令将光标放到大括号、圆括号或方括号的前面) Replace替换特定的字符 Find in Files … 在多个文件中查找 Goto Matching brace选择匹配的一对大括号、圆括号或方括号中的内容2)选择文本命令在μVision2中,可以通过按住Shift 键和相应的键盘上的方向键来选择文本。
keil仿真教程

keil仿真教程Keil仿真教程简介:Keil是一款嵌入式系统开发平台,提供了丰富的仿真调试工具,可以实现单片机程序的开发与调试。
本教程将介绍Keil仿真的基本操作和常用功能,帮助读者快速上手Keil仿真工具。
Keil仿真教程正文:第一步,安装Keil软件。
在网上搜索Keil软件并下载安装,按照安装向导进行安装即可。
第二步,创建一个新项目。
点击“File”菜单,选择“New”->“Project”来创建一个新项目。
在弹出的对话框中选择单片机型号和工程存放路径,点击“OK”按钮完成项目创建。
第三步,添加源文件。
在项目窗口中右键点击“Source Group 1”,选择“Add Existing Files to Group ‘Source Group 1’”来添加源文件。
选择需要添加的源文件,点击“Add”按钮完成文件添加。
第四步,设置编译器。
点击“Project”菜单,选择“Options for Target”来设置编译器选项。
在弹出的对话框中选择“C”选项卡,设置编译器的一些参数,如编译器版本、链接器脚本等,点击“OK”按钮保存设置。
第五步,编写程序代码。
在Keil软件的编辑窗口中,编写程序代码。
编写完成后保存源文件。
第六步,编译代码。
点击“Project”菜单,选择“Build Target”来编译代码。
编译完成后,如果没有错误信息,则表示编译成功。
第七步,设置仿真器。
点击“Flash download”菜单,选择“Use Simulator”选项来设置仿真器。
在弹出的对话框中选择仿真器型号,点击“OK”按钮保存设置。
第八步,下载程序。
点击“Flash download”菜单,选择“Download”选项来下载程序。
下载完成后,程序将自动开始运行。
第九步,进行仿真调试。
点击“Debug”菜单,选择“Start/Stop Debug Session”选项来开始仿真调试。
在仿真调试组件中,可以设置断点、单步执行、查看变量值等。
Keil软件仿真调试

Keil软件仿真调试简介Keil软件是ARM公司推出的一款集成开发环境(IDE),提供了编译器、调试器、仿真器、代码库和辅助工具等多种功能。
其中仿真器(Simulator)是Keil软件的主要功能之一,可以方便地对嵌入式系统进行模拟测试和调试,以达到开发的目的。
在Keil软件中,仿真调试(Simulation Debugging)是一种常见的调试方式,其主要思想是通过用实际输入数据替换程序输入参数,执行程序并输出实际的运行结果,与预期结果进行比较,进而找到程序的错误以及解决问题。
仿真调试的原理当我们进行仿真调试时,Keil软件会将程序文件加载到仿真器中进行模拟的运行,仿真器负责模拟CPU、中断、时钟、IO等外设的运行状态,使得程序在仿真环境中能够运行。
仿真调试的实现主要有两种方式:单步调试和断点调试。
单步调试单步调试(Step-by-Step Debugging)指的是在程序运行过程中,每执行一行指令都会停止,通过查看每个变量的值来进行调试的过程。
单步调试可以帮助程序员快速定位程序中可能的问题,并及时进行修改。
在Keil软件中,单步调试可以通过F10和F11快捷键来实现。
断点调试断点调试(Breakpoint Debugging)指的是在程序中设置停止执行的断点,当程序执行到断点处时,程序就会停止运行,执行者就可以检查变量值、栈信息等各种环境,找到程序的问题。
在Keil软件中,断点调试可以通过F9键来设置。
常用仿真调试功能Keil软件提供了众多仿真调试功能,常用的功能包括:数据查看窗口在Keil软件中,可通过打开数据查看窗口(Watch Window)来查看变量值的对应信息。
数据查看窗口主要由寄存器、内存和变量组成,可以通过添加、删除变量、地址以及其他类型来满足用户不同的需求。
显示ASM窗口ASM窗口是一个汇编指令窗口,可以将C语言源程序翻译成相应的汇编指令。
采用汇编语言的程序员可以在此窗口中检查程序的底层代码实现、地址分配等信息。
51单片机keil仿真入门_IO操作

51单片机keil仿真入门_I/O操作2009-09-26 09:23说起keil C51仿真,我倒不太了解,所以试着看了看,得到的功能与实现信息如下。
软件仿真,不用硬件。
(1)打开kei C,新建一个工程,工程名自取,新建一个C源文件,添加到工程。
(2)生成HEX文件。
右键点击Project Workspace里的Target 1,输出output 里点选HEX复选框即可,这样生成的文件,可以烧录到单片机硬件里,以实看仿真效果。
当然,此目的就是生成可执行的机器程序。
(3)以上准备后,操作如图所示:要操作I/O口,目前我给I/O口赋值。
如点亮灯。
下面是P1^0,P1^2,P2^0,只是用来测试。
点击下图的Debug-Start/Stop Debug Session,开始进入仿真调试,如果停止,请再次点击点处。
点击后,左边应该会出现各寄存器地址等,目前还没有真正的运行。
点击GO 来执行,如下。
查看I/O的信息,Peripherals- I/O-Ports-Port 1此时看到I/O口地址了,赋值为0,的显示为0,即复选框未选中,1为选中。
以上,基本明白了用KeilC查看51单片机I/O 操作程序,仿真后的效果。
如果没有置位或是清位,说明程序还是有问题的。
如果达到,可以烧录芯片真正的实验了。
举一返三,是学习的主要阶段,多多学习,天天学习,天天进步。
类别:单片机技术 | | 添加到搜藏 | 分享到i贴吧 | 浏览(178) | 评论 (2)上一篇:液晶12864汉字显示程序及显示顺...下一篇:AT89s52-51单片机数码管显示完全...。
介绍单片机中Keil的软件仿真和硬件仿真

介绍单片机中Keil的软件仿真和硬件仿真 一、软件仿真 Keil有很强大的软件仿真功能,通过软件仿真可以发现很多将要出现的问题,Keil的仿真可以查看很多硬件相关的寄存器,通过观察这些寄存器值的变化可以知道代码有没有正常运行。
这样可以避免频繁下载程序,延长单片机Flash寿命。
开始仿真之前,先配置一些选项。
1.在工程设置里设置好芯片型号和晶振频率。
2.在“Debug”选项卡中选择“Use Simulator”,表示使用软件仿真;选择“Run to main()”则表示跳过汇编代码,直接跳转到main函数开始仿真。
设置下面的“Dialog DLL”项为“DARMSTM.DLL”和“TARMSTM.DLL”;parameter 项为“-pSTM32F103C8”,用于设置支持STM32F103C8的软硬件仿真。
3.点击开始仿真,这个时候会多出来一个工具条,就是Debug工具条。
1:复位,其功能等同于硬件上按复位按钮,相当于实现了一次硬复位。
按下该按钮后,代码会重新从头开始执行。
2:执行到断点处,按按钮用来快速执行到断点处,有时候并不需要观看每步时怎幺执行的,而是想快速执行到程序的某个地方看结果,这个按钮就可以实现这样的功能,前提是已在查看的地方设置了断点。
3:停止运行,此按钮在程序一直执行的时候变为有效,可以使程序停止下来进入到单步调试状态。
4:执行进去,该按钮用来实现执行到某个函数里面去的功能,在没有函数的情况下等同于执行过去按钮。
5:执行过去,在碰到有函数的地方,通过该按钮就可以单步执行过这个函数,而不进入这个函数单步执行。
6:执行出去,该按钮是进入了函数单步调试的时候,有时候可能不必再执行该函数的剩余部分了,通过该按钮就直接一步执行完函数余下的部分,并跳出函数回到函数被调用的位置。
7:执行到光标处:该按钮可以迅速使程序运行到光标处,与执行到断点处按钮功能类似。
8:汇编窗口,通过该按钮可以查看汇编代码,这对分析程序很有用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用Keil进行调试仿真
1.1 进入和退出仿真状态
只有在用户程序编绎和连接成功后才能进行调试工作。
点击菜单
Debug->Start/Stop
Debug Session IDE 将进入/退出硬件仿真状态。
1.2 如何运行程序
在Keil 的IDE 中有以下几种运行方式:
A) Run 全速运行遇到断点停下或用户按动Stop按钮或RST CPU按钮停止。
B) Step info 单步跟踪运行一条指令,如果该语句为C 中的调用子程序语句或汇编中的CALL指令,Step info 指令将跟踪进入子程序内部。
C) Step over 单步运行完一条指令,如果该语句为C 中的调用子程序语句或汇编中的CALL指令,Step over 指令将全速完成该子程序的运行,停在下一指令处。
D) Run till Cursor Line 从当前位置运行到光标处。
另外,用户还必须注意,在C 源程序窗口内、汇编源程序窗口内和在反汇编窗口内,以上命令表现会有所不同,请用户在使用时自行体会。
1.3 如何设置和删除断点
设置断点/删除断点最简单的方法是用鼠标双击待设置断点的源程序行或反汇编程序行,或用断点设置命令 “bs ……”。
1.4 如何查看和修改寄存器的内容
仿真时主寄存器的内容显示在主寄存器窗口,用户除了可以观察以外还可自行修改,用鼠标点击选中一个单元,例如单元DPTR, 然后再单击DPTR 的数值位置,出现文字框后输入相应数值按回车键即可;另外的输入方法是使用命令行窗口,例如输入A=0X34将把A 的数值设置为0X34。
1.5 如何观察和修改变量
点击“View->Watch & Call stack Window”出现相应窗口选择Watch 1-3 中的任一个窗口,按动F2, 在Name 栏填入用户变量名如Temp1 Counter 等,但必须是存在的变量。
如果想修改数值可单击Value 栏出现文本框后输入相应数值。
用户可以连续修改多个不同的变量。
uVision2 IDE 提供了观察变量更简单的方法。
在用户程序停止运行时,移动鼠标光标到要观察的变量上停大约一秒钟,就弹出一个“变量提示”块出来。
1.6 如何观察存储器区域
Keil IDE 把MCS-51内核的存储器资源分成4个部分:
A) 内部可直接寻址RAM data ,IDE表示为D:xx。
B) 间接寻址RAM区idata ,IDE表示为I:xx。
C) RAM区xdata ,IDE表示为X:xxxx。
D) 代码区code ,IDE表示为C:xxxx。
这四个区域都可以在Keil 的Memory Windows 中观察和修改。
IDE 集成环境中点击菜单View->Memory Windows,便会打开Memory 窗口, Memory 窗口,可以同时显示4 个不同的存储器区域,点击窗口下部分的编号可以相互切换显示。
在地址输入栏内输入待显示的存储器区起始地址。
如D:45h 表示从内部可直接寻址RAM 的45H 地址处开始显示;x:3f00H 显示外部RAM, 从3f00H 地址开始;c:0X1234显示代码区域,从1234H 地址开始。
I:32H 显示内部间接寻址空间,从32H 地址开始。
显示格式的切换: 在区域显示中,缺省的显示单元为字节(byte), 但是可以选择其他显示方式,在Memory 显示区域内按动鼠标右键,在弹出的菜单中可以选择的显示方式为:
Decimal 按照十进制方式显示
Unsigned 按照有符号的数字显示又分char 单字节int 整型long 长整型
Singed 按照无符号的数字显示又分char 单字节int 整型long 长整型
ASCII 按照ASCII 码格式显示
Float 按照浮点格式进行显示
Double 按照双精度浮点格式显示
在Memory 窗口中显示的数据可以修改,修改方法如下:在鼠标对准要修改的存储器单元,按动鼠标右键在弹出的菜单中选择“Modify Memory at 0x…”,在弹出对话框的文本输入栏内输入相应数值后按回车键,修改完成。
注:代码区数据不能更改。
2 仿真器的使用示例
Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用。
进入 Keil C51 后,屏幕如下图所示。
几秒钟后出现编辑界
启动Keil C51时的屏幕
进入Keil C51后的编辑界面
学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。
下面通过简单的编程、调试,引导大家学习Keil C51软件的基本使用方法和基本的调试技巧。
1)建立一个新工程
单击Project菜单,在弹出的下拉菜单中选中New Project选项
2)然后选择你要保存的路径,输入工程文件的名字,比如保存到C51目录里,工程文件的名字为C51
如下图所示,然后点击保存.
3)这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel 的89C51来说明,如下图所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定.
4)完成上一步骤后,屏幕如下图所示
到现在为止,我们还没有编写一句程序,下面开始编写我们的第一个程序。
5)在下图中,单击“File”菜单,再在下拉菜单中单击“New”选项
新建文件后屏幕如下图所示
此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,但笔者建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。
注意,如果用C语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.asm)。
然后,单击“保存”
按钮。
6)回到编辑界面后,单击“Target 1”前面的“+”号,然后在“Source Group 1”上单击右键,弹出如下菜单
然后单击“Add File to Group ‘Source Group 1’” 屏幕如下图所示
选中Test.c,然后单击“Add ”屏幕好下图所示
注意到“Source Group 1”文件夹中多了一个子项“Text1.c”了吗?子项的多少与所增加的源程序的多少相同
7)现在,请输入如下的C语言源程序:
#include <reg52.h> //包含文件
#include <stdio.h>
void main(void) //主函数
{
SCON=0x52;
TMOD=0x20;
TH1=0xf3;
TR1=1; //此行及以上3行为PRINTF函数所必须
printf(“Hello I am KEIL. \n”); //打印程序执行的信息
printf(“I will be your friend.\n”);
while(1);
}
在输入上述程序时,读者已经看到了事先保存待编辑的文件的好处了吧,即Keil c51会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。
程序输入完毕后,如下图所示
8)在上图中,单击“Project”菜单,再在下拉菜单中单击“Built Target”选项(或者使用快捷键F7),编译成功后,再单击“Project”菜单,在下拉菜
单中单击“Start/Stop Debug Session”(或者使用快捷键Ctrl+F5),屏幕如
下所示
9)调试程序:在上图中,单击“Debug”菜单,在下拉菜单中单击“Go”选项,(或者使用快捷键F5),然后再单击“Debug”菜单,在下拉菜单中单击“Stop Running”选项(或者使用快捷键Esc);再单击“View”菜单,再在下拉菜单中单击“Serial Windows #1”选项,就可以看到程序运行后的结果,其结果如下图所示
至此,我们在Keil C51上做了一个完整工程的全过程。
但这只是纯件的开发过程,如何使用仿真器调试程序哪?让我们继续往下看。
10)单击“Project”菜单,再在下拉菜单中单击
“” 在下图中,单击“Output”中单击“Create HEX File” 选项,使程序编译后产生HEX代码,供仿真器使用。
然后,单击“Debug”中单击 “User-Keil Monitor-51 Driver”接着单击“Settings”设置串口波特率。
波特率可以根据晶振的使用来选择,系统允许频
率 4-33 MHz 晶振可选, 波特率 4.8 Kbps- 57.6 Kbps 自适应。
统配置 11.0592 MHz
到此我们完成了Ky51仿真器使用设置。
回到IDE界面点击单击“Debug”菜
单,单击代码便下载到仿真器中。
代码下载至仿真器后,您可以根据需要进行单步、断点、全速运行,可参考变量、RAM变得观察。