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调试中的问题。的主要内容,如果未能解决你的问题,请参考以下文章