Keil C51调试程序时, 对ROM的查看以及RAM 查看或修改

发布者:自在堂最新更新时间:2016-12-12 来源: eefocus关键字:Keil  C51  调试程序  ROM  RAM 手机看文章 扫描二维码
随时随地手机看文章

在Keil 里使用 DeBug 模式时,如要 查看外部 RAM 的数据 或查看 ACC 的内容可以进行以下操作;

复制代码

sysGetTxMode: LCALL    Com0185(C:2B95) JNB        0xE0.0,sysGetTxMode ........ ........ ret Com0185: MOV        DPTR,#0x7020 MOVX    A,@DPTR RRC        A RRC        A ANL        A,#0x3F RET

复制代码

1. 在Keil 调试的时候打开监视窗口;



 2. 打开内存视窗,   

    在地址框填写:  
C:    0000    ;     查看 CODE    区  
D:    0000    ;     查看 DATA    区  
I:     0000    ;     查看 IDATA    区  
X:    0000    ;     查看 XDATA    区

  

Regs是片内内存的相关情况值,Sys是系统一些累加器、计数器等。Regs很简单就不多说。具体介绍一下Sys

a    累加器ACC,往往在运算前暂存一个操作数(如被加数),而运算后又保存其结果(如代数和)。

b    寄存器B ,主要用于乘法和除法操作

sp

sp_max

dptr  数据指针DPTR

PC $

states 执行指令的数量

sec  执行指令的时间累计(单位 秒)

 

psw 程序状态标志寄存器PSW,八位寄存器,用来存放运算结果的一些特征,如有无进位、借位等。

   p  奇偶标志P。反映累加器ACC内容的奇偶性,如果ACC中的运算结果有偶数个1(如11001100B,其中有4个1),则P为0,否则,P=1。

   f1

   ov  溢出标志位OV。MCS-51反映带符号数的运算结果是否有溢出,有溢出时,此位为1,否则为0。

   rs

   f0

   ac  辅助进位标志AC。又称半进位标志,它反映了两个八位数运算低四位是否有半进位,即低四位相加(或减)有否进位(或借位),如有则AC为1状态,否则为0。

 cy  进位标志CY(PSW7)。它表示了运算是否有进位(或借位)。如果操作结果在最高位有进位(加法)或者借位(减法),则该位为1,否则为0

  由于PSW存放程序执行中的状态,故又叫程序状态字?运算器中还有一个按位(bit)进行逻辑运算的逻辑处理机(又称布尔处理机)

 

根据指令执行的不同上述值会有相应的变化,也正是为了监测这些在单片机中看不到的值而达到调试的目的。

虽然软件调试无法实现硬件调试那样的信号输出,但是可以通过软件窗口的模拟监测输出信号的高低电平以及单片机相关端口的变化。

这是全部打开后的效果。

 

有了输出,就应该有输入的设置

这个按钮可以打开输入预设窗口,输入值窗口如下:

  选择不同的Int Source 会有不同的 Selected Interrupt的变化,通过选择与赋值达到模拟输入的目的。

可以在代码所在窗口的最左边右击按钮插入一个断点,如下图所示: 

有了这个功能,你就可以控制监控要执行到某位置时系统的状态。

 

最后在介绍一下一个很实用的功能:

这个是Disassembly Windows,按下后可以把C51 Disassembly 为相应的汇编语言,如果你有 相应的汇编知识的话就可以对比C51 与汇编的对比了。由于汇编的效率高很多,这也可以作为查看C51执行效率的一个方法。

上图中就可以看出,C51 代码是如何被解释为汇编的。


关键字:Keil  C51  调试程序  ROM  RAM 引用地址:Keil C51调试程序时, 对ROM的查看以及RAM 查看或修改

上一篇:MCS-51系列特殊功能寄存器
下一篇:Keil 的辅助工具和部份高级技巧

推荐阅读最新更新时间:2024-03-16 15:24

华邦推出为边缘AI带来超高带宽内存的CUBE架构
全球存储解决方案领导华邦今日宣布推出一项强大的内存赋能技术,可助力客户在主流应用场景中实现经济实惠的边缘 计算。华邦的 CUBE (半定制化超高带宽元件) 可大幅优化内存技术,可实现在混合云与边缘云应用中运行生成式 AI 的性能。 CUBE 增强了前端 3D 结构的性能,例如 chip-on-wr(CoW)和wafer-on-wafer(WoW),以及后端 2.5D/3D chip-on-Si-interposer 的基板和扇出(Fan out)解决方案。CUBE 专为满足边缘 AI 运算装置不断增长的需求而设计,能利用 3D 堆栈技术并结合异质键合技术而提供高带宽低功耗的单颗 256Mb 至 8Gb 内存。除此之外,
[机器人]
嵌入式内存数据库引擎的研究与设计
  1 嵌入式内存数据库技术发展的现状   数据库理论与技术的发展极其迅速,其应用日益广泛,在当今的信息社会中,它几乎无所不在。以关系型为代表的三大经典(层次、网状、关系)型数据库在传统的(商务和管理的事务型)应用领域获得了极大成功,然而它们在现代的(非传统)工程和时间关键型应用面前却显得软弱无力,面临着新的严峻的挑战,由此而导致了嵌入式实时数据库的产生和发展。在实时应用中,事务在运行前的操作逻辑(操作类型、顺序等)、数据集及其结构、行为以及时间的相关性等都是可预分析的。然而,对磁盘数据库而言,数据的I/O 是造成事务执行时间不确定、预报不准确的关键因素。为此,要求以大内存作为实时数据库的主要存储介质,使一个事务在活动期间没有I
