【STM32 .Net MF开发板学习-25】LED数码管显示-阿里云开发者社区

开发者社区> 阿里云MVP> 正文

【STM32 .Net MF开发板学习-25】LED数码管显示

简介: 在单片机系统中,LED数码管的应用是很常见的,不过对我们偏软件开发的人来说,要想研究LED还得储备一定的知识才能进行近一步的工作。不过采用.NET Micro Framework系统,我们马上就可以站在软件人员的角度来研究LED数码管显示0~F数字的原理了。

在单片机系统中,LED数码管的应用是很常见的,不过对我们偏软件开发的人来说,要想研究LED还得储备一定的知识才能进行近一步的工作。不过采用.NET Micro Framework系统,我们马上就可以站在软件人员的角度来研究LED数码管显示0~F数字的原理了。

为了便于演示,我们选用的是一款共阴的单个LED显示数码管,其阴极接GND之前需要串联一个330欧的电阻,其管脚定义如下:

 image.png
  

注:左上角pin脚为1脚。

LED数码管和开发板的接线表如下:  
1.png
为了便于显示数字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);

        }

    }

  演示视频网址:http://video.sina.com.cn/v/b/44112962-1804832611.html

 

(1)、.NET Micro Framework开发板

 http://item.taobao.com/item.htm?id=7117999726

(2)、LED显示相关套件

http://item.taobao.com/item.htm?id=8836634908

 

本文源码:http://www.sky-walker.com.cn/yefan/MFV40/SourceCode/LEDDisplayTest.rar

MF快速参考: .NET Micro Framework 快速入门

MF中文讨论组:http://space.cnblogs.com/group/MFSoft/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
+ 订阅

阿里云最有价值专家,是专注于帮助他人充分了解和使用阿里云技术的意见领袖。

官方博客
官网链接
精彩专题