主题:在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个回复)
21 楼
qb45 [专家分:2880] 发布于 2006-10-31 13:30:00
XP中是禁止程序读写端口的,所以用qb无法完成这个程序。
如果你是在win98或者在DOS中就没有这个障碍了。
22 楼
莫非白 [专家分:750] 发布于 2006-11-19 18:59:00
我现在都用它控制导弹了,真爽啊。呵呵QB就是强。
23 楼
w1212q [专家分:660] 发布于 2006-11-29 15:00:00
888,超限制违规;
24 楼
def [专家分:3380] 发布于 2006-12-09 19:54:00
没Win98可不可以用VPC???
25 楼
def [专家分:3380] 发布于 2006-12-09 19:55:00
不能装98可不可以用VPC?
26 楼
CLO [专家分:2000] 发布于 2006-12-23 23:10:00
QB 还能做这么强大的东西,长见识了~~
27 楼
ytnifs [专家分:10] 发布于 2007-03-20 22:04:00
我倒是做机械设备的,正是用QB编的程序在DOS下运行
28 楼
爱丽斯LING [专家分:560] 发布于 2007-03-30 16:53: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是通
29 楼
hhhchy [专家分:300] 发布于 2007-04-04 17:38:00
CLS
OPEN "f:\123.txt" FOR OUTPUT AS #1
DIM a(4, 4), x(5, 2), n$(4)
FOR i = 1 TO 5: READ x(i, 1), x(i, 2): NEXT i
FOR i = 1 TO 4: READ n$(i): NEXT i
DATA 2,4,1,4,1,3,1,2,2,3,中,英,法,日
FOR a = 1 TO 2: a(1, x(a, 1)) = 1: a(1, x(a, 2)) = 1
FOR b = 3 TO 5: a(2, x(b, 1)) = 1: a(2, x(b, 2)) = 1
FOR c = 1 TO 5: a(3, x(c, 1)) = 1: a(3, x(c, 2)) = 1
FOR d = 3 TO 5: a(4, x(d, 1)) = 1: a(4, x(d, 2)) = 1
FOR i = 1 TO 4
IF a(1, i) + a(3, i) = 2 THEN 10
x = a(2, i) + a(3, i) + a(4, i)
IF x = 3 THEN 1
Y = x + a(1, i): m = m + (Y = 3)
P = P + ABS(a(1, i) AND a(2, i))
L = L + ABS(a(2, i) AND a(3, i))
Q = Q + ABS(a(1, i) AND a(4, i))
1 NEXT i
IF m = -1 AND P = 1 AND L = 1 AND Q = 1 THEN
FOR i = 1 TO 4
PRINT #1, CHR$(i + 64); ":";
FOR j = 1 TO 4
IF a(i, j) = 1 THEN PRINT #1, n$(j); " ";
NEXT j: NEXT i: PRINT #1,
END IF
10 a(4, x(d, 1)) = 0: a(4, x(d, 2)) = 0: m = 0: P = 0: L = 0: Q = 0
NEXT d
a(3, x(c, 1)) = 0: a(3, x(c, 2)) = 0
NEXT c
a(2, x(b, 1)) = 0: a(2, x(b, 2)) = 0
NEXT b
a(1, x(a, 1)) = 0: a(1, x(a, 2)) = 0
NEXT a
CLOSE #1
END
30 楼
davis3000 [专家分:0] 发布于 2007-04-20 15:09:00
各位好,在网上看到有人用PC串口的DTR直接控制固态继电器进而控制AC220V电源开关。我想用PC并口来控制电源开关,可行么?
谢谢
我来回复