7个IO口驱动5个按键10个LED怎么做
如题,想了老半天没想出来 可以加74系列的IC吗? 别说7个IO口了!就是3个IO口 或者2个IO口加上一片天微电子的IC 就搞定了啊! 阿豪博士 发表于 2017-12-5 11:08别说7个IO口了!就是3个IO口 或者2个IO口加上一片天微电子的IC 就搞定了啊!
不能加芯片,能加芯片就好办了 你应该说说led是咋个亮法 LED能点亮和熄灭就行,不用调光 你去看看TM或AIP的驱动芯片,很便宜就搞定。 clesun 发表于 2017-12-5 11:21
你去看看TM或AIP的驱动芯片,很便宜就搞定。
能加芯片的话就不用费脑筋了{:sweat:} 有芯片为啥不能用?AIP650,立创0.26,又省IO
不用芯片也很简单,5个IO接按键+LED,另外两个IO做位选选择哪组LED,不扫描按键的时候驱动LED,防止按键干扰LED可以加几个二极管 不能加芯片?意思是不能修改硬件电路了吗?那这7个IO是怎么接到5个按键还有10个LED上的啊? 2*5 的矩阵来驱动LED,把其中5条,做按键检测线,内部的上拉开启,平时5条线拉低,配合另外2条拉高,驱动对于的5个LED,按键扫描穿插其中,比如一个LED扫描周期结束,把2条拉高才能点亮LED的IO全部拉低,这样LED在检测按键时不会点亮,在对地GND的按键中,串联一个10K左右的电阻,阻值的取值,取决于你所使用MCU的IO内部上拉,只要保证能把这个上拉足够拉下去到IO准确检测出低电平,那么键盘检测就可以正常进行了。
这5个IO在驱动LED的时候,务必切换到推挽输出,否则按键会影响显示效果的。 ilikemcu 发表于 2017-12-5 11:25
2*5 的矩阵来驱动LED,把其中5条,做按键检测线,内部的上拉开启,平时5条线拉低,配合另外2条拉高,驱动对 ...
是这样吧,谢谢了 ilikemcu 发表于 2017-12-5 11:25
2*5 的矩阵来驱动LED,把其中5条,做按键检测线,内部的上拉开启,平时5条线拉低,配合另外2条拉高,驱动对 ...
大神好方法 夜尽天明 发表于 2017-12-5 12:56
是这样吧,谢谢了
然后你得在中断里分别点灯和读pin了。要不然led会不稳。 2x5动态扫描啊 夜尽天明 发表于 2017-12-5 12:56
是这样吧,谢谢了
是不是还要加个二极管,不然按下按键不是影响显示了吗 xujihu 发表于 2017-12-5 20:27
是不是还要加个二极管,不然按下按键不是影响显示了吗
不用,已经加上电阻了,电阻10K大些,改为1-2K的,一般内部是10K左右的上拉,要保证可以拉低;
一只在这样用,DIG4*8+4Key+4~8LED,全部是这12个IO复用,还有余量的 夜尽天明 发表于 2017-12-5 12:56
是这样吧,谢谢了
R9-R13不用接(按键直接IO线),在按键共GND接上2K电阻就可以了。 夜尽天明 发表于 2017-12-5 12:56
是这样吧,谢谢了
没错,就是这样。
定时中断以3单位时间循环,2个点灯,1个读按键,如果是自动加载的定时器,就非常方便了,这个也没什么效率不效率的,读键盘可能会耗费时间,而影响点灯的占空比,没关系,把限流电阻弄小一点就可以,反正最终灯的亮度大体上还是靠平均电流支撑的。 andy 发表于 2017-12-6 11:03
R9-R13不用接(按键直接IO线),在按键共GND接上2K电阻就可以了。
不接的话,超过2个按键按下时,灯的状态就可能乱了{:sweat:} 这种方法在小家电上 都是成熟的电路了。 地线可以取消
将原来的地线接到IO C1或IO C2上就可以了,可以少一根线
页:
[1]