OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8787|回复: 13

跪求io口直接驱动数码管问题。

[复制链接]

4

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
321
金钱
321
注册时间
2016-9-22
在线时间
62 小时
发表于 2017-5-16 10:20:31 | 显示全部楼层 |阅读模式
3金钱
单片机io口连接两位数码管的6个管脚,不知道怎么驱动,跪求大神指导或有例程,谢谢了。附数码管脚位图。

数码管脚位

数码管脚位

最佳答案

查看完整内容[请看2#楼]

图中三对管脚不太对,无论怎么接都有一个亮,如果一定要用这个,你可以使用单片机的推挽输出与开漏输出结合。当推挽写入1开漏写入0时候点亮一个二极管,当开漏写入1时候就等于io的高阻状态。配合io的模式设置PxMy调整io的模式做成二极管的扫描循环。只是相对共阴共阳消耗cpu比较多。因为每次显示完一个到两个二极管你就要调整io模式,并且还需要兼顾消影和频闪问题。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

354

帖子

0

精华

高级会员

Rank: 4

积分
797
金钱
797
注册时间
2017-5-21
在线时间
340 小时
发表于 2017-5-16 10:20:32 来自手机 | 显示全部楼层
图中三对管脚不太对,无论怎么接都有一个亮,如果一定要用这个,你可以使用单片机的推挽输出与开漏输出结合。当推挽写入1开漏写入0时候点亮一个二极管,当开漏写入1时候就等于io的高阻状态。配合io的模式设置PxMy调整io的模式做成二极管的扫描循环。只是相对共阴共阳消耗cpu比较多。因为每次显示完一个到两个二极管你就要调整io模式,并且还需要兼顾消影和频闪问题。
image.jpg
回复

使用道具 举报

17

主题

587

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4467
金钱
4467
注册时间
2013-6-27
在线时间
565 小时
发表于 2017-5-16 11:15:57 | 显示全部楼层
就是要考虑单片机高阻悬空状态。
比如:
1A亮   2(1)-1(0)   其中 4-1(0) 2(1)-4 发现不管4为1还是0都会导致其中一个亮,
维有4高阻悬空才能保证1A亮灭的唯一独立性。
让我们的思维驾驭在电的速度之上!
回复

使用道具 举报

4

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
321
金钱
321
注册时间
2016-9-22
在线时间
62 小时
 楼主| 发表于 2017-5-16 11:32:34 | 显示全部楼层
DongInker 发表于 2017-5-16 11:15
就是要考虑单片机高阻悬空状态。
比如:
1A亮   2(1)-1(0)   其中 4-1(0) 2(1)-4 发现不管4为1还是0都会 ...

我用的是51内核的单片机,管脚只有开漏、推挽输出,和上拉、普通输入,配置不了浮空
回复

使用道具 举报

17

主题

587

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4467
金钱
4467
注册时间
2013-6-27
在线时间
565 小时
发表于 2017-5-16 11:56:12 | 显示全部楼层
配置成输入正常就是悬空!
让我们的思维驾驭在电的速度之上!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165369
金钱
165369
注册时间
2010-12-1
在线时间
2110 小时
发表于 2017-5-16 21:32:23 | 显示全部楼层
直接驱动不太好,可能电流不够。建议外加驱动电路
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2017-5-17
在线时间
2 小时
发表于 2017-5-17 15:55:37 | 显示全部楼层
首先先判断一下你的数码管是共阳还是共阴,如果是共阴就可以直接驱动了,如果是共阳那就不能直接驱动需要外接电源了当然要加保护电阻。
回复

使用道具 举报

30

主题

188

帖子

0

精华

高级会员

Rank: 4

积分
594
金钱
594
注册时间
2014-4-3
在线时间
74 小时
发表于 2017-5-17 22:36:41 | 显示全部楼层
现成的例程是有,你搜《51单片机轻松入门 基于STC15W4K系列》配套的视频和例程就有这个例子,但最好有这本书配合,书很详细完整,一次就能学透彻。
回复

使用道具 举报

17

主题

60

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
346
金钱
346
注册时间
2011-12-28
在线时间
84 小时
发表于 2017-5-18 21:47:20 | 显示全部楼层
就是上面几位朋友说的那样
1: 共阴的 可以直接驱动
2:共阳的,外接三极管即可
3:如下 仅供参考
共阴:
//----数码管---------------
sbit SMG1 = P1^4;                                        //数码管第一位定义
sbit SMG2 = P1^5;                                        //数码管第二位定义
sbit SMG3 = P1^6;                                        //数码管第三位定义
sbit SMG4 = P1^7;                                        //数码管第四位定义

int table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x40};           //共阴极数码管段值

/******************************************************************************
* 名称: Set_Display()
* 功能: 数码管显示函数
* 输入: 无
* 输出: 无
* 说明:
******************************************************************************/
void Display(void)
{
        unsigned char b1, b2;
        b1=g_MotorNum/10;               
    b2=g_MotorNum%10;
        if(FX == 0)
                P0=0x71;//显示F
    else
                P0=0x79;
        SMG1=0;                                                         
    delayms(3);
    SMG1=1;

        P0=0x40;
    SMG2=0;                                                         //显示--
    delayms(3);
    SMG2=1;

        P0=table[b1];
        SMG3=0;                                                         //显示十位
        delayms(3);
        SMG3=1;

        P0=table[b2];
    SMG4=0;
    delayms(3);                                                 //显示个位
    SMG4=1;
}
回复

使用道具 举报

4

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
321
金钱
321
注册时间
2016-9-22
在线时间
62 小时
 楼主| 发表于 2017-5-27 09:01:11 | 显示全部楼层
正点原子 发表于 2017-5-16 21:32
直接驱动不太好,可能电流不够。建议外加驱动电路

谢谢原子哥指导~
回复

使用道具 举报

4

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
321
金钱
321
注册时间
2016-9-22
在线时间
62 小时
 楼主| 发表于 2017-5-27 09:02:39 | 显示全部楼层
lucifr 发表于 2017-5-17 15:55
首先先判断一下你的数码管是共阳还是共阴,如果是共阴就可以直接驱动了,如果是共阳那就不能直接驱动需要外 ...

没有共阴也没有共阳,是两两管脚之间有一个LED或者两个LED作为数码管的段。
回复

使用道具 举报

4

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
321
金钱
321
注册时间
2016-9-22
在线时间
62 小时
 楼主| 发表于 2017-5-27 09:02:56 | 显示全部楼层
无量寿经 发表于 2017-5-17 22:36
现成的例程是有,你搜《51单片机轻松入门 基于STC15W4K系列》配套的视频和例程就有这个例子,但最好有这本 ...

谢谢,我去找找看~
回复

使用道具 举报

4

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
321
金钱
321
注册时间
2016-9-22
在线时间
62 小时
 楼主| 发表于 2017-5-27 09:03:24 | 显示全部楼层
rong212121 发表于 2017-5-18 21:47
就是上面几位朋友说的那样
1: 共阴的 可以直接驱动
2:共阳的,外接三极管即可

谢谢~~~
回复

使用道具 举报

4

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
321
金钱
321
注册时间
2016-9-22
在线时间
62 小时
 楼主| 发表于 2017-5-27 09:03:49 | 显示全部楼层
rong212121 发表于 2017-5-18 21:47
就是上面几位朋友说的那样
1: 共阴的 可以直接驱动
2:共阳的,外接三极管即可

谢谢指导,但我的数码管不一样~
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-1 14:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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