看不出什么毛病啊,程序也很简单,怎么就是不行啊!已经验证板子没有问题。
#include<reg52.h>
#include<intrins.h>
void init();
int a;
void main()
{
init();
P1=0xfe;
while(1)
{
if(a==20)
{
a=0;
P1=_crol_(P1,1);
}
}
}
void init()
{
TMOD=0x01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void
timer0() interrupt 1
{
a++;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
}
那就是1秒执行一次了,
temp=0xfe;
while(1)
{
if(a==20)
{
a=0;
temp=_crol_(1,temp);
}
P1=temp
P1=temp;temp=_crol_(temp,1); 这样写就正常运行了,但是直接写上P1=_crol_(P1,1)的话,亮的灯就不熄灭了,只是一个一个的点亮而已!这是为什么啊P1的值应该已经被替换了啊,为什么不执行啊,很迷茫
temp=_crol_(1,temp);这个应该错了……
P1=temp;temp=_crol_(temp,1); 这样写就正常运行了,但是直接写上P1=_crol_(P1,1)就不行了啊,能帮忙分析一下吗
一周热门 更多>