#技术闲聊#?怎么用单片机同时控制最多81个继电器按照实际要求接通或断开?

想使用单片机同时控制最多81个继电器按照实际要求接通或断开 , 能否做得到?
单片机的类型很多 , 比较常见的单片机I/O口一般比较少 , 一般都是4组以内 , 每组8个 , 共32个I/O口 , 以及3组24个、2组16个、1组8个等 , 稍多一点的有64个I/O口 。 但是也有I/O口较多的单片机 , 比如stm32f103zet6一共144个引脚 , 具有112个I/O口 , 足以满足控制要求 。
驱动电路如下图所示 , 由于大部分单片机I/O的的默认值为高电平 , 因此再设计驱动电路时 , 采用低电平驱动继电器工作 。
#技术闲聊#?怎么用单片机同时控制最多81个继电器按照实际要求接通或断开?
文章图片
但是比较常用的C8051F系列单片机其I/O口数量只有8~64个 , 若单片机的I/O口不够时怎么办?
1、可以使用74HC595扩展 。 74HC595是一个具有输出锁存的串行输入8位并行输出的移位寄存器 , 在驱动数码管当中经常有用到 , 如下图为使用74HC595驱动数码管的原理 , 控制继电器时 , 74HC595的输出口接PNP三极管即可 , 输入低电平时三极管导通 。
#技术闲聊#?怎么用单片机同时控制最多81个继电器按照实际要求接通或断开?
文章图片
2、可以使用可编程逻辑器件CPLD进行扩展 。 使用CPLD扩展的好处就是可以扩展很多I/O口 , 而且不会像使用74HC595那样因为扩展得多了就会有一定的延时 。 其原理如下图所示 , 通过读RD、写WR信号以及AD数据地址总线进行传输数据 , 可以根据需求选择合适I/O口的CPLD 。
【#技术闲聊#?怎么用单片机同时控制最多81个继电器按照实际要求接通或断开?】
#技术闲聊#?怎么用单片机同时控制最多81个继电器按照实际要求接通或断开?
文章图片
3、使用多片单片机 。 若一片单片机的I/O口引脚不够也可以使用两片以上的单片机 , 进行控制继电器 , 只是需要编写多个单片机程序 , 若不同单片机之间的继电器需要交互时 , 单片机之间还需增加通讯接口 , 可以使用SCI、SPI等通讯接口 。