【网通】点击此处下载全部源程序 【电信、网通】点击此处下载源程序
【网通】点击此处下载演示程序 【电信、网通】点击此处下载演示程序
点击此处查看原文
【下载说明】
1、单击上面这个地址,打开下载页面。
2、点普通下载--等待30秒--点“下载”按钮--保存
使用C#来做一个数据寄存器控制的程序时很简单的。当我对控制外部电子设备感兴趣的时候,我一直在寻找一个类似的应用程序,但是我发现没有正常工作的,因此写了一个。这篇文章是关于如何使用C#以及inpout32.dll来控制并口LPT的数据寄存器的。
你可以使用这个简单的程序来测试一些外部电子设备,测试你的并口的数据寄存器,以便了解他们是怎么工作的。
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); } }
在Windows系统上,很容易找到并口的地址。在桌面点击右键,选择”管理“-》”设备管理器”-》端口-》LPT1或者LPT2.
IEEE 1284 标准的端口地址
数据寄存器 |
状态寄存器 |
控制寄存器 |
|
Range1 |
3BCh |
3BDh |
3BEh |
Range2 |
378h |
379h |
37Ah |
Range3 |
278h |
279h |
27Ah |
128 64 32 16 8 4 2 1 D7 D6 D5 D4 D3 D2 D1 D0
如果你想要发送10010110(1是逻辑高电平,0是逻辑低电平)只需要将十进制数计算出来就可以了。上面二进制数的十进制值的计算方法是:128+16+4 = 148.
【更多阅读】