引用:
作者asccpu
我舉個例子好了,其他的就由你去體會了或是由他人發揮 
假設 PORT 0的狀態是 10000001,現在要把bit4變1,但不改其他值,所以最終狀態是 10010001。
原值是81h(稱A值),現在要加入10h(稱B)之值,要如何才得出91h,有點要注意,這不是算術問題,而是位元運算。
上面的程式是A值送出後,再送B值,A的結果被B取代了....
不過,我有疑問,送同一值出去,紅藍不會同時亮嗎?還是????
LED如何接?
|
哦...這點小弟到是疏忽了;採用的是單顆紅藍雙色LED(即一顆
LED裡有紅藍兩種顏色) ,所以紅藍一起亮是呈現紫色
嗯....大大您先看看小弟的想法
現在要讓紅色 32 顆 LED 左旋;藍色 32顆 LED 右旋
因為一個埠只有 8 個 I/O 只能驅動 8 顆 LED
所以 8 X 4( P0 & P1 & P2 & P3 總共 4個埠) = 32 顆 LED
然後要讓 P0 & P1 & P2 & P3 動作可以連續下去
所以採用 RRC 和 RLC 這兩個旋轉指令;這樣紅色和藍色
4 個埠的值就可以連續位移下去
所以先讓紅色 4 個埠 的資料都位移一次透過LED顯示出來
藍色 4 個埠 的資料都位移一次透過LED顯示出來
這樣我們看起來,就好像紅色藍色LED各自從 P0.6
移動
不知道大大您目前知道小弟的觀念和想法了嗎!?@_@!?