找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 495|回复: 6
收起左侧

数码管引脚多个LED如何只显示我想要的

[复制链接]
ID:1155451 发表于 2025-12-5 17:50 | 显示全部楼层 |阅读模式
这个数码管由:
1脚亮的是C3,D3,E3,F32脚亮的是B3,A3,A3,F2,G2
3脚亮的是E2,D2,C2,B2
4脚亮的是F1,E1,G1,A2
5亮的是A1,B1,C1,D1这些来控制我要全亮的话我直接点亮全部就行了但是我如果想要数字区显示90所需要点亮的就是(F1,A1,B1,G1,C1,D1数字9),(F2,A2,B2,C2,D2,E2,数字0)但是我要点亮这些的话直接点亮那个脚就会将其他的LED灯也点亮#include "CS8M326.h"

#define S1 PT5_5
#define S2 PT5_3
#define S3 PT5_2
#define S4 PT5_0
#define S5 PT5_1

void delay_u(unsigned char t)
{
    while(t--);
}

void gpio_init()
{
    PT5EN_0 = 1;
    PT5EN_1 = 1;
    PT5EN_2 = 1;
    PT5EN_3 = 1;
    PT5EN_5 = 1;

    PT5PU_0 = 0;
    PT5PU_1 = 0;
    PT5PU_2 = 0;
    PT5PU_3 = 0;
    PT5PU_5 = 0;
}


void scan1()
{
    S1=0; S2=1; S3=1; S4=1; S5=1;
    delay_u(150);
}

void scan2()
{
    S2=0; S1=1; S3=1; S4=1; S5=1;
    delay_u(150);
}


void scan3()
{
    S3=0; S1=1; S2=1; S4=1; S5=1;
    delay_u(150);
}

void scan4()
{
    S4=0; S1=1; S2=1; S3=1; S5=1;
    delay_u(150);
}


void scan5()
{
    S5=0; S1=1; S2=1; S3=1; S4=1;
    delay_u(150);
}

void main()
{
    gpio_init();

    while(1)
    {
        scan1();
        scan2();
        scan3();
        scan4();
        scan5();

    }
}





51hei20251205-174930.png
回复

使用道具 举报

ID:69038 发表于 2025-12-5 18:42 | 显示全部楼层
查理复用,你了解一下。
回复

使用道具 举报

ID:1155451 发表于 2025-12-6 10:22 | 显示全部楼层
zhuls 发表于 2025-12-5 18:42
查理复用,你了解一下。

我看了一下比如我要点亮A1嘛下面的5拉高上面的4设成输入是可以单独点亮A1的但是我把其他的一起这么设想排列成90这个图案就会出现别的图案
b186352eff156150544f8ee15516ddf2.png
回复

使用道具 举报

ID:69038 发表于 2025-12-6 15:22 | 显示全部楼层
恭喜!快接近真相了。。。
关键词 :  分时扫描、视觉暂留。。。。
比如人的视觉暂留约为40ms,而你这个屏有25个LED,你把这25个LED编号,每个LED点亮时间为1.5ms,然后灭灯,点亮下一个LED1.5ms,再灭灯。。。只要全屏下来不超40ms,你眼里看到的是全屏都在亮。。
所以,你要开一个1.5ms定时,不停地、依次显示你要的LED,就能显示你要的图形了。
回复

使用道具 举报

ID:584814 发表于 2025-12-7 22:16 | 显示全部楼层
楼上皆正解。
查理复用技术,本坛内也有程例。
自己不想玩这个换成普通共阳或共阴的就好、
回复

使用道具 举报

ID:1156764 发表于 2025-12-8 17:23 | 显示全部楼层
没有什么好方法,只能改原理图了
使能对应引脚,其对应的所有led全亮,根本不能精确点亮所需要的led,更别提显示想要的图案了
--
楼上做法都是合理的
引脚少用查理复用,引脚多就一个引脚使能一个ed,
通过使用扫描显示,在人眼暂留时间内一口气点亮组成图案的led
回复

使用道具 举报

ID:69038 发表于 2025-12-8 19:12 | 显示全部楼层
其实查理复用非常简单,比驱动I2C还简单!
只要能理顺关键环节,各IO啥时输出高或低,啥时高阻,过后就是一马平川 了。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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