Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
Keil C51详细设置及调试方法
2023-05-16
http://blog.chinaunix.net/uid-20734916-id-3995349.html
20.4.1 常用调试命令
在对工程成功地进行编译(汇编)、连接以后,在主菜单中打开“调试”栏,点击“开始/停止调试模式”,即可进入软件模拟仿真调试状态,Keil C51内建了一个仿真CPU用来模拟执行程序,该仿真CPU功能非常强大,可以在没有硬件和仿真器的情况下进行
单片机开发
程 序的调试,但是在时序上,软件模拟仿真是达不到硬件的时序的。进入调试状态后,“调试”栏菜单项中原来不能用的命令现在已经可以使用了。“调试”栏菜单上 的大部分命令可以在调试界面上找到对应的快捷按钮,从左到右依次是复位、运行、暂停、单步、单步跳过、执行完当前子程序、运行到当前行、下一状态、打开跟 踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等
单片机培训
命令(图20-17)。
图20-17 软件模拟仿真调试状态
使用菜单“单步到之外”或相应命令或 功能键F10可以用“单步跳过”形式执行命令,所谓“单步跳过”,是指将汇编语言中的子程序或高级语言中的函数作为一个语句一步执行完。使用菜单“单步” 或相应的命令按钮或使用快捷键F11可以单步执行程序(即一条一条语句执行),通过单步执行程序,可以找出一些问题的所在,但是仅依靠单步执行来查错效率 较低。
20.4.2 断点设置
程序调试时,一些程序行必须满足一定的
单片机i学习
条 件才能被执行到(如程序中某变量达到一定的值、按键被按下、串口接收到数据、有中断产生等),这些条件往往是异步发生或难以预先设定的,这类问题使用单步 执行的方法是很难调试的,这时就要使用到程序调试中的另一种非常重要的方法:断点设置。断点设置的方法有多种,常用的是在某一程序行设置断点(图 20-18),设置好断点后可以全速运行程序,一旦执行到该程序行即停止,可在此时观察有关变量值,以确定问题所在。在程序行设置/移除断点的方法是将光 标定位于需要设置断点的程序行,使用菜单:“调试>设置/取消断点”设置或移除断点,也可以用鼠标在该行双击实现同样的功能;另外“使能/禁止断 点”用来开启或暂停光标所在行的断点功能;其它还有“禁止所有断点”、“取消所有断点”等设置。这些功能也可以用工具条上的快捷按钮进行
单片机汇编语言
设置。
图20-18 断点设置
20.4.3 在线汇编
在进入Keil C51的调试环境以后,若发现程序有错,可以直接对源程序进行修改,但是要使修改后的代码起作用,必须先退出调试环境,重新进行
单片机C语言教程
编 译、连接后再次进入调试。如果调试时只是需要对某些程序行进行临时的试验修改(如修改参数以得到所需的延时时间),那么这样的重复过程显得太麻烦,为此 Keil C51软件提供了在线汇编的能力。将光标定位于需要修改的程序行上,用菜单“调试>在线汇编”即可出现如图20-19所示的对话框,在“输入新指 令”后面的编缉框内直接输入需更改的程序语句,输入完后键入回车将自动指向下一条语句,可以继续修改。如果不再需要修改,可以点击右上角的关闭按钮关闭
单片机论坛
窗口。
图20-19 在线汇编对话框
20.4.4 程序调试时的常用窗口
Keil C51软件在调试程序时提供了多个窗口,主要包括输出窗口(Output Windows)、查看和呼叫堆栈窗口(Watch & Call Statck Windows)、存储器窗口(Memory Window)、反汇编窗口(Dissambly Window)和串行窗口(Serial Window)等。进入调试模式后,可以通过菜单“查看”(View)下的相应命令打开或关闭这些窗口。
图20-20是输出窗口、查看和呼叫堆栈观察窗口和存储器窗口,各窗口的大小可以使用鼠标调整。进入
51单片机开发板
调试程序后,输出窗口自动切换到Command页。
图20-20 输出窗口、查看和呼叫堆栈窗口和存储器窗口
存储器窗口
存储器窗口中可以显示系统各种内存中 的值,通过在“地址”(Address)后的编缉框内输入“字母:数字”即可显示相应内存值,其中字母可以是C、D、I、X,分别代表代码存储空间、直接 寻址的片内存储空间、间接寻址的片内存储空间、扩展的外部RAM空间,数字代表想要查看的地址。例如输入“D:0x20”即可观察到地址20H开始的片内 RAM单元值;键入“C:0x100”即可显示从100H开始的ROM单元中的值,即查看程序的二进制代码。该窗口的显示值可以以各种形式显示,如十进 制、十六进制、字符型等,改变显示方式的方法是点鼠标右键,在弹出的快捷菜单中选择
PIC单片机培训
, 该菜单用分隔条分成三部分,其中第一部分与第二部分的三个选项为同一级别,选中第一部分的任一选项,内容将以整数形式显示,而选中第二部分的ASCII项 则将以字符型式显示,选中Float项将以相邻四字节组成的浮点数形式显示,选中Double项则将相邻8字节组成双精度形式显示。第一部分又有多个选择 项,其中Decimal项是一个开关,如果选中该项,则窗口中的值将以十进制的形式显示,否则按默认的十六进制方式显示。Unsigned和Signed 后分别有三个选项:Char、Int、Long分别代表以单字节方式显示、将相邻双字节组成整型数方式显示、将相邻四字节组成长整型方式显示,而 Unsigned和Signed则分别代表
avr单片机开发板
无 符号形式和有符号形式,究竟从哪一个单元开始的相邻单元则与你的设置有关。以整型为例,如果你输入的是“I:0”,那么00H和01H单元的内容将会组成 一个整型数,而如果你输入的是“I:1”,01H和02H单元的内容会组成一个整型数,依此类推。第三部分的Modify Memory at X:xx用于更改鼠标处的内存单元值,选中该项即出现如图20-21所示的对话框,可以在对话框内输入要修改的内容。
图20-21 更改内存单元值
工程窗口寄存器页
图20-22是工程窗口寄存器页的内 容,寄存器页包括了当前的工作寄存器组和系统寄存器组。系统寄存器组有一些是实际存在的寄存器,如A、B、DPTR、SP、PSW等,有一些是实际中并不 存在或虽然存在却不能对其操作的,如PC、States等。每当程序中执行到对其寄存器的操作时,该寄存器会以反色(蓝底白字)显示,用鼠标单击然后按下 F2键,即可修改该值。
图20-22 工程窗口寄存器页
查看和呼叫堆栈观察窗口
这也是很重要的一个窗口,工程窗口中不仅可以观察到工作寄存器和有限的寄存器如A、B、DPTR等,如果需要观察其他寄存器的值或者在高级语言编程时需要直接观察变量,还要借助于这个窗口了。
一般情况下,我们仅在单步执行时才对 变量值的变化感兴趣,全速运行时,变量的值是不变的,只有在程序停下来之后,才会将这些值的最新变化反映出来。但是,在一些特殊场合我们也可能需要在全速 运行时观察变量的变化,此时可以点击查看>定期窗口更新,确认该项处于被选中状态,即可在全速运行时动态地观察有关值的变化。但是,选中该项,将会 使程序模拟执行的速度变慢。
Keil C51提供了串行窗口,我们可以直接在串行窗口中键入字符,该字符虽不会被显示出来,但却能传递到仿真CPU中,如果仿真CPU通过串行口发送字符,那么 这些字符会在串行窗口显示出来,用该窗口可以在没有硬件的情况下用键盘模拟串口通信。由于该项涉及到高级语言编程,这里就不具体介绍了。
20.5 外围接口工具
为了能够比较直观地了解[color=#444444 !important]单片机
中 定时器、中断、并行端口、串行端门等常用外设的使用情况,Keil C51提供了一些外围接口对话框,通过“外围设备”菜单选择。“外围设备”的下拉菜单内容与你建立项目时所选的CPU有关。如果是选择的89C51这一类 单片机,那么将会有Interrupt(中断)、I/O Ports(并行I/O口)、Serial(串行口)、Timer(定时/计数器)这四个外围设备菜单(图20-23)。打开这些对话框,列出了外围设备 的当前使用情况,各标志位的情况等,可以在这些对话框中直观地观察和更改各外围设备的运行情况。
图20-23 外围设备菜单
20.5.1 P1□作为输入端□
程序每执行一个循环之前,修改一次P1端口的值(图20-24),观察变量的值是直接观看屏幕右下角的变量表;另外的方法是将鼠标移动到源程序的变量处,等待大约1秒钟左右,屏幕上即可弹出该变量的相关信息。
图20-24 P1□作为输入端□
20.5.2 P1□作为输出端□
执行循环时观察P1口的输出。由于P1口只用于输出,故无须修改端口值(图20-25)。
图20-25 P1□作为输出端□
20.5.3 外部中断INT0
外部中断INT0对应于P3.2口线,因此,用鼠标单击“外设>Port3”窗口从右向左数第三位(P3.2口线对应的位),每单击一下,即产生一次中断,原因是外部中断是下降沿或低电平有效(图20-26)。
图20-26 外部中断INT0
另外,也可以点击“外设>Interrupt”,在出现图20-27所示中断对话界面后,进行设置。
图20-27 中断对话界面
20.5.4 定时器/计数器0
MCS-51系列单片机有两至三个定 时器/计数器,均可以作为定时器或计数器使用。点击“外设>Timer0”即出现图20-28所示定时/计数器0的外围接口界面,可以直接选择 Mode组中的下拉列表以确定定时/计数工作方式(0~3四种工作方式,设定定时初值等),点击选中TR0,status后的stop(停止)就变成了 run(运行)。如果全速运行程序,此时TH0、TL0后的值也快速地开始变化(要求“定期窗口更新”处于选中状态),直观地演示了定时/计数器的工作情 况。
图20-28 定时/计数器0的外围接口界面
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)
keil
C51
详细设置及调试方法
Keil C51详细设置及调试方法 的相关文章
STM32 软件仿真失败 ***** error 65: access violation at 0x40021000 : no ****'read' permission******
在使用STM32进行软件仿真时 可能会遇到很多问题 最常见的当然如标题所示 STM32 软件仿真失败 no read permission 还有其他很多问题比如 error 35 undefined line number BS Templ
keil编译问题error C100: unprintable character... 和WARNING L16: UNCALLED SEGMENT...
keil编译出现问题如下 问题 error C100 unprintable character 0xA3 skipped 原因 keil里面出现了中文输入法时写的标点 程序中不能出现全角的任何字符 包括空格在内的任何标点符号和空格都只能在
C51 数码管的动态显示 dynamic display method of digital tube
代码 include
CC2530学习(一)环境配置
CC2530F256是一款将各种丰富的功能系统地集成到一片LSI Large Scale Integrated circuit 大规模集成电路 的片上系统 System on Chip 简称SoC 内嵌增强型51内核的单片机 芯片后缀256
--- Error: User Command terminated, Exit-Code = 1解决办法
使用keil MDK编译项目时 compiling编译通过 但是文件最后出现错误 Error User Command terminated Exit Code 1 经查阅资料 MDK需要fromelf exe文件生成 bin 那么在重新安
把keilC51中不使用的代码禁止分配空间,为程序瘦身!
把target options中的device页中选上 Use LX51 然后在LX51 Misc页中的Misc Control中填入 REMOVEUNUSED 确认后重新编译即可自动去掉未调用的函数 如下图
51单片机开发系列一-51单片机开发环境搭建以及入门汇编代码
51单片机开发系列一 51单片机开发环境搭建以及入门汇编代码 象棋小子 1048272975 1 51单片机概述 51单片机是对所有兼容Intel 8031指令系统的单片机的统称 目前教科书基本都是以早期的MCS 51为原型 讲解微机的原理
keil5 编辑栏一直是灰色
无语了 气炸了 愤怒啊 查了一下 有很多 arm 和 c51 并存 不管他了 之前装了用完51 又装了arm 现在反而什么都用不了 打开license 发现过期了 重新破解 即可 注意音乐 大半夜吓死人 你以为这样就可以了 你就太天真了 网
KEIL编译出现错误“source file is not valid utf-8”
KEIL编译出现错误 source file is not valid utf 8 在外面复制了一段代码 c文件一直报错source file is not valid utf 8的错误 经查找原因就是 文件中出现中文符号导致的 特别是中文
嵌入式平台memcpy实验总结
1 概述 最近项目中性能比较吃紧 经过跟踪发现 memcpy操作的性能存在一定问题 于是 做了一些尝试去验证一些想法 记录一下 环境 MDK530 Cortex M0芯片 主频80MHz左右 2 优化手段 在优化之前 我们要先确定基本的性能
Keil报错:Libraries\CMSIS\stm32f10x.h(298): error: #67: expected a "}"
原因主要有三点 启动文件 头文件定义 驱动选择不一致 各项如下 1 启动文件 2 头文件定义 3 驱动选择 会导致报错的情况案例 1 启动文件为startup stm32f10x md s C C 的Define为 STM32F10X HD
使用fromelf把axf文件转换成elf格式
FROMELF用法 命令格式 fromelf options input file fromelf h即可打印出帮助信息 Product MDK Plus 5 29 Component ARM Compiler 5 06 update 6
Undefined symbol assert_param
Undefined symbol assert param Objects led axf Error L6218E Undefined symbol assert param referred from misc o Keil MDK 5
keil仿真点击三次运行才开始运行
可能造成该问题的原因 使用了printf函数 未勾选微库编译 使用了仿真器供电 可能有效的解决方法 不适用printf函数 勾选微库编译 使用外部电源供电
【STM32】keil使用sprintf时的告警处理
使用如下语句 u8 DispBuf 50 sprintf DispBuf TEST 时 会出现如下告警 main c 86 warning 223 D function sprintf declared implicitly 这是由于没有包
keil5 Device Database 灰色问题
使用 keil5 安装 GD 软件包后打开工程依然无法搜索到对应的芯片型号 GD32F450 The Project references device files or libraries that are not installed D
keil找不到device,怎么办?
下载好的keil 准备调试程序 却发现这个问题 找不到我需要的芯片啊啊啊 头大 后面发现是缺少相应的pack 安装keil时 好像没有自动装上STM32系列芯片 所以得需要自己安装 百度一下 找一些资源 然后 把途中红色框住的 分别放在安装
[keil5] 中有关“TOOLS.INI-Section ‘[C51]‘ : missing ‘PATH‘ enty “错误
在安装vdmagdi后 打开keil5 uVision5出现 gt gt gt TOOLS INI Section C51 missing PATH enty lt lt lt 错误 原因如下 双击运行vdmagdi exe文件 选择了AG
错误:L6236E:没有部分与选择器匹配 - 没有部分是第一个/最后一个
我是新来的ARM编程使用Keil Microvision V5 12编译器 我无法编译一个简单的程序集项目并出现此错误 Objects learn sct 7 error L6236E No section matches selector
如何将变量放置在内存中给定的绝对地址处(使用 GCC)
RealView ARM C 编译器supports使用变量属性将变量放置在给定的内存地址处at address int var attribute at 0x40001000 var 4 changes the memory locate
随机推荐
解决: java.net.ConnectException: Connection refused: connect
前些天发现了一个巨牛的人工智能学习网站 xff0c 通俗易懂 xff0c 风趣幽默 xff0c 忍不住分享一下给大家 点击跳转到教程 java net ConnectException Connection refused connect
linux 中的 nohup 命令(设置后台进程): nohup: ignoring input and appending output to ‘nohup.out’
前些天发现了一个巨牛的人工智能学习网站 xff0c 通俗易懂 xff0c 风趣幽默 xff0c 忍不住分享一下给大家 点击跳转到教程 一 Linux 下使用 nohup Unix Linux下一般比如想让某个程序在后台运行 xff0c 很多
swagger2 注解说明 ( @ApiImplicitParams )
前些天发现了一个巨牛的人工智能学习网站 xff0c 通俗易懂 xff0c 风趣幽默 xff0c 忍不住分享一下给大家 点击跳转到教程 64 Api xff1a 用在请求的类上 xff0c 表示对类的说明 tags 61 34 说明该类的作用
在 vscode 中使用 Git :拉取、提交、克隆
前些天发现了一个巨牛的人工智能学习网站 xff0c 通俗易懂 xff0c 风趣幽默 xff0c 忍不住分享一下给大家 点击跳转到教程 PS xff1a 转载此文后 xff0c 网友在评论中提到还有其它方法 xff0c 不过目前个人尚在研究中
@Transactional 详解
前些天发现了一个巨牛的人工智能学习网站 xff0c 通俗易懂 xff0c 风趣幽默 xff0c 忍不住分享一下给大家 点击跳转到教程 64 Transactional 是声明式事务管理 编程中使用的注解 1 添加位置 1 xff09 接口实
解决跨域问题:No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.
前些天发现了一个巨牛的人工智能学习网站 xff0c 通俗易懂 xff0c 风趣幽默 xff0c 忍不住分享一下给大家 点击跳转到教程 PS xff1a 如果遇到 这个问题 Request header field Content Type
STM32 usb_core.c分析
usb core c这个c文件是个庞大的文件 xff0c 主要是定义了usb2 0的标注协议处理函数 下面是这个文件的所有函数 xff1a Function Name Standard GetConfiguration Descriptio
将mysql库移植到arm板上
http emb hqyj com Column 9064 html 首先更新虚拟机下载源 sudo apt get update 在安装mysql时 configure容易出现错误error No curses termcap libra
ROS常用命令
ROS常用命令 打印 ros环境变量 echo ROS PACKAGE PATH 确认环境变量已经设置正确 export grep ROS 环境变量设置文件 sudo gedit bashrc 包含 xff1a source opt ros
基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第一篇)安装调试
基于Ardupilot PX4固件 xff0c APM PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试 xff08 第一篇 xff09 安装调试 本文内容大部分来自Kris xff0c 我们的K大 xff0c 在VTOL领域的大牛
基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第二篇)软硬件参数调试
基于Ardupilot PX4固件 xff0c APM PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试 xff08 第二篇 xff09 软硬件参数调试 本文内容大部分来自Kris xff0c 我们的K大 xff0c 在VTOL领域
基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第三篇)故障保护及问题诊断
基于Ardupilot PX4固件 xff0c APM PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试 xff08 第三篇 xff09 故障保护及问题诊断 PIX无法安装驱动 双击下载的px4 driver installer v
基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第四篇)飞行特性
基于Ardupilot PX4固件 xff0c APM PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试 xff08 第四篇 xff09 飞行特性 自动起飞 固定翼飞机可以自动发射多种类型的飞机 下面的说明将教你如何设置你的任务来支
基于MIission planner的VTOL垂直起降固定翼航线设计方法
基于MIission planner的VTOL垂直起降固定翼航线设计方法 在此感谢 作者 ID xff1a 小明 QQ xff1a 1228401538提供的文档帮助资料 航线设计方法一 xff1a 1 连接飞机之前需要做的工作 1 1 打
APM、Pixhawk、Pixhack端口定义接线图
APM Pixhawk Pixhack端口定义接线图 APM端口定义接线图 Pixhawk端口定义接线图 Pixhawk指示灯颜色状态 Pixhack端口定义接线图 Pixhack端口电源模块OSD GPS连接 Pixhack PWM转接小
apm、pixhawk、pixhack飞控航拍后pos数据提取流程
apm pixhawk pixhack飞控pos数据提取流程 下载日志 打开log分析 区域omap地图验证 验证之前将log文件使用mission planner进行kml验证 筛选相机pos坐标 xff08 选择CAM xff09 很重
基于apm、pix无人坦克、无人车自动控制与自动驾驶教程
基于apm pix无人坦克 无人车自动控制与自动驾驶教程 目前玩无人机的玩家较多 xff0c 但是无人车 无人机坦克的玩家少之又少 xff0c 本人经过一段时间的琢磨 xff0c 实现了无人车与无人坦克自动控制 xff0c 自动驾驶 xff
(二)无人机数据处理算法介绍——图像拼接
无人机视频图像拼接 1 图像拼接技术概况 图像拼接是将空间中具有一定重叠率的图像序列校正为一幅无缝的宽视场图像 它通常包括图像预处理 图像配准和图像融合3个步骤 其中图像配准是最为关键的一步 目前 最常用的配准方法可以归纳为区域配准和特征配
无人机海洋应用需求分析
1 需求分析 1 海岛海岸带航空遥感专项调查 xff08 可能存在测绘资质要求 xff09 业务无人机功能任务任务描述海岛岛礁海岛 xff08 面积大于500 m2 xff09 海岛位置 类型 面积和分布 岸线位置 类型和长度 土地利用类型
Keil C51详细设置及调试方法
http blog chinaunix net uid 20734916 id 3995349 html 20 4 1 常用调试命令 在对工程成功地进行编译 xff08 汇编 xff09 连接以后 xff0c 在主菜单中打开 调试 栏 xf
热门标签
cefpython
yodlee
mauishell
qmdiarea
attoparsec
pyfftw
reloading
veracode
tax
dwt
awssdknet
quilt
lanczos