关于VB对LPT并口操作问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 06:37:14
请问如何对计算机并口管脚进行单独控制

比如用VB系统我现在要对计算机并口进行单独设置,我用的一个叫DLPortIO软件提供的dll,里面一个函数可以直接对并口写字节。

现在我向要使并口编号2的管脚持续输出高电平。

然后在这个基础上我要使并口编号3的管脚输出一个 脉冲

而在计算机控制里管脚2和管脚3都是属于内存 378H 的数据位里面。。

我要修改的话只能一次性对其进行修改,比如我要让编号2输出高电平
输出到 378H,01H (二进制位 0000 0001)
而此时要产生脉冲的话,因为要在上面的二进制右边第二位产生一个1到0的变化,而不得不 输出 378H,03H ,然后改成 378H,01H
有没有办法可以直接只控制其中的一个管脚的,而不要使用字节来控制整个一排DATA位?

不知道我表达清楚了没有。。。实际上我的程序是这样的

这个是逐位输出一个二进制字符串

For i = 1 To Len(s)
tmp = Mid(s, i, 1)

If tmp = "1" Then SEND_DATA_HIGH: SCLK_ON_1: SCLK_OFF_1
If tmp = "0" Then SEND_DATA_LOW: SCLK_ON_0: SCLK_OFF_0

Next i

SEND_DATA_HIGH是在数据为产生一个高电平 SEND_DATA_LOW在数据为产生一个低电平。然后我要在SCLK位产生一个脉冲。

Public Sub SCLK_ON_1()
'LPT端口 0000 0101
DlPortWritePortUchar Val("&H378"), Val("&H05")
End Sub
Public Sub SCLK_ON_0()
'0000 0001
D

先读出你的端口
假如放在 ls
ls = ls Xor 2 '(0000 0010)
再写入 ls 到端口
这样就只翻转并口编号3的管脚电平(LPT里编号应是B1)
其他脚不变
重复此过程3脚就输出脉冲了

---
其他按位控制的可以用到 and、or、Imp、not