当单片机IO口不够用,却无扩展的时候,能否通过软件...

2020-01-18 18:47发布

本帖最后由 白滚滚 于 2013-3-3 11:03 编辑

单片机的学习之路长途漫漫啊
跪求各位前辈给予指点:
当单片机的IO口不够用,却没有扩展的时候(不可自行接扩展)
能否通过软件编程或者IO口复用解决此问题?
---------------------------------------
单片机为AT89S5单片机一共是32个口
传感器和继电器占用14个
数码管是8+3=11个
液晶显示是8+6=15个(数码管8位数据口和液晶8位数据口用的同一组IO口,测试可用)
按键是8个,为4*4矩阵式键盘
LED1个
---------------------------------------
数码管和液晶显示的数据口共用一组IO口
所以是需要14+8+3+6+8+1=40个,还差8个口
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
59条回答
cafppla1
1楼-- · 2020-01-21 11:04
 精彩回答 2  元偷偷看……
白滚滚
2楼-- · 2020-01-21 16:58
cafppla1 发表于 2013-3-3 10:49
什么单片机?什么按键?不是矩阵键盘单片机有ad的话,一个io即可

是AT89S52,用的是4*4矩阵键盘
zuu0
3楼-- · 2020-01-21 21:30
8个按键改成独立按键和数码管共用IO,正好多出8个
XA144F
4楼-- · 2020-01-22 00:37
白滚滚 发表于 2013-3-3 10:51
惨无人道的不带字库的12864.....

的确够惨的,这样的话就换带字库且能串行的ST7920,这样不算犯规吧?
takashiki
5楼-- · 2020-01-22 06:26
本帖最后由 takashiki 于 2013-3-3 12:11 编辑
白滚滚 发表于 2013-3-3 09:16
单片机一共是32个口
传感器和继电器占用14个,
数码管是8+3=11个,
液晶显示是8+6=15个,
按键是8个,
LED1个,
---------------------------------------
数码管和液晶显示的数据段8位共用
所以是需要14+8+3+6+8+1=40个,还差8个口

按键和数码管、LCD的八位可以复用,于是就够了,注意分时复用,按键有4个输出4个输入,在按键时千万记住关闭数码管显示,另外在按键的8根线上都串接较大的电阻,比如5.1K,至少要在4根输入线上串!

如果还想继续省的话,液晶的6个控制脚有三根可以和数码管的位选复用,主要好分配时间。操作完液晶时,千万要将这三根线恢复到原来的状态,这样基本上不会影响数码管的显示,因为液晶操作时间并不长。

接着省:使用上述方法将液晶的另外一个控制脚与LED复用,又少占用一个引脚。

修改原因:继续省线大法。使用本人的方案可以为您节省12个引脚,够你用了并且还可以继续扩展功能。
mon51
6楼-- · 2020-01-22 07:34
 精彩回答 2  元偷偷看……

一周热门 更多>