大家知道,PC机主板上有许多接口,如COM口(串行)、LPT口(并行口,简称并口)、USB口(通用串行总线)、IEEE1394口(火线)等。在电子制作中,如果能通过编程来控制这些端口的电平信号,则可以实现一些智能化的控制。在这些计算机接口中,LPT口(并行口)的使用最为简单、方便。本文所要介绍的“具有任意时间定时功能的多路计算机并口控制开关”正是基于并行口的一种智能化控制装置,它可以以多种控制方式进行控制,电路较为简洁,希望能给广大电子爱好者带来一些启示。
并行口电路工作原理
并行口在PC机上是一个25针的 D 型插口,以前一般都用作计算机与打印机的接口,因此,人们也常常称并行口为打印口。并行口的所有信号,都是逻辑信号:低电平(0V)表示逻辑0,高电平(5V)表示逻辑1。并行口各引脚的功能描述如表1所示。

从表1可以看出,2~9针脚上的信号是并行口上传递的数据信号,而其他引脚的作用则是用于打印机进行初始化工作和对打印机动作进行同步。本文中的“具有任意时间定时功能的多路计算机并口控制开关”正是利用了并行口的2~9脚和1脚来完成所有功能的。因此,我们只需通过编程对这些引脚进行电平控制即可。
并行口一共有三个寄存器,分别为基地址寄存器、状态口寄存器和控制口寄存器。在此,我们利用了其基地址寄存器和控制口寄存器,下面就介绍一下这两个寄存器的一些原理和使用方法。
基地址(也是数据口地址):
PC机一般都有三个不同的并行口基地址:分别为278H,378H,3BCH。通常做在多功能卡或单显卡上的并行口适配器基地址为3BCH;做在电脑主机板或单独的基地址为378H或278H;现在的PC机并行口基地址一般为378H。有时,由于各台计算机的硬件配置不同,用户可以在WINDOWS操作系统中“控制面板”→“系统”中查看打印口的地址值。
并行口的基地址同时也是数据锁存器地址,数据锁存器地址中的数据可读可写。当向基地址写数据时,2~9脚会输出相应信号的电平;当读数据时,则是从2~9脚获得当前的引脚电平状态。如数据位2、4、6位为1,其他为0,则相应的二进制数据为01010100,转换成十进制为84,十六进制为54H。
因为并行口中有数据锁存器,所以,当发送数据至LPT口时,数据引脚的电平状态将一直保持,直到重新向数据口写数据或计算机复位。数据位与电平状态的关系如表2所示。

控制口:
控制口地址为基地址加上2,因此,可以是27AH、37AH、3BEH,数据也是可读可写。读写方法和上面介绍的类似。和上述基地址数据读写方法不同的是,控制口中的数据位并不全部是高电平就为逻辑“1”。
表3为各控制引脚与逻辑电平的关系。

本文所述的“具有任意时间定时功能的多路计算机并口控制开关”外接控制电路如图1所示。其中DB25并行口插座为D型25针阳型插座。排阻RJ为10k×8,作为74HC273的上拉电阻,R1、C4组成74HC273的复位电路,用于电路启动时,给Q0~Q8各输出状态清零;IC4为运放芯片,与外围元件R5、RP1、R6、C5、C6组成一个电压比较器,RP1用来调整比较的基准电压,调整RP1阻值,使图中A点电位小于B点电位时,C点输出高电平即可;后级的控制电路由R7、VT2、K1、VD5组成,R7为三极管放大电路的基极偏置电阻,VT2可以选用9014管,K1为5V的小型继电器,继电器的触点电流应根据具体控制对象来选择,一般尽可能选得大些,二极管VD5选用1N4007即可。74HC273的Q0~Q8输出端后所接的控制电路全部一样,即每个控制电路都是互相独立的。其他元器件参数见图1标注。

控制电路工作原理
当程序向计算机并行口D0~D7端(即2~9脚)发送数据信号后,再发送一个选通信号(即1脚),1脚信号经“非门”IC2反向后,送入74HC273的CLK时钟输入,使得74HC273的Q0~Q7端输出相应的状态值。Q端输出高电平状态后,经三极管作电流放大后,驱动光耦4N25内的发光二极管发光,由于光线的照射,使得IC3的光敏输出端(即图中的A点)电位下降,经过电压比较器比较后,确定A点电位<B点电位,由此,电压比较器的输出端C端变为高电平状态,后级三极管VT2进行电流放大后,驱动继电器K1吸合触点。至此,以上是电路产出一个开关“开”信号的全过程;当需要输出一个开关“关”状态的控制信号,则只需要向该路数据位发送“0”电平信号,再发送一个数据选通STROBE信号即可,因为,“开”状态时所发出的相应数据位上的电平控制信号为“1”。
控制软件的使用方法
本文介绍的软件是笔者自己编写的一款控制软件,该软件可以到笔者的网站http://www.hificat.com 下载或者在本期配刊光盘的“本期程序”文件夹下找到。
首先,使用SETUP.EXE文件来进行软件的安装,安装完成后,软件的快捷方式全出现于“程序”菜单中。
注意:
目前主要有三种类型的并行口工作方式:SPP、EPP、ECP。使用软件前,请进入BIOS系统,将LPT口的工作方式设置为EPP或ECP工作方式。
设置完成后,启动软件,即可显示如图2所示的界面,首先,设置好计算机的LPT口基地址,软件默认的是0X378H。然后,进行控制方式的选择,一共有三种控制方式,分别为:手动控制、彩灯控制和定时控制。当您选中的一种控制方式后,其余两种方式都被自动禁用,各控制方式相互独立。
手动控制:
用来手动控制各路电器的开与关,用户只要在各路电器的相应复选框上进行打勾或打叉就可以完成相应电器的控制,打勾表示“开”,打叉表示“关”;
彩灯控制有流水灯和闪烁灯两种控制方式,当用户在8路控制继电器接上的负载为灯泡时,则彩灯控制功能可以将这8盏灯以流水灯或闪烁灯的形式来运作,看起来很漂亮!彩灯控制时灯泡的两次变化间的延时,可以由用户输入延时时间,延时单位为毫秒。
定时控制:
可以控制各路电器的定时“开”或“关”,由用户选择。定时的时间由用户在各自的文本框内输入时间值即可。比如:您想控制第一路电器在19∶38∶52的时间定时“开”,那你只要于软件中,将第一路电器前的单选框选中,并将定时“开”复选框前打上勾,这时,该路电器将被马上关闭,然后,在后面的文本框内输入19∶38∶52,到了19∶38∶52该路电器都被自动“打开”;如果,您想控制第一路电器在19:38:52的时间定时“关”,这时只要在相应的定时“关”复选框前打上勾,这时,该电路电器将被马上开启,然后,在后面的文本框内输入19:38:52,到了19:38:52该路电器将被自动“关闭”。
软件界面中左上方的“状态监视器”用来监视8路电器当前的实时状态,当软件指示灯“红色”时,表示该路电器处于“打开”状态;当软件指示灯“绿色”时,表示该路电器处于“关闭”状态。
软件界面下方的“全开”,“全关”按钮,用来直接置位,复位8路电器的状态,当控制方式为“手动控制”时有效。
笔者制作的该控制电路如图3、图4所示(以控制发光二极管为例)。
(文/徐玮)