[求助] 啊啊啊啊 数码管 最后一位不能控制!

tanvanyo   2020-2-6 18:59 楼主

啊啊啊啊 把后面四个注释掉就可以显示0206 然后后面四个来了就显示不了了。。。。求教。。

  • NE0F`ORSL$0G{]NF@1D(R0S.png
  • T%H~I%LE7%_X@7U2XHS]5M4.png

回复评论 (18)

没太明白你这个原理,如果所有数码管共用P1数据口的话那只能做成8选一显示,要是4选一需要2个数据口

点赞  2020-2-6 19:40
你用了8个独立的片选,看你第二段的内容,片选都是同时选了3个.....
点赞  2020-2-6 19:44

有个疑问:使用八段数码管,图中却是四个PNP分立三极管和四个NPN分立三极管。这很不对路。

点赞  2020-2-6 19:56

啊!提问的那个其实我也不懂……纯小白。。。看了好多资料我还是不懂……有个作业就是要自己画一个共阴一个共阳的数码管显示,编码也懵逼,可以有人给我指引一下方向吗。。

点赞  2020-2-6 20:57
引用: maychang 发表于 2020-2-6 19:56 有个疑问:使用八段数码管,图中却是四个PNP分立三极管和四个NPN分立三极管。这很不对路。

QAQ不是一个数码管4个口子吗?

 

点赞  2020-2-6 21:06
引用: huo_hu 发表于 2020-2-6 19:40 没太明白你这个原理,如果所有数码管共用P1数据口的话那只能做成8选一显示,要是4选一需要2个数据口

我试过把一个数码管接P1口另一个数码管接P2口也不能显示自己输入的数字啊?

点赞  2020-2-6 21:08
引用: shihuntaotie 发表于 2020-2-6 19:44 你用了8个独立的片选,看你第二段的内容,片选都是同时选了3个.....

同时选了3个是啥意思哇?不太懂QAQ

点赞  2020-2-6 21:09
引用: tanvanyo 发表于 2020-2-6 21:06 QAQ不是一个数码管4个口子吗?  

看了你5楼帖子,才知道作业是 “自己画一个共阴一个共阳的数码管显示”。首帖图中可看不出数码管是一个共阴一个共阳。

点赞  2020-2-6 21:30
引用: tanvanyo 发表于 2020-2-6 21:08 我试过把一个数码管接P1口另一个数码管接P2口也不能显示自己输入的数字啊?

51单片机,各I/O口上拉能力相当弱,下拉能力也不是很强。用I/O口直接驱动共阳数码管都很吃力,更不用说I/O直接驱动共阴数码管了。

点赞  2020-2-6 21:32
引用: maychang 发表于 2020-2-6 21:30 看了你5楼帖子,才知道作业是 “自己画一个共阴一个共阳的数码管显示”。首帖图中可看不出数码 ...

知道共阴是八段阴极连在一起,共阳是八段阳极连在一起,但是画原理图就不懂怎么表示出来。。能请教一下吗?我百度了好多都没有解答的

点赞  2020-2-6 21:38
引用: maychang 发表于 2020-2-6 21:30 看了你5楼帖子,才知道作业是 “自己画一个共阴一个共阳的数码管显示”。首帖图中可看不出数码 ...

我傻了 知道啦 原来阴阳的数码管是可以选择的,从中午到现在一直在想怎么搞。。。。。

点赞  2020-2-6 22:30
引用: tanvanyo 发表于 2020-2-6 22:30 我傻了 知道啦 原来阴阳的数码管是可以选择的,从中午到现在一直在想怎么搞。。。。。

51.png 上面图片来自Atmel公司生产的89C51说明书,红色框内是高电平和低电平输出电压及测试条件。

图片中可见,P1/P2/P3口输出电压0.45V时,输出电流1.6mA。高电平时电流就更加惨不忍睹,只有几十微安。

点赞  2020-2-7 08:48
引用: tanvanyo 发表于 2020-2-6 20:57 啊!提问的那个其实我也不懂……纯小白。。。看了好多资料我还是不懂……有个作业 ...

不明白你的作业为什么要用一个共阴一个共阳数码管显示。

如果是在实际项目中需要八位数码管显示,你设计用四位共阴四位共阳,老板很可能会把你骂个狗血淋头。

两组数码管不同极性,既增加采购负担,又增加库存种类,生产时还容易发生错误。

减少库存种类,避免工人发生差错,设计者必须时刻考虑。

点赞  2020-2-7 08:54
引用: tanvanyo 发表于 2020-2-6 22:30 我傻了 知道啦 原来阴阳的数码管是可以选择的,从中午到现在一直在想怎么搞。。。。。

假定你的数码管每段只需要1mA的平均电流,四位共阳数码管。那么如果用P1口驱动,P1口每个引脚低电平需要4mA电流才能够使每段达到平均1mA。这已经超出了51单片机引脚输出能力。至于使用共阴数码管,不必说了。

所以,51单片机各引脚必须加分立三极管或者芯片来增加电流输出能力,否则无法驱动多位数码管显示(一位两位勉强可以)。

点赞  2020-2-7 09:00
引用: tanvanyo 发表于 2020-2-6 22:30 我傻了 知道啦 原来阴阳的数码管是可以选择的,从中午到现在一直在想怎么搞。。。。。

你见过衬衫左手袖扣和右手袖扣一个大一个小的么?那样不但增加库存零件种类,而且增加了生产时的工序,还容易发生错误。八位数码管,四个共阴,四个共阳,那是自找麻烦。

点赞  2020-2-7 10:12
引用: tanvanyo 发表于 2020-2-6 22:30 我傻了 知道啦 原来阴阳的数码管是可以选择的,从中午到现在一直在想怎么搞。。。。。

如果是为完成作业,一定要使用一个共阴数码管和一个共阳数码管,用同一个口(例如P1口)输出八位段码,是可以实现的。条件是:P1口输出加驱动,而且驱动芯片必须是推挽输出(某些教材上称图腾柱),串联适当的限流电阻。另外用四个NPN分立三极管控制四个共阴数码管,再用四个PNP管控制四个共阳数码管。至于这八支分立三极管,可以用P3口的八个引脚控制。

这种联接方法,仍然是八位数码管一位一位地显示,每一位显示的时间小于一个显示循环周期的1/8。

以上为硬件联接。至于软件,应该根据硬件联接去写。

点赞  2020-2-7 12:11
引用: tanvanyo 发表于 2020-2-6 22:30 我傻了 知道啦 原来阴阳的数码管是可以选择的,从中午到现在一直在想怎么搞。。。。。

若是使用八位相同的数码管,无论共阴还是共阳,驱动电路和程序都可以简单一些。

点赞  2020-2-7 12:13

图不是很清晰,看老半天终于看明白你是要干什么了。首先,你的设计是阴阳数码管一起用,但是你的代码部分都是用共阳的解码方式(都是P1=smgduan[x]),显示会错乱;其次,在使用的时候最好最到随用随开,不用就关的方式,大致如下:关闭所有数码馆公共端-解码输出-开启对应数码管公共端-延迟(-关闭输出)

点赞  2020-2-8 00:42
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复