[电源管理]
嵌入式<font color='red'>内存</font>数据库引擎的研究与设计
祝芳浩:酷派360合资公司将推新手机ROM
    酷派大神总裁祝芳浩对《壹观察》透露,360和酷派合资公司将坚持双品牌运作。   祝芳浩表示,合资公司将保留大神品牌,主要面向中低端产品,而年内推出的新品牌主要面向中高端市场。   2014年12月16日,360宣布向酷派投资4.0905亿美元现金成立合资公司,360持股占比45%。随后,周鸿祎在360公司发出内部邮件,称“我们要在移动互联网上把安全做到极致,就必须自己做手机,这样才能深度介入操作系统底层,在此基础上构筑真正的手机安全,实现用户需求的安全感。”   2015年2月春节之后,周鸿祎率领360手机团队亮相深圳,在内部讲话中,周鸿祎给员工“打鸡血”称:公司会用互联网的激励方式改革手机行业,“跟着我老周干有肉吃,如果几
[手机便携]
单片机C51编程入门最好的例子(跑马灯)
#include reg52.h #define uchar unsigned char #define uint unsigned int //延时子程序 void mDelay(uchar Delay) { uchar i; for(;Delay 0;Delay--) { for(i=0;i 123;i++); } } void main() { uchar i,d; P0 = 0; //所以LED点亮。 mDelay(250);//延时250mS(12M晶振) mDelay(250);//延时250mS(12M晶振) while(1) { d = 0x01;
[单片机]
Crucial 英睿达618大促强势来袭,明星单品抢先购
舒爽初夏,惊喜连连;实力升级,福利加码!2022 年 618 大促即将来袭,您准备好了吗?明星单品优惠买、热门单品闭眼入、惊喜福利享不停,Crucial 英睿达开启618“开门红”预热模式,点燃年中购物狂欢盛典! 25 年来,Crucial 英睿达凭借独特优势,将数百万客户与美光四十多年来不断完善的创新和技术连结起来。无论您是内容专业人士、游戏玩家,还是 PC 爱好者或是超频发烧友,Crucial 英睿达都能为您提供卓越的内存和存储产品。 超感体验,重磅之作 ——Crucial 英睿达 P5 Plus SSD 太平洋电脑网“2021 智臻科技奖 DIY 硬件类”年度性能旗舰、IT之家“2021 年度科技趋势榜” DI
[嵌入式]
Crucial 英睿达618大促强势来袭,明星单品抢先购
Keil C51对同一端口的连续读取方法
C语言是当前举世公认的高效简洁而又非常贴近硬件的编程语言之一。将C语言向单片机MCS-51上的移植始于2O世纪8O年代的中后期,经过近1O年的发展,C语言克服了产生代码过长、运行速度较慢的缺点,并且由于C语言在开发速度、软件质量、结构化、可维护性等方面有着汇编语言无法比拟的优势,从而得到日益广泛的应用。Keil C51是德国Keil公司开发的单片机C语言编译系统.该软件功能完备,是目前国内技术开发人员使用最为广泛的语言之一。 在实际工作中发现,用C语言编写的对同一端口进行连续读取的程序,经Keil C51编译后执行结果往往会出错,现以8051单片机读取12位A/D MAX197为例,如图1所示。 iframe id="i
[单片机]
<font color='red'>Keil</font> <font color='red'>C51</font>对同一端口的连续读取方法
keil C51启动文件详解
;------------------------------------------------------------------------------ ; STARTUP.A51: 用户上电初始化程序 ;------------------------------------------------------------------------------ ; ; 用户定义需上电初始化的内存空间 ; ; 使用以下EQU命令可定义在CPU复位时需用0进行初始化的内存空间 ; ; ; IDATA 存储器的空间的绝对起始地址总是0. IDATALEN EQU 80H ; 需用0进行初始化的IDATA存储器空间的字节数 ; XD
[单片机]
VB环境下对双端口RAM物理读写的实现
    摘要: 介绍应用双端口RAM芯片设计的智能型高速并行通讯卡。针对VB语言环境下,用DLL函数链接方式,对采用内存直接映象技术的双端口RAM进行读写,实现主、分机之间数据高速并行传输。本技术已经成功应用在汽车给合检测系统中,对在其它集散型控制系统中进行高速数据传输同样有益。     关键词: 双端口RAM 内存直接映象 高速并行传输 DLL动态链接 在集散型控制系统中,一般将计算机或工控机用于终端图文显示,数据采集处理以及人机对话接口等方面。计算机或工控机与外部设备需要建立数据传输的通讯联系。但大量数据传输,靠通常的串行通讯方式进行,必须占用CPU大量的时间进行通讯。一些控制系统往往因为传输速率慢而无法
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved