单片机的I/O口不够,怎样同时控制最多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的的默认值为高电平,因此再设计驱动电路时,采用低电平驱动继电器工作。

程序

但是比较常用的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等通讯接口。

审核编辑:汤梓红

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分