本帖最后由 白滚滚 于 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个口
数码管的3条控制线可以与LCD控制线复用。因为读写LCD是很快的,对数码管造成的影响,肉眼分辨不出的。只要这3条线不占用LCD的读写允许脚,那么读写数码管对LCD也没有影响。这样省3IO
1条LED也可与LCD控制线复用。道理与数码管相同。又省下1IO
总共8IO。满足楼主的要求了,但在编写程序时,必须考虑器件占用IO的优先权问题。非第一优先的器件在完成一个操作后,必须立即恢复IO的原状。程序比较复杂了,效率也有所下降
一周热门 更多>