#include<reg52.h>
char a;
unsigned int b,c,flag;
sbit F1 = P2^6;
void main()
{
a = 0xff;
while(1)
{
b = 50000;
c = 50000;
a = a<<1;
P1 = a;
while(b--);
if(a == 0x00)
{
a = 0xfe;
flag = 1;
while(c--);
}
while( flag == 1)
{
a = 0x7f;
b = 1000;
c = 1000;
a >>= 1;
P1 = a;
while(b--);
if(a == 0x00)
{
P1 = 0xfe;
flag = 0;
while(c--);
}
}
}
}
这个是低电平点亮,为什么左移可以,右移不行啊,朋友帮我看看啊!!谢谢了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
- while( flag == 1) //判断标志位是否为1
- {
- a = 0x7f; //赋值
- ...
- a >>= 1; //右移一位
- ...
- if(a == 0x00) //判断是否循环完毕
- {
- ...
- }
- }
复制代码简化了一下右移循环的代码,自己找死循环原因。一周热门 更多>