回覆列表
  • 1 # 科技電小二

    用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埠上實現流水燈效果。

    以上是我個人的答案,難免會有漏洞。

  • 中秋節和大豐收的關聯?
  • 用微控制器組合語言或C51語言或實現CRC校驗碼?