keil调试中的问题。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keil调试中的问题。相关的知识,希望对你有一定的参考价值。

途中P0和Pins分别代表什么?

Pins代表单片机Px管脚的状态,0代表低电平,1代表高电平。x=0,1,2,3...
P0代表单片机Px端口锁存器的值,有打勾代表为1,没勾表示值为0追问

P0和Pins都是同步的吧?

追答

本来应该是同步的,但PIN受到外部电路的影响,有时不同步。

参考技术A 表示这时P0.0和P0.3为高电平追问

比如:
MOV P0,#0FH
分别对p0和pins造成什么影响?

追答

仅就这条指令,P0和PINS的是同步的
P0和PINS就是如ningling_21所说。
当P0高电平时,PINS可以置0、1,P0.x低电平时,PINS的某位不能置1。

本回答被提问者采纳

keil调试问题

大家好, 最近我在调试Keil软件时出现一个问题:源程序如下--调试时,我用单步调(F11),发现开始时箭头会跳过P1=aa,(指针指向for语句,再按一下F11跳转至delayms(200)处,对应的P1口也缺少这一步信息。谢谢大家帮忙。
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delayms(uint);
void main()

uint aa,i,j;
while(1)

aa=0xaa;
for(i=0;i<5;i++)

P1=aa;
delayms(200);
P1=0xff;
aa=_crol_(aa,1);

for(j=0;j<3;j++)

aa=0xfe;
for(i=0;i<7;i++)

P1=aa;
delayms(200);
aa=_crol_(aa,1);

for(i=0;i<7;i++)

P1=aa;
delayms(200);
aa=_cror_(aa,1);




void delayms(uint ms)

uint i,j;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);

二楼说的情况可能是有,但有时候又不会出现我上述的那种情况,就是单步执行时P1=aa;会执行,怪事了。

应该是编译器优化的结果.
因为在三个循环中
P1=aa;
delayms(200);
aa=_crol_(aa,1);
基本一致.从仿真时的反汇编程序看,他们的入口一样,就好像同样调用一个函数.这样可以缩短代码的长度.
参考技术A 好久不弄51了,不知道给端口赋值是p1=aa,还是str p1 = aa 了

以上是关于keil调试中的问题。的主要内容,如果未能解决你的问题,请参考以下文章

keil调试问题

keil 调试问题

STM32中的下载与调试?

在keil中调试时出现垃圾字符

keil调试程序下面的窗口叉掉不见了咋两个放在一起

keil mdk 调试的时候没有黄色箭头