找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2846|回复: 18
打印 上一主题 下一主题
收起左侧

51单片机电子时钟,SN74hc245n驱动数码管时,数码管全亮。

[复制链接]
跳转到指定楼层
楼主
ID:949074 发表于 2021-11-5 07:34 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
51单片机电子时钟,SN74hc245n驱动数码管时,数码管全亮怎么回事,加了290Ω电阻限流是要加下拉电阻吗(共阳极)?

IMG_20211104_225518.jpg (398.02 KB, 下载次数: 40)

IMG_20211104_225518.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:949074 发表于 2021-11-5 09:00 来自手机 | 只看该作者
proteus模拟没得问题,但是焊接好了就有问题
回复

使用道具 举报

板凳
ID:752974 发表于 2021-11-5 12:31 | 只看该作者
位和段都是如何驱动的?没有硬件电路,看不出什么。
回复

使用道具 举报

地板
ID:155507 发表于 2021-11-5 14:13 | 只看该作者
l156613673 发表于 2021-11-5 09:00
proteus模拟没得问题,但是焊接好了就有问题

仿真上没问题不代表实物上也能正常运行,楼主都没晒实物电路图问题不好找
回复

使用道具 举报

5#
ID:624769 发表于 2021-11-5 14:23 | 只看该作者
问个题外问题,你用40P的89C51做电子钟,有必要用74HC245么? IO口直接驱动不香么?
回复

使用道具 举报

6#
ID:949074 发表于 2021-11-5 17:02 来自手机 | 只看该作者
munuc_w 发表于 2021-11-5 12:31
位和段都是如何驱动的?没有硬件电路,看不出什么。

#define uchar unsigned char
#define        FLASH_FREQ        100
sbit KEY1 = P1^4;                //定义KEY1        分加1
sbit KEY2 = P1^5;                //定义KEY2        秒加1
#define COM1_ON   (P2=0x01)       
#define COM2_ON   (P2=0x02)       
#define COM3_ON   (P2=0x04)       
#define COM4_ON   (P2=0x08)       
#define COMS_OFF  (P2=0x00)                                 /*数码管全灭宏定义*/
#define SEG_PORT         (P0)                                                /*段码数据输出端口*/
uchar code LED_Tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//共阳极,
#define DISPLAY_BIT                4                //数码管显示位数       
uchar DisBuff[DISPLAY_BIT];                                //显示缓冲区
bit DisDecemal=0;//是否显示小数点
uchar shi=11,fen=59,miao=49;
void delay(uchar ms)//1ms延时,12MHz
{
        uchar i,j;
        for(i=ms;i>0;i--)
                for(j=122;j>0;j--);
}
void LED_DisplayTimer(uchar LED1,uchar LED2,uchar LED3,uchar LED4)
{
        DisBuff[0]=LED_Tab[LED1];
        DisBuff[1]=LED_Tab[LED2];
        DisBuff[2]=LED_Tab[LED3];
        DisBuff[3]=LED_Tab[LED4];
/**************小数点闪烁在这里控制*****/                               
        if(DisDecemal==1)
                DisBuff[1]&=0x7f;         //点亮小数点
/**************************************/
}
void
回复

使用道具 举报

7#
ID:949074 发表于 2021-11-5 17:06 来自手机 | 只看该作者
munuc_w 发表于 2021-11-5 12:31
位和段都是如何驱动的?没有硬件电路,看不出什么。

p2.0–p2.7分别接290Ω电阻再接sn74hc245n的23456789号引脚再接数码管位号,sn74hc245n接线正确
回复

使用道具 举报

8#
ID:949074 发表于 2021-11-5 17:07 来自手机 | 只看该作者
188610329 发表于 2021-11-5 14:23
问个题外问题,你用40P的89C51做电子钟,有必要用74HC245么? IO口直接驱动不香么?

驱动电流不足,亮度不够呀
回复

使用道具 举报

9#
ID:949074 发表于 2021-11-5 17:13 来自手机 | 只看该作者
angmall 发表于 2021-11-5 14:13
仿真上没问题不代表实物上也能正常运行,楼主都没晒实物电路图问题不好找

