用AT89S51 用一個Port控制多顆LED

2011年07月20日 20:41    发布者:tony20187
請問一下
如何使用AT89S51   控制多顆LED

目前我用最簡單的方法
在51 接一顆74154
可以控制到16顆
可是他顯示是用真值表去亮
那我想要的功能是

可以兩顆兩顆閃  或是多顆閃
不要一顆一顆的閃

請問有什方法!!
=============================================
我是用一般5mm的LED燈
控制是用51單晶片
希望可以控制16顆LED或以上
该文章有附件资料,如需下载请访问 电脑版

网友评论

ccn422 2011年07月21日
快速的一颗一颗闪肉眼是看不出来的,就等同于多颗一起闪。
tony20187 2011年07月21日
我是想要  可以一顆一顆閃  之後變成日四顆四顆閃
yz64 2011年07月22日
更换电路思路,你的我个PORT是八位吧,你要控制多少灯?QQ18481663
yz64 2011年07月22日
更换电路的思路走,你的地个PORT是八位I/O吧,你要控制多少灯?QQ18481663
sherwin 2011年07月22日
这种情况下,采用移位串行转并行的方式,或者采用IO交叉阵列的方式,效果应该更理想。

请楼主先告知两个条件:
1、你准备点亮几个LED?
2、你最大可以提供几个IO口?

根据这两个条件,才能提供更合理的设计方案。呵呵。
tony20187 2011年07月22日
我是用一般5mm的LED燈
控制是用51單晶片
希望可以控制16顆LED或以上
sherwin 2011年07月25日
嗯,你还是漏了一个问题没有回答清楚:你有几个IO口可供使用?51单片机,少的有10余个口,多的有上百个口的,呵呵。

算了,就按照你在首帖所讲,只有一个Prot,即8个IO口,要点亮16个LED,那么有好几种方案:
1、交叉阵列方式。
     8个口分两组,4条控制高电平输出,4条控制接地,4x4正好是16颗。

2、移位串行控制。
     加一片移位串并转换IC,比如7CHC595,那么你只需要3个IO口即可控制8个LED灯独立的亮和灭,可以任意的闪烁。3个IO口分别控制清零、数据、时钟信号线。
     在此基础上,再级联一颗595,就可以控制16颗LED,以此类推。

3、串口扩展。
     有不少的串口转换IC,可以通过UART/SPI/I2C等接口进行通讯,接口之间相互转换,还可以扩展IO口,比如飞利浦的sc16is7xx系列、TI的tca5405、三洋的LA79200V等等。见附件。
sherwin 2011年07月25日
最简单的是方法一,但是可扩展性较差;最灵活的是方法二,也非常锻炼软硬件能力;而方法三有助于你今后学习串行通讯协议,建议都尝试一下,呵呵。

祝你好运咯!  :)
tony20187 2011年07月29日
謝謝  
趕緊來看看  學習!!
apitx 2011年07月31日
AT89S51   有40条腿,用16个IO口,你想怎样亮就怎样亮。
panjinwen1111 2011年07月31日
晕,怎么打的字是繁体字?
Kiwii 2011年07月31日
学习啦
xuyanping 2011年08月02日
用N个595级联,可控制N*8个LED
tangyaopan 2011年08月04日
找点积分用,下载不了了啊
wangliangnoo1 2011年08月05日
使用模拟信号控制!或者是用AD。
clnbcl 2011年08月06日
用SPI接口IC处理,挺好用的,可以级联!
bubifengyun 2012年08月15日
支持一下。