打印

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

[复制链接]
6792|42
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
IRICO|  楼主 | 2008-3-1 13:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhang123| | 2008-3-1 16:04 | 只看该作者

图一

使用特权

评论回复
板凳
程序匠人| | 2008-3-1 16:06 | 只看该作者

同意2楼要求

使用特权

评论回复
地板
zhang123| | 2008-3-1 16:10 | 只看该作者

再来

解释一下
ledsel 选择了前五个led 还是后五个led。
led的点亮可以由ledsel和接在轻触按钮上端的io组合完成。
按钮的输入低有效。

使用特权

评论回复
5
maychang| | 2008-3-1 16:16 | 只看该作者

按键LED才会亮?

按哪个键,对应LED亮?

使用特权

评论回复
6
IRICO|  楼主 | 2008-3-1 17:08 | 只看该作者

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

我是想用6个I/O口来接五个按键和十个LED,都能独立控制其状态:
1.五个按键能分别读入其键值。
2.十个LED能每一个单独显示。
                 谢谢

使用特权

评论回复
7
hotpower| | 2008-3-1 17:28 | 只看该作者

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

使用特权

评论回复
8
xwj| | 2008-3-1 17:44 | 只看该作者

不行

使用特权

评论回复
9
zhang123| | 2008-3-1 21:36 | 只看该作者

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

这个是局部,一次回帖只能附一个文件。下帖解释。

使用特权

评论回复
10
zhang123| | 2008-3-1 22:16 | 只看该作者

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

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

相关链接:https://bbs.21ic.com/upfiles/img/20083/200831213943137.rar

使用特权

评论回复
11
zhang123| | 2008-3-1 22:26 | 只看该作者

晒晒,晒掉一个电阻。

由于一组两个led是分时驱动所以省掉一个。
解释一下 io的拉低配合ledsel可以点亮任意一个led,这个没有疑问。
现在 再解释一下,新修改主要针对按下按键影响led导致led亮问题。
对于第一个单元 led1,led2和s3 , 设计R26,R24以及R27使s3按下时io1端处于可靠的数字5vTTL低电平(使之可以输入低电平给单片机)并尽量高(少影响led亮度)(比如2v),这就从硬件角度已经很好的解决了led和按键的相互影响问题。
另外  从软件策略上说明一下,led的点亮是需要扫描驱动的,分时驱动,否则按键无法输入。

一般按50%分配时间,前50%时间驱动灯根据需要输出拉低或不拉低以驱动led1.led2,由于io的推挽驱动这段时间按键不会对led有任何影响;
后50%时间io置输入,(ledsel还是输出无论0,1)由于R26以及R24的存在 io1输入得高,当s3不按下时led显然不亮;当s3按下时io1得到0,实现按键输入。这个时候的按键操作会稍微影响led。
为进一步减小按键影响led,可以分配75%甚至90%的led驱动时间,减少按键扫描时间。
由于分时驱动所以按键去抖也要按照这个思路特别处理一下。
欢迎拍砖。

使用特权

评论回复
12
hotpower| | 2008-3-1 22:35 | 只看该作者

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

使用特权

评论回复
13
maychang| | 2008-3-1 22:45 | 只看该作者

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

使用特权

评论回复
14
zhang123| | 2008-3-1 22:53 | 只看该作者

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

led的点亮可以由ledsel和接在轻触按钮上端的io组合完成。
(轻触按钮上端的io)说明了单片机io的位置啊。
虽然没有标io,但是不会误解吧?
有裤子穿也就得了。

使用特权

评论回复
15
hotpower| | 2008-3-1 23:14 | 只看该作者

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

使用特权

评论回复
16
zhang123| | 2008-3-1 23:56 | 只看该作者

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

R13 R14 R15 R16 1K这个参数应该可以了。
再不行可以在LEDSEL端再上拉,io也和其他几个io口类似 采用P0口开漏驱动。

使用特权

评论回复
17
maychang| | 2008-3-2 09:43 | 只看该作者

用在51上也没有问题

即使是P0口,加上拉电阻即可。

使用特权

评论回复
18
ocon| | 2008-3-3 19:52 | 只看该作者

led没回路怎么亮得起来?

使用特权

评论回复
19
s07110016| | 2008-3-5 21:12 | 只看该作者

顶啊

顶啊

使用特权

评论回复
20
ayb_ice| | 2008-3-6 09:14 | 只看该作者

上面的电路没有价值

应该可以的,以前有个帖子讲过这个问题的。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

155

帖子

0

粉丝