天天看點

【STM32 .Net MF開發闆學習-25】LED數位管顯示

在單片機系統中,LED數位管的應用是很常見的,不過對我們偏軟體開發的人來說,要想研究LED還得儲備一定的知識才能進行近一步的工作。不過采用.NET Micro Framework系統,我們馬上就可以站在軟體人員的角度來研究LED數位管顯示0~F數字的原理了。

    為了便于示範,我們選用的是一款共陰的單個LED顯示數位管,其陰極接GND之前需要串聯一個330歐的電阻,其管腳定義如下:

【STM32 .Net MF開發闆學習-25】LED數位管顯示

   注:左上角pin腳為1腳。

   LED數位管和開發闆的接線表如下:  

序号

LED管腳

開發闆

備注

1

A(10)

PC0

2

B(9)

PC1

3

C(8)

PC2

4

D(5)

PC3

5

E(4)

PC4

6

F(2)

PC5

7

G(3)

PC6

8

DP(7)

PC7

小數點

9

1或6

GND

中間接330歐電阻

    最終器件的接線效果圖如下:

【STM32 .Net MF開發闆學習-25】LED數位管顯示

    為了便于顯示數字0、1、2…A、B…F,我們進行了如下編碼:

     //0 1 2 3 4 5 6 7 8 9 A B C D E F

     byte[] DigitalFlag = new byte[] { 0xBF, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71 };

     類似字元庫中的編碼,通過這個編碼我們就可以比較容易的顯示對應的數字了,相關代碼如下:

    public void Display(int hex, bool decimalpoint)

    {

        if (hex < 0 || hex > 15) return;

        for (int i = 0; i < 7; i++)

        {

            LED_Data[i].Write((DigitalFlag[hex] >> i & 0x1) > 0);

        }

        LED_Data[7].Write(decimalpoint);

    }

   hex的取值就是0~15,decimalpoint表示是否顯示小數點。這些代碼編寫好後,主程式就非常簡單了,相關代碼如下:

    public static void Main()

        int i = 0;

        while (true)

            if (i > 15) i = 0;

            led.Display(i++, false);

            Thread.Sleep(1000);

(1)、.NET Micro Framework開發闆

(2)、LED顯示相關套件

<a href="http://item.taobao.com/item.htm?id=8836634908">http://item.taobao.com/item.htm?id=8836634908</a>

繼續閱讀