51单片机驱动74hc57395点亮一个led灯

查看: 11305|回复: 24
74HC595连接点阵led,这样连接驱动电流够吗???
刚买的点阵led
上次我用164驱动那样大的数码管没问题的,只不过是把把164的供电电压提高到了5.7v
如果按照上图连接行么,亮度会有影响么,限流电阻为100欧姆
100欧姆限流电阻,电流可能有点大,具体大到多少,要看你发光管的资料。注意HC的输出最大只有25mA,如果接近了,只能用来玩,不能用来做产品。
其实做这个就是自己玩玩
那可以很负责地给你说:没问题。
楼主的点阵一块多少价格啊?
【3楼】 NE5532
如何能很负责的说没问题,推演给我们开开眼吧?
从我的理解来看,LED亮度取决于流过LED的平均等效电流,假如按照时分法来做的话,假设驱动16个这样的单元,LED达到较高亮度需要5MA,这样蜂值驱动电流理论值应该为5*16=80mA,实际应用还需要考虑LED最大允许驱动的峰值电流指标,正是因为这个指标的限制,所以时间分割的LED屏无法做到更多单元驱动。
这样80MA的峰值电流对595是一个大问题,所以楼主的问题是要看具体实际驱动屏的大小了,对于小的应用(通常是几个位段)问题不大,对于大的应用需要考虑的东西还是很多的。
看到人家成品led显示屏,都用了功率器件,你可以做实验,测量出led的电流,然后看595的datasheet,
但实际上,我们行业的很多产品都是直接用74HC的芯片直接驱动LED的段码的,电流基本在30——40mA,没出现大问题,呵呵。
NE5532你这样用过么
如果真的没问题就那样画板了
我买的一个3.9元
如果不行,改用TPIC6C595或6B595
【8楼】 grpmcu&&你买了多少数量,算零售价格吗?
我买了24个
你是从那里买的啊,型号是什么?
回楼上 电子市场买的,型号不知道
我见过商品化的点阵屏(好象是有80个8X8点阵),上面一般有8个贴片MOS管(每个贴片包含2个MOS管),也就是总共16个MOS管驱动
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
一般商品化的单片机开发板如果有点阵模块的话都用了16个三极管
我以使用了超过 10万片595的经验告诉你!
有问题的话,我早就被我老板砍了!
在595资料里,有几个参数不知啥意思:Iik(DC Input Diode Current)、Iok(DC Output Diode Current)和Io(DC Output Current Per Output Pin QA-QH)。前面两个电流和Io有什么区别?指的分别是什么电流?
我做了一个试验可以侧面地证明HC595的电流驱动能力
下面是实测值
测试点电压: +5V-&HC595(4.46V)-&GREEN LED(2.284V)-&150欧电阻(0.284V)-&MEGA48 I/O--&0V
每个器件的压降:& & 0.54V& && && & 2.176V& && && && && && & 2V& && && && & 0.284V
由此可见,在150欧电阻上的压降是2V,那么通过的电流就是13mA.
这个实验至少证明HC595输出13mA是可以的,同时HC595的I/O压降是0.46V。
做板用几层板呀
做板用几层板呀
楼主再做广告牌吗,呵呵
LED硬件驱动记号
飘过,学习中
能亮,但亮度会不均匀
阿莫电子论坛, 原"中国电子开发网"
, 原www.ourdev.cn, 原www.ouravr.com74HC595驱动LED的电路设计方案
16:00:59来源: elecfans 关键字:&&&&
芯片是74 系列芯片的一种, 具有速度快、功耗小、操作简单的特点, 可以很方便地用于单片机接口进行 的操作。本文介绍这种芯片的特点和使用方法, 并给出软硬件的设计实例。
七段发光二极管显示器, 又叫LED 显示器, 因其价格低廉、功耗较小和性能可靠等优点, 在各种仪器仪表中得到了广泛的应用。现在市场上出售的专用LED 驱动器种类有很多, 且大多数功能较多, 但价格相应地也较高, 如果用在低成本的简单系统中, 不仅是一种资源的浪费, 而且增加了产品的成本。用74HC595 芯片驱动LED 有以下特点: 速度较快, 功耗较小, LED 的数目多少随意, 既可以控制共阴极的LED 显示器, 也可以控制共阳极的LED 显示器, 可以软件控制LED 的亮度, 还可以在必要的时候关断显示(数据保留) , 以减小功耗, 并可随时唤醒显示。用它设计的电路, 不仅软硬件设计简单, 而且功耗低, 驱动能力强, 占用的I/ O 口线较少, 是一种造价低廉, 应用灵活的设计方案。
1  74HC595 的使用说明74HC595 内含8 位串入、串/ 并出移位寄存器和8位三态输出。寄存器和锁存器分别有各自的时钟输入(SCLK和SLCK) , 都是上升沿有效。当SCLK从低到高电平跳变时, 串行输入数据(SDA) 移入寄存器; 当SLCK从低到高电平跳变时, 寄存器的数据置入锁存器。清除端(CLR) 的低电平只对寄存器复位(QS 为低电平) , 而对锁存器无影响。当输出允许控制(EN) 为高电平时, 并行输出(Q0~Q7) 为高阻态, 而串行输出(QS) 不受影响。74HC595 最多需要5 根控制线, 即SDA、SCLK、SLCK、CLR 和EN。其中CLR 可以直接接到高电平, 用软件来实现寄存器清零; 如果不需要软件改变亮度, EN 可以直接接到低电平, 而用硬件来改变亮度。把其余三根线和单片机的I/ O 口相接, 即可实现对LED 的控制。数据从SDA 口送入74HC595 , 在每个SCLK的上升沿, SDA 口上的数据移入寄存器, 在SCLK的第9个上升沿, 数据开始从QS 移出。如果把第一个74HC595 的QS 和第二个74HC595 的SDA 相接, 数据即移入第二个74HC595 中, 照此一个一个接下去, 可接任意多个。数据全部送完后, 给SLCK 一个上升沿, 寄存器中的数据即置入锁存器。此时如果EN 为低电平, 数据即从并口Q0~Q7 输出, 把Q0~Q7 与LED 的8 段相接, LED 就可以实现显示了。要想软件改变LED 的亮度, 只需改变EN 的占空比就行了。
2  软硬件设计实例2.1  硬件电路图2 是用AT89C2051 与74HC595 接口设计的显示面板电路。
P1 口的P115 、P116 、P117 用来控制LED 的显示,分别接到SLCK、SCLK和SDA 脚。三个数码管用来显示电压值的大小。在电路板上, LED3 在最左边,LED1 在最右边, 送数据时, 先送LED3 的显示码, 最后送LED1 的显示码。LED 的亮度用PR1~ PR3 的阻值来控制。2.2  显示驱动程序用DISP1 、DISP2 、DISP3 三个连续的单元存放显示数据, 在CPU 初始化完成后, 调用LRDISP 子程序清除74HC595 的寄存器, 在以后调用显示子程序DISPLAY前就不用再调用清除子程序了。现将两个子程序写出如下:清除子程序:CLRDISP : MOV R2 , # 24   ; 三个数码管, 一共24 位CLRBIT: CLR SCLK ; 寄存器时钟拉低 CLR C ; 寄存器清零 MOV SDA , C ; 送入74HC595 SETB SCLK ; 时钟的上升沿送入寄存器 DJNZ R2 , CLRBIT ; 送完24 位 RET ; 子程序返回显示子程序:DISPLAY: CLR SLCK ; 锁存器时钟拉低 MOV R3 , # 3 ; 三个数码管 MOV R0 , # DISP3 ; 从第三个开始送DISP1 : MOV A , @R0 ; 送8 位数到74HC595 MOV R2 , # 8DISP2 : CLR SCLK RLC A MOV SDA , C SETB SCLK DJNZ R2 , DISP2 ; 送完一个字节 DEC R0 ; 送下一个数码管的显示数据 DJNZ R3 , DISP1 ; 送完三个字节 SETB SLCK ; 时钟的上升沿寄存器数据送入锁存器 RET ; 子程序返回
从以上例子可以看出, 用74HC595 设计LED 驱动电路, 硬件和软件的设计都不存在复杂的技术问题, 特别是软件设计。另外, 74HC595 不仅可以用来驱动LED 显示器, 而且能够用来驱动发光二极管,每个74HC595 可以同时驱动8 个发光二极管。在I/ O口线较为紧张的情况下, 这不失为一种解决方案。在对产品的体积要求不高、并且希望降低成本时, 采用这种方案较为理想。
关键字:&&&&
编辑:什么鱼
引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
关注eeworld公众号快捷获取更多信息
关注eeworld服务号享受更多官方福利
相关关键词
热门关键词
大学堂最新课程
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
热门资源推荐
频道白皮书
何立民专栏
北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。51单片机驱动74hc595点亮一个led灯_百度知道
51单片机驱动74hc595点亮一个led灯
求教:if(0!=(led8_one&0x80))
hc595_DATE=1
HC595_DATE=0 中if()里面是什么意思
我有更好的答案
=(led8_one&0x80))如果led8_one的最高位不为零,那么为真,其实就是最高位为1则为真,为0则为假。此条件语句可以改为:if(led8_one&0x80).....if(0
那led8_one只是一个led灯怎么能和0x80与呢?
这个要看你程序的全貌才知道,从这条语句来看,led8_one是一个字节型变量。
第一张图程序有错,第二张才对
程序大概意思是把串行十六个数据分两次,每次8位从595芯片输入
我买的是吴鉴鹰的51开发板 上面有两个74hc595芯片控制16个led灯
图片程序只是把led8_one这个8位数据遂个左移输入,下半部分是led8_two 8个数据输入
最终实现16个数据输入实现第一个灯亮
这不就说明led8_one是一个字节变量吗?逐位左移,将最高位送入到595.
为什么要判断最高位呢
只要把1输进去灯就亮了为啥要判断
之所以判断最高位,是因为这是从最高位开始往595送数据的,595是串行移位控制芯片(串-并),送够8位才输出。
还有就是前面定义的变量led8_one=0x01 led8_two=0x00又是什么?我小白
因为这是基础所以我要搞懂它
你现在看来需要补充数电的基础知识,和单片机的教科书。对照电路图来理解这两个字节的意思。如果是用这两个字节的数据点亮16个数码管的一个,那么说明电路图设计的是“高有效”,也就是控制位为1点亮相应的LED。两个字节以二进制表示为:00 0001,一个1所以点亮一个LED,其余为灭。
你真是世间好人啊!太谢谢啦!虽然没有完全懂,经你讲解但基本理解了这个程序。往后在单片机学习路上希望还能帮我分析疑难问题,自己也会努力学的。
高级工程师
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。74HC595控制132个led出现问题,跪求高手赐教!!!
[问题点数:20分]
74HC595控制132个led出现问题,跪求高手赐教!!!
[问题点数:20分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年1月 硬件/嵌入开发大版内专家分月排行榜第一2012年10月 硬件/嵌入开发大版内专家分月排行榜第一2012年9月 硬件/嵌入开发大版内专家分月排行榜第一2012年8月 硬件/嵌入开发大版内专家分月排行榜第一2012年7月 硬件/嵌入开发大版内专家分月排行榜第一2012年6月 硬件/嵌入开发大版内专家分月排行榜第一2012年5月 硬件/嵌入开发大版内专家分月排行榜第一2012年4月 硬件/嵌入开发大版内专家分月排行榜第一2012年3月 硬件/嵌入开发大版内专家分月排行榜第一2012年2月 硬件/嵌入开发大版内专家分月排行榜第一2012年1月 硬件/嵌入开发大版内专家分月排行榜第一2011年11月 硬件/嵌入开发大版内专家分月排行榜第一2011年10月 硬件/嵌入开发大版内专家分月排行榜第一2011年9月 硬件/嵌入开发大版内专家分月排行榜第一
2014年10月 硬件/嵌入开发大版内专家分月排行榜第二2014年2月 硬件/嵌入开发大版内专家分月排行榜第二2013年10月 硬件/嵌入开发大版内专家分月排行榜第二2013年8月 硬件/嵌入开发大版内专家分月排行榜第二2013年3月 硬件/嵌入开发大版内专家分月排行榜第二2012年12月 硬件/嵌入开发大版内专家分月排行榜第二2012年11月 硬件/嵌入开发大版内专家分月排行榜第二2011年12月 硬件/嵌入开发大版内专家分月排行榜第二
匿名用户不能发表回复!|查看: 361|回复: 2
51单片机驱动74hc595点亮一个led灯
请教一下lf(0!=(led8_one&0x80))& &DATE_HC595=1&&else DATE_HC595=0中if里面是什么意思啊led8_one与上0x80实在看不懂,为什么可以这样与的?
本帖最后由 HC6800-ES-V2.0 于
10:50 编辑
同学,你没有看看595的芯片手册吧。
我来给你解释一下:
第一:595芯片功能是:串行数据(1位)输入转并行数据(8位)输出,即只有一位I/O口输入,而输出有8位I/O口,俗称“串转并”。
第二:595芯片每得到一位数据,它的移位寄存器都会向高位移动一位,即:要先传送高位数据。
第三:根据以上知识,可以解释你的程序了!
①我可以肯定,led_one是一个unsigned char数据类型,它有8位
②DATE_HC595就是595芯片那“串”的那一位
③怎样判断led_one的最高1位是1或是0,从而赋值给DATE_HC595呢?
如:led_one=,它与0x80=,与运算就是“有零得零”,则结果是,不是零,则赋DATE_HC595=1,正确啊,led_one高位是1啊。
led_one向左移位后,led_one=,它再与0x80,则结果是,是零,则赋值DATE_HC595=0,正确啊,led_one高位是零嘛。
程序循环8次,这个led_one的值就一位一位地进入到595,最后一次性输出。
同学,我猜你没有把0x80十六进制数与计算机二进制数联系起来吧!
其实还不止这一种算法的,我至少知道两种,但我很喜欢这一种,很明确、有把握感。
回帖助人的奖励!
HC6800-ES-V2.0 发表于
同学,你没有看看595的芯片手册吧。
我来给你解释一下:
第一:595芯片功能是:串行数据(1位)输入转并行 ...
您真是大神啊!这么多人查看过我的贴,只有您才才有能力回复给我,也只有这种解释方式让我理解了这条语句,真的我在网上查看过很多了也发贴寻问过,了,在买吴鉴鹰开发板群里问过,没有像您这种解说的,自己确实看过74hc595的工作方式努力学过,没有转过这个弯,我得非常感谢您!以后在学51单片机路上还望您多多指教!!!
Powered by

我要回帖

更多关于 单片机点亮led灯 的文章

 

随机推荐