挑战极限,20脚单片机端口复用最高境界

[复制链接]
2316|8
 楼主| njhhack 发表于 2015-10-21 19:39 | 显示全部楼层 |阅读模式
手上有一at89c2051的20脚单片机,要接4位数码管显示,16个按钮,8个led显示,不许用其它集成电路,不许用二极管,可以用三极管,电阻,大家想想如何实现,at89c2051只有15个IO可用
longquanshuang 发表于 2015-10-21 22:46 | 显示全部楼层
数码管5个+16个按钮
数码管占用8+5=13个IO
按键分为8+8两组,每个都串联二极管接剩下两个IO做公共端,另外8个按键脚接数码管的seg驱动,在消隐的时候读取按键值

三极管就是二极管
457344370 发表于 2015-10-21 23:58 来自手机 | 显示全部楼层
按键接成2*8矩阵,矩阵按键和数码管和8个LED公用8个IO,4个IO控制数码管选择,1个IO控制LED灯电源,8+4+2+1刚好15个,这样只需要普通IO的高低电平就可以控制了,如果IO配成高阻可以驱动更多
ayb_ice 发表于 2015-10-22 09:11 | 显示全部楼层
8个LED其实就是一个数码管,5x8就够了,就是13个脚

再加两个IO与LED段输出扫按键,组成2x8,

就是13+2=15IO口
wh6ic 发表于 2015-10-22 09:29 | 显示全部楼层
弃用二极管只会带来麻烦,多个按键同时按下时,会干扰LED的显示,就算按键串联电阻,一样会有LED发光
autolog 发表于 2015-10-22 12:30 | 显示全部楼层
数码管用不着那么多,9个就够了,甚至更少
 楼主| njhhack 发表于 2015-10-22 18:18 | 显示全部楼层
按钮接成2x8矩阵的方法不错
 楼主| njhhack 发表于 2015-10-22 18:22 | 显示全部楼层
如果把要求扩展一下,接4个数码管,32个led,32个按钮,还是这个只有15个IO的20脚单片机,哪位高手可以
457344370 发表于 2015-10-22 21:31 来自手机 | 显示全部楼层
四个数码管和32个按键可以共用4*8矩阵,剩下三个IO利用高阻应该可以驱动3*8*2=48个LED,没具体试过,不过应该是可行的,外围器件只需要2K的电阻就行了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

主题

帖子

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