电子说
想使用单片机同时控制最多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的的默认值为高电平,因此再设计驱动电路时,采用低电平驱动继电器工作。
但是比较常用的C8051F系列单片机其I/O口数量只有8~64个,若单片机的I/O口不够时怎么办?
1、可以使用74HC595扩展。74HC595是一个具有输出锁存的串行输入8位并行输出的移位寄存器,在驱动数码管当中经常有用到,如下图为使用74HC595驱动数码管的原理,控制继电器时,74HC595的输出口接PNP三极管即可,输入低电平时三极管导通。
2、可以使用可编程逻辑器件CPLD进行扩展。使用CPLD扩展的好处就是可以扩展很多I/O口,而且不会像使用74HC595那样因为扩展得多了就会有一定的延时。其原理如下图所示,通过读RD、写WR信号以及AD数据地址总线进行传输数据,可以根据需求选择合适I/O口的CPLD。
3、使用多片单片机。若一片单片机的I/O口引脚不够也可以使用两片以上的单片机,进行控制继电器,只是需要编写多个单片机程序,若不同单片机之间的继电器需要交互时,单片机之间还需增加通讯接口,可以使用SCI、SPI等通讯接口。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !