查看: 4141|回复: 7

[原创] LPC824Lite驱动显示4位数码管

[复制链接]
  • TA的每日心情
    开心
    2019-10-17 08:07
  • 签到天数: 273 天

    连续签到: 1 天

    [LV.8]以坛为家I

    74

    主题

    2338

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    7508
    最后登录
    2021-8-30
    发表于 2016-11-20 10:29:42 | 显示全部楼层 |阅读模式
    用二个74HC595驱动4位数码管,采用动态扫描的方式,最多可以驱动8位。
    驱动显示模块原理图:
    11.png

    对应的IO口,并把所有的IO口设置为上拉输出,相关例程在这里:
    https://www.nxpic.org.cn/module/ ... amp;fromuid=2075309


    #define SDA_1 am_gpio_set(13,TRUE)
    #define SDA_0 am_gpio_set(13,FALSE)
    #define SCK_1 am_gpio_set(17,TRUE)
    #define SCK_0 am_gpio_set(17,FALSE)
    #define RCK_1 am_gpio_set(18,TRUE)
    #define RCK_0 am_gpio_set(18,FALSE)


    595写入数据程序:
    void WR_595(unsigned char temp)
    {
        unsigned char d;
        for(d=0; d<8; d++)
        {
            if(temp&0x01)
                                       SDA_1;  
                       else
                           SDA_0;
            SCK_1;
            SCK_0;
            temp=temp>>1;
        }
    }

    更新显示数据数组:
    void display_updata(unsigned int d)
    {
            displaynum[0]=d/1000;
            displaynum[1]=d%1000/100;
            displaynum[2]=d%1000%100%100/10;
            displaynum[3]=d%1000%100%100%10;       

    }


    数码管显示程序:
    void display(unsigned int d)
    {
              unsigned char ch=0;
              display_updata(d);
                    for(ch=0;ch<4;ch++)
                    {
                            WR_595(displaytab[displaynum[ch]]);
                            WR_595(display_bit[ch]);
                            RCK_1;
                            RCK_0;
                    }       
    }



    先要定义相关的几个数组:
    const unsigned char displaytab[]={      
            0X03,/*0*/
            0X9F,/*1*/
            0X25,/*2*/
            0X0D,/*3*/
            0X99,/*4*/
            0X49,/*5*/
            0X41,/*6*/
            0X1F,/*7*/
            0X01,/*8*/
            0X09,/*9*/
    };
    const unsigned char  display_bit[4]={0x80,0x40,0x20,0x10};
    unsigned char  displaynum[4]={0X00,0x01,0x02,0x03};

    同时也要申明一下IO口设置输了状态的函数,要不会有警告
    extern int am_gpio_set (int pin, int value);



    然后在main函数里面调用display函数就可以显示了:
    void demo_std_led_entry (void)
    {


        while (1) {
             display(1234);
        }
    }

    看看效果:

    22.jpg


    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-11-23 10:20
  • 签到天数: 45 天

    连续签到: 1 天

    [LV.5]常住居民I

    5

    主题

    693

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1404
    最后登录
    2025-7-18
    发表于 2016-11-20 10:49:04 | 显示全部楼层
    感谢分享
    dfdfdfdfdfdfdfd dsfa222
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-11-30 16:16
  • 签到天数: 206 天

    连续签到: 1 天

    [LV.7]常住居民III

    74

    主题

    2793

    帖子

    5

    金牌会员

    Rank: 6Rank: 6

    积分
    7879
    最后登录
    2025-4-11
    发表于 2016-11-20 14:11:56 来自手机 | 显示全部楼层
    滴滴滴,拓展板看起来不错
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    昨天 11:03
  • 签到天数: 1971 天

    连续签到: 21 天

    [LV.Master]伴坛终老

    4

    主题

    8945

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    13926
    最后登录
    2025-7-20
    发表于 2016-11-20 14:21:11 | 显示全部楼层
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-7-30 18:25
  • 签到天数: 540 天

    连续签到: 1 天

    [LV.9]以坛为家II

    80

    主题

    2589

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    8242
    最后登录
    2025-7-9
    发表于 2016-11-20 20:22:04 | 显示全部楼层
    扩展板不错呀               
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-5-29 08:54
  • 签到天数: 2992 天

    连续签到: 8 天

    [LV.Master]伴坛终老

    45

    主题

    5548

    帖子

    22

    金牌会员

    Rank: 6Rank: 6

    积分
    12035
    最后登录
    2025-5-29
    发表于 2016-11-20 23:50:07 | 显示全部楼层
    拓展板挺赞的。
    签到签到
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16702
    最后登录
    1970-1-1
    发表于 2016-11-20 23:52:50 | 显示全部楼层
    这个扩展版不错呀
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-1-24 08:47
  • 签到天数: 49 天

    连续签到: 1 天

    [LV.5]常住居民I

    0

    主题

    524

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1267
    最后登录
    2017-4-19
    发表于 2016-11-21 09:19:59 | 显示全部楼层
    谢谢分析                       
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 06:29 , Processed in 0.105273 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表