主题:在qbasic中用并口做的实用电路,可以控制家用电器(详解)
qb45
[专家分:2880] 发布于 2006-04-11 10:26:00
本文最终目的:利用电脑控制一个电器的开断,比如控制电灯开关.
相关知识:
并行接口,简称并口,也就是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程序里调用就可以了!
最后更新于:2007-11-20 09:44:00
回复列表 (共46个回复)
沙发
冷石_jasv [专家分:1570] 发布于 2006-03-23 14:58:00
这个我用打印机线和二极管试过...行是行...就是弄不到5V的继电器...一直没进展了.
哎...没继电器N多想法都白搭
板凳
qb45 [专家分:2880] 发布于 2006-03-23 17:34:00
用光藕也一样,很容易做
如果需要的话,我可以把电路图给画一份,不知道光藕与双向可控硅大家容易买不?
还有一中方法就是直接买电子开关,加5V直流电压就能接通的电子开关
大家也可以在网络上搜索一下,有电子元件公司,两种开关都有得卖
3 楼
极品垃圾 [专家分:0] 发布于 2006-04-02 14:25:00
顶起, 我也来去试试
4 楼
极品垃圾 [专家分:0] 发布于 2006-04-02 14:35:00
我找到了一个5V的继电器,可是好像并口那几百毫安的电流不能使继电器工作,继电器是动了,又好像只要电脑开启后并口的第2脚和第25脚连接时就能让发光二极管发光了,并不是要在QBASIC输入OUT &h378,&HFF 后点击运行后才有电压,是怎么回事啊?
5 楼
qb45 [专家分:2880] 发布于 2006-04-02 16:13:00
在电脑启动自检的时候也是会亮的,不过,只是偶尔亮一下,不会长亮
5V继电器有很多种类,有的电流大,所以无法驱动!
第18 到25脚都是地(GND)
最好用日本出的小功率继电器!微型的那种,很好用!
6 楼
极品垃圾 [专家分:0] 发布于 2006-04-03 20:18:00
你那文章说的东西都解决了,只是现在想编一个能定时给并口加上电压的程序(比如想让第2脚在下午5点或者6点输出电压),不晓得如何下手,
7 楼
qb45 [专家分:2880] 发布于 2006-04-04 16:59:00
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 楼
北乔枫 [专家分:170] 发布于 2006-04-04 18:32:00
我做硬件的,继电器、光耦等有什么不懂可以问我,真有问题发邮件到qiaoqu2008@sohu.com,一定尽力。
9 楼
moz [专家分:37620] 发布于 2006-04-04 20:05:00
我是做继电器的,想要继电器的找我,
每天经我手的继电器过百万。
10 楼
冷石_jasv [专家分:1570] 发布于 2006-04-06 16:04:00
能用的..5V的...小型的
实物照片,尺寸,单价,联系方式,寄款方式..............
我来回复