![]() |
第一,最小系統搭的有點問題;第二,可以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); 改成這句試試 |
符號錯了,這么明顯啊!!! |