当单片机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个口
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
60条回答
renwocai
2020-01-26 15:19
4x4键盘中的4条输出线可以与显示数据线复用,因为显示和读键盘不会同时进行,只要在不读键盘时把输入线置为高阻,就没有干扰。这样省下4IO
数码管的3条控制线可以与LCD控制线复用。因为读写LCD是很快的,对数码管造成的影响,肉眼分辨不出的。只要这3条线不占用LCD的读写允许脚,那么读写数码管对LCD也没有影响。这样省3IO
1条LED也可与LCD控制线复用。道理与数码管相同。又省下1IO
总共8IO。满足楼主的要求了,但在编写程序时,必须考虑器件占用IO的优先权问题。非第一优先的器件在完成一个操作后,必须立即恢复IO的原状。程序比较复杂了,效率也有所下降

一周热门 更多>