在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(PSW7)。它表示了运算是否有进位(或借位)。如果操作结果在最高位有进位(加法)或者借位(减法),则该位为1,否则为0
由于PSW存放程序执行中的状态,故又叫程序状态字?运算器中还有一个按位(bit)进行逻辑运算的逻辑处理机(又称布尔处理机)
根据指令执行的不同上述值会有相应的变化,也正是为了监测这些在单片机中看不到的值而达到调试的目的。
虽然软件调试无法实现硬件调试那样的信号输出,但是可以通过软件窗口的模拟监测输出信号的高低电平以及单片机相关端口的变化。
这是全部打开后的效果。
有了输出,就应该有输入的设置
这个按钮可以打开输入预设窗口,输入值窗口如下:
选择不同的Int Source 会有不同的 Selected Interrupt的变化,通过选择与赋值达到模拟输入的目的。
可以在代码所在窗口的最左边右击按钮插入一个断点,如下图所示:
有了这个功能,你就可以控制监控要执行到某位置时系统的状态。
最后在介绍一下一个很实用的功能:
这个是Disassembly Windows,按下后可以把C51 Disassembly 为相应的汇编语言,如果你有 相应的汇编知识的话就可以对比C51 与汇编的对比了。由于汇编的效率高很多,这也可以作为查看C51执行效率的一个方法。
上图中就可以看出,C51 代码是如何被解释为汇编的。
上一篇:MCS-51系列特殊功能寄存器
下一篇:Keil 的辅助工具和部份高级技巧
推荐阅读最新更新时间:2024-03-16 15:24
设计资源 培训 开发板 精华推荐
- AMD推出第二代Versal Premium系列产品:首款PCIe 6.0和CXL 3.1的SoC FPGA
- 红帽宣布达成收购Neural Magic的最终协议
- 5G网速比4G快但感知差!邬贺铨:6G标准制定应重视用户需求
- SEMI报告:2024年第三季度全球硅晶圆出货量增长6%
- OpenAI呼吁建立“北美人工智能联盟” 好与中国竞争
- 传OpenAI即将推出新款智能体 能为用户自动执行任务
- 尼得科智动率先推出两轮车用电动离合器ECU
- ASML在2024 年投资者日会议上就市场机遇提供最新看法
- AMD将裁员4%,以在人工智能芯片领域争取更强的市场地位
- Arm:以高效计算平台为核心,内外协力共筑可持续未来