dragonFANG 发表于 2015-11-15 23:35:40

用51单片机写一个简单的数码管显示程序,老是显示不了

用51单片机写一个3位数码管动态显示的程序。在PROTUSE里仿真出现了显示的问题,麻烦各位看看是不是我的硬件出现了问题。PS:我把控制数码管的位码的三个三极管改为直接接单片机的引脚就是可以的,换成三极管的接法(就是我图片里的接法)就会动态显示不了,个人怀疑是不是三极管的高低电平反应时间太慢了?

jxchen 发表于 2015-11-15 23:47:45

不會你說這樣問題,請將程式碼上傳,完整線路圖轉成PDF 檔

dragonFANG 发表于 2015-11-16 00:06:56

我刚刚百度有人说是因为PROTUSE里面是这样设置的,真实的不是这样的

i7gly 发表于 2015-11-16 00:20:06

三极管这样接是反相的,,,

mcu5i51 发表于 2015-11-16 07:56:42

出不来图,这个软件LED最好加上电阻,阻值适当就行,

duxingkei 发表于 2015-11-16 08:21:22

图片看不到,程序也没有,连硬件也没有,谁帮你分析

lufcn 发表于 2015-11-16 08:41:35

楼主,图片刷不出来,更新一下

lufcn 发表于 2015-11-16 08:43:16

如果三极管不太熟,用74系列的门电路也可以驱动数码管,如7407,7404

luybpotter 发表于 2015-11-16 08:43:32


楼主,图片刷不出来,更新一下!!!!{:lol:}

xiaobendan 发表于 2015-11-16 08:43:59

图片还是看不到

ayumi8 发表于 2015-11-16 09:03:03

肯定又是一个弱爆的电路图    图片没有看不到   共阴还是共阳啊    NPN   PNP要搞清楚

xiaobendan 发表于 2015-11-16 09:50:00

你这数码管是共阴的吧,加上三极管,应该换共阳极的好吧

miaoguoqiang 发表于 2015-11-16 11:27:34

如果是共阳,Q1-Q7输出0才会有显示。如果是共阴,那么这个图就是错的,需要换成共阳数码管。

dragonFANG 发表于 2015-11-18 10:55:06

miaoguoqiang 发表于 2015-11-16 11:27
如果是共阳,Q1-Q7输出0才会有显示。如果是共阴,那么这个图就是错的,需要换成共阳数码管。 ...

这点我已经考虑了,在不用三极管时我是将位码直接接单片机的引脚,然后引脚依次循环拉高来让它循环位选的。现在的问题是为什么用三极管来驱动数码管的位码时,就会出现显示错误(三极管用的是s8550,单片机输出低电平来进行位选)

dragonFANG 发表于 2015-11-18 10:56:07

lufcn 发表于 2015-11-16 08:41
楼主,图片刷不出来,更新一下

图片现在可以看了吧

dragonFANG 发表于 2015-11-18 10:56:42

xiaobendan 发表于 2015-11-16 09:50
你这数码管是共阴的吧,加上三极管,应该换共阳极的好吧

我用的就是共阳的数码管

ayumi8 发表于 2015-11-18 11:07:22

本帖最后由 ayumi8 于 2015-11-18 11:55 编辑

唉 位选    IO 直接 接上去 是亮的   选中的时候IO 刚好是低电平啊   你这个加了 PNP 三极管刚好 位选到数码管数码管公共极 变成 高了然后就不亮了

以上逻辑足以证明   你的数码管 是公阴的   

xiaobendan 发表于 2015-11-18 18:25:52

楼上说的对

tangmintm8013TM 发表于 2015-11-18 19:02:15

这是共阴接法

dragonFANG 发表于 2015-11-18 20:38:46

重新说明一下,数码管是共阳的,用三极管控制数码管的位码时出现的状况是显示888,而不是数码管一段都不亮、、

xiaobendan 发表于 2015-11-23 20:00:03

那就是控制逻辑反了,换三极管后逻辑要反过来

dragonFANG 发表于 2015-11-24 20:04:24

实物做出来了,不是逻辑反的问题,就是因为PROTEUS里面显示不了。实际焊接出来,调试也成功了,没有问题

mangolu 发表于 2018-10-18 01:25:06

dragonFANG 发表于 2015-11-24 20:04
实物做出来了,不是逻辑反的问题,就是因为PROTEUS里面显示不了。实际焊接出来,调试也成功了,没有问题 ...

我最近用proteus仿真也碰到你一样的问题,你的解决了吗?

redchina 发表于 2018-10-18 14:40:05

三极管用s8550,单片机输出低电平来进行位选,这样应该没有问题。我用的是9012.
三极管是不是接错。

mangolu 发表于 2018-11-2 16:20:28

本帖最后由 mangolu 于 2018-11-2 16:24 编辑

这个问题的真正原因是当三极管截止的时候,数码管位选端不能获得低电平造成的。只要在数码管位选端接下拉电阻,让三极管截止的时候有个放电通道即可,即下图中的R6、R7、R8、R9:



原贴在:https://www.amobbs.com/thread-5700556-1-1.html?_dsign=81ad9f39

t3486784401 发表于 2018-11-3 03:34:16

这种仿真果断用非门,省的画三极管还不好使。

页: [1]
查看完整版本: 用51单片机写一个简单的数码管显示程序,老是显示不了