夜尽天明 发表于 2017-12-5 11:05:49

7个IO口驱动5个按键10个LED怎么做

如题,想了老半天没想出来

dgtg 发表于 2017-12-5 11:07:38

可以加74系列的IC吗?

阿豪博士 发表于 2017-12-5 11:08:46

别说7个IO口了!就是3个IO口 或者2个IO口加上一片天微电子的IC 就搞定了啊!

夜尽天明 发表于 2017-12-5 11:14:30

阿豪博士 发表于 2017-12-5 11:08
别说7个IO口了!就是3个IO口 或者2个IO口加上一片天微电子的IC 就搞定了啊!

不能加芯片,能加芯片就好办了

shower.xu 发表于 2017-12-5 11:15:56

你应该说说led是咋个亮法

夜尽天明 发表于 2017-12-5 11:17:44

LED能点亮和熄灭就行,不用调光

clesun 发表于 2017-12-5 11:21:21

你去看看TM或AIP的驱动芯片,很便宜就搞定。

夜尽天明 发表于 2017-12-5 11:22:50

clesun 发表于 2017-12-5 11:21
你去看看TM或AIP的驱动芯片,很便宜就搞定。

能加芯片的话就不用费脑筋了{:sweat:}

ljy99731 发表于 2017-12-5 11:22:59

有芯片为啥不能用?AIP650,立创0.26,又省IO
不用芯片也很简单,5个IO接按键+LED,另外两个IO做位选选择哪组LED,不扫描按键的时候驱动LED,防止按键干扰LED可以加几个二极管

willX 发表于 2017-12-5 11:24:24

不能加芯片?意思是不能修改硬件电路了吗?那这7个IO是怎么接到5个按键还有10个LED上的啊?

ilikemcu 发表于 2017-12-5 11:25:01

2*5 的矩阵来驱动LED,把其中5条,做按键检测线,内部的上拉开启,平时5条线拉低,配合另外2条拉高,驱动对于的5个LED,按键扫描穿插其中,比如一个LED扫描周期结束,把2条拉高才能点亮LED的IO全部拉低,这样LED在检测按键时不会点亮,在对地GND的按键中,串联一个10K左右的电阻,阻值的取值,取决于你所使用MCU的IO内部上拉,只要保证能把这个上拉足够拉下去到IO准确检测出低电平,那么键盘检测就可以正常进行了。
这5个IO在驱动LED的时候,务必切换到推挽输出,否则按键会影响显示效果的。

夜尽天明 发表于 2017-12-5 12:56:04

ilikemcu 发表于 2017-12-5 11:25
2*5 的矩阵来驱动LED,把其中5条,做按键检测线,内部的上拉开启,平时5条线拉低,配合另外2条拉高,驱动对 ...

是这样吧,谢谢了

wanyou132 发表于 2017-12-5 16:35:21

ilikemcu 发表于 2017-12-5 11:25
2*5 的矩阵来驱动LED,把其中5条,做按键检测线,内部的上拉开启,平时5条线拉低,配合另外2条拉高,驱动对 ...

大神好方法

wye11083 发表于 2017-12-5 18:33:33

夜尽天明 发表于 2017-12-5 12:56
是这样吧,谢谢了

然后你得在中断里分别点灯和读pin了。要不然led会不稳。

wanggoals 发表于 2017-12-5 18:36:26

2x5动态扫描啊

xujihu 发表于 2017-12-5 20:27:55

夜尽天明 发表于 2017-12-5 12:56
是这样吧,谢谢了

是不是还要加个二极管,不然按下按键不是影响显示了吗

mcu5i51 发表于 2017-12-6 08:36:27

xujihu 发表于 2017-12-5 20:27
是不是还要加个二极管,不然按下按键不是影响显示了吗

不用,已经加上电阻了,电阻10K大些,改为1-2K的,一般内部是10K左右的上拉,要保证可以拉低;
一只在这样用,DIG4*8+4Key+4~8LED,全部是这12个IO复用,还有余量的

andy 发表于 2017-12-6 11:03:01

夜尽天明 发表于 2017-12-5 12:56
是这样吧,谢谢了

R9-R13不用接(按键直接IO线),在按键共GND接上2K电阻就可以了。

ilikemcu 发表于 2017-12-6 12:31:16

夜尽天明 发表于 2017-12-5 12:56
是这样吧,谢谢了

没错,就是这样。
定时中断以3单位时间循环,2个点灯,1个读按键,如果是自动加载的定时器,就非常方便了,这个也没什么效率不效率的,读键盘可能会耗费时间,而影响点灯的占空比,没关系,把限流电阻弄小一点就可以,反正最终灯的亮度大体上还是靠平均电流支撑的。

ilikemcu 发表于 2017-12-6 12:33:04

andy 发表于 2017-12-6 11:03
R9-R13不用接(按键直接IO线),在按键共GND接上2K电阻就可以了。

不接的话,超过2个按键按下时,灯的状态就可能乱了{:sweat:}

kebaojun305 发表于 2017-12-6 16:23:21

这种方法在小家电上 都是成熟的电路了。

skyxjh 发表于 2017-12-8 16:40:20

地线可以取消

skyxjh 发表于 2017-12-8 16:42:54

将原来的地线接到IO C1或IO C2上就可以了,可以少一根线
页: [1]
查看完整版本: 7个IO口驱动5个按键10个LED怎么做