猜猜图1上接在电脑后面板上的小电路是什么?
也许你能看到这上面有一块51单片机,并且该电路连接到电脑上,但我想你猜不到它的作用。有不少朋友可能像笔者一样曾梦想着用电脑来控制家中电器的开关。其实只要能做到控制继电器的闭合断开,也就意味着能控制各种电器的开和关,还可以控制电机的转动或转向。用电脑实现继电器的控制有很多方法,可以用串行接口、LPT接口、ISA卡、PCI卡等,本期笔者为大家介绍用电脑串口结合单片机控制多达24个继电器的实例。本文介绍的制作还能用电脑读取电路IO端口的逻辑状态,即电路可以将逻辑(开关)信号反馈到电脑,让电脑程序作相应的判断,借此实现很多的自动控制,因此家电的自动控制也就容易实现了。希望本文能给电子爱好者带来一些启发,对串口的应用进行扩展。
图1就是用电脑的RS232串口制作的连接到继电器的控制电路。制作中用电脑的串行接口来进行命令字符的发送和接收。再来看看图2和图3,相信熟悉电脑的朋友不会对它们陌生。图2是RS232C的DB-9接口形式,一般电脑都会配备1~2个,也就是通常说的串口(也称COM口)。图3是RS232C的DB-25接口形式,最常见的就是上网用的Modem(调制解调器)与计算机连接的接口。RS232C串行通信接口标准被广泛用于计算机和各种外围设备的串行连接,它也是数据终端设备(DTE,如计算机),与数据通信设备(DCE,如Modem)的标准接口。RS232C不仅可以用在两台设备之间的串行连接,还可以通过中间设备进行远距离的通信。串行通信就是将数据分解成二进制位,用一条信号线,一位一位按顺序传送。它的优点是占用线路少,远距离通信时可以极大地降低成本。



电 路 原 理
整个制作的主要电路由4部分组成:RS232/TTL电平转换、串行信号处理、控制信号的输入输出和继电器驱动电路。图4是前三部分的电路的整合电路图,图5是继电器驱动电路图。下面对各电路做简单的分析。

这一部分的作用将RS232C和单片机串口的TTL电平相互转换,使得两个设备可以相互通信。AT89C51单片机串口的电平标准是TTL电平标准:高电平为+5V,低电平为0V,而RS232C的电平标准是EIA电平标准:高电平为+3~ +15V,低电平为-3~-15V,在实际应用中常用±12V或±15V,在电脑中因所用的芯片或电路不同通常在±9~±12V之间。要注意的是在RS232C中任何一条信号线的电压均为负逻辑关系,即逻辑“1”为-5~-15V;逻辑“0”为+5~ +15V,其噪声容限为2V,即要求接收器能识别低至+3V的信号作为逻辑“0”,高到-3V的信号作为逻辑“1”。为了让EIA电平转换成TTL电平,电路中用了两个BC547和R4、R5、R6、R7、VD1组成简单的电平转换电路。整个电路只要求信号的收发,所以只用到RS232C接口中的RXD、TXD和地,通过电平转换电路连接在AT89C51的TXD、RXD和地,也就是说RS232C的接收端连到单片机的发送端,而发送端则连到单片机的接收端。这样的电路可以取代专用的RS232/TTL转换芯片(如MAX232),满足一般的制作要求(可以参考笔者2003年12月在本刊发表的《简单的RS232C电平转换和串口取电》)。
串行信号处理和控制信号输入输出电路:
这一部分是整个电路的核心,使用了一片AT89C51单片机,用它完成串行字符的接收和处理,同时利用其剩余的I/O引脚进行逻辑信号的输入输出控制,通常这样的电路也称为下位机。AT89C51的串行接口用电平转换电路连到DB9接口上,这样就可以配合单片机的程序接收来自电脑RS232C接口的命令字符或向电脑程序反馈状态字符。电路的晶振和复位电路则与单片机构成最小系统,使单片机程序得以启动运行,VD2是运行指示灯,在电路正常工作时会以一定频率闪烁。
为了使处理后的信息输出到继电器控制模块,电路设置了AT89C51的P0、P1、P2为三组八位并行的I/O接口,用于把处理后的信号变成TTL逻辑电平输出到继电器控制模块,也可以把输入到这三组I/O上的逻辑电平或开关量采集到单片机中再传送给电脑。由于电路板是分模块设计的,信号处理电路这一模块不但可以用于控制继电器,它的I/O输出电平为标准TTL电平,还可以采集TTL电平,这样也就可以根据需要接在其他并行电路上,如LED数显模块、步进电机控制模块、键盘阵列等。
继电器驱动电路:
图4中K1、K2、K3分别是接在89C51的P0、P1、P2的I/O口上的插座,用于信号输出,每一输出脚控制一个继电器,因为AT89C51的P口在上电后程序执行前是输出高电平的,所以这里定义了低电平有效。对应图5的继电器驱动电路使用了PNP型的9012作驱动管,当接入9012基极的信号电平为高时,三极管截止继电器不吸合;当信号电平为低时,三极管导通继电器吸合;P口引脚高电平为TTL标准,最高为+5V,光用一级的PNP驱动只能选用5V的继电器,如要选用5V以上的继电器可以在9012前加一级9013进行电压放大,当然也可以用别的继电器驱动电路去替换它。要想更好地隔离继电器工作时给单片机带来的干扰或使用高电压继电器,可以将光电耦合器加在信号处理电路和继电器驱动之间。
本文介绍的实例制作所用的元器件见表1。下期,笔者再为大家介绍本制作用到的电脑串口的基本知识和涉及的软件原理,并为大家提供本实例的演示程序。读者可以在本期配刊光盘的“本期程序”文件夹中找到本实例的.hex单片机编译程序、C语言源程序以及单片机主控板和继电器板的PCB文件。
(温正伟)
