请教:6个I/O口接十个LED,加五个按键。不要外加其它片子。

[复制链接]
 楼主| IRICO 发表于 2008-3-1 13:04 | 显示全部楼层 |阅读模式
如上述:6个I/O口接十个LED,加五个按键。不要外加如164这样的片子。能接出&nbsp;来吗?<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;哪个大侠能否指点一二。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;谢谢!
zhang123 发表于 2008-3-1 16:04 | 显示全部楼层

图一

程序匠人 发表于 2008-3-1 16:06 | 显示全部楼层

同意2楼要求

  
zhang123 发表于 2008-3-1 16:10 | 显示全部楼层

再来

解释一下<br />ledsel&nbsp;选择了前五个led&nbsp;还是后五个led。<br />led的点亮可以由ledsel和接在轻触按钮上端的io组合完成。<br />按钮的输入低有效。<br />
maychang 发表于 2008-3-1 16:16 | 显示全部楼层

按键LED才会亮?

按哪个键,对应LED亮?<br />
 楼主| IRICO 发表于 2008-3-1 17:08 | 显示全部楼层

谢谢。几个大侠出手相助。也许是我没说清楚 。

我是想用6个I/O口来接五个按键和十个LED,都能独立控制其状态:<br />1.五个按键能分别读入其键值。<br />2.十个LED能每一个单独显示。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;谢谢
hotpower 发表于 2008-3-1 17:28 | 显示全部楼层

这个电路无实战价值...

  
xwj 发表于 2008-3-1 17:44 | 显示全部楼层

不行

  
zhang123 发表于 2008-3-1 21:36 | 显示全部楼层

遗憾,两位大师怎么说不行呢?再晒!

这个是局部,一次回帖只能附一个文件。下帖解释。
zhang123 发表于 2008-3-1 22:16 | 显示全部楼层

6io实现10灯5按键 说明,欢迎拍砖

解释一下&nbsp;io的拉低配合ledsel可以点亮任意一个led,这个没有疑问。<br />&nbsp;现在&nbsp;再解释一下,新修改主要针对按下按键影响led导致led亮问题。<br />对于第一个单元&nbsp;led1,led2和s3&nbsp;,&nbsp;设计R24和R26以及(R23与R25之一)使s3按下时io1端处于可靠的数字5vTTL低电平(使之可以输入低电平给单片机)并尽量高(少影响led亮度)(比如2v),这个从硬件角度已经很好的解决了led和按键的相互影响问题。<br />&nbsp;另外&nbsp;&nbsp;从软件策略上说明一下,led的点亮是需要扫描驱动的,分时驱动,否则按键无法输入。一般按50%分配时间,前50%时间驱动灯根据需要输出拉低或不拉低以驱动led1.led2;后50%时间io置输入,(ledsel还是输出无论0,1)由于R26以及(R23与R25之一)的存在&nbsp;输入得高,当s3按下时io1得到0,实现按键输入。由于分时驱动所以按键去抖也要按照这个思路特别处理一下。<br />&nbsp;欢迎拍砖。<br /> <br /> 相关链接:<a href='http://bbs.21ic.com/upfiles/img/20083/200831213943137.rar'>http://bbs.21ic.com/upfiles/img/20083/200831213943137.rar</a>
zhang123 发表于 2008-3-1 22:26 | 显示全部楼层

晒晒,晒掉一个电阻。

由于一组两个led是分时驱动所以省掉一个。<br />解释一下&nbsp;io的拉低配合ledsel可以点亮任意一个led,这个没有疑问。<br />现在&nbsp;再解释一下,新修改主要针对按下按键影响led导致led亮问题。<br />对于第一个单元&nbsp;led1,led2和s3&nbsp;,&nbsp;设计R26,R24以及R27使s3按下时io1端处于可靠的数字5vTTL低电平(使之可以输入低电平给单片机)并尽量高(少影响led亮度)(比如2v),这就从硬件角度已经很好的解决了led和按键的相互影响问题。<br />另外&nbsp;&nbsp;从软件策略上说明一下,led的点亮是需要扫描驱动的,分时驱动,否则按键无法输入。<br /><br />一般按50%分配时间,前50%时间驱动灯根据需要输出拉低或不拉低以驱动led1.led2,由于io的推挽驱动这段时间按键不会对led有任何影响;<br />后50%时间io置输入,(ledsel还是输出无论0,1)由于R26以及R24的存在&nbsp;io1输入得高,当s3不按下时led显然不亮;当s3按下时io1得到0,实现按键输入。这个时候的按键操作会稍微影响led。<br />为进一步减小按键影响led,可以分配75%甚至90%的led驱动时间,减少按键扫描时间。<br />由于分时驱动所以按键去抖也要按照这个思路特别处理一下。<br />欢迎拍砖。<br />
hotpower 发表于 2008-3-1 22:35 | 显示全部楼层

倒塌了~~~2楼的图没看见IO1...所以不行~~~这个应该可以

  
maychang 发表于 2008-3-1 22:45 | 显示全部楼层

就是。2楼的图我拿放大镜也没有看见IO1

  
zhang123 发表于 2008-3-1 22:53 | 显示全部楼层

12 13楼。我2楼的解释在4楼我也没说io1 啊。我说

led的点亮可以由ledsel和接在轻触按钮上端的io组合完成。<br />(轻触按钮上端的io)说明了单片机io的位置啊。<br />虽然没有标io,但是不会误解吧?<br />有裤子穿也就得了。<br />
hotpower 发表于 2008-3-1 23:14 | 显示全部楼层

LEDSEL=1在51机上可能有问题

  
zhang123 发表于 2008-3-1 23:56 | 显示全部楼层

R 13,14,15,16 设置合适可以给单片机io很大的冗余度。

R13&nbsp;R14&nbsp;R15&nbsp;R16&nbsp;1K这个参数应该可以了。<br />再不行可以在LEDSEL端再上拉,io也和其他几个io口类似&nbsp;采用P0口开漏驱动。<br />
maychang 发表于 2008-3-2 09:43 | 显示全部楼层

用在51上也没有问题

即使是P0口,加上拉电阻即可。<br />
ocon 发表于 2008-3-3 19:52 | 显示全部楼层

led没回路怎么亮得起来?

  
s07110016 发表于 2008-3-5 21:12 | 显示全部楼层

顶啊

顶啊
ayb_ice 发表于 2008-3-6 09:14 | 显示全部楼层

上面的电路没有价值

应该可以的,以前有个帖子讲过这个问题的。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

155

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

51

主题

155

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部