max232 发表于 2009-10-20 13:27:56

一个简单问题想了许久搞不定,51单片机端口如何实现输入与输出复用?如按键输入与数码管

RT

自己用二极管拼了个电路,发现行不通,哎~~如下:
http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_493757.jpg
(原文件名:13456789.jpg)

xpstudio2003 发表于 2009-10-20 14:55:08

坛子里有电磁炉的那个电路,,不错,,,数码管跟按键一起,分时用,,,,
你找找去,,我忘了再哪了,当时看那电路不错印象较深

cowboy 发表于 2009-10-20 15:52:45

单个IO不好搞,与其它IO配合才容易实现。

016249 发表于 2009-10-20 21:02:50

不懂。帮顶。

leacom 发表于 2009-10-20 21:25:19

这个电路里面那个二极管怎么都不会导通

Friendz 发表于 2009-10-20 21:28:08

楼主这样不行,因为输出是低阻抗,按钮也是低阻抗,两个低阻抗设备不能连在一起的。。

可以把电阻放到二极管的位置改为2K,IO和VCC之间连一个大电阻,比如470K,这样,IO轮流做为输入和输出,做为输出时控制LED(按钮连了2K电阻,不会影响输出),做为输入时,平时为高电平,按钮按下就是低电平。

祝你成功!

Friendz 发表于 2009-10-20 21:28:53

4楼说得对,二极管是反向的,没仔细看。

bird07 发表于 2009-10-20 22:36:19

guanzhu    ing

zhangjinxing 发表于 2009-10-20 23:04:50

这样可以
http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_494002.JPG
(原文件名:444.JPG)
R4视情况而定

cowboy 发表于 2009-10-20 23:13:58

楼上,按住按鍵不放,LED就灭不了。

tt3009 发表于 2009-10-21 00:19:18

8楼的电路的地改为电源,然后在按键的分路上加上一个分压电阻就可以实现楼主的要求了。分压电阻可以采用排阻,这样减少了板子的面积。

主要一点就是利用了发光二极管是电流点亮的,只要保证了发光二极管的压降就可以了。

不知道我说清楚了没有,有时间可以弄个图上来。

cowboy 发表于 2009-10-21 10:22:06

提供3种思路楼主可试试,三种的思路都是在需要检测按鍵时,IO输出高电平(开漏),这时LED短暂熄灭,若按鍵没按下,IO为5V高电平,按下按键,IO电压降至0.8V左右,检测到为低电平,此时LED上的电压不足1.6V,不发亮。待按键检测完后,按需要让IO输出高低电平决定LED是否需点亮。
图1由于有两个分压电阻长期通电,对电池供电的设备不利,图2改为增加一稳压管消除这种情况。但这两种方法的电平容差较小,受不同LED压降影响可能出现按鍵时LED微亮或LED亮度不足,需要仔细调整分压电阻阻值或稳压管电压才能达到较好效果。图3改用三极管以增大容差,一般按图中参数即可工作。

http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_494115.PNG
(原文件名:未命名.PNG)

lusson 发表于 2009-10-21 10:38:19

这样好象把电路复杂化了。。
我原来用过的是数码管+按键的复用。
驱动数码管那些IO口通过按键连接到另外空的一个IO口就可以实现按键功能

cowboy 发表于 2009-10-21 10:47:54

这样好象把电路复杂化了。。
===========================
是的,但是在单个IO上面做手脚只能这样做,如果能和其它IO配合,电路可以大大简化。
这种用法仅在其它IO不能动,只剩下一个IO需要复用的情况下才考虑。

mrwtc 发表于 2009-10-21 16:33:01

max232我这里有篇文章应该能够解决你的问题
点击此处下载 ourdev_494235.pdf(文件大小:151K) (原文件名:单片机EM78P156的I/O口复用技巧.pdf)

max232 发表于 2009-10-21 17:41:16

好的,谢谢各位了哈,我回去好好看看,然后再好好试验一下!!

powerwave 发表于 2009-10-21 18:57:59

http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_494267.jpg
(原文件名:ttt.jpg)

多个数码管和按键共用电路

helloshi 发表于 2009-10-21 19:28:16

http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_494273.JPG
(原文件名:1io.JPG)
这个可行不?

cowboy 发表于 2009-10-24 00:29:12

LS的当IO高阻输入时,1M电阻上的电压有1.5V以上,IO会认为是高电平,检测不了按键。

58180698 发表于 2009-10-24 07:45:01

顶,关注中。

vincent.r 发表于 2009-10-24 07:53:33

up.

helloshi 发表于 2009-10-24 07:56:38

LED再串一个二极管

cowboy 发表于 2009-10-24 10:02:23

LED再串一个二极管,复杂程度和成本跟11楼差不多,但性能略差一点。

renjun861214 发表于 2009-12-18 17:26:29

顶你

a1z26 发表于 2009-12-18 17:31:15

mark。

fly_dust 发表于 2009-12-18 18:36:00

只用一个脚很难搞吧,要计算很精确,稳定性也是个问题

cgr330 发表于 2009-12-23 20:15:35

8楼的这个不这行了吗?不过R4=10K是大了点即使I/0输出高电平按下开关后还是高电平,不要R4不就得了吗?

cowboy 发表于 2012-10-30 05:14:56

本帖最后由 cowboy 于 2012-10-30 05:27 编辑

一个IO驱动LED并检测按键,平时输出高低电平驱动LED,检测按键时设IO为输入。

peixiuhui 发表于 2012-10-30 08:28:03

这个 应该 是你 这个小电路的问题吧。51单片机 本身就是双向的。

peixiuhui 发表于 2012-10-30 08:32:04

mrwtc 发表于 2009-10-21 16:33 static/image/common/back.gif
max232我这里有篇文章应该能够解决你的问题
点击此处下载 ourdev_494235.pdf(文件大小:151K) (原文件名: ...

这个 是 多个IO口分时 复用 的。 也能说明 问题:

renwocai 发表于 2012-10-30 09:25:10

cowboy 发表于 2012-10-30 05:14 static/image/common/back.gif
一个IO驱动LED并检测按键,平时输出高低电平驱动LED,检测按键时设IO为输入。
...

这用的是什么软件画的?另外,普通51的P1~P3没有输入输出可选,只需设置为高或低电平就可以了吧
页: [1]
查看完整版本: 一个简单问题想了许久搞不定,51单片机端口如何实现输入与输出复用?如按键输入与数码管