现在没在家,不能看,从p0.0–p0.7接290Ω电阻接sn74hc245n的23456789号引脚,然后从11-18号引脚接数码管的位,p2.0-p2.3直接接数码管com端号
回复

使用道具 举报

10#
ID:955673 发表于 2021-11-5 18:00 | 只看该作者
电阻限流限的不是地方哈,更像是防 245 烧了牵连 51 用的
回复

使用道具 举报

11#
ID:624769 发表于 2021-11-5 18:09 | 只看该作者
l156613673 发表于 2021-11-5 17:07
驱动电流不足,亮度不够呀

你说你是共阳数码管,那么会驱动电流不够,亮度不够的,只能是COM公共端,而不会是段端,正常应该,IO接三级管控制公共端,然后P0.0~P0.7直接1K电阻接数码管段控制。

然后,你的问题,P0.0- P0.7 只能输出0,不能输出1, 所有你如果要用P0.0~P0.7 控制 74HC245就必须用上拉电阻。
回复

使用道具 举报

12#
ID:883242 发表于 2021-11-5 18:39 | 只看该作者
限流电阻为什么在单片机和245中间?
回复

使用道具 举报

13#
ID:949074 发表于 2021-11-5 20:25 来自手机 | 只看该作者
188610329 发表于 2021-11-5 18:09
你说你是共阳数码管,那么会驱动电流不够,亮度不够的,只能是COM公共端,而不会是段端,正常应该,IO接 ...

不应该是下拉电阻吗?

Screenshot_2021_1105_202037.png (186.38 KB, 下载次数: 30)

Screenshot_2021_1105_202037.png
回复

使用道具 举报

14#
ID:949074 发表于 2021-11-5 20:31 来自手机 | 只看该作者
Hephaestus 发表于 2021-11-5 18:39
限流电阻为什么在单片机和245中间?

是的呀
回复

使用道具 举报

15#
ID:949074 发表于 2021-11-5 20:33 来自手机 | 只看该作者
188610329 发表于 2021-11-5 18:09
你说你是共阳数码管,那么会驱动电流不够,亮度不够的,只能是COM公共端,而不会是段端,正常应该,IO接 ...

像这个一样,这个是没电阻的情况,74hc245一直输出低电平

IMG_20211105_202918.jpg (2.6 MB, 下载次数: 35)

IMG_20211105_202918.jpg
回复

使用道具 举报

16#
ID:624769 发表于 2021-11-5 20:38 | 只看该作者
l156613673 发表于 2021-11-5 20:33
像这个一样,这个是没电阻的情况,74hc245一直输出低电平

说了,P0只能给低电平(0),不能给高电平(1), 你要P0驱动,就必须给上拉电阻!上拉电阻!上拉电阻!重要的事情说三遍。

记住了么? 要么就换别的口。
回复

使用道具 举报

17#
ID:949074 发表于 2021-11-5 20:41 来自手机 | 只看该作者
188610329 发表于 2021-11-5 18:09
你说你是共阳数码管,那么会驱动电流不够,亮度不够的,只能是COM公共端,而不会是段端,正常应该,IO接 ...

这样可以吗?

IMG_20211105_204014.jpg (2.55 MB, 下载次数: 29)

IMG_20211105_204014.jpg
回复

使用道具 举报

18#
ID:949074 发表于 2021-11-5 20:47 来自手机 | 只看该作者
188610329 发表于 2021-11-5 20:38
说了,P0只能给低电平(0),不能给高电平(1), 你要P0驱动,就必须给上拉电阻!上拉电阻!上拉电阻! ...

好的,谢谢
回复

使用道具 举报

19#
ID:624769 发表于 2021-11-5 21:00 | 只看该作者

这样是可以,然后你的B0~B7 连接 A~DP部分,理论上需要470R限流电阻。HC245我不熟,你最好查一下手册。如果他内阻大于300R,可以不用限流电阻,小于的话,就必须用了。

但是就像我前面说的, 你不觉得这个74HC245很多余么?如果直接限流电阻连P0口的话,连上拉都不用。

另外,真正需要驱动力的,是公共端P2.x,驱动共阳数码管的话,一般是要三级管的,你这样的实际电路搭出来,会很暗,除非用共阴数码管。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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