单片机中关于_crol_函数 aa=_crol_(aa,1),执行八次之后流水灯为什么回到了初始状态继续循环 ?0
ikgm17682017.01.07浏览231次分享举报
#include #include #define uchar unsigned char #define unint unsigned int void delays(unint); uchar aa; void main() { aa=0xfe;//赋初值11111110 while(1) { P1=aa;//语句1 ... #include
#include
#define uchar unsigned char
#define unint unsigned int
void delays(unint);
uchar aa;
void main()
{
aa=0xfe;//赋初值11111110
while(1)
{
P1=aa;//语句1
delays(200);//语句2
aa=_crol_(aa,1);//语句3
}
}
void delays(unint xms)
{
unint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
第一次执行语句3,aa会变成11111101,但是此时P1的值还是11111110,执行完语句3之后回到语句一,此时语句1应该变成了P1=aa=11111101
当第八次执行时候aa关于变成11111111,我认为第九次aa应该还是11111111,这时候流水灯应该是全部熄灭的,为什么,实验时候单片机的led灯回复初始状态之后一直处于流动循环状态??(我认为函数始终是在while函数里面运行的,不可能出现 aa=0xfe;//赋初值11111110,所以我认为不应该出现流水灯回到初始状态继续循环的情况。)求解答,谢谢! 展开