菜鸟问题 请问单片机的i/o口如果不够怎么办

[复制链接]
4776|12
 楼主| 还我今生 发表于 2007-8-18 07:55 | 显示全部楼层 |阅读模式
请问如果单片机要控制光屏,打印机,还有很多控制,导致I/O口不够用怎么办
请问有什么好的办法吗?我用的是51
tyw 发表于 2007-8-18 08:04 | 显示全部楼层

I/O口扩展,或是输入输出口分时共用

比如键盘和led显示就常做成分时共用的
平常人 发表于 2007-8-18 08:16 | 显示全部楼层

如果单片机的I/O口不够,说明选的单片机不合适,换一个!

I/O口扩展或是输入输出口分时共用有时可以解决问题,但不是任何时候都可以。最好是换一个脚位多的单片机。
 楼主| 还我今生 发表于 2007-8-18 08:22 | 显示全部楼层

请问用74HC574之类的芯片可以解决问题吗

hq_y 发表于 2007-8-18 08:23 | 显示全部楼层

一般是把不是很重要的I/O口线,采用串行扩展的办法

比如键盘、LED显示等等;
本身键盘、LED显示都是慢速扫描的,比如采用5ms的定时中断中去处理;

一些特殊的,高速的I/O,才使用mcu本身的I/O口线直接驱动,例如继电器和打印机;
fsaok 发表于 2007-8-18 08:24 | 显示全部楼层

.

呵呵,继电器也是慢速的..
hq_y 发表于 2007-8-18 08:30 | 显示全部楼层

继电器有可能是特殊的~~~~~~~~~

例如,如果使用6B595这样的芯片去驱动继电器,假设这个继电器是控制一个很重要的设备,比如电机或者切割刀具,而这个设备在程序跑飞死机的时候,6B595还仍然驱动这个继电器工作,那么可能要出大事;

使用mcu的I/O口直接控制可以避免这样的问题;根据mcu的上电时候的I/O口线的状态,采用合适的驱动电路,当程序跑飞看门狗复位操作,就能让这个继电器处于不工作的状态。
hq_y 发表于 2007-8-18 08:55 | 显示全部楼层

74HC574这样的芯片当然是可以的~~~~~~~~

但是并行扩展比较麻烦,现在俺基本不使用这样的办法啦;除非51系统中必须扩展ram、rom这样的场合;

但是在需要扩展ram、rom的场合,现在有了更好的办法,那就是使用其它的mcu,或者使用一片小arm来搞定;
JDWANG 发表于 2007-8-18 08:58 | 显示全部楼层

用I2C总线器件扩展

用I2C总线器件扩展,扩展I/O口可用PCA9554,扩展LED数码管和键盘可用CH452或ZLG7290,驱动继电器需加驱动电路,常用的有ULN2003(7个继电器)或ULN2803(8个继电器)。便宜的可用移位寄存器74HC164。方法很多,根据你的具体情况选择合适的器件。
zjf0000 发表于 2007-8-18 09:29 | 显示全部楼层

可以加个245,分时复用io

ayb_ice 发表于 2007-8-18 09:49 | 显示全部楼层

只有扩展或更换MCU了...

stycx 发表于 2007-8-18 09:56 | 显示全部楼层

也可以加一个MCU

lake198664 发表于 2007-8-18 10:48 | 显示全部楼层

哈哈~~~

哈哈,换个FPGA吧,几百个脚,绝对够用!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

218

主题

1381

帖子

1

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