C#控制计算机的并口LPT

30 篇文章 1 订阅

【下载说明】
1、单击上面这个地址,打开下载页面。
2、点普通下载--等待30秒--点“下载”按钮--保存


介绍

使用C#来做一个数据寄存器控制的程序时很简单的。当我对控制外部电子设备感兴趣的时候,我一直在寻找一个类似的应用程序,但是我发现没有正常工作的,因此写了一个。这篇文章是关于如何使用C#以及inpout32.dll来控制并口LPT的数据寄存器的。

你可以使用这个简单的程序来测试一些外部电子设备,测试你的并口的数据寄存器,以便了解他们是怎么工作的。

1.Inpout32.dll 是怎么工作的?

inpout32.dll的源代码请查看 http://code.google.com/p/stimqt/downloads/detail?name=inpout32.dll

inpout32.dll最大的一个优点是,不需要对inpout32.dll做任何的更改,既可以在所有的Windows版本中运行。这个DLL会在调用函数时检测操作系统的版本。如果操作系统式Win9x,它会用_inp()和_outp()函数来读写并口。另外,如果操作系统式WinNT、2000或者XP,他会安装一个内核模式的驱动,并通过这个驱动来操作并口。用户的代码不需要考虑是在什么样的操作系统上运行的。这个DLL也能在WinNT的克隆系统,如win9x上使用。其流程图如下。

64位系统需要使用Inpoutx64.dll.


在工程中,可以从库中使用Out32函数。

namespace ParallelPortControl
{
    class PortControl // Import dll to project
    {
        [DllImport("inpout32.dll", EntryPoint = "Out32")]
        public static extern void Output(int address, int value); // decimal
    }

    public partial class Form1 : Form 
    {
        int decData = 0;
        int decAdd = 888; // 378h Selected Default

        PortControl.Output(decAdd, decData);
    }
}

2.怎么在Windows中知道并口的地址 ?

在Windows系统上,很容易找到并口的地址。在桌面点击右键,选择”管理“-》”设备管理器”-》端口-》LPT1或者LPT2.


IEEE 1284 标准的端口地址

 

数据寄存器

状态寄存器

控制寄存器

Range1

3BCh

3BDh

3BEh

Range2

378h

379h

37Ah

Range3

278h

279h

27Ah

3.使用十进制输入

128 64 32 16 8 4 2 1
D7 D6 D5 D4 D3 D2 D1 D0

如果你想要发送10010110(1是逻辑高电平,0是逻辑低电平)只需要将十进制数计算出来就可以了。上面二进制数的十进制值的计算方法是:128+16+4 = 148.

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值