回 帖 发 新 帖 刷新版面

主题:在qbasic中用并口做的实用电路,可以控制家用电器(详解)

本文最终目的:利用电脑控制一个电器的开断,比如控制电灯开关. 
相关知识: 
并行接口,简称并口,也就是LPT接口,是采用并行通信协议的扩展接口。并口的数据传输率比串口快8倍,标准并口的数据传输率为1Mbps,一般用来连接打印机、扫描仪等。所以并口又被称为打印口。 
并口是25针的,与25针串口不同的是,并口是25个孔,所以常称为“母头”,而像串口就常称为“公头”。并口的针脚定义如下: 
1 STROBE 选通 
2-9 DATA0-DATA7 数据0-7 
10 ACKNLG 确认 
11 BUSY 忙 
12 PE 缺纸 
13 SLCT 选择 
14 AUTO FEED 自动换行 
15 ERROR 错误 
16 INIT 初始化 
17 SLCT IN 选择输入\ 
18-25 GND 地线 
并行口信号: 
(0V)表示逻辑0,用高电平(5V)表示逻辑1(电压都是相对于18-25脚上的接地电势而言)。 
并行口硬件:并口行现在通常被集成在系统板上,25针插口上的信号可通过数据锁存器、打印状态和打印 
机控制三个寄存器(也就是三个输入/输出端口)进行程序设计和控制。计算机系统中通常有多个并行端口,它们在输入/输出系统中的地址。需要注意的是这些地址是由系统 BIOS 给出的,并不是硬件的物理 地址,所以可以通过设置 BIOS 来改变当前端口的配置,如果地址改变在程序中也必须改变。 

感性实验: 
并口可以输出5V的直流电压,我们利用它来做个简单的电路来控制一个家用电器的电路。我们主要利用并口的2-9脚, 
1、先找一条并口电缆,看电缆插头的形式,找一个与之配套的25针插座,电脑配件商店有卖(0.7元左右/只), 
2、找个发光二极管(注意正负极)把正及接到2脚,负及接到25脚, 
3、接好后插到电脑的并口上 
4、打开电脑 
在开机自检的过程中,你会看到二极管会发亮一下,然后熄灭,这个说明你可以用QB来对并口进行编程了! 
在进入系统以后(注意:必须是win98或者更低的操作系统,不能使用WinXP、2000等NT内核的操作系统,否则无法进行端口读写) 
5、启动QBASIC 
6、输入OUT &h378,&HFF 然后运行。(并口的地址一般是378H,如果不一样请在BIOS里面改一下)这时,发光二极管就会长亮,输入OUT &h378,0,发光二极管就会熄灭,至此,软件实验的准备工作已经完成,你已经能控制LPT口了。 

实用电路: 
LTP的输出电流有几百毫安,可以直接驱动小功率继电器,大家可以到电子市场上买一个5v的小型继电器,替换掉发光二极管(无正负极)然后把继电器当一个小开关来使用,用程序来控制继电器的分合, 
如果不能买到这种继电器,可以做一个电子开关,元件:光电耦合器一只,双向可控硅一只,电阻N只,把光偶的前及替换发光二极管,后级与可控硅、电阻连接,最后连接家用电器,和上面一样,可以用程序控制这个电器了。 
光藕的电气隔离性能很好,可以达到2500v。 


程序方面大家可以尽情开动脑筋
&hff 是把所有数据口都置高电平,发送的数据每个位对应每个脚,如果是2进制大家就容易理解了 ,如果只想单独控制第3脚就发送二进制0000 0010....转成10进制就是2
如果要获得当前电路的状态(通或者是断),可以用inp来读端口,比如读如数据是3,转成2进制是0000 0011 那么说明2 和 3是通

请注意:在XP下不能直接使用端口语句,用了没有什么效果,因为读写端口的权限在ring0级,qb没有办法.
不过大家可以在网上搜索到使用端口的控件或者是DLL,然后在vb程序里调用就可以了!

回复列表 (共46个回复)

沙发

这个我用打印机线和二极管试过...行是行...就是弄不到5V的继电器...一直没进展了.
哎...没继电器N多想法都白搭

板凳

用光藕也一样,很容易做
如果需要的话,我可以把电路图给画一份,不知道光藕与双向可控硅大家容易买不?
还有一中方法就是直接买电子开关,加5V直流电压就能接通的电子开关

大家也可以在网络上搜索一下,有电子元件公司,两种开关都有得卖

3 楼

顶起, 我也来去试试

4 楼

我找到了一个5V的继电器,可是好像并口那几百毫安的电流不能使继电器工作,继电器是动了,又好像只要电脑开启后并口的第2脚和第25脚连接时就能让发光二极管发光了,并不是要在QBASIC输入OUT &h378,&HFF 后点击运行后才有电压,是怎么回事啊?

5 楼

在电脑启动自检的时候也是会亮的,不过,只是偶尔亮一下,不会长亮
5V继电器有很多种类,有的电流大,所以无法驱动!
第18 到25脚都是地(GND)
最好用日本出的小功率继电器!微型的那种,很好用!

6 楼

你那文章说的东西都解决了,只是现在想编一个能定时给并口加上电压的程序(比如想让第2脚在下午5点或者6点输出电压),不晓得如何下手,

7 楼

TIME可以返回时间
比如
PRINT "当前时间";TIME$

这样就很简单了
当 TIME$=下午5点, 向端口发送5脚为1

我随便一一个,当然这个是用不成的,主要表达一个意思!
IF TEME¥=“17:00” THEN 。。。。。

下面我简单的讲一讲如何控制任意的脚!

每个脚的对应关系是这样
有8个脚,就是8个二进制的位
用1代表接通 用0代表断开

形象一点
如果你接了8个发光二极管
分别是D1 、D2。。。。。D8

注意:在这里1代表灯亮,0代表灯灭
如果D1亮 就是0000 0001 =十进制的1
    D2亮 就是0000 0010 =        2
     3       0000 0100 =        4
     4       0000 1000 =        8
     5       0001 0000 =        16

。。。。。

依次类推
用win自带的计数器可以算一下,或者自己写个程序

实际上这个就是10进制与2进制的转换,大家可以看看相关书籍!

如果我想几个灯同时亮怎么办呢 比如,我想亮D1 D2
 
 二进制就是00000011   转换成10进制就=3

想亮D1 D2 D3 D4

 换成2进制就是 00001111 
 在程序里转成10进制就是15

在电脑里用16进制比10进制要方便得很多
比如00001111就是等于F
qbasic中的out &h378 xxxx 这个&h378就是16进制,在qb中凡是带&H的就是16进制数
由这8位就可以得到256种组合方式
就是16进制的0到FF这个范围

8 楼

我做硬件的,继电器、光耦等有什么不懂可以问我,真有问题发邮件到qiaoqu2008@sohu.com,一定尽力。

9 楼

我是做继电器的,想要继电器的找我,
每天经我手的继电器过百万。

10 楼

能用的..5V的...小型的
实物照片,尺寸,单价,联系方式,寄款方式..............

我来回复

您尚未登录,请登录后再回复。点此登录或注册