用C語言實現流水燈控制的方式有好幾種。
方法1:IO口移位法,用C語言編寫的微控制器程式可以讓八個LED輪流點亮,每個燈點亮和熄滅時間均為1秒。首先賦值P2=0x01;然後進入主迴圈
P2口是8個引腳,P2.0到P2.7;每8秒一個迴圈,
第1秒我們給P2引腳賦值00000001,寫成16進位制就是0x01;。
第2秒左移一位我們給P2引腳賦值00000010,寫成16進位制就是0x02;。
第3秒左移一位我們給P2引腳賦值00000100,寫成16進位制就是0x04;。
第4秒左移一位我們給P2引腳賦值00001000,寫成16進位制就是0x08;。
第5秒左移一位我們給P2引腳賦值00010000,寫成16進位制就是0x10;。
第6秒左移一位我們給P2引腳賦值00100000,寫成16進位制就是0x20;。
第7秒左移一位我們給P2引腳賦值01000000,寫成16進位制就是0x40;。
第8秒左移一位我們給P2引腳賦值10000000,寫成16進位制就是0x80;。
方法2:查表賦值法,首先定義一個數組。
data[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
然後在主迴圈中採用查表法對P2埠賦值。分別將data[0]到data[7]賦值給P2埠,並在中間間隔1秒的時間延時,達到流水燈的效果。
方法3:定時器中斷法,在主迴圈中不做任何處理,在定時中斷中採用查表法對P2埠進行賦值。
無論採用何種方法,其目的只有一個,在P2埠上實現流水燈效果。
以上是我個人的答案,難免會有漏洞。
用C語言實現流水燈控制的方式有好幾種。
方法1:IO口移位法,用C語言編寫的微控制器程式可以讓八個LED輪流點亮,每個燈點亮和熄滅時間均為1秒。首先賦值P2=0x01;然後進入主迴圈
P2口是8個引腳,P2.0到P2.7;每8秒一個迴圈,
第1秒我們給P2引腳賦值00000001,寫成16進位制就是0x01;。
第2秒左移一位我們給P2引腳賦值00000010,寫成16進位制就是0x02;。
第3秒左移一位我們給P2引腳賦值00000100,寫成16進位制就是0x04;。
第4秒左移一位我們給P2引腳賦值00001000,寫成16進位制就是0x08;。
第5秒左移一位我們給P2引腳賦值00010000,寫成16進位制就是0x10;。
第6秒左移一位我們給P2引腳賦值00100000,寫成16進位制就是0x20;。
第7秒左移一位我們給P2引腳賦值01000000,寫成16進位制就是0x40;。
第8秒左移一位我們給P2引腳賦值10000000,寫成16進位制就是0x80;。
方法2:查表賦值法,首先定義一個數組。
data[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
然後在主迴圈中採用查表法對P2埠賦值。分別將data[0]到data[7]賦值給P2埠,並在中間間隔1秒的時間延時,達到流水燈的效果。
方法3:定時器中斷法,在主迴圈中不做任何處理,在定時中斷中採用查表法對P2埠進行賦值。
無論採用何種方法,其目的只有一個,在P2埠上實現流水燈效果。
以上是我個人的答案,難免會有漏洞。