第一,最小系统搭的有点问题;第二,可以temp=0xfe,然后直接左移,没必要加个取反增加理解难度 |
应该是>>的符号吧 |
右翼符号戳了P1=~(temp>>a); 改成这样 |
whisper_1021 发表于 2020-11-24 12:43 “<<”左移符号,让00000001左移00000010再左移00000100,以此类推。 |
>>是右移操作,<<是左移操作 0x01等于二进制的0000 0001 因为led的正极接的是电源正极,负极接的是IO,所以只有当IO为0时LED才会亮 如果右移0位,变成0000 0001,取反就变成了1111 1110,最上边的LED亮 如果右移大于或等于1位,都是0000 0000,取反变成1111 1111,是不会有LED亮的 如果是左移操作的话 左移一位,运算结果就变成了1111 1101,第二位LED 亮,其它LED不亮 左移二位,运算结果就变成了1111 1011,第三位LED 亮,其它LED不亮 依此类推,随着a的不断变化,形成了LED依次点亮的流水灯效果。 你可以在网上看一些视频教程。在原理上有更加详细的说明。 |
whisper_1021 发表于 2020-11-24 12:43 P1的初值是什么!!! |
songxia8013 发表于 2020-11-24 08:45 改成
这是什么原理。。。 |
songxia8013 发表于 2020-11-24 08:45 还是不行。。 |
P1=~(temp>>a); 改成这句试试 |
符号错了,这么明显啊!!